diff --git a/blccc-1.99/AUTHORS b/blccc-1.99/AUTHORS deleted file mode 100644 index 922126d..0000000 --- a/blccc-1.99/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Sven Neumann diff --git a/blccc-1.99/COPYING b/blccc-1.99/COPYING deleted file mode 100644 index d60c31a..0000000 --- a/blccc-1.99/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/blccc-1.99/ChangeLog b/blccc-1.99/ChangeLog deleted file mode 100644 index 4c12398..0000000 --- a/blccc-1.99/ChangeLog +++ /dev/null @@ -1,1478 +0,0 @@ -2002-12-28 14:54 neo - - * examples/config.xml: Added example loveletters configuration. - -2002-12-27 19:25 neo - - * ChangeLog: Updated ChangeLog for 1.99 release. - -2002-12-27 19:17 neo - - * Makefile.am, configure.in, stylesheets/.cvsignore, - stylesheets/Makefile.am, stylesheets/examples/.cvsignore, - stylesheets/examples/Makefile.am, - stylesheets/examples/simple.default.xml, - stylesheets/examples/simple.xml: Inlcude the newly added - stylesheets into the distribution. - -2002-12-27 16:05 neo - - * examples/config.xml, src/blccc.c, src/blconfig.c, src/blconfig.h, - src/blisdn.c: Changed the names of the isdn port configuration. - -2002-12-27 15:45 neo - - * examples/config.xml, src/blccc.c, src/blconfig.c, src/blconfig.h, - src/blisdn.c: Allow to configure the sendind and receiving ports - for communication with the ISDN system independently. Removed Tim's - hack. - -2002-12-24 05:26 tim - - * src/blisdn.c: quick and pretty dirty hack to allow blccc and - blinkisdn to run on the same machine - -2002-12-21 02:36 tim - - * stylesheets/: simple-playlist.xslt, examples/simple.default.xml: - new xslt stylesheets to convert to complex playlist format - -2002-12-11 18:56 neo - - * configure.in, src/main.c: Follow API change in blib. Check for - blib >= 1.0.0. - -2002-12-08 16:42 neo - - * .cvsignore, autogen.sh, configure.in, src/main.c: Updated - autogen.sh for newer versions of automake. Added a missing - AM_CONFIG_HEADER() to configure.in. Include config.h from main.c - for definition of VERSION. - -2002-10-05 19:42 neo - - * src/: Makefile.am, blccc.c, bltheater.c: some changes that - accumulated on blccc - -2002-10-03 01:01 mitch - - * src/: blconfig.c, blconfig.h, main.c: Made the telnet port - configurable via config.xml - -2002-10-02 21:39 mitch - - * src/blccc.c: when the line goes onhook, remove the player and - finish the item *only* if it's the theater's playing item (fixes - problem where the item stops itself). - -2002-10-02 20:40 mitch - - * src/blccc.c: don't finish the current item twice... - -2002-10-02 20:37 mitch - - * src/blccc.c: fixed segfault in new app handling code. - -2002-10-02 19:58 mitch - - * src/: blccc.c, blisdn.h, blmarshal.list, bltheater.c, - bltheater.h: A new version of ISDN <-> APP handling. - - - added line->app - change line->app and app->line *only* in - state_changed - added "gboolean pushed" to the theater's - "item_finished" - pop the item in the callback only if "pushed" is - TRUE. - -2002-09-30 19:56 neo - - * src/blplaylist.c: added a missing newline - -2002-09-29 22:59 neo - - * src/: blconfig.c, blplaylist-parse.c: Plugged some smaller - memleaks. - -2002-09-29 00:07 mitch - - * src/: blccc.c, blplaylistitem.c: - don't loop the playlist but - reload it when it's finished. - fixed bl_playlist_item_describe() - to not new NULL movie_player->movie - -2002-09-28 01:35 neo - - * ChangeLog, examples/playlist.default.xml, - examples/movies/hdl-mask.bml, src/blisdn.c: Play the vamp in a - loop. - -2002-09-28 01:20 neo - - * src/: blaccept.c, blccc.c: enabling/disabling apps thru the - telnet interface seems to work now - -2002-09-28 01:08 neo - - * src/blccc.c: maybe g_strstrip() helps - -2002-09-28 01:03 neo - - * src/blccc.c: improved output - -2002-09-28 00:59 neo - - * src/: blaccept.c, blapp.c, blapp.h, blccc.c, blccc.h, blconfig.c: - Added support for enabling and disabling applications. - -2002-09-27 23:50 neo - - * src/blondemand.c: oops - -2002-09-27 21:32 neo - - * src/bllogger.c: Add the movie filename to the logfile. - -2002-09-27 20:11 neo - - * src/blccc.c: Aquire the global lock in isdn_state_changed before - calling bl_theater_finish(). - -2002-09-27 20:00 neo - - * src/blondemand.c: Tuning. - -2002-09-27 19:31 neo - - * src/blondemand.c: Added a describe implementation. - -2002-09-27 19:17 neo - - * src/blccc.c: Report status of ISDN lines again. - -2002-09-27 00:12 neo - - * src/blloveletters.c: Fixed vanity code check. - -2002-09-26 20:19 mitch - - * src/: blplaylist.c, bltheater.c: - #if 0 last night's HACK - - print the item's description to the console after logging it. - -2002-09-26 19:37 neo - - * src/blondemand.c: Improved debug output. - -2002-09-26 19:24 neo - - * src/blplaylist.c: Changed debug output. - -2002-09-26 18:50 neo - - * src/: blondemand.c, blondemand.h: Redone the logic in a sane - state of mind. - -2002-09-25 22:57 neo - - * src/: blccc.c, blplaylist.c: A dirty hack so that I can go back - to the party. - -2002-09-25 20:32 neo - - * src/: blloveletters.c, blondemand.c: small fixes - -2002-09-25 20:21 neo - - * src/blondemand.c: Dirty, but a usleep seems to help here. More - verbose output. - -2002-09-25 19:50 neo - - * src/blondemand.c: yet another fix - -2002-09-25 19:01 mitch - - * src/blccc.c: Send PLAYER_ENTERS and PLAYER_LEFT events in - isdn_state_changed(), not in isdn_incoming_call(). - -2002-09-25 18:48 mitch - - * src/blccc.c: add players to the module in isdn_incoming_call(). - -2002-09-25 18:40 neo - - * src/blondemand.c: set max_players to 1 - -2002-09-25 18:20 neo - - * src/: blondemand.c, blondemand.h: Added advanced property and - made it work... - -2002-09-25 17:54 neo - - * src/: blondemand.c, blondemand.h: Extra features for the OnDemand - module. - -2002-09-25 17:22 neo - - * src/: blccc.c, main.c: Handle SIGINT with the sigterm handler. - Lock blccc in blccc_kill() to avoid race conditions. - -2002-09-25 17:16 neo - - * src/: blapp.c, blapp.h, blccc.c, blisdn.c, blondemand.c: Renamed - application property wamp to vamp. Added yet unused app priority. - -2002-09-25 16:37 neo - - * ChangeLog, src/blccc.c, src/bltheater.c, src/bltheater.h: Call - bl_logger_stop() when blccc is terminated. - -2002-09-25 11:12 mitch - - * src/: blplaylist.c, blplaylist.h: - Made looping items work again - in bl_playlist_load_next_item(). - Added (#if 0 and definitely - wrong) implementation of bl_playlist_peek_next_item(). - -2002-09-25 08:02 neo - - * src/blondemand.c: ooops - -2002-09-25 07:49 neo - - * src/blondemand.c: I'm getting tired ... - -2002-09-25 07:08 neo - - * src/main.c: dealy module initialization a bit - -2002-09-25 06:51 neo - - * src/blondemand.c: Improved BlOnDemand. - -2002-09-25 06:17 neo - - * src/blccc.c: Don't throw out the call we are handling. - -2002-09-25 06:00 neo - - * examples/config.xml, src/blccc.c: Unbelievable, but it really - seems to work :-)) - -2002-09-25 05:48 neo - - * src/: blccc.c, blisdn.c, blisdn.h: Resurrected BlIsdn (the - gethostbyname change was obviously wrong somehow). - -2002-09-25 05:20 neo - - * src/: blaccept.c, blapp.c, blapp.h, blccc.c, blccc.h, blconfig.c, - blconfig.h, blisdn.h: Applications should work now :-) - -2002-09-25 04:17 neo - - * src/blconfig.c: query the registered applications with the config - parameters - -2002-09-25 03:58 neo - - * examples/config.xml, src/blapp.c, src/blapp.h, src/blccc.c, - src/blconfig.c, src/blconfig.h, src/blisdn.c, src/main.c: Added - code to parse the application setup from the config file. - -2002-09-25 02:35 neo - - * src/blisdn.c: added debugging code to BlIsdn - -2002-09-25 02:30 neo - - * src/: Makefile.am, blapp.c, blapp.h, blisdn.c, blisdn.h, - bltypes.h: Lookup hostname for BlIsdn only on startup. Added - framework for what we will call applications. - -2002-09-24 22:25 neo - - * src/blondemand.c: Override the request_stop method of the - BMoviePlayer. - -2002-09-24 21:08 neo - - * src/: blondemand.c, blondemand.h: This might actually work now. - -2002-09-24 20:28 neo - - * src/: blondemand.c, blondemand.h: more work on BlOnDemand - -2002-09-24 20:13 neo - - * src/: Makefile.am, blondemand.c, blondemand.h, bltypes.h: Added - BlOnDemand, derived from BMoviePlayer. - -2002-09-24 19:36 neo - - * src/: blccc.c, blconfig.c, blconfig.h, blisdn.c, blisdn.h: Added - caller authorization and improved BlIsdn API. - -2002-09-24 18:22 neo - - * src/: blisdn.c, blisdn.h: Include calling and caller number in - BlIsdnLine struct. - -2002-09-24 18:08 neo - - * src/blccc.c: Use bl_ccc_event() to dispatch module events. - -2002-09-24 15:51 neo - - * src/: blccc.c, blisdn.c, blisdn.h: Just a preliminary hack: - dispatch key events to the active module. - -2002-09-24 15:34 neo - - * src/: blccc.c, blloveletters.c: Insert complete filenames into - the loveletters hash table using b_filename_from_utf8(). - -2002-09-24 15:27 neo - - * src/blisdn.c: Throw out all callers on bl_isdn_block(). Accept - incoming calls (unconditionally for now). - -2002-09-24 15:01 neo - - * src/: blconfig.c, blisdn.c, blisdn.h: More work on ISDN. - -2002-09-24 03:14 neo - - * src/: blccc.c, blisdn.c, blisdn.h: Finished implementation of - ISDN keepalive protocol. - -2002-09-24 02:19 neo - - * examples/playlist.default.xml: Added BPacman to the example - playlist. - -2002-09-24 00:43 neo - - * src/: blccc.c, blisdn.c, blisdn.h: Added heartbeat code to - BlIsdn. - -2002-09-24 00:18 mitch - - * src/: blaccept.c, blccc.c, blccc.h: - added - bl_theater_on_demand(). - pop the on-demand item on - "item_finished". - added "love " command to BlAccept. - -2002-09-24 00:11 mitch - - * src/bltheater.c: bl_theater_pop_item(): only unref theater->item - if it is not NULL. - -2002-09-23 23:59 neo - - * src/: blccc.c, blisdn.c, blisdn.h: First attempts to talk Tobias' - new ISDN protocol. - -2002-09-23 23:25 neo - - * src/: blccc.c, blisdn.c, blisdn.h: ISDN connection setup seems to - work now. - -2002-09-23 23:07 neo - - * examples/config.xml, src/blccc.c: don't crash if no isdn host if - configured - -2002-09-23 23:01 neo - - * src/blisdn.c: more updates - -2002-09-23 22:31 neo - - * src/: blccc.c, blisdn.c, blisdn.h, bllogger.c, main.c: one our - way ... - -2002-09-23 21:56 neo - - * src/: blisdn.c, blisdn.h: Make it compile. - -2002-09-23 21:49 daniel - - * src/blisdn.c: isdn code contribution - -2002-09-23 21:28 neo - - * examples/config.xml, examples/loveletters.xml, src/blccc.c, - src/blconfig.c, src/blconfig.h, src/blisdn.c, src/bllisten.c: More - work on ISDN stuff... - -2002-09-23 20:23 neo - - * src/blloveletters.c: code cleanup - -2002-09-23 20:16 neo - - * examples/config.xml, examples/loveletters.xml, - src/blloveletters.c: Check vanity codes and ids for correctness. - -2002-09-23 19:42 neo - - * src/blloveletters.c: make it work - -2002-09-23 19:28 mitch - - * examples/playlist.default.xml, src/blplaylist-parse.c, - src/blplaylistitem.c: - merge "speed" and "reverse" settings of the - BlPlaylistItem and it's BModule after parsing. - simplified - bl_playlist_item_real_apply_effects(). - a more sophisticated - default playlist. - -2002-09-23 18:54 neo - - * src/: blloveletters.c, blloveletters.h: completed BlLoveletters - API - -2002-09-23 18:44 neo - - * src/: blccc.c, blccc.h, blconfig.c, blconfig.h, blloveletters.c, - blloveletters.h, bltypes.h: Added loveletters config option and use - it. - -2002-09-23 18:26 neo - - * examples/Makefile.am, examples/loveletters.xml, src/Makefile.am, - src/blloveletters.c, src/blloveletters.h, src/bltypes.h: added new - files for BlLoveLetters feature - -2002-09-23 18:22 mitch - - * src/bltheater.c: - added bl_theater_stop_callback(). - don't - call bl_theater_pause() from bl_theater_item_finished(). - added - "gboolean relax" to bl_theater_item_finished() so we don't relax - modules which have not been prepared. - optimized - bl_theater_paint_callback() a bit. - don't access module->running. - - cleanup. - -2002-09-23 17:52 mitch - - * src/blaccept.c: Fixed setting of the global effects. - -2002-09-23 17:15 mitch - - * examples/playlist.default.xml: Added a Pong game. - -2002-09-23 17:09 neo - - * src/: blccc.c, blisdn.c, blisdn.h, blmarshal.list: More ISDN - cleanups. - -2002-09-23 16:51 neo - - * src/: blisdn.c, blisdn.h: bye bye old ISDN cruft - -2002-09-23 16:11 neo - - * src/: blccc.c, blplaylist-parse.c, blplaylist.c, blplaylist.h: - Pass a the BlPlaylist a reference to BlConfig. Set the aspect ratio - on all modules we create. - -2002-09-23 15:47 neo - - * examples/config.xml, examples/playlist.default.xml, - src/blconfig.c, src/blconfig.h: Added aspect ratio config option. - -2002-09-23 15:24 neo - - * src/: Makefile.am, blccc.c, blccc.h, blpong.c, blpong.h, - bltypes.h: Die, BlPong, die. - -2002-09-23 15:07 neo - - * src/: blccc.c, blconfig.c, blconfig.h, blisdn.c, blisdn.h, - bltypes.h: Started to rip BlIsdn apart. - -2002-09-23 14:03 neo - - * examples/playlist.default.xml: Adapted the example playlist to - the fact that the fire module stops itself now. - -2002-09-23 13:16 neo - - * examples/config.xml, src/blccc.c, src/blccc.h, src/blconfig.c, - src/blconfig.h, src/bltheater.c, src/bltheater.h, src/main.c: Parse - recipients from the config file instead of the command-line. Added - bl_theater_add_recipient() and bl_theater_remove_recipient(). - -2002-09-23 01:25 neo - - * src/: blccc.c, blconfig.c, blconfig.h: Added the ISDN port to - BlConfig. - -2002-09-23 00:46 neo - - * examples/playlist.default.xml: added a nice fadeout effect - -2002-09-22 20:00 neo - - * examples/: playlist.default.xml, movies/hdl-mask.bml: Added a HDL - mask and demonstrate its use in the example playlist. - -2002-09-22 19:50 neo - - * examples/playlist.default.xml, src/blplaylistitem.c: Apply the - item's reverse setting on the movie_players reverse state. Added - some good old HDL movies to the example playlist. - -2002-09-22 18:22 neo - - * examples/config.xml, src/blccc.c, src/blconfig.c, src/blconfig.h, - src/blplaylist-parse.c, src/blplaylist.c, src/blplaylist.h, - src/bltheater.c, src/bltheater.h: Simplified the code by dropping - support for maxval != 255 and channels != 1. - -2002-09-22 17:56 neo - - * src/: blccc.c, blplaylist-parse.c, blplaylist.c, blplaylist.h, - main.c: Share one frame buffer among all modules in a playlist. - -2002-09-22 17:29 neo - - * src/: blccc.c, blplaylist-parse.c, bltheater.c, bltheater.h: - Adapted to blib API changes. - -2002-09-21 22:30 neo - - * Makefile.am, configure.in, data/.cvsignore, data/Makefile.am, - data/playlist.dtd: Added a first draft of a DTD for the playlist. - It's missing item attributes. - -2002-09-21 22:14 neo - - * src/bllogger.c: Open the logfile using "a", not "wa". - -2002-09-21 22:11 neo - - * examples/config.xml, src/blccc.c, src/blconfig.c, src/bllogger.c, - src/bltheater.c, src/bltheater.h: Enabled writing of logfiles. - -2002-09-21 21:44 neo - - * examples/config.xml, src/blccc.c, src/blccc.h, src/blconfig.c, - src/blconfig.h, src/bllogger.c, src/bltheater.c, src/main.c: - Removed most command-line options and use BlConfig instead. - -2002-09-21 20:40 neo - - * examples/playlist.default.xml, src/bllogger.c, src/bltheater.c, - src/bltheater.h: Allow a NULL filename in bl_logger_new_from_file() - and make it write to stdout. Integrated the logger into BlTheater. - -2002-09-21 20:28 neo - - * src/: blplaylist-parse.c, main.c: Got rid of atoi() and atof(). - -2002-09-21 19:43 neo - - * src/: blconfig.c, blplaylist-parse.c: Removed lots of code and - use blib functions instead. - -2002-09-21 18:02 neo - - * examples/config.xml, src/blaccept.c, src/blconfig.c, - src/blconfig.h: Improved BlConfig further. - -2002-09-21 16:32 neo - - * examples/Makefile.am, examples/config.xml, src/blconfig.c: More - work on config file parsing and a simple example. - -2002-09-21 16:08 neo - - * configure.in, src/blplaylist-parse.c, src/bltheater.c: Prepare - and relax the modules in BlTheater. This is ugly and needs to - change. - -2002-09-21 14:01 neo - - * src/blplaylistitem.c: Respect current setting of module->speed - when applying effects. This makes playlist syntax work. - -2002-09-21 13:50 neo - - * examples/playlist.default.xml, src/blplaylist-parse.c, - src/main.c: Use g_object_set_property() instead of g_object_set() - and b_init() instead of g_type_init(). This makes integer, double - and boolean properties work in playlists. - -2002-09-20 21:35 mitch - - * examples/playlist.default.xml: ported the "camel & fly" playlist - to the new format. - -2002-09-20 21:15 mitch - - * src/: blccc.c, blccc.h, blplaylist-parse.c, blplaylist-parse.h, - blplaylist.c, blplaylist.h, blplaylistitem.c, blplaylistitem.h, - bltheater.c, bltheater.h: Ported to new BModule API: - - - replaces BlPlaylistItem's "module_type" and "movie" by the module - itself. - create modules while parsing. - parse - elements. - apply all effects in the "paint" callback, so they - work for all kinds of modules, not just movies. - tons of - related changes... - -2002-09-20 20:04 neo - - * src/blconfig.c: started to work on the config file parser - -2002-09-20 18:05 neo - - * src/: Makefile.am, blconfig.c, blconfig.h, bltypes.h: Basic - framework for configuration file parsing and saving. - -2002-09-20 15:27 neo - - * src/: bllogger.c, bllogger.h: Finished BlLogger. - -2002-09-20 15:01 neo - - * src/: bllogger.c, bllogger.h: Almost there. - -2002-09-20 14:43 neo - - * src/: Makefile.am, bllogger.c, bllogger.h, bltypes.h: Added - logging framework. - -2002-09-20 14:23 neo - - * src/bltheater.h: Removed copies of the same #defines. - -2002-09-20 13:28 neo - - * configure.in: Check for blib >= 0.8. - -2002-09-20 13:17 mitch - - * src/: blccc.c, bltheater.c: Made it compile with current blib - (will definitely not work yet), - -2002-09-15 13:51 mitch - - * src/: blplaylist-parse.c, blplaylist-parse.h, blplaylist.c: - - Pass the playlist itself, not just filename, width etc. to - bl_playlist_parse(). - Enabled effects for the element. - - Allow nested elements. Effects are applied - recursively. - -2002-09-14 15:21 mitch - - * src/: blccc.c, blplaylist-parse.c, blplaylist.c, blplaylist.h: - - Removed the "filename" paramater from bl_playlist_new(). - Added - bl_playlist_new_from_file(). - -2002-09-11 20:19 mitch - - * src/: blccc.c, blplaylist-parse.c, blplaylist.c, blplaylist.h, - blplaylistitem.c, blplaylistitem.h: - Enables playlists as playlist - items. - Apply item effects recursively to sub-playlist. - Lots - of related changes. - -2002-09-11 20:17 mitch - - * src/blaccept.c: fixed if((()(()())) foobar - -2002-09-10 23:32 mitch - - * src/: blccc.c, blplaylist.c, blplaylist.h, blplaylistitem.c, - blplaylistitem.h: - made BlPlaylist a BlPlaylistItem subclass. - - virtualized bl_playlist_item_describe() - removed public - bl_playlist_list_items() and made it a describe() implementation. - -2002-09-10 02:21 mitch - - * src/: blaccept.c, blccc.c, blplaylist-parse.c, blplaylist.c, - blplaylistitem.c, blplaylistitem.h, bltheater.c: - Made - BPlaylistItem a BObject. - cleanup. - -2002-09-10 01:39 mitch - - * src/blccc.c: code formating paranoia... - -2002-09-10 00:50 mitch - - * src/: blaccept.c, blccc.c, blplaylist-parse.c, blplaylistitem.c, - blplaylistitem.h, bltheater.c: Various cleanups all over the place. - -2002-09-10 00:15 daniel - - * src/: bllisten.c, blpong.c, bltheater.c: pedantic include fixes - -2002-09-10 00:06 mitch - - * src/: Makefile.am, blccc.c, blplaylist-parse.c, blplaylist.c, - blplaylist.h, blplaylistitem.c, blplaylistitem.h, bltheater.c: - - moved BlPlaylistItem to it's own files. - changed includes - accordingly. - cleaned up includes. - -2002-09-09 22:44 mitch - - * src/: blaccept.c, blccc.c, blccc.h, bltheater.c, bltheater.h: - - Added event dispatching to BlTheater and BlCcc. - Send events from - BlAccept. - -2002-09-09 21:36 mitch - - * src/: bltheater.c, main.c: Allow startup without any recipients. - Warn if none were passed but continue anyway. - -2002-09-09 21:24 mitch - - * src/: blaccept.c, blccc.c, blccc.h, bltheater.c, bltheater.h: - Added support for adding/removing recipients to BlCcc and BlAccept. - -2002-09-09 20:25 mitch - - * src/: blccc.c, blplaylist.c: cleanup, indentation, nothing... - -2002-09-09 19:21 mitch - - * src/: blccc.c, blplaylist.c, blplaylist.h: factored out - bl_playlist_item_describe() and use it. - -2002-09-09 18:58 mitch - - * src/: bltheater.c, bltheater.h: - made real GList based stacks - out of theater->item_stack and thater->module_stack. - added - theater->frame_buffer where the theater's effects (if any) are - applied before sending. - -2002-09-09 18:41 mitch - - * src/: blccc.c, bltheater.c: Reduced newly added code duplication - in BlTheater and moved static functions to the end of the file. - -2002-09-09 18:18 mitch - - * src/: blccc.c, blmarshal.list, blplaylist-parse.c, blplaylist.c, - blplaylist.h, bltheater.c, bltheater.h, bltypes.h: - added a - refcount to BlPlaylistItem - changed BlTheater massively, It now - operates on playlist items instead of movies and creates BModules - to display stuff. - lots of changes... - -2002-09-09 16:16 mitch - - * src/: blccc.c, blplaylist.c, blplaylist.h: Renamed - bl_playlist_list_movies() bl_playlist_list_items() and made it - handle non-movie items. - -2002-09-09 16:08 mitch - - * src/: blccc.c, blplaylist-parse.c, blplaylist.c, blplaylist.h: - - added a GType for the module type to BlPlaylistItem - ref the - BMoviePlayer class in BlCcc so it is always available. - parse - playlist item module types and set item->type accordingly. - - interpret CDATA as movie name only if item->data is - G_TYPE_MOVIE_PLAYER. - -2002-09-09 15:08 mitch - - * src/blplaylist-parse.c: minor cleanup. - -2002-09-09 15:07 mitch - - * src/: blccc.c, blplaylist-parse.c, blplaylist.c, blplaylist.h: - Made BlPlaylist a BObject subclass. - -2002-09-09 14:54 mitch - - * src/: blplaylist-parse.c, blplaylist-parse.h, blplaylist.c: - Ported playlist parser to BParser. - -2002-09-09 14:20 mitch - - * src/: blccc.c, blccc.h, blplaylist-parse.c, blplaylist-parse.h, - blplaylist.c, blplaylist.h, bltheater.c, bltheater.h, main.c: - Replaced all "maxval" parameters and assertions by "channels" and - made "maxval" configurable on a per-movie basis (just reconfigure - the BSender). - -2002-09-09 13:48 mitch - - * src/: blccc.c, main.c: - don't pass argv[0] as hostname. - scan - the blib default module dir and report present modules in - bl_ccc_status(). - -2002-09-05 14:22 mitch - - * configure.in, src/bltheater.c, src/bltheater.h: - require blib >= - 0.6 - ported to new BSender API - -2002-09-03 13:56 mitch - - * src/modules/Makefile.am: Install the modules in - /lib/blccc/modules - -2002-09-03 03:11 neo - - * configure.in, src/Makefile.am, src/blaccept.c, src/blccc.c, - src/blccc.h, src/bleffects.c, src/bleffects.h, - src/blplaylist-parse.c, src/blplaylist.c, src/blplaylist.h, - src/bltheater.c, src/bltheater.h: Removed BlEffects, use BEffects - from blib. - -2002-08-31 22:38 daniel - - * src/main.c: include string.h to get rid of a warning. - -2002-08-29 21:10 daniel - - * configure.in, src/Makefile.am, src/modules/.cvsignore, - src/modules/Makefile.am, src/modules/test.c, src/modules/test.h: - start tu use BModule stuff - -2002-08-29 13:55 neo - - * src/: blccc.c, blplaylist-parse.c: Adapt to blib API changes. - -2002-08-29 02:04 neo - - * configure.in: Check for blib >= 0.2. - -2002-08-28 05:55 daniel - - * src/: bltheater.c, bltheater.h: update. - -2002-08-28 04:39 daniel - - * src/bltheater.c: foo - -2002-08-28 04:38 daniel - - * src/: bltheater.c, bltheater.h: make use of BSender and ease the - code here a lot. untested! - -2002-08-27 21:07 mitch - - * src/: blccc.c, bleffects.c, blplaylist-parse.c, blplaylist.c: - - use name and filename from BObject. - fixed double g_free() in - playlist sarsing. - -2002-08-27 01:47 neo - - * configure.in, src/blccc.c, src/blplaylist-parse.c: Check for blib - >= 0.1.0 and adapt to blib API changes. - -2002-08-21 16:27 neo - - * src/: blccc.c, blplaylist-parse.c, blplaylist.c, bltheater.c: - Adapt to BLib changes. - -2002-08-20 22:26 mitch - - * src/: Makefile.am, blccc.c, blmovie-blm.c, blmovie-blm.h, - blmovie-bml.c, blmovie-bml.h, blmovie-gif.c, blmovie-gif.h, - blmovie.c, blmovie.h, blplaylist-parse.c, blplaylist.c, - blplaylist.h, bltheater.c, bltheater.h, bltypes.h, main.c: - - Removed all movie classes and use the ones from blib. - Moved - bl_movie_apply_effects() to bl_playlist_apply_movie_effects(). - -2002-08-13 03:54 mitch - - * src/blmovie-bml.c: Some minor fixes after testing it the first - time. - -2002-08-13 03:28 mitch - - * src/blmovie-bml.c: Row parsing. ugly, untested, too stoned to - hack loops... - -2002-08-13 02:16 mitch - - * src/blmovie-bml.c: Theoretically, it should now parse correct BML - files into a movie with empty frames of the correct size... - -2002-08-13 01:49 mitch - - * src/blmovie-bml.c: Require valid bits="foo" and channels="bar" - attributes to be passed and reject s with wrong lengths (still - untested). - -2002-08-13 01:15 mitch - - * src/blmovie-bml.c: Accept only movies with correct attibute - values. - -2002-08-13 00:51 mitch - - * src/: Makefile.am, blmovie-blm.c, blmovie-bml.c, blmovie-bml.h, - blmovie-gif.c, blmovie.c, blmovie.h: Initial BML support: - - - added all metadata attributes from the BML
to BlMovie. - - initial blmovie-bml implementation which is totally untested - but should currectly parse the XML structure and metadata. - - changed BLM and GIF loaders to use movie->title instead of - movie->name. - -2002-08-12 21:37 mitch - - * src/: Makefile.am, blmovie-blm.c, blmovie-gif.c, blmovie.c, - blplaylist-parse.c, blplaylist.c, blutils.c, blutils.h: Removed - blutils.[ch] and use the stuff from blib instead. - -2002-08-12 21:05 mitch - - * configure.in, src/Makefile.am, src/blmovie-gif.c, src/gif-load.c, - src/gif-load.h: - depend on blib - removed gif-load.[ch] - use GIF - stuff from blib - -2002-07-16 20:12 mitch - - * examples/movies/antenne/: d01_doppelpulse_25.gif, - d01c_twopulse_55.gif, d02_double-bind_41.gif, - d02_singlepulse_25.gif, d02b_single-bind_41.gif, - d03_firemonsta_41.gif, d04_monsta_41.gif, d04b_monstare_82.gif, - d05_twinkle_10.gif, d05b_twinkletoo_42.gif, d06_move_26.gif, - d07_movecross_26.gif, d08_popups_25.gif, d09_popupstoo_26.gif, - d10_popwelle_27.gif, d11_mixedpopflow_26.gif, - s01a_atmen_simple_82.gif, s01b_atmensimple_82.gif, - s01c_atmensimple_82.gif, s01d_atmens_links_42.gif, - s02_atmen_psycho-short_72.gif, s03_atmen_psych2_51.gif, - s05_atmen_foo_76.gif, s06_atmen_pulse_49.gif, - s07_atmen_pulse2_49.gif: Added more movies from Antenne. - -2002-07-16 20:09 mitch - - * examples/movies/blinkenwald/: waber_1.gif, waber_10.gif, - waber_2.gif, waber_3.gif, waber_4.gif, waber_5.gif, waber_6.gif, - waber_7.gif, waber_8.gif, waber_9.gif, zooloo_1.gif, zooloo_2.gif, - zooloo_3.gif, zooloo_4.gif, zooloo_5.gif: Added more movies from - Bjoern. - -2002-07-12 18:24 mitch - - * examples/: playlist01.antenne.xml, playlist02.antenne.xml, - playlist03.antenne.xml, playlist04.antenne.xml: some more playlists - (this time without sublist inclusion). - -2002-07-12 18:23 mitch - - * examples/play_sublist01.antenne.xml: the meta list using the - sublists. - -2002-07-12 18:21 mitch - - * examples/: sublist01.speed.antenne.xml, - sublist02.speed.antenne.xml, sublist03.speed.antenne.xml, - sublist04.speed.antenne.xml, sublist05.speed.antenne.xml, - sublist06.speed.antenne.xml, sublist07.speed.antenne.xml, - sublist08.speed.antenne.xml, sublist09.speed.antenne.xml, - sublist10.speed.antenne.xml, sublist11.speed.antenne.xml, - sublist12.speed.antenne.xml, sublist13.speed.antenne.xml, - sublist14.speed.antenne.xml, sublist15.speed.antenne.xml, - sublist16.speed.antenne.xml, sublist17.speed.antenne.xml, - sublist18.speed.antenne.xml, sublist19.speed.antenne.xml: Added - lots of list snipplets to be used by a still to commit meta-list. - -2002-07-12 18:20 mitch - - * src/blplaylist-parse.c: Added parsing of - playlist.xml tags which load sublists. - -2002-07-12 17:51 mitch - - * examples/movies/antenne/: 01_2frames.gif, 02_7frames.gif, - 03_2frames.gif, 04_3frames.gif, 05_6frames.gif, 06_7frames.gif, - 07_7frames.gif, 08_3frames.gif, 09line_4frames.gif, - 10grow_6frames.gif, 11grow_8frames.gif, 12wave_10frames.gif, - 13wave_15frames.gif, 14wave_14frames.gif, 15wave_58frames.gif, - 16farben+16frames.gif, 16flash_6frames.gif, 17flash_7frames.gif, - 18flash_9frames.gif, 19wave_15frames.gif: 19 times more blinken - -2002-07-12 14:37 mitch - - * src/bleffects.c: Fixed the debugging "switch single pixel on" - effect. - -2002-07-12 14:00 mitch - - * examples/: playlist.antenne.xml, - movies/antenne/16farben_on-2foff.gif, - movies/antenne/16farben_on.gif, movies/antenne/air01_71.gif, - movies/antenne/air02_71.gif, movies/antenne/air03_35.gif, - movies/antenne/air04_18.gif, movies/antenne/arrow-fast_25.gif, - movies/antenne/arrow-slow_39.gif, - movies/antenne/atman-random_82frames.gif, - movies/antenne/atman-single_43frames.gif, - movies/antenne/atman3_82frames.gif, - movies/antenne/atman_42frames.gif, - movies/antenne/balken_links_35.gif, - movies/antenne/balken_rechts_35.gif, movies/antenne/blow_54.gif, - movies/antenne/blowing_35frames.gif, movies/antenne/bounce_38.gif, - movies/antenne/burstback_34.gif, - movies/antenne/bushfire_60frames.gif, - movies/antenne/bzzz_40frames.gif, movies/antenne/downdrop_13.gif, - movies/antenne/few_27frames.gif, movies/antenne/flow_82.gif, - movies/antenne/kurve_4.gif, movies/antenne/more_particles_18.gif, - movies/antenne/movement_66.gif, movies/antenne/outwards2_20.gif, - movies/antenne/outwards_8.gif, - movies/antenne/particles-left_36.gif, - movies/antenne/ping-double_33.gif, movies/antenne/ping-slow_44.gif, - movies/antenne/ping_21.gif, movies/antenne/pixelrain_9.gif, - movies/antenne/raus-slow_46.gif, movies/antenne/raus_28.gif, - movies/antenne/simple_burst_17.gif, - movies/antenne/upndown_64frames.gif, - movies/antenne/upward_12frames.gif, movies/antenne/welle_69.gif: - Added antenne's movies + playlist. - -2002-07-12 13:33 mitch - - * src/: blmovie.c, blmovie.h, blplaylist-parse.c, blplaylist.c, - blplaylist.h, bltheater.c: - added speed="factor" XML attribute - (0.1 <= value <= 10.0) - set TIME_CORRECTION magic in bltheater.c - to 0 - -2002-07-12 13:11 mitch - - * src/blmovie-gif.c: Workaround for Björn's broken GIF writer: Set - frame duration to 100ms if specified as 0ms. - -2002-07-11 18:50 tim - - * examples/movies/blinkenwald/: bushfire1.gif, bushfire10.gif, - bushfire11.gif, bushfire12.gif, bushfire13.gif, bushfire14.gif, - bushfire2.gif, bushfire3.gif, bushfire4.gif, bushfire5.gif, - bushfire6.gif, bushfire7.gif, bushfire8.gif, bushfire9.gif: new - animations - -2002-07-11 18:41 mitch - - * src/: blplaylist.c, bltheater.c: - fixed evil bug (it's a bad - idea to g_free() a GObject. - cleanups while searching it. - -2002-07-11 17:15 mitch - - * src/main.c: added --g-fatal-warnings command line option. - -2002-07-11 16:52 mitch - - * examples/playlist.gondwana.xml, src/bleffects.c, src/bleffects.h, - src/blmovie.c, src/blplaylist-parse.c: - added BlEffectScope enum - which restricts effects to either ALL, LEFT or RIGHT (works for - all effects except reverst and mirror). - changed example playlist - accordingly. - -2002-07-09 14:57 neo - - * src/blplaylist.c: cleaned up after myself - -2002-07-09 14:50 neo - - * src/: blccc.c, blmovie-blm.c, blmovie-gif.c, blmovie.c, - blmovie.h, blplaylist-parse.c, blplaylist.c: Added a full filename - to BlMovie. This is an absolute path build from the basedir of the - playlist and is in the filesystem encoding. - -2002-07-09 13:41 neo - - * src/blplaylist-parse.c: Fixed encoding conversion, replaced - memmem() with g_strstr_len(). - -2002-07-09 00:07 mitch - - * src/blplaylist-parse.c: Added local ENSURE_EFFECTS() macro to - make the code more readable. - -2002-07-09 00:00 mitch - - * examples/playlist.gondwana.xml, src/blplaylist-parse.c: - Changed - lmirror="arbitrary" and rmirror="arbitrary" attributes to - mirror="left|right" because they are mutually exclusive. - Changed - example playlist accordingly. - -2002-07-08 22:40 tim - - * examples/playlist.gondwana.xml: boolean attribute values set to - yes - -2002-07-08 22:22 mitch - - * examples/playlist.gondwana.xml, src/blccc.c, src/blccc.h, - src/bleffects.c, src/bleffects.h, src/blmovie-blm.c, src/blmovie.c, - src/blmovie.h, src/blplaylist-parse.c, src/blplaylist-parse.h, - src/blplaylist.c, src/blplaylist.h, src/bltheater.c, - src/bltheater.h: - added "maxval" parameters / fields all over the - place where needed. - multiply BLM pixels with maxval on loading. - - take maxval into account when applying effects. - added a per - BlPlaylistItem effect object. - added effect parsing to the XML - parser. - added "reverse§" effect. - changed - playlist.gondwana.xml to document the effects' usage. - - (left the telnet-controllable effects object there because it's - still useful for live performance). - -2002-07-08 18:22 mitch - - * examples/playlist.default, examples/playlist.default.xml, - examples/playlist.gondwana.xml, - examples/movies/test-horizontal-fast.blm, - examples/movies/test-horizontal.blm, - examples/movies/test-vertical.blm, src/Makefile.am, src/blccc.c, - src/blccc.h, src/blplaylist-parse.c, src/blplaylist-parse.h, - src/blplaylist.c, src/blplaylist.h, src/main.c: XML Playlists! - - - added blplaylist-parse.[ch] which contains a GMarkup based XML - parser mostly taken from DFBPoint. - added -l (--list) command - line option to specify an initial playlist. - default to - "playlist.default.xml" - ported the example playlist. - added - "playlist.gondwana.xml" - added some example 16x3 movies. - -2002-07-08 04:35 mitch - - * src/: blaccept.c, bleffects.c, bleffects.h, bltheater.c, main.c: - - added a debugging "effect" which switches one pixel on. - - removed the limitation of the original HDL protocol to 18x8 - (hacked, will clean up tomorrow) - -2002-07-07 17:02 tim - - * src/bltheater.c: tries to convert command line arguments to IP - addresses when they can't be resolved with gethostbyname(3). - Enables entering of arbitrary IP addresses on systems where - gethostbyname(3) does not accept plain IP addresses like Mac OS X - 10.1. - -2002-07-05 14:14 mitch - - * src/: Makefile.am, blaccept.c, blccc.c, blccc.h, bleffects.c, - bleffects.h, bltheater.c, bltheater.h, bltypes.h: - Added a very - simple BlEffect object using the code from gondwana. - Added - effect commands to BlAccept. - Apply the effects before sending - the packets. - - - Fixed longstanding parenthesis misplacment in blaccept.c which - caused the connection to be terminated on each command shorter - than 2 chars. (and no, it was no gcc bug ;-) - -2002-07-03 17:50 mitch - - * src/blmovie-gif.c: Conditionalized debugging output with #ifdef - DEBUG_GIF - -2002-07-03 17:47 mitch - - * examples/: playlist.default, movies/Makefile.am, - movies/bushfire-test.gif, movies/bushfire_60frames.gif: Fixed - playlist.default which was broken by my last commit and added two - example GIF animations. - -2002-07-03 17:41 mitch - - * examples/playlist.default, src/Makefile.am, src/blccc.c, - src/blccc.h, src/blisdn.h, src/bllisten.h, src/blmovie-blm.c, - src/blmovie-blm.h, src/blmovie-gif.c, src/blmovie-gif.h, - src/blmovie.c, src/blmovie.h, src/blplaylist.h, src/blpong.h, - src/bltheater.c, src/bltheater.h, src/gif-load.c, src/gif-load.h, - src/main.c: Added support for loading GIF animations and extended - the protocol. - - - the default behaviour (without command line options) is exactly - as before. - added --protocol command line option, where '1' is - the original HDL 18x8 monochrome protocol, '2' is graysale with - arbitrary width and height (--width and --height options). - - added new magic 0xFEEDBEEF for protocol version 2. - create the - pong and isdn objects only for 18x8 matrices. - added - G_CONST_RETURN to all bl_*_get_type() functions. - made BlMovie an - abstract base class. - moved BLM code to blmovie-blm.[ch]. - - added blmovie-gif.[ch]. - added automatic file format detection - using magic header values. - added gif-load.[ch] from - blinkentools. - -2002-07-02 22:52 mitch - - * src/: blccc.c, blisdn.c, bllisten.c, blmovie.c, blplaylist.c, - blpong.c, bltheater.c: Chain up unconditionally in all finalize() - implementations. Removed G_FILE_TEST_EXISTS from all calls to - g_file_test() because G_FILE_TEST_IS_REGULAR already checks for - existance. - -2002-07-01 23:12 neo - - * src/: blccc.c, main.c: Handle failure of bl_theater_new(); - -2002-06-24 17:59 tim - - * src/: blccc.c, bltheater.c, bltheater.h: removed extra padding at - end of bl_frame data packet - -2002-06-22 17:29 tim - - * src/blisdn.c: added to include list for darwin - support - -2002-06-19 12:47 neo - - * src/blaccept.c: added missing includes of and - - -2002-04-14 16:58 neo - - * ChangeLog: Generated ChangeLog from CVS log messages. - -2002-04-14 16:56 neo - - * README, src/bltheater.c: misc small fixes - -2002-04-14 16:31 neo - - * README, configure.in: Bumped version number to 1.0. Updated - README. - -2002-04-14 16:07 neo - - * Makefile.am, configure.in, examples/.cvsignore, - examples/Makefile.am, examples/playlist.default, - examples/movies/.cvsignore, examples/movies/Makefile.am, - examples/movies/camel.blm, examples/movies/the_fly.blm, - examples/on-demand/.cvsignore, examples/on-demand/4467.blm, - examples/on-demand/Makefile.am: Added some examples. - -2002-04-14 15:39 neo - - * src/: blaccept.c, blaccept.h, blccc.c, blccc.h, blisdn.c, - blisdn.h, bllisten.c, bllisten.h, blmovie.c, blmovie.h, - blplaylist.c, blplaylist.h, blpong.c, blpong.h, bltheater.c, - bltheater.h, bltypes.h, blutils.c, blutils.h, main.c: eeek, - blinkenlights was spelled wrong all over the place - -2002-04-14 15:17 neo - - * README, autogen.sh, configure.in, src/blaccept.c, src/blaccept.h, - src/blccc.c, src/blccc.h, src/blisdn.c, src/blisdn.h, - src/bllisten.c, src/bllisten.h, src/blmovie.c, src/blmovie.h, - src/blplaylist.c, src/blplaylist.h, src/blpong.c, src/blpong.h, - src/bltheater.c, src/bltheater.h, src/bltypes.h, src/blutils.c, - src/blutils.h: Updated README, updated copyright, unified spelling - of Blinkenlights... - -2002-03-29 03:16 neo - - * README: A first draft of some basic usage guidelines. - -2002-02-10 19:01 neo - - * src/blccc.c: Reload playlist using '*0#'. - -2001-12-31 21:45 neo - - * src/blccc.c: fixed a bug in the "start" command - -2001-12-31 17:59 neo - - * src/bltheater.c: time correction (subtract 15ms from each frame) - -2001-12-31 16:49 neo - - * src/main.c: ignore SIGPIPE - -2001-12-30 18:53 neo - - * src/: blaccept.c, blccc.c, blccc.h: New command "start" to load a - new playlist and immidiately start it. - -2001-12-30 18:23 neo - - * src/: blaccept.c, blccc.c, blccc.h, blisdn.c, blisdn.h: Added - commands to block and unblock control through isdn lines. - -2001-12-30 17:27 neo - - * src/: Makefile.am, blisdn.c, blisdn.h: Fixed error in - Makefile.am. Added functionality to block the BlIsdn object (it - won't emit signals if blocked). - -2001-12-30 16:30 neo - - * configure.in, src/.cvsignore, src/Makefile.am, src/blccc.c, - src/blisdn.c, src/blmarshal.list, src/blmovie.c, src/blpong.c, - src/bltheater.c: Bumped version number to 0.9. Require latest - GLib. Cleaned up marshallers. Simplified Makefile. - -2001-12-10 11:38 neo - - * src/blisdn.h: enlarged admin_tones buffer to allow longer - Loveletter numbers - -2001-11-29 17:43 neo - - * src/blccc.c: Simple fix for the bug that cause trouble with - on-demand movies and two active ISDN lines. - -2001-11-06 15:12 neo - - * src/blccc.c: Load movies on demand from directory on-demand. - Show on demand state in status message. - -2001-11-05 02:03 neo - - * configure.in, src/blccc.c, src/blccc.h, src/blisdn.c, - src/blisdn.h, src/blmovie.c, src/blplaylist.c, src/blplaylist.h, - src/bltheater.c, src/bltheater.h: Bumped version number to 0.8. - Require glib-1.3.10. Added loop feature (indicated in the playlist - by a TAB followed by a number). Added Freudinnen feature (press - *nnn# while playing Pong to load movie on_demand/nnn.blm). - Unload movies after emitting "movie_finished", so movies aren't - reloaded when they are set again in the signal handler. - -2001-10-24 17:41 neo - - * src/: blccc.c, blisdn.c, blisdn.h, blpong.c, blpong.h: Added a - new signal to BlIsdn that is emitted if the same dialtone is - pressed three times in a row on the same line. - - Use it for a debugging mode: Press # three times to invert Pong. - -2001-10-14 20:48 neo - - * src/: blccc.c, blisdn.c, blpong.c: Better UDP handling in BlIsdn. - Slightly faster Pong. Don't reset Pong paddles after the ball - left the field. - -2001-10-02 12:39 neo - - * src/: blccc.c, bltheater.c: Argh, my last fix introduced a - deadlock. - -2001-10-01 21:05 neo - - * src/bllisten.c: bind to INADDR_LOOPBACK for security reasons - -2001-09-30 19:55 neo - - * configure.in, src/blmovie.c, src/blplaylist.c, src/bltheater.c, - src/bltheater.h: Hopefully fixed the bug that caused the screen to - sometimes stay blank after Pong finished. Bumped version number to - 0.7. - -2001-09-29 00:36 neo - - * src/: blccc.c, blccc.h, bllisten.c, main.c: install a handler for - SIGTERM and blank the screen before exiting - -2001-09-28 22:20 neo - - * src/blccc.c: start with playlist.default - -2001-09-28 22:18 neo - - * src/: blaccept.c, blccc.c, blccc.h, blpong.c, blpong.h, - bltheater.c, bltheater.h: skip to next movie via next - -2001-09-28 21:37 neo - - * src/: blccc.c, blplaylist.c, blplaylist.h: Don't load a default - playlist. Start the first movie when loading a new playlist and no - movie was active. - -2001-09-28 21:14 neo - - * src/: blaccept.c, blccc.c, blccc.h: Allow to load a different - playlist. - -2001-09-28 20:35 neo - - * src/: blaccept.c, blaccept.h, blccc.c, blccc.h, bllisten.c, - bllisten.h, blmovie.c, blplaylist.c, blplaylist.h, bltheater.c, - bltheater.h, main.c: Implemented a bunch of commands, connect via - tcp/2323 and try: - - bye - closes the connection - help - shows a list of supported commands - list - list current playlist - reload - reload current playlist - status - show status info - - The default playlist is still 'default_pl'. This will change ... - -2001-09-28 16:59 neo - - * src/blaccept.c: Close connection after 10 minutes of inactivity. - -2001-09-26 16:50 neo - - * src/: blccc.c, blmovie.c, blplaylist.c, bltheater.c, bltheater.h: - various misc fixes and changes - -2001-09-26 14:28 neo - - * src/: blmovie.c, blplaylist.c: it works :-) - - The old functionality is restored by using a default playlist. I'll - add more controls now. - -2001-09-26 00:56 neo - - * src/: blccc.c, blplaylist.c, blplaylist.h, bltheater.c, - bltheater.h: Completed BlPlaylist implementation, use it from - BlCcc. - -2001-09-26 00:18 neo - - * src/: Makefile.am, blmovie.c, blplaylist.c, blplaylist.h, - blutils.c, blutils.h: Moved fgets_line() to blutils.c and renamed - it to bl_fgets(). Added implementation for BlPlayList. - -2001-09-25 23:39 neo - - * src/: Makefile.am, blmovie.c, blplaylist.c, blplaylist.h, - bltypes.h: Added framework of BlPlaylist object. - -2001-09-25 23:12 neo - - * src/: blmovie.c, blmovie.h: changed movie load semantics in - preparaion of the upcoming new BlPlayList. - -2001-09-23 01:06 neo - - * src/: blccc.c, blccc.h, bltheater.c, bltheater.h, main.c: Create - BlIsdn, BlPong and BlTheater from BlCcc. Connect BlPong signals. - blccc can play Pong again. - -2001-09-23 00:25 neo - - * src/: bltheater.c, bltheater.h: Don't allow to set frame data - while a movie is playing. - -2001-09-23 00:16 neo - - * src/: blccc.c, bltheater.c, bltheater.h, main.c: BlTheater know - nothing about BlPong anymore. Moved control into BlCcc. Still - unusable ... - -2001-09-22 23:46 neo - - * src/: blccc.c, blpong.c, blpong.h, main.c: BlPong now knows - nothing about BlIsdn anymore. Moved the signal handlers for BlIsdn - into BlCcc. Does not work at all at the moment... - -2001-09-22 22:53 neo - - * src/: Makefile.am, blccc.c, blccc.h, blisdn.c, bllisten.c, - blmovie.c, blpong.c, bltypes.h, main.c: Removed old usage of - blccc.h and added framework for BlCcc object. - -2001-09-22 21:47 neo - - * src/: blaccept.c, blaccept.h, blisdn.c, blpong.c, bltypes.h, - main.c: BlAccept is no longer an object, bl_accept_new creates a - new thread to accept an incoming connection and dies when it has - handled it. - - Cleaned up dial_tone handling in BlIsdn and BlPong. - -2001-09-21 18:47 neo - - * .cvsignore, AUTHORS, ChangeLog, Makefile.am, NEWS, README, - autogen.sh, configure.in, src/.cvsignore, src/Makefile.am, - src/blaccept.c, src/blaccept.h, src/blccc.h, src/blisdn.c, - src/blisdn.h, src/bllisten.c, src/bllisten.h, src/blmarshal.list, - src/blmovie.c, src/blmovie.h, src/blpong.c, src/blpong.h, - src/bltheater.c, src/bltheater.h, src/bltypes.h, src/main.c: Added - blccc2, the beginning of rewrite of blccc the to the repository. - diff --git a/blccc-1.99/INSTALL b/blccc-1.99/INSTALL deleted file mode 100644 index b42a17a..0000000 --- a/blccc-1.99/INSTALL +++ /dev/null @@ -1,182 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - 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, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - 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 at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' 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. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. 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. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. 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. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -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 must use a version of `make' that -supports the `VPATH' variable, such as 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 `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have 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. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' 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. - - 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'. - -Optional Features -================= - - 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. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -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 host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -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. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--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. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. diff --git a/blccc-1.99/Makefile.am b/blccc-1.99/Makefile.am deleted file mode 100644 index 31eaccf..0000000 --- a/blccc-1.99/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -## Makefile.am for blccc - -SUBDIRS = data examples src stylesheets - -EXTRA_DIST = autogen.sh diff --git a/blccc-1.99/Makefile.in b/blccc-1.99/Makefile.in deleted file mode 100644 index fc02c54..0000000 --- a/blccc-1.99/Makefile.in +++ /dev/null @@ -1,372 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -SUBDIRS = data examples src stylesheets - -EXTRA_DIST = autogen.sh -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ -Makefile.am Makefile.in NEWS aclocal.m4 config.guess config.h.in \ -config.sub configure configure.in install-sh ltmain.sh missing \ -mkinstalldirs - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in - cd $(srcdir) && $(ACLOCAL) - -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -config.h: stamp-h - @if test ! -f $@; then \ - rm -f stamp-h; \ - $(MAKE) stamp-h; \ - else :; fi -stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=config.h \ - $(SHELL) ./config.status - @echo timestamp > stamp-h 2> /dev/null -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in - @if test ! -f $@; then \ - rm -f $(srcdir)/stamp-h.in; \ - $(MAKE) $(srcdir)/stamp-h.in; \ - else :; fi -$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null - -mostlyclean-hdr: - -clean-hdr: - -distclean-hdr: - -rm -f config.h - -maintainer-clean-hdr: - -# 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. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(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 - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -distdir: $(DISTFILES) - -rm -rf $(distdir) - mkdir $(distdir) - -chmod 777 $(distdir) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -all-recursive-am: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: -uninstall: uninstall-recursive -all-am: Makefile config.h -all-redirect: all-recursive-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-hdr clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-hdr distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -rm -f config.status - -maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ - maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -rm -f config.status - -.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ -install-data-recursive uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ -install-exec-am install-exec install-data-am install-data install-am \ -install uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/NEWS b/blccc-1.99/NEWS deleted file mode 100644 index e69de29..0000000 diff --git a/blccc-1.99/README b/blccc-1.99/README deleted file mode 100644 index 9f2c40d..0000000 --- a/blccc-1.99/README +++ /dev/null @@ -1,74 +0,0 @@ -Blinkenlights Chaos Control Center ----------------------------------- - -If you have no clue what Blinkenlights is, take a look at -http://www.blinkenlights.de/ first. - -This is a rewrite of the master control program for Blinkenlights. Our -first implementation used to be a GTK+ application that allowed -previewing of movies and run-time modification of the playlist using a -graphical user interface. It turned out that we need a way to control -the Blinkenlights remotely, so this new implementation runs as a -daemon controllable via telnet connections. We started to use this -software for the Blinkenlights installation at the end of September -2001. - -Some parts of the code could definitely be redone better but keep in -mind that this software evolved over time since we kept on adding new -features while the Blinkenlights installation was already running -every night from dusk till dawn. Actually we kept the software running -all the time and just switched off power from the relais during the -days. So this software has prooven to work reliable over a couple of -months. - - -How to compile: - -You need glib-2.0 available from ftp://ftp.gtk.org/pub/gtk/v2.0/. -Once you have glib-2.0 installed, the usual - - ./configure; make; make install - -should do the trick. - - -How to use: - -Create a directory with blinkenlights movies. You can download some -from http://www.blinkenlights.de/gallery/. Next, create a playlist of -your favorite movies and call it playlist.default. The playlist format -is simple: just add a line with a relative pathname for each movie you -want to play. The examples directory contains some movies and a -playlist to get you started. - -Start blccc in the examples directory: - - blccc localhost - -blccc looks for the file playlist.default in the current directory and -starts to play the playlist. It now sends UDP packets to localhost (or -whatever host you specified on the command-line). You can connect to -blccc using telnet. It listens on port 2323 on the local interface. -Type 'telnet localhost 2323' and it should welcome you. Try the 'help' -command to get an idea of what is possible. You can use netcat (nc) to -send commands to blccc so that you can control the installation from -scripts or cronjobs. - -Now it's time to start blinkensim to visualize the stream of UDP -packets: - - blinkensim - - -blccc also listens for UDP packets on port 4242. This packets are -generated by the blinkenisdn daemon (not part of this package) and -describe the state of the isdn lines. If one of the telephone lines -goes off-hook, the pong game is started. The game is controlled thru -dial tones. The special sequence *# starts the movie -.blm from the on-demand directory. This is how the Loveletters -feature was implemented. As soon as all telephone lines are on-hook -again, blccc continues to play movies from the playlist. - - -Have Blinkenfun, - Sven diff --git a/blccc-1.99/aclocal.m4 b/blccc-1.99/aclocal.m4 deleted file mode 100644 index 2260f2c..0000000 --- a/blccc-1.99/aclocal.m4 +++ /dev/null @@ -1,4159 +0,0 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4-p6 - -dnl Copyright (C) 1994, 1995-8, 1999, 2001 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 program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - -# Do all the work for Automake. 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. - -# serial 1 - -dnl Usage: -dnl AM_INIT_AUTOMAKE(package,version, [no-define]) - -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL]) -PACKAGE=[$1] -AC_SUBST(PACKAGE) -VERSION=[$2] -AC_SUBST(VERSION) -dnl test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi -ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) -AC_REQUIRE([AM_SANITY_CHECK]) -AC_REQUIRE([AC_ARG_PROGRAM]) -dnl FIXME This is truly gross. -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_REQUIRE([AC_PROG_MAKE_SET])]) - -# Copyright 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - -# 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. -AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.4-p6])]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftestfile -# 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 ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "[$]*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "[$]*" != "X $srcdir/configure conftestfile" \ - && test "[$]*" != "X conftestfile $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 - - test "[$]2" = conftestfile - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) -dnl The program must properly implement --version. -AC_DEFUN([AM_MISSING_PROG], -[AC_MSG_CHECKING(for working $2) -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if ($2 --version) < /dev/null > /dev/null 2>&1; then - $1=$2 - AC_MSG_RESULT(found) -else - $1="$3/missing $2" - AC_MSG_RESULT(missing) -fi -AC_SUBST($1)]) - -# Add --enable-maintainer-mode option to configure. -# From Jim Meyering - -# serial 1 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT($USE_MAINTAINER_MODE) - AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -# Define a conditional. - -AC_DEFUN([AM_CONDITIONAL], -[AC_SUBST($1_TRUE) -AC_SUBST($1_FALSE) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi]) - -# Like AC_CONFIG_HEADER, but automatically create stamp file. - -AC_DEFUN([AM_CONFIG_HEADER], -[AC_PREREQ([2.12]) -AC_CONFIG_HEADER([$1]) -dnl When config.status generates a header, we must update the stamp-h file. -dnl This file resides in the same directory as the config header -dnl that is generated. We must strip everything past the first ":", -dnl and everything past the last "/". -AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl -ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, -<>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, -<>; do - case " <<$>>CONFIG_HEADERS " in - *" <<$>>am_file "*<<)>> - echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx - ;; - esac - am_indx=`expr "<<$>>am_indx" + 1` -done<<>>dnl>>) -changequote([,]))]) - -# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*- - -# serial 46 AC_PROG_LIBTOOL - -AC_DEFUN([AC_PROG_LIBTOOL], -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Prevent multiple expansion -define([AC_PROG_LIBTOOL], []) -]) - -AC_DEFUN([AC_LIBTOOL_SETUP], -[AC_PREREQ(2.13)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl -AC_REQUIRE([AC_PROG_NM])dnl -AC_REQUIRE([LT_AC_PROG_SED])dnl - -AC_REQUIRE([AC_PROG_LN_S])dnl -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl -AC_REQUIRE([AC_OBJEXT])dnl -AC_REQUIRE([AC_EXEEXT])dnl -dnl - -_LT_AC_PROG_ECHO_BACKSLASH -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - AC_PATH_MAGIC - fi - ;; -esac - -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) - -ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) -ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], -enable_win32_dll=yes, enable_win32_dll=no) - -AC_ARG_ENABLE(libtool-lock, - [ --disable-libtool-lock avoid locking (might break parallel builds)]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - 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 - 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_SAVE - AC_LANG_C - AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_RESTORE]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - -ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw* | *-*-pw32*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - - # recent cygwin and mingw systems supply a stub DllMain which the user - # can override, but on older systems we have to supply one - AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, - [AC_TRY_LINK([], - [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); - DllMain (0, 0, 0);], - [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) - - case $host/$CC in - *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) - # old mingw systems require "-dll" to link a DLL, while more recent ones - # require "-mdll" - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -mdll" - AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, - [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) - CFLAGS="$SAVE_CFLAGS" ;; - *-*-cygwin* | *-*-pw32*) - # cygwin systems need to pass --dll to the linker, and not link - # crt.o which will require a WinMain@16 definition. - lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; - esac - ;; - ]) -esac - -_LT_AC_LTCONFIG_HACK - -]) - -# AC_LIBTOOL_HEADER_ASSERT -# ------------------------ -AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], -[AC_CACHE_CHECK([whether $CC supports assert without backlinking], - [lt_cv_func_assert_works], - [case $host in - *-*-solaris*) - if test "$GCC" = yes && test "$with_gnu_ld" != yes; then - case `$CC --version 2>/dev/null` in - [[12]].*) lt_cv_func_assert_works=no ;; - *) lt_cv_func_assert_works=yes ;; - esac - fi - ;; - esac]) - -if test "x$lt_cv_func_assert_works" = xyes; then - AC_CHECK_HEADERS(assert.h) -fi -])# AC_LIBTOOL_HEADER_ASSERT - -# _LT_AC_CHECK_DLFCN -# -------------------- -AC_DEFUN([_LT_AC_CHECK_DLFCN], -[AC_CHECK_HEADERS(dlfcn.h) -])# _LT_AC_CHECK_DLFCN - -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -# --------------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_NM]) -AC_REQUIRE([AC_OBJEXT]) -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl - -# 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]]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) # Its linker distinguishes data from code symbols - lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -solaris* | sysv5*) - symcode='[[BDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $host_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[[ABCDGISTW]]' -fi - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. -lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - rm -f conftest* - cat > conftest.$ac_ext < $nlist) && 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 egrep ' nm_test_var$' "$nlist" >/dev/null; then - if egrep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[[]] = -{ -EOF - sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if AC_TRY_EVAL(ac_link) && test -s conftest; then - pipe_works=yes - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&AC_FD_CC - fi - else - echo "cannot find nm_test_var in $nlist" >&AC_FD_CC - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC - fi - else - echo "$progname: failed program was:" >&AC_FD_CC - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" -if test -z "$lt_cv_sys_global_symbol_pipe"; then - global_symbol_to_cdecl= - global_symbol_to_c_name_address= -else - global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" - global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" -fi -if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; -then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE - -# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR -# --------------------------------- -AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], -[# Find the correct PATH separator. Usually this is `:', but -# DJGPP uses `;' like DOS. -if test "X${PATH_SEPARATOR+set}" != Xset; then - UNAME=${UNAME-`uname 2>/dev/null`} - case X$UNAME in - *-DOS) lt_cv_sys_path_separator=';' ;; - *) lt_cv_sys_path_separator=':' ;; - esac - PATH_SEPARATOR=$lt_cv_sys_path_separator -fi -])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR - -# _LT_AC_PROG_ECHO_BACKSLASH -# -------------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], -[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -echo=${ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(ECHO) -AC_DIVERT_POP -])# _LT_AC_PROG_ECHO_BACKSLASH - -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ------------------------------------------------------------------ -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], -[if test "$cross_compiling" = yes; then : - [$4] -else - AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -}] -EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_unknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_AC_TRY_DLOPEN_SELF - -# AC_LIBTOOL_DLOPEN_SELF -# ------------------- -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], -[if test "x$enable_dlopen" != xyes; 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 - ;; - - cygwin* | mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - *) - 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="-dld"], - [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="-dld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - 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_AC_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 "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_AC_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 -])# AC_LIBTOOL_DLOPEN_SELF - -AC_DEFUN([_LT_AC_LTCONFIG_HACK], -[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -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' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" -need_locks="$enable_libtool_lock" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -if test x"$host" != x"$build"; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Transform linux* to *-*-linux-gnu*, to support old configure scripts. -case $host_os in -linux-gnu*) ;; -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` -esac - -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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -# Allow CC to be a program name with arguments. -set dummy $CC -compiler="[$]2" - -AC_MSG_CHECKING([for objdir]) -rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - objdir=_libs -fi -rmdir .libs 2>/dev/null -AC_MSG_RESULT($objdir) - - -AC_ARG_WITH(pic, -[ --with-pic try to use only PIC/non-PIC objects [default=use both]], -pic_mode="$withval", pic_mode=default) -test -z "$pic_mode" && pic_mode=default - -# We assume here that the value for lt_cv_prog_cc_pic will not be cached -# in isolation, and that seeing it set (from the cache) indicates that -# the associated values are set (in the cache) correctly too. -AC_MSG_CHECKING([for $compiler option to produce PIC]) -AC_CACHE_VAL(lt_cv_prog_cc_pic, -[ lt_cv_prog_cc_pic= - lt_cv_prog_cc_shlib= - lt_cv_prog_cc_wl= - lt_cv_prog_cc_static= - lt_cv_prog_cc_no_builtin= - lt_cv_prog_cc_can_build_shared=$can_build_shared - - if test "$GCC" = yes; then - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static='-static' - - case $host_os in - aix*) - # Below there is a dirty hack to force normal static linking with -ldl - # The problem is because libdl dynamically linked with both libc and - # libC (AIX C++ library), which obviously doesn't included in libraries - # list by gcc. This cause undefined symbols with -static flags. - # This hack allows C programs to be linked with "-static -ldl", but - # not sure about C++ programs. - lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" - ;; - amigaos*) - # 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_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_cv_prog_cc_pic='-fno-common' - ;; - cygwin* | mingw* | pw32* | os2*) - # 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_cv_prog_cc_pic='-DDLL_EXPORT' - ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_cv_prog_cc_pic=-Kconform_pic - fi - ;; - *) - lt_cv_prog_cc_pic='-fPIC' - ;; - esac - else - # PORTME Check for PIC flags for the system compiler. - case $host_os in - aix3* | aix4* | aix5*) - lt_cv_prog_cc_wl='-Wl,' - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_cv_prog_cc_static='-Bstatic' - else - lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - hpux9* | hpux10* | hpux11*) - # Is there a better lt_cv_prog_cc_static that works with the bundled CC? - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" - lt_cv_prog_cc_pic='+Z' - ;; - - irix5* | irix6* | nonstopux*) - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static='-non_shared' - # PIC (with -KPIC) is the default. - ;; - - cygwin* | mingw* | pw32* | os2*) - # 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_cv_prog_cc_pic='-DDLL_EXPORT' - ;; - - newsos6) - lt_cv_prog_cc_pic='-KPIC' - lt_cv_prog_cc_static='-Bstatic' - ;; - - osf3* | osf4* | osf5*) - # All OSF/1 code is PIC. - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static='-non_shared' - ;; - - sco3.2v5*) - lt_cv_prog_cc_pic='-Kpic' - lt_cv_prog_cc_static='-dn' - lt_cv_prog_cc_shlib='-belf' - ;; - - solaris*) - lt_cv_prog_cc_pic='-KPIC' - lt_cv_prog_cc_static='-Bstatic' - lt_cv_prog_cc_wl='-Wl,' - ;; - - sunos4*) - lt_cv_prog_cc_pic='-PIC' - lt_cv_prog_cc_static='-Bstatic' - lt_cv_prog_cc_wl='-Qoption ld ' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_cv_prog_cc_pic='-KPIC' - lt_cv_prog_cc_static='-Bstatic' - lt_cv_prog_cc_wl='-Wl,' - ;; - - uts4*) - lt_cv_prog_cc_pic='-pic' - lt_cv_prog_cc_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_cv_prog_cc_pic='-Kconform_pic' - lt_cv_prog_cc_static='-Bstatic' - fi - ;; - - *) - lt_cv_prog_cc_can_build_shared=no - ;; - esac - fi -]) -if test -z "$lt_cv_prog_cc_pic"; then - AC_MSG_RESULT([none]) -else - AC_MSG_RESULT([$lt_cv_prog_cc_pic]) - - # Check to make sure the pic_flag actually works. - AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) - AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" - AC_TRY_COMPILE([], [], [dnl - case $host_os in - hpux9* | hpux10* | hpux11*) - # On HP-UX, both CC and GCC only warn that PIC is supported... then - # they create non-PIC objects. So, if there were any warnings, we - # assume that PIC is not supported. - if test -s conftest.err; then - lt_cv_prog_cc_pic_works=no - else - lt_cv_prog_cc_pic_works=yes - fi - ;; - *) - lt_cv_prog_cc_pic_works=yes - ;; - esac - ], [dnl - lt_cv_prog_cc_pic_works=no - ]) - CFLAGS="$save_CFLAGS" - ]) - - if test "X$lt_cv_prog_cc_pic_works" = Xno; then - lt_cv_prog_cc_pic= - lt_cv_prog_cc_can_build_shared=no - else - lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" - fi - - AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) -fi - -# Check for any special shared library compilation flags. -if test -n "$lt_cv_prog_cc_shlib"; then - AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) - if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : - else - AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) - lt_cv_prog_cc_can_build_shared=no - fi -fi - -AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) -AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl - lt_cv_prog_cc_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" - AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) - LDFLAGS="$save_LDFLAGS" -]) - -# Belt *and* braces to stop my trousers falling down: -test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= -AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) - -pic_flag="$lt_cv_prog_cc_pic" -special_shlib_compile_flags="$lt_cv_prog_cc_shlib" -wl="$lt_cv_prog_cc_wl" -link_static_flag="$lt_cv_prog_cc_static" -no_builtin_flag="$lt_cv_prog_cc_no_builtin" -can_build_shared="$lt_cv_prog_cc_can_build_shared" - - -# Check to see if options -o and -c are simultaneously supported by compiler -AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) -AC_CACHE_VAL([lt_cv_compiler_c_o], [ -$rm -r conftest 2>/dev/null -mkdir conftest -cd conftest -echo "int some_variable = 0;" > conftest.$ac_ext -mkdir out -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers -# that will create temporary files in the current directory regardless of -# the output directory. Thus, making CWD read-only will cause this test -# to fail, enabling locking or at least warning the user not to do parallel -# builds. -chmod -w . -save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" -compiler_c_o=no -if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && 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 - if test -s out/conftest.err; then - lt_cv_compiler_c_o=no - else - lt_cv_compiler_c_o=yes - fi -else - # Append any errors to the config.log. - cat out/conftest.err 1>&AC_FD_CC - lt_cv_compiler_c_o=no -fi -CFLAGS="$save_CFLAGS" -chmod u+w . -$rm conftest* out/* -rmdir out -cd .. -rmdir conftest -$rm -r conftest 2>/dev/null -]) -compiler_c_o=$lt_cv_compiler_c_o -AC_MSG_RESULT([$compiler_c_o]) - -if test x"$compiler_c_o" = x"yes"; then - # Check to see if we can write to a .lo - AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) - AC_CACHE_VAL([lt_cv_compiler_o_lo], [ - lt_cv_compiler_o_lo=no - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -c -o conftest.lo" - save_objext="$ac_objext" - ac_objext=lo - AC_TRY_COMPILE([], [int some_variable = 0;], [dnl - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - lt_cv_compiler_o_lo=no - else - lt_cv_compiler_o_lo=yes - fi - ]) - ac_objext="$save_objext" - CFLAGS="$save_CFLAGS" - ]) - compiler_o_lo=$lt_cv_compiler_o_lo - AC_MSG_RESULT([$compiler_o_lo]) -else - compiler_o_lo=no -fi - -# Check to see if we can do hard links to lock some files if needed -hard_links="nottested" -if test "$compiler_c_o" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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 - -if test "$GCC" = yes; then - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler - AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) - echo "int some_variable = 0;" > conftest.$ac_ext - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" - compiler_rtti_exceptions=no - AC_TRY_COMPILE([], [int some_variable = 0;], [dnl - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - compiler_rtti_exceptions=no - else - compiler_rtti_exceptions=yes - fi - ]) - CFLAGS="$save_CFLAGS" - AC_MSG_RESULT([$compiler_rtti_exceptions]) - - if test "$compiler_rtti_exceptions" = "yes"; then - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' - else - no_builtin_flag=' -fno-builtin' - fi -fi - -# See if the linker supports building shared libraries. -AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) - -allow_undefined_flag= -no_undefined_flag= -need_lib_prefix=unknown -need_version=unknown -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -archive_cmds= -archive_expsym_cmds= -old_archive_from_new_cmds= -old_archive_from_expsyms_cmds= -export_dynamic_flag_spec= -whole_archive_flag_spec= -thread_safe_flag_spec= -hardcode_into_libs=no -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no -hardcode_shlibpath_var=unsupported -runpath_var= -link_all_deplibs=unknown -always_export_symbols=no -export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' -# 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 egrep regular expression 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_" -# 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. -extract_expsyms_cmds= - -case $host_os in -cygwin* | mingw* | pw32*) - # 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 - ;; -openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX, the GNU linker is very broken - # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. - ld_shlibs=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - ;; - - amigaos*) - 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 - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | egrep ': 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*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=yes - - extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ - sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ - test -f $output_objdir/impgen.exe || (cd $output_objdir && \ - if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ - else $CC -o impgen impgen.c ; fi)~ - $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' - - old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' - - # cygwin and mingw dlls have different entry points and sets of symbols - # to exclude. - # FIXME: what about values for MSVC? - dll_entry=__cygwin_dll_entry@12 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ - case $host_os in - mingw*) - # mingw values - dll_entry=_DllMainCRTStartup@12 - dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ - ;; - esac - - # mingw and cygwin differ, and it's simplest to just exclude the union - # of the two symbol sets. - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 - - # recent cygwin and mingw systems supply a stub DllMain which the user - # can override, but on older systems we have to supply one (in ltdll.c) - if test "x$lt_cv_need_dllmain" = "xyes"; then - ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " - ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ - test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' - else - ltdll_obj= - ltdll_cmds= - fi - - # Extract the symbol export list from an `--export-all' def file, - # then regenerate the def file from the symbol export list, so that - # the compiled dll only exports the symbol export list. - # Be careful not to strip the DATA tag left be newer dlltools. - export_symbols_cmds="$ltdll_cmds"' - $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ - sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' - - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is. - # If DATA tags from a recent dlltool are present, honour them! - archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname-def; - else - echo EXPORTS > $output_objdir/$soname-def; - _lt_hint=1; - cat $export_symbols | while read symbol; do - set dummy \$symbol; - case \[$]# in - 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; - 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; - *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; - esac; - _lt_hint=`expr 1 + \$_lt_hint`; - done; - fi~ - '"$ltdll_cmds"' - $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ - $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ - $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' - ;; - - netbsd*) - 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 -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&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. - -EOF - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - 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 - ;; - - 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 | egrep ': supported targets:.* elf' > /dev/null; then - 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 - - if test "$ld_shlibs" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - case $host_os in - cygwin* | mingw* | pw32*) - # dlltool doesn't understand --whole-archive et. al. - whole_archive_flag_spec= - ;; - *) - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - ;; - esac - 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 "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4* | aix5*) - 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 - 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 - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - 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 - - 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. - - hardcode_direct=yes - archive_cmds='' - 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 - hardcode_direct=yes - 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' - else - # not using gcc - if test "$host_cpu" = ia64; then - shared_flag='${wl}-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall can do strange things, so it is better to - # generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; 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' - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; 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 ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='${wl}-berok' - # This is a bit strange, but is similar to how AIX traditionally builds - # it's shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' - fi - fi - ;; - - amigaos*) - 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 - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - cygwin* | mingw* | pw32*) - # 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=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''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' - fix_srcfile_path='`cygpath -w "$srcfile"`' - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[[012]]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - esac - # FIXME: Relying on posixy $() will cause problems for - # cross-compilation, but unfortunately the echo tests do not - # yet detect zsh echo's removal of \ escapes. Also zsh mangles - # `"' quotes if we put them in here... so don't! - archive_cmds='$nonopt $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linker_flags -install_name $rpath/$soname $verstring' - # We need to add '_' to the symbols in $export_symbols first - #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' - hardcode_direct=yes - hardcode_shlibpath_var=no - whole_archive_flag_spec='-all_load $convenience' - ;; - - freebsd1*) - ld_shlibs=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*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9* | hpux10* | hpux11*) - case $host_os in - hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; - esac - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd*) - 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 - ;; - - openbsd*) - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case "$host_os" in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; 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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${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='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - #Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - 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 - export_dynamic_flag_spec='${wl}-Bexport' - ;; - - solaris*) - # gcc --version < 3.0 without binutils cannot create self contained - # shared libraries reliably, requiring libgcc.a to resolve some of - # the object symbols generated in some cases. Libraries that use - # assert need libgcc.a to resolve __eprintf, for example. Linking - # a copy of libgcc.a into every shared library to guarantee resolving - # such symbols causes other problems: According to Tim Van Holder - # , C++ libraries end up with a separate - # (to the application) exception stack for one thing. - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - case `$CC --version 2>/dev/null` in - [[12]].*) - cat <&2 - -*** Warning: Releases of GCC earlier than version 3.0 cannot reliably -*** create self contained shared libraries on Solaris systems, without -*** introducing a dependency on libgcc.a. Therefore, libtool is disabling -*** -no-undefined support, which will at least allow you to build shared -*** libraries. However, you may find that when you link such libraries -*** into an application without using GCC, you have to manually add -*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to -*** upgrade to a newer version of GCC. Another option is to rebuild your -*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. - -EOF - no_undefined_flag= - ;; - esac - fi - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - 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' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; 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' - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - 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' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - 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.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5uw7* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac -fi -AC_MSG_RESULT([$ld_shlibs]) -test "$ld_shlibs" = no && can_build_shared=no - -# Check hardcoding attributes. -AC_MSG_CHECKING([how to hardcode library paths into programs]) -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # 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 "$hardcode_shlibpath_var" != no && - test "$hardcode_minus_L" != no; 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 -AC_MSG_RESULT([$hardcode_action]) - -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 - AC_MSG_RESULT([no]) -fi - -reload_cmds='$LD$reload_flag -o $output$reload_objs' -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -# PORTME Fill in your ld.so characteristics -AC_MSG_CHECKING([dynamic linker characteristics]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -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" -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so$major' - ;; - -aix4* | aix5*) - version_type=linux - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' - 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 - # AIX (on Power*) has no versioning support, so currently we can - # not hardcode correct soname into executable. Probably we can - # add versioning support to collect2, so additional links can - # be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}.so$versuffix ${libname}${release}.so$major $libname.so' - else - # 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}.so$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $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' - ;; - -beos*) - library_names_spec='${libname}.so' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$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" - export_dynamic_flag_spec=-rdynamic - # 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*) - version_type=windows - need_version=no - need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin*) - library_names_spec='$libname.dll.a' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' - postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog .libs/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - ;; - yes,mingw*) - library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` - ;; - yes,pw32*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' - ;; - *) - library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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 - # FIXME: Relying on posixy $() will cause problems for - # cross-compilation, but unfortunately the echo tests do not - # yet detect zsh echo's removal of \ escapes. - library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' - soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - *) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - 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. - dynamic_linker="$host_os dld.sl" - version_type=sunos - need_lib_prefix=no - need_version=no - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' - soname_spec='${libname}${release}.sl$major' - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) version_type=irix ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 ") 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}" - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux-gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # 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 - - # 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' - ;; - -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}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' - soname_spec='${libname}${release}.so$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 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case "$host_os" in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -os2*) - libname_spec='$name' - need_lib_prefix=no - library_names_spec='$libname.dll $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_version=no - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - 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" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$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}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - 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 - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no - -# Report the final consequences. -AC_MSG_CHECKING([if libtool supports shared libraries]) -AC_MSG_RESULT([$can_build_shared]) - -AC_MSG_CHECKING([whether to build shared libraries]) -test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - 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 "$enable_shared" = yes || enable_static=yes -AC_MSG_RESULT([$enable_static]) - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -AC_LIBTOOL_DLOPEN_SELF - -if test "$enable_shared" = yes && test "$GCC" = yes; 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. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], - [$rm conftest* - echo 'static int dummy;' > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile); then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_cv_prog_cc_wl - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi]) - AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) - ;; - esac -fi -need_lc=${lt_cv_archive_cmds_need_lc-yes} - -# The second clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - : -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - test -f Makefile && make "$ltmain" -fi - -if test -f "$ltmain"; then - trap "$rm \"${ofile}T\"; exit 1" 1 2 15 - $rm -f "${ofile}T" - - echo creating $ofile - - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS SED \ - AR AR_FLAGS CC LD LN_S NM SHELL \ - reload_flag reload_cmds wl \ - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ - thread_safe_flag_spec whole_archive_flag_spec libname_spec \ - library_names_spec soname_spec \ - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ - postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ - old_striplib striplib file_magic_cmd export_symbols_cmds \ - deplibs_check_method allow_undefined_flag no_undefined_flag \ - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ - global_symbol_to_c_name_address \ - hardcode_libdir_flag_spec hardcode_libdir_separator \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do - - case $var in - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ - extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - cat <<__EOF__ > "${ofile}T" -#! $SHELL - -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996-2000 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 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 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. - -# A sed that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="${SED} -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$need_lc - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# The default C compiler. -CC=$lt_CC - -# Is the compiler the GNU C compiler? -with_gcc=$GCC - -# The linker used to build libraries. -LD=$lt_LD - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_wl - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_pic_flag -pic_mode=$pic_mode - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_compiler_c_o - -# Can we write directly to a .lo ? -compiler_o_lo=$lt_compiler_o_lo - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_link_static_flag - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_no_builtin_flag - -# 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 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# 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 and install a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# 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.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# 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 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" - -# 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 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_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 - -# ### END LIBTOOL CONFIG - -__EOF__ - - case $host_os in - aix3*) - cat <<\EOF >> "${ofile}T" - -# 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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - case $host_os in - cygwin* | mingw* | pw32* | os2*) - cat <<'EOF' >> "${ofile}T" - # This is a source program that is used to create dlls on Windows - # Don't remove nor modify the starting and closing comments -# /* ltdll.c starts here */ -# #define WIN32_LEAN_AND_MEAN -# #include -# #undef WIN32_LEAN_AND_MEAN -# #include -# -# #ifndef __CYGWIN__ -# # ifdef __CYGWIN32__ -# # define __CYGWIN__ __CYGWIN32__ -# # endif -# #endif -# -# #ifdef __cplusplus -# extern "C" { -# #endif -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); -# #ifdef __cplusplus -# } -# #endif -# -# #ifdef __CYGWIN__ -# #include -# DECLARE_CYGWIN_DLL( DllMain ); -# #endif -# HINSTANCE __hDllInstance_base; -# -# BOOL APIENTRY -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -# { -# __hDllInstance_base = hInst; -# return TRUE; -# } -# /* ltdll.c ends here */ - # This is a source program that is used to create import libraries - # on Windows for dlls which lack them. Don't remove nor modify the - # starting and closing comments -# /* impgen.c starts here */ -# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. -# -# This file is part of GNU libtool. -# -# 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. -# */ -# -# #include /* for printf() */ -# #include /* for open(), lseek(), read() */ -# #include /* for O_RDONLY, O_BINARY */ -# #include /* for strdup() */ -# -# /* O_BINARY isn't required (or even defined sometimes) under Unix */ -# #ifndef O_BINARY -# #define O_BINARY 0 -# #endif -# -# static unsigned int -# pe_get16 (fd, offset) -# int fd; -# int offset; -# { -# unsigned char b[2]; -# lseek (fd, offset, SEEK_SET); -# read (fd, b, 2); -# return b[0] + (b[1]<<8); -# } -# -# static unsigned int -# pe_get32 (fd, offset) -# int fd; -# int offset; -# { -# unsigned char b[4]; -# lseek (fd, offset, SEEK_SET); -# read (fd, b, 4); -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); -# } -# -# static unsigned int -# pe_as32 (ptr) -# void *ptr; -# { -# unsigned char *b = ptr; -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); -# } -# -# int -# main (argc, argv) -# int argc; -# char *argv[]; -# { -# int dll; -# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; -# unsigned long export_rva, export_size, nsections, secptr, expptr; -# unsigned long name_rvas, nexp; -# unsigned char *expdata, *erva; -# char *filename, *dll_name; -# -# filename = argv[1]; -# -# dll = open(filename, O_RDONLY|O_BINARY); -# if (dll < 1) -# return 1; -# -# dll_name = filename; -# -# for (i=0; filename[i]; i++) -# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') -# dll_name = filename + i +1; -# -# pe_header_offset = pe_get32 (dll, 0x3c); -# opthdr_ofs = pe_header_offset + 4 + 20; -# num_entries = pe_get32 (dll, opthdr_ofs + 92); -# -# if (num_entries < 1) /* no exports */ -# return 1; -# -# export_rva = pe_get32 (dll, opthdr_ofs + 96); -# export_size = pe_get32 (dll, opthdr_ofs + 100); -# nsections = pe_get16 (dll, pe_header_offset + 4 +2); -# secptr = (pe_header_offset + 4 + 20 + -# pe_get16 (dll, pe_header_offset + 4 + 16)); -# -# expptr = 0; -# for (i = 0; i < nsections; i++) -# { -# char sname[8]; -# unsigned long secptr1 = secptr + 40 * i; -# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); -# unsigned long vsize = pe_get32 (dll, secptr1 + 16); -# unsigned long fptr = pe_get32 (dll, secptr1 + 20); -# lseek(dll, secptr1, SEEK_SET); -# read(dll, sname, 8); -# if (vaddr <= export_rva && vaddr+vsize > export_rva) -# { -# expptr = fptr + (export_rva - vaddr); -# if (export_rva + export_size > vaddr + vsize) -# export_size = vsize - (export_rva - vaddr); -# break; -# } -# } -# -# expdata = (unsigned char*)malloc(export_size); -# lseek (dll, expptr, SEEK_SET); -# read (dll, expdata, export_size); -# erva = expdata - export_rva; -# -# nexp = pe_as32 (expdata+24); -# name_rvas = pe_as32 (expdata+32); -# -# printf ("EXPORTS\n"); -# for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) - - mv -f "${ofile}T" "$ofile" || \ - (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") - chmod +x "$ofile" -fi - -])# _LT_AC_LTCONFIG_HACK - -# AC_LIBTOOL_DLOPEN - enable checks for dlopen support -AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) - -# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's -AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) - -# AC_ENABLE_SHARED - implement the --enable-shared flag -# Usage: AC_ENABLE_SHARED[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN([AC_ENABLE_SHARED], -[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(shared, -changequote(<<, >>)dnl -<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], -changequote([, ])dnl -[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. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl -]) - -# AC_DISABLE_SHARED - set the default shared flag to --disable-shared -AC_DEFUN([AC_DISABLE_SHARED], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no)]) - -# AC_ENABLE_STATIC - implement the --enable-static flag -# Usage: AC_ENABLE_STATIC[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN([AC_ENABLE_STATIC], -[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(static, -changequote(<<, >>)dnl -<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], -changequote([, ])dnl -[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. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_static=AC_ENABLE_STATIC_DEFAULT)dnl -]) - -# AC_DISABLE_STATIC - set the default static flag to --disable-static -AC_DEFUN([AC_DISABLE_STATIC], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no)]) - - -# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag -# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN([AC_ENABLE_FAST_INSTALL], -[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(fast-install, -changequote(<<, >>)dnl -<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], -changequote([, ])dnl -[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. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl -]) - -# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install -AC_DEFUN([AC_DISABLE_FAST_INSTALL], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no)]) - -# AC_LIBTOOL_PICMODE - implement the --with-pic flag -# Usage: AC_LIBTOOL_PICMODE[(MODE)] -# Where MODE is either `yes' or `no'. If omitted, it defaults to -# `both'. -AC_DEFUN([AC_LIBTOOL_PICMODE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -pic_mode=ifelse($#,1,$1,default)]) - - -# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library -AC_DEFUN([AC_PATH_TOOL_PREFIX], -[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_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. - ;; - *) - ac_save_MAGIC_CMD="$MAGIC_CMD" - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" -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="ifelse([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - 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 <&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 - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$ac_save_ifs" - MAGIC_CMD="$ac_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 -]) - - -# AC_PATH_MAGIC - find a file program which can recognise a shared library -AC_DEFUN([AC_PATH_MAGIC], -[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl -AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) - else - MAGIC_CMD=: - fi -fi -]) - - -# AC_PROG_LD - find the path to the GNU or non-GNU linker -AC_DEFUN([AC_PROG_LD], -[AC_ARG_WITH(gnu-ld, -[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], -test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - 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. - [[\\/]]* | [[A-Za-z]]:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the path 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 "$with_gnu_ld" = yes; 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 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - 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 GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - lt_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$lt_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_PROG_LD_GNU -]) - -# AC_PROG_LD_GNU - -AC_DEFUN([AC_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - lt_cv_prog_gnu_ld=yes -else - lt_cv_prog_gnu_ld=no -fi]) -with_gnu_ld=$lt_cv_prog_gnu_ld -]) - -# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker -# -- PORTME Some linkers may need a different reload flag. -AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], -[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, -[lt_cv_ld_reload_flag='-r']) -reload_flag=$lt_cv_ld_reload_flag -test -n "$reload_flag" && reload_flag=" $reload_flag" -]) - -# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies -# -- PORTME fill in with the dynamic library characteristics -AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], -[AC_CACHE_CHECK([how to recognise 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 -# which responds to the $file_magic_cmd with a given egrep 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 -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi4*) - 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* | mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.[[012]]) - lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac - ;; - -freebsd*) - 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)/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 - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20*|hpux11*) - 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_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" - ;; - esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux-gnu*) - case $host_cpu in - alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; - esac - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' - 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 - ;; - -openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' - else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' - fi - ;; - -osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so - ;; - -sysv5uw[[78]]* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - 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 - ;; - esac - ;; -esac -]) -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -]) - - -# AC_PROG_NM - find the path to a BSD-compatible name lister -AC_DEFUN([AC_PROG_NM], -[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl -AC_MSG_CHECKING([for BSD-compatible nm]) -AC_CACHE_VAL(lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - test -z "$ac_dir" && ac_dir=. - tmp_nm=$ac_dir/${ac_tool_prefix}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 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then - lt_cv_path_NM="$tmp_nm -B" - break - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - lt_cv_path_NM="$tmp_nm -p" - break - else - 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 - fi - fi - done - IFS="$ac_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi]) -NM="$lt_cv_path_NM" -AC_MSG_RESULT([$NM]) -]) - -# AC_CHECK_LIBM - check for math library -AC_DEFUN([AC_CHECK_LIBM], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32*) - # These system don't have libm - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, main, LIBM="-lm") - ;; -esac -]) - -# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for -# the libltdl convenience library and LTDLINCL to the include flags for -# the libltdl header and adds --enable-ltdl-convenience to the -# configure arguments. Note that LIBLTDL and LTDLINCL are not -# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not -# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed -# with '${top_builddir}/' and LTDLINCL will be prefixed with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and -# top_srcdir appropriately in the Makefiles. -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -]) - -# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for -# the libltdl installable library and LTDLINCL to the include flags for -# the libltdl header and adds --enable-ltdl-install to the configure -# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is -# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed -# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will -# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed -# with '${top_srcdir}/' (note the single quotes!). If your package is -# not flat and you're not using automake, define top_builddir and -# top_srcdir appropriately in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, main, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - LTDLINCL= - fi - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -]) - -# old names -AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) -AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) -AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) - -# This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL]) - -# 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. # -# LT_AC_PROG_SED -# -------------- -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -AC_DEFUN([LT_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_executable_p="test -f" -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 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" - fi - done - done -done - - # Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. -: ${TMPDIR=/tmp} -{ - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/sed$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - _max=0 - _count=0 - # Add /usr/xpg4/bin/sed as it is typically found on Solaris - # along with /bin/sed that truncates output. - for _sed in $_sed_list /usr/xpg4/bin/sed; do - test ! -f ${_sed} && break - cat /dev/null > "$tmp/sed.in" - _count=0 - echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" - # Check for GNU sed and select it if it is found. - if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then - lt_cv_path_SED=${_sed} - break; - fi - while true; do - cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" - mv "$tmp/sed.tmp" "$tmp/sed.in" - cp "$tmp/sed.in" "$tmp/sed.nl" - echo >>"$tmp/sed.nl" - ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break - cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break - # 40000 chars as input seems more than enough - test $_count -gt 10 && break - _count=`expr $_count + 1` - if test $_count -gt $_max; then - _max=$_count - lt_cv_path_SED=$_sed - fi - done - done - rm -rf "$tmp" -]) -if test "X$SED" != "X"; then - lt_cv_path_SED=$SED -else - SED=$lt_cv_path_SED -fi -AC_MSG_RESULT([$SED]) -]) - - -# serial 1 - -# @defmac AC_PROG_CC_STDC -# @maindex PROG_CC_STDC -# @ovindex CC -# If the C compiler in not in ANSI C mode by default, try to add an option -# to output variable @code{CC} to make it so. This macro tries various -# options that select ANSI C on some system or another. It considers the -# compiler to be in ANSI C mode if it handles function prototypes correctly. -# -# If you use this macro, you should check after calling it whether the C -# compiler has been set to accept ANSI C; if not, the shell variable -# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source -# code in ANSI C, you can make an un-ANSIfied copy of it by using the -# program @code{ansi2knr}, which comes with Ghostscript. -# @end defmac - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_REQUIRE([AC_PROG_CC]) -AC_BEFORE([$0], [AC_C_INLINE]) -AC_BEFORE([$0], [AC_C_CONST]) -dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require -dnl a magic option to avoid problems with ANSI preprocessor commands -dnl like #elif. -dnl FIXME: can't do this because then AC_AIX won't work due to a -dnl circular dependency. -dnl AC_BEFORE([$0], [AC_PROG_CPP]) -AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) -AC_CACHE_VAL(am_cv_prog_cc_stdc, -[am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - AC_TRY_COMPILE( -[#include -#include -#include -#include -/* 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; -} -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; -], [ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -], -[am_cv_prog_cc_stdc="$ac_arg"; break]) -done -CC="$ac_save_CC" -]) -if test -z "$am_cv_prog_cc_stdc"; then - AC_MSG_RESULT([none needed]) -else - AC_MSG_RESULT($am_cv_prog_cc_stdc) -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac -]) - -# Configure paths for GLIB -# Owen Taylor 1997-2001 - -dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) -dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or -dnl gthread is specified in MODULES, pass to pkg-config -dnl -AC_DEFUN(AM_PATH_GLIB_2_0, -[dnl -dnl Get the cflags and libraries from pkg-config -dnl -AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], - , enable_glibtest=yes) - - pkg_config_args=glib-2.0 - for module in . $4 - do - case "$module" in - gmodule) - pkg_config_args="$pkg_config_args gmodule-2.0" - ;; - gobject) - pkg_config_args="$pkg_config_args gobject-2.0" - ;; - gthread) - pkg_config_args="$pkg_config_args gthread-2.0" - ;; - esac - done - - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - - no_glib="" - - if test x$PKG_CONFIG != xno ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - : - else - echo *** pkg-config too old; version 0.7 or better required. - no_glib=yes - PKG_CONFIG=no - fi - else - no_glib=yes - fi - - min_glib_version=ifelse([$1], ,2.0.0,$1) - AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) - - if test x$PKG_CONFIG != xno ; then - ## don't try to run the test against uninstalled libtool libs - if $PKG_CONFIG --uninstalled $pkg_config_args; then - echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" - enable_glibtest=no - fi - - if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then - : - else - no_glib=yes - fi - fi - - if test x"$no_glib" = x ; then - GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` - GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` - GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` - - GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` - GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` - glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_glibtest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$GLIB_LIBS $LIBS" -dnl -dnl Now check if the installed GLIB is sufficiently new. (Also sanity -dnl checks the results of pkg-config to some extent) -dnl - rm -f conf.glibtest - AC_TRY_RUN([ -#include -#include -#include - -int -main () -{ - int major, minor, micro; - char *tmp_version; - - system ("touch conf.glibtest"); - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = g_strdup("$min_glib_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_glib_version"); - exit(1); - } - - if ((glib_major_version != $glib_config_major_version) || - (glib_minor_version != $glib_config_minor_version) || - (glib_micro_version != $glib_config_micro_version)) - { - printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", - $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, - glib_major_version, glib_minor_version, glib_micro_version); - printf ("*** was found! If pkg-config was correct, then it is best\n"); - printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); - printf("*** to point to the correct configuration files\n"); - } - else if ((glib_major_version != GLIB_MAJOR_VERSION) || - (glib_minor_version != GLIB_MINOR_VERSION) || - (glib_micro_version != GLIB_MICRO_VERSION)) - { - printf("*** GLIB header files (version %d.%d.%d) do not match\n", - GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); - printf("*** library (version %d.%d.%d)\n", - glib_major_version, glib_minor_version, glib_micro_version); - } - else - { - if ((glib_major_version > major) || - ((glib_major_version == major) && (glib_minor_version > minor)) || - ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", - glib_major_version, glib_minor_version, glib_micro_version); - printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); - printf("*** correct copy of pkg-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} -],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_glib" = x ; then - AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$PKG_CONFIG" = "no" ; then - echo "*** A new enough version of pkg-config was not found." - echo "*** See http://www.freedesktop.org/software/pkgconfig/" - else - if test -f conf.glibtest ; then - : - else - echo "*** Could not run GLIB test program, checking why..." - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$LIBS $GLIB_LIBS" - AC_TRY_LINK([ -#include -#include -], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding GLIB or finding the wrong" - echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means GLIB is incorrectly installed."]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - GLIB_CFLAGS="" - GLIB_LIBS="" - GLIB_GENMARSHAL="" - GOBJECT_QUERY="" - GLIB_MKENUMS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(GLIB_CFLAGS) - AC_SUBST(GLIB_LIBS) - AC_SUBST(GLIB_GENMARSHAL) - AC_SUBST(GOBJECT_QUERY) - AC_SUBST(GLIB_MKENUMS) - rm -f conf.glibtest -]) - - -dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) -dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page -dnl also defines GSTUFF_PKG_ERRORS on error -AC_DEFUN(PKG_CHECK_MODULES, [ - succeeded=no - - if test -z "$PKG_CONFIG"; then - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - AC_MSG_CHECKING(for $2) - - if $PKG_CONFIG --exists "$2" ; then - AC_MSG_RESULT(yes) - succeeded=yes - - AC_MSG_CHECKING($1_CFLAGS) - $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` - AC_MSG_RESULT($$1_CFLAGS) - - AC_MSG_CHECKING($1_LIBS) - $1_LIBS=`$PKG_CONFIG --libs "$2"` - AC_MSG_RESULT($$1_LIBS) - else - $1_CFLAGS="" - $1_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` - ifelse([$4], ,echo $$1_PKG_ERRORS,) - fi - - AC_SUBST($1_CFLAGS) - AC_SUBST($1_LIBS) - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - ifelse([$3], , :, [$3]) - else - ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) - fi -]) - - - diff --git a/blccc-1.99/autogen.sh b/blccc-1.99/autogen.sh deleted file mode 100755 index 67ac4a8..0000000 --- a/blccc-1.99/autogen.sh +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/sh - -# This script does all the magic calls to automake/autoconf and -# friends that are needed to configure a cvs checkout. You need a -# couple of extra development tools to run this script successfully. -# -# If you are compiling from a released tarball you don't need these -# tools and you shouldn't use this script. Just call ./configure -# directly. - - -PROJECT="The Blinkenlights Chaos Control Center" -TEST_TYPE=-f -FILE=src/blccc.c - -LIBTOOL_REQUIRED_VERSION=1.3.4 -AUTOCONF_REQUIRED_VERSION=2.13 -AUTOMAKE_REQUIRED_VERSION=1.4 - - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. -ORIGDIR=`pwd` -cd $srcdir - - -function check_version () -{ - if expr $1 \>= $2 > /dev/null; then - echo "yes (version $1)" - else - echo "Too old (found version $1)!" - DIE=1 - fi -} - -echo -echo "I am testing that you have the required versions of libtool, autoconf," -echo "and automake." -echo - -DIE=0 - -echo -n "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... " -if (libtoolize --version) < /dev/null > /dev/null 2>&1; then - VER=`libtoolize --version \ - | grep libtool | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $LIBTOOL_REQUIRED_VERSION -else - echo - echo " You must have libtool installed to compile $PROJECT." - echo " Install the appropriate package for your distribution," - echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1; -fi - -echo -n "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... " -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - VER=`autoconf --version \ - | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $AUTOCONF_REQUIRED_VERSION -else - echo - echo " You must have autoconf installed to compile $PROJECT." - echo " Download the appropriate package for your distribution," - echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1; -fi - -echo -n "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... " -if (automake --version) < /dev/null > /dev/null 2>&1; then - VER=`automake --version \ - | grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $AUTOMAKE_REQUIRED_VERSION -else - echo - echo " You must have automake installed to compile $PROJECT." - echo " Get ftp://ftp.cygnus.com/pub/home/tromey/automake-1.4p1.tar.gz" - echo " (or a newer version if it is available)" - DIE=1 -fi - -if test "$DIE" -eq 1; then - echo - echo "Please install/upgrade the missing tools and call me again." - echo - exit 1 -fi - - -test $TEST_TYPE $FILE || { - echo - echo "You must run this script in the top-level $PROJECT directory." - echo - exit 1 -} - - -if test -z "$*"; then - echo - echo "I am going to run ./configure with no arguments - if you wish " - echo "to pass any to it, please specify them on the $0 command line." - echo -fi - - -case $CC in - *xlc | *xlc\ * | *lcc | *lcc\ *) - am_opt=--include-deps - ;; -esac - -if test -z "$ACLOCAL_FLAGS"; then - - acdir=`aclocal --print-ac-dir` - m4list="glib-2.0.m4" - - for file in $m4list - do - if [ ! -f "$acdir/$file" ]; then - echo - echo "WARNING: aclocal's directory is $acdir, but..." - echo " no file $acdir/$file" - echo " You may see fatal macro warnings below." - echo " If these files are installed in /some/dir, set the ACLOCAL_FLAGS " - echo " environment variable to \"-I /some/dir\", or install" echo " $acdir/$file." - echo - fi - done -fi - -aclocal $ACLOCAL_FLAGS - -# optionally feature autoheader -(autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader - -automake --add-missing $am_opt -autoconf - -libtoolize --copy --force - -cd $ORIGDIR - -$srcdir/configure --enable-maintainer-mode "$@" - -echo -echo "Now type 'make' to compile $PROJECT." diff --git a/blccc-1.99/config.guess b/blccc-1.99/config.guess deleted file mode 100755 index 9b1384b..0000000 --- a/blccc-1.99/config.guess +++ /dev/null @@ -1,1400 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. - -timestamp='2002-11-30' - -# 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 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. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -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 ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -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 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # 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 - -trap 'exit 1' 1 2 15 - -# 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. - -# This shell variable is my proudest work .. or something. --bje - -set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; -(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) - || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; -dummy=$tmpdir/dummy ; -files="$dummy.c $dummy.o $dummy.rel $dummy" ; -trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - rm -f $files ; - 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 ; -unset files' - -# 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) >/dev/null 2>&1 ; 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 - -# 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 tupples: *-*-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". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-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. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - 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 - # 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/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # 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. - eval $set_cc_for_build - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null - if test "$?" = 0 ; then - case `$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - 3-1307) - UNAME_MACHINE="alphaev7" - ;; - esac - fi - rm -f $dummy.s $dummy && rmdir $tmpdir - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - 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. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - 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'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - 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) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # 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:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* 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 \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - 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 [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 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 [ -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 [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - 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` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy && rmdir $tmpdir - fi ;; - esac - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - 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 && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - 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 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - 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/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i586-pc-interix3 - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` 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 ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - 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. - echo i386-sequent-sysv4 - exit 0 ;; - 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. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /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 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - 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 i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*: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) - 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 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *: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 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#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 - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#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 -# 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 - printf ("vax-dec-ultrix\n"); exit (0); -# 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 && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 -rm -f $dummy.c $dummy && rmdir $tmpdir - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -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 - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/blccc-1.99/config.h.in b/blccc-1.99/config.h.in deleted file mode 100644 index 5a1898a..0000000 --- a/blccc-1.99/config.h.in +++ /dev/null @@ -1,55 +0,0 @@ -/* config.h.in. Generated from configure.in by autoheader. */ - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* 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 header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_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_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* 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 - -/* 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 version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION diff --git a/blccc-1.99/config.sub b/blccc-1.99/config.sub deleted file mode 100755 index f0675aa..0000000 --- a/blccc-1.99/config.sub +++ /dev/null @@ -1,1469 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. - -timestamp='2002-11-30' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# 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 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. - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# 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. - -# 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. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -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 ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -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 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - 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 - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -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) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mipsisa32 | mipsisa32el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # 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) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ - | clipper-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39 | mipstx39el \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - or32 | or32-*) - basic_machine=or32-unknown - os=-coff - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i686-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# 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) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) - basic_machine=sh-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -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. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -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. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - # 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 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - 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 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-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 - ;; - *-next) - os=-nextstep3 - ;; - *-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 - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -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 - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -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 - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/blccc-1.99/configure b/blccc-1.99/configure deleted file mode 100755 index 49014d1..0000000 --- a/blccc-1.99/configure +++ /dev/null @@ -1,9243 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57. -# -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -# 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 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+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Find the correct PATH separator. Usually this is `:', but -# DJGPP uses `;' like DOS. -if test "X${PATH_SEPARATOR+set}" != Xset; then - UNAME=${UNAME-`uname 2>/dev/null`} - case X$UNAME in - *-DOS) lt_cv_sys_path_separator=';' ;; - *) lt_cv_sys_path_separator=':' ;; - esac - PATH_SEPARATOR=$lt_cv_sys_path_separator -fi - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -echo=${ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="src/blccc.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S ECHO RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CPP EGREP LIBTOOL PKG_CONFIG GLIB_CFLAGS GLIB_LIBS GLIB_GENMARSHAL GOBJECT_QUERY GLIB_MKENUMS BLIB_CFLAGS BLIB_LIBS DATADIR PACAKGE LIBOBJS LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# 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. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -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 - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -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 | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$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 ;; - - -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 ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - 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 ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=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 ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - 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'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -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 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - 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 - - -# 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 its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - 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 - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# 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 this package 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 \`..'] - -_ACEOF - - cat <<_ACEOF -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] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --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] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_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 - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --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) - --enable-debug turn on debugging default=no - --disable-glibtest do not try to compile and run a test GLIB program - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-pic try to use only PIC/non-PIC objects default=use both - -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 - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style 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 - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -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 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -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` -hostinfo = `(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=. - echo "PATH: $as_dir" -done - -} >&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_sep= -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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$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 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core core.* *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >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 - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - 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. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -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 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`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. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -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 - - - - - - - - - - - - - - - - - - - - -PACKAGE=blccc -VERSION=1.99 - -am__api_version="1.4" -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# 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" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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/* | \ - /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_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 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -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. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$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' - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftestfile -# 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 ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $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". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftestfile - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -rm -f conftest* -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -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 $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - -PACKAGE=$PACKAGE - -VERSION=$VERSION - -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - - - -missing_dir=`cd $ac_aux_dir && pwd` -echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5 -echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal-${am__api_version} - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working autoconf" >&5 -echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - AUTOCONF="$missing_dir/missing autoconf" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5 -echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake-${am__api_version} - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - AUTOMAKE="$missing_dir/missing automake-${am__api_version}" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working autoheader" >&5 -echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working makeinfo" >&5 -echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - - - -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi; - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - MAINT=$MAINTAINER_MODE_TRUE - - - - ac_config_headers="$ac_config_headers config.h" - - ac_config_commands="$ac_config_commands default-1" - - -ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - - -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -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 - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out 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. -echo "$as_me:$LINENO: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; 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 | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$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 -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* 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; -} -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 -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - ''\ - '#include ' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f 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 - -# Check whether --enable-shared or --disable-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. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac -else - enable_shared=yes -fi; -# Check whether --enable-static or --disable-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. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac -else - enable_static=yes -fi; -# Check whether --enable-fast-install or --disable-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. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac -else - enable_fast_install=yes -fi; -# Find the correct PATH separator. Usually this is `:', but -# DJGPP uses `;' like DOS. -if test "X${PATH_SEPARATOR+set}" != Xset; then - UNAME=${UNAME-`uname 2>/dev/null`} - case X$UNAME in - *-DOS) lt_cv_sys_path_separator=';' ;; - *) lt_cv_sys_path_separator=':' ;; - esac - PATH_SEPARATOR=$lt_cv_sys_path_separator -fi - - -# Check whether --with-gnu-ld or --without-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; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&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. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path 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 "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - 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 GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - lt_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$lt_cv_path_LD" -if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - lt_cv_prog_gnu_ld=yes -else - lt_cv_prog_gnu_ld=no -fi -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld - - -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 -if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_ld_reload_flag='-r' -fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 -reload_flag=$lt_cv_ld_reload_flag -test -n "$reload_flag" && reload_flag=" $reload_flag" - -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 -if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - test -z "$ac_dir" && ac_dir=. - tmp_nm=$ac_dir/${ac_tool_prefix}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 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then - lt_cv_path_NM="$tmp_nm -B" - break - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - lt_cv_path_NM="$tmp_nm -p" - break - else - 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 - fi - fi - done - IFS="$ac_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi -fi - -NM="$lt_cv_path_NM" -echo "$as_me:$LINENO: result: $NM" >&5 -echo "${ECHO_T}$NM" >&6 - -echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 -if test "${lt_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # 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_executable_p="test -f" -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 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" - fi - done - done -done - - # Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. -: ${TMPDIR=/tmp} -{ - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/sed$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - _max=0 - _count=0 - # Add /usr/xpg4/bin/sed as it is typically found on Solaris - # along with /bin/sed that truncates output. - for _sed in $_sed_list /usr/xpg4/bin/sed; do - test ! -f ${_sed} && break - cat /dev/null > "$tmp/sed.in" - _count=0 - echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" - # Check for GNU sed and select it if it is found. - if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then - lt_cv_path_SED=${_sed} - break; - fi - while true; do - cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" - mv "$tmp/sed.tmp" "$tmp/sed.in" - cp "$tmp/sed.in" "$tmp/sed.nl" - echo >>"$tmp/sed.nl" - ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break - cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break - # 40000 chars as input seems more than enough - test $_count -gt 10 && break - _count=`expr $_count + 1` - if test $_count -gt $_max; then - _max=$_count - lt_cv_path_SED=$_sed - fi - done - done - rm -rf "$tmp" - -fi - -if test "X$SED" != "X"; then - lt_cv_path_SED=$SED -else - SED=$lt_cv_path_SED -fi -echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6 - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - -echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 -echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 -# which responds to the $file_magic_cmd with a given egrep 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 -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi4*) - 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* | mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.[012]) - lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac - ;; - -freebsd*) - 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)/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 - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20*|hpux11*) - 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_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" - ;; - esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux-gnu*) - case $host_cpu in - alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; - esac - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' - 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 - ;; - -openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' - else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' - fi - ;; - -osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so - ;; - -sysv5uw[78]* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - 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 - ;; - esac - ;; -esac - -fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method - - - - - - - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo "$as_me:$LINENO: checking command to parse $NM output" >&5 -echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -solaris* | sysv5*) - symcode='[BDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $host_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTW]' -fi - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. -lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - rm -f conftest* - cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && 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 egrep ' nm_test_var$' "$nlist" >/dev/null; then - if egrep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] = -{ -EOF - sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest; then - pipe_works=yes - fi - LIBS="$save_LIBS" - CFLAGS="$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 -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" -if test -z "$lt_cv_sys_global_symbol_pipe"; then - global_symbol_to_cdecl= - global_symbol_to_c_name_address= -else - global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" - global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" -fi -if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; -then - echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6 -else - echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&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 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f 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 -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -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 - - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#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)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_header in dlfcn.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in - /*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; - ?:/*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. - ;; - *) - ac_save_MAGIC_CMD="$MAGIC_CMD" - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="/usr/bin:$PATH" - for ac_dir in $ac_dummy; do - 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 <&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 - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$ac_save_ifs" - MAGIC_CMD="$ac_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in - /*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; - ?:/*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. - ;; - *) - ac_save_MAGIC_CMD="$MAGIC_CMD" - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="/usr/bin:$PATH" - for ac_dir in $ac_dummy; do - 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 <&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 - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$ac_save_ifs" - MAGIC_CMD="$ac_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - - -enable_dlopen=no -enable_win32_dll=no - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 4335 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - 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 - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 -if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -lt_cv_cc_needs_belf=no -fi -rm -f 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 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - - -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -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' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" -need_locks="$enable_libtool_lock" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -if test x"$host" != x"$build"; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Transform linux* to *-*-linux-gnu*, to support old configure scripts. -case $host_os in -linux-gnu*) ;; -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` -esac - -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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -# Allow CC to be a program name with arguments. -set dummy $CC -compiler="$2" - -echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6 -rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - objdir=_libs -fi -rmdir .libs 2>/dev/null -echo "$as_me:$LINENO: result: $objdir" >&5 -echo "${ECHO_T}$objdir" >&6 - - - -# Check whether --with-pic or --without-pic was given. -if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" -else - pic_mode=default -fi; -test -z "$pic_mode" && pic_mode=default - -# We assume here that the value for lt_cv_prog_cc_pic will not be cached -# in isolation, and that seeing it set (from the cache) indicates that -# the associated values are set (in the cache) correctly too. -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 -if test "${lt_cv_prog_cc_pic+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_cc_pic= - lt_cv_prog_cc_shlib= - lt_cv_prog_cc_wl= - lt_cv_prog_cc_static= - lt_cv_prog_cc_no_builtin= - lt_cv_prog_cc_can_build_shared=$can_build_shared - - if test "$GCC" = yes; then - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static='-static' - - case $host_os in - aix*) - # Below there is a dirty hack to force normal static linking with -ldl - # The problem is because libdl dynamically linked with both libc and - # libC (AIX C++ library), which obviously doesn't included in libraries - # list by gcc. This cause undefined symbols with -static flags. - # This hack allows C programs to be linked with "-static -ldl", but - # not sure about C++ programs. - lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" - ;; - amigaos*) - # 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_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_cv_prog_cc_pic='-fno-common' - ;; - cygwin* | mingw* | pw32* | os2*) - # 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_cv_prog_cc_pic='-DDLL_EXPORT' - ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_cv_prog_cc_pic=-Kconform_pic - fi - ;; - *) - lt_cv_prog_cc_pic='-fPIC' - ;; - esac - else - # PORTME Check for PIC flags for the system compiler. - case $host_os in - aix3* | aix4* | aix5*) - lt_cv_prog_cc_wl='-Wl,' - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_cv_prog_cc_static='-Bstatic' - else - lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - hpux9* | hpux10* | hpux11*) - # Is there a better lt_cv_prog_cc_static that works with the bundled CC? - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" - lt_cv_prog_cc_pic='+Z' - ;; - - irix5* | irix6* | nonstopux*) - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static='-non_shared' - # PIC (with -KPIC) is the default. - ;; - - cygwin* | mingw* | pw32* | os2*) - # 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_cv_prog_cc_pic='-DDLL_EXPORT' - ;; - - newsos6) - lt_cv_prog_cc_pic='-KPIC' - lt_cv_prog_cc_static='-Bstatic' - ;; - - osf3* | osf4* | osf5*) - # All OSF/1 code is PIC. - lt_cv_prog_cc_wl='-Wl,' - lt_cv_prog_cc_static='-non_shared' - ;; - - sco3.2v5*) - lt_cv_prog_cc_pic='-Kpic' - lt_cv_prog_cc_static='-dn' - lt_cv_prog_cc_shlib='-belf' - ;; - - solaris*) - lt_cv_prog_cc_pic='-KPIC' - lt_cv_prog_cc_static='-Bstatic' - lt_cv_prog_cc_wl='-Wl,' - ;; - - sunos4*) - lt_cv_prog_cc_pic='-PIC' - lt_cv_prog_cc_static='-Bstatic' - lt_cv_prog_cc_wl='-Qoption ld ' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_cv_prog_cc_pic='-KPIC' - lt_cv_prog_cc_static='-Bstatic' - lt_cv_prog_cc_wl='-Wl,' - ;; - - uts4*) - lt_cv_prog_cc_pic='-pic' - lt_cv_prog_cc_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_cv_prog_cc_pic='-Kconform_pic' - lt_cv_prog_cc_static='-Bstatic' - fi - ;; - - *) - lt_cv_prog_cc_can_build_shared=no - ;; - esac - fi - -fi - -if test -z "$lt_cv_prog_cc_pic"; then - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 -else - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5 -echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6 - - # Check to make sure the pic_flag actually works. - echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6 - if test "${lt_cv_prog_cc_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - case $host_os in - hpux9* | hpux10* | hpux11*) - # On HP-UX, both CC and GCC only warn that PIC is supported... then - # they create non-PIC objects. So, if there were any warnings, we - # assume that PIC is not supported. - if test -s conftest.err; then - lt_cv_prog_cc_pic_works=no - else - lt_cv_prog_cc_pic_works=yes - fi - ;; - *) - lt_cv_prog_cc_pic_works=yes - ;; - esac - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_prog_cc_pic_works=no - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - -fi - - - if test "X$lt_cv_prog_cc_pic_works" = Xno; then - lt_cv_prog_cc_pic= - lt_cv_prog_cc_can_build_shared=no - else - lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" - fi - - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5 -echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6 -fi - -# Check for any special shared library compilation flags. -if test -n "$lt_cv_prog_cc_shlib"; then - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5 -echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;} - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : - else - { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 -echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} - lt_cv_prog_cc_can_build_shared=no - fi -fi - -echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6 -if test "${lt_cv_prog_cc_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_cc_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - lt_cv_prog_cc_static_works=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi - - -# Belt *and* braces to stop my trousers falling down: -test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= -echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5 -echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6 - -pic_flag="$lt_cv_prog_cc_pic" -special_shlib_compile_flags="$lt_cv_prog_cc_shlib" -wl="$lt_cv_prog_cc_wl" -link_static_flag="$lt_cv_prog_cc_static" -no_builtin_flag="$lt_cv_prog_cc_no_builtin" -can_build_shared="$lt_cv_prog_cc_can_build_shared" - - -# Check to see if options -o and -c are simultaneously supported by compiler -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -$rm -r conftest 2>/dev/null -mkdir conftest -cd conftest -echo "int some_variable = 0;" > conftest.$ac_ext -mkdir out -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers -# that will create temporary files in the current directory regardless of -# the output directory. Thus, making CWD read-only will cause this test -# to fail, enabling locking or at least warning the user not to do parallel -# builds. -chmod -w . -save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" -compiler_c_o=no -if { (eval echo configure:4864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && 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 - if test -s out/conftest.err; then - lt_cv_compiler_c_o=no - else - lt_cv_compiler_c_o=yes - fi -else - # Append any errors to the config.log. - cat out/conftest.err 1>&5 - lt_cv_compiler_c_o=no -fi -CFLAGS="$save_CFLAGS" -chmod u+w . -$rm conftest* out/* -rmdir out -cd .. -rmdir conftest -$rm -r conftest 2>/dev/null - -fi - -compiler_c_o=$lt_cv_compiler_c_o -echo "$as_me:$LINENO: result: $compiler_c_o" >&5 -echo "${ECHO_T}$compiler_c_o" >&6 - -if test x"$compiler_c_o" = x"yes"; then - # Check to see if we can write to a .lo - echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6 - if test "${lt_cv_compiler_o_lo+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - lt_cv_compiler_o_lo=no - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -c -o conftest.lo" - save_objext="$ac_objext" - ac_objext=lo - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -int some_variable = 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - lt_cv_compiler_o_lo=no - else - lt_cv_compiler_o_lo=yes - fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - ac_objext="$save_objext" - CFLAGS="$save_CFLAGS" - -fi - - compiler_o_lo=$lt_cv_compiler_o_lo - echo "$as_me:$LINENO: result: $compiler_o_lo" >&5 -echo "${ECHO_T}$compiler_o_lo" >&6 -else - compiler_o_lo=no -fi - -# Check to see if we can do hard links to lock some files if needed -hard_links="nottested" -if test "$compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -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 - -if test "$GCC" = yes; then - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler - echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 - echo "int some_variable = 0;" > conftest.$ac_ext - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" - compiler_rtti_exceptions=no - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -int some_variable = 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - compiler_rtti_exceptions=no - else - compiler_rtti_exceptions=yes - fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$compiler_rtti_exceptions" >&6 - - if test "$compiler_rtti_exceptions" = "yes"; then - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' - else - no_builtin_flag=' -fno-builtin' - fi -fi - -# See if the linker supports building shared libraries. -echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6 - -allow_undefined_flag= -no_undefined_flag= -need_lib_prefix=unknown -need_version=unknown -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -archive_cmds= -archive_expsym_cmds= -old_archive_from_new_cmds= -old_archive_from_expsyms_cmds= -export_dynamic_flag_spec= -whole_archive_flag_spec= -thread_safe_flag_spec= -hardcode_into_libs=no -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no -hardcode_shlibpath_var=unsupported -runpath_var= -link_all_deplibs=unknown -always_export_symbols=no -export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' -# 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 egrep regular expression 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_" -# 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. -extract_expsyms_cmds= - -case $host_os in -cygwin* | mingw* | pw32*) - # 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 - ;; -openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX, the GNU linker is very broken - # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. - ld_shlibs=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - ;; - - amigaos*) - 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 - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | egrep ': 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*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=yes - - extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ - sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ - test -f $output_objdir/impgen.exe || (cd $output_objdir && \ - if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ - else $CC -o impgen impgen.c ; fi)~ - $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' - - old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' - - # cygwin and mingw dlls have different entry points and sets of symbols - # to exclude. - # FIXME: what about values for MSVC? - dll_entry=__cygwin_dll_entry@12 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ - case $host_os in - mingw*) - # mingw values - dll_entry=_DllMainCRTStartup@12 - dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ - ;; - esac - - # mingw and cygwin differ, and it's simplest to just exclude the union - # of the two symbol sets. - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 - - # recent cygwin and mingw systems supply a stub DllMain which the user - # can override, but on older systems we have to supply one (in ltdll.c) - if test "x$lt_cv_need_dllmain" = "xyes"; then - ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " - ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ - test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' - else - ltdll_obj= - ltdll_cmds= - fi - - # Extract the symbol export list from an `--export-all' def file, - # then regenerate the def file from the symbol export list, so that - # the compiled dll only exports the symbol export list. - # Be careful not to strip the DATA tag left be newer dlltools. - export_symbols_cmds="$ltdll_cmds"' - $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ - sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' - - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is. - # If DATA tags from a recent dlltool are present, honour them! - archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname-def; - else - echo EXPORTS > $output_objdir/$soname-def; - _lt_hint=1; - cat $export_symbols | while read symbol; do - set dummy \$symbol; - case \$# in - 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; - 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; - *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; - esac; - _lt_hint=`expr 1 + \$_lt_hint`; - done; - fi~ - '"$ltdll_cmds"' - $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ - $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ - $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' - ;; - - netbsd*) - 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 -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&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. - -EOF - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - 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 - ;; - - 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 | egrep ': supported targets:.* elf' > /dev/null; then - 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 - - if test "$ld_shlibs" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - case $host_os in - cygwin* | mingw* | pw32*) - # dlltool doesn't understand --whole-archive et. al. - whole_archive_flag_spec= - ;; - *) - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - ;; - esac - 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 "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4* | aix5*) - 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 - 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 - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - 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 - - 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. - - hardcode_direct=yes - archive_cmds='' - 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 - hardcode_direct=yes - 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' - else - # not using gcc - if test "$host_cpu" = ia64; then - shared_flag='${wl}-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall can do strange things, so it is better to - # generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; 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' - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; 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 ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='${wl}-berok' - # This is a bit strange, but is similar to how AIX traditionally builds - # it's shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' - fi - fi - ;; - - amigaos*) - 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 - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - cygwin* | mingw* | pw32*) - # 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=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''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' - fix_srcfile_path='`cygpath -w "$srcfile"`' - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - esac - # FIXME: Relying on posixy $() will cause problems for - # cross-compilation, but unfortunately the echo tests do not - # yet detect zsh echo's removal of \ escapes. Also zsh mangles - # `"' quotes if we put them in here... so don't! - archive_cmds='$nonopt $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linker_flags -install_name $rpath/$soname $verstring' - # We need to add '_' to the symbols in $export_symbols first - #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' - hardcode_direct=yes - hardcode_shlibpath_var=no - whole_archive_flag_spec='-all_load $convenience' - ;; - - freebsd1*) - ld_shlibs=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*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9* | hpux10* | hpux11*) - case $host_os in - hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; - esac - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd*) - 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 - ;; - - openbsd*) - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; 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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${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='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - #Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - 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 - export_dynamic_flag_spec='${wl}-Bexport' - ;; - - solaris*) - # gcc --version < 3.0 without binutils cannot create self contained - # shared libraries reliably, requiring libgcc.a to resolve some of - # the object symbols generated in some cases. Libraries that use - # assert need libgcc.a to resolve __eprintf, for example. Linking - # a copy of libgcc.a into every shared library to guarantee resolving - # such symbols causes other problems: According to Tim Van Holder - # , C++ libraries end up with a separate - # (to the application) exception stack for one thing. - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - case `$CC --version 2>/dev/null` in - [12].*) - cat <&2 - -*** Warning: Releases of GCC earlier than version 3.0 cannot reliably -*** create self contained shared libraries on Solaris systems, without -*** introducing a dependency on libgcc.a. Therefore, libtool is disabling -*** -no-undefined support, which will at least allow you to build shared -*** libraries. However, you may find that when you link such libraries -*** into an application without using GCC, you have to manually add -*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to -*** upgrade to a newer version of GCC. Another option is to rebuild your -*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. - -EOF - no_undefined_flag= - ;; - esac - fi - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - 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' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; 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' - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - 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' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - 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.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5uw7* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac -fi -echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6 -test "$ld_shlibs" = no && can_build_shared=no - -# Check hardcoding attributes. -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # 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 "$hardcode_shlibpath_var" != no && - test "$hardcode_minus_L" != no; 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 -echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6 - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -reload_cmds='$LD$reload_flag -o $output$reload_objs' -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -# PORTME Fill in your ld.so characteristics -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -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" -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so$major' - ;; - -aix4* | aix5*) - version_type=linux - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' - 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 - # AIX (on Power*) has no versioning support, so currently we can - # not hardcode correct soname into executable. Probably we can - # add versioning support to collect2, so additional links can - # be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}.so$versuffix ${libname}${release}.so$major $libname.so' - else - # 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}.so$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' - ;; - -beos*) - library_names_spec='${libname}.so' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$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" - export_dynamic_flag_spec=-rdynamic - # 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*) - version_type=windows - need_version=no - need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin*) - library_names_spec='$libname.dll.a' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' - postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog .libs/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - ;; - yes,mingw*) - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` - ;; - yes,pw32*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' - ;; - *) - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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 - # FIXME: Relying on posixy $() will cause problems for - # cross-compilation, but unfortunately the echo tests do not - # yet detect zsh echo's removal of \ escapes. - library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' - soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - *) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - 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. - dynamic_linker="$host_os dld.sl" - version_type=sunos - need_lib_prefix=no - need_version=no - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' - soname_spec='${libname}${release}.sl$major' - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) version_type=irix ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 ") 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}" - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux-gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # 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 - - # 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' - ;; - -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}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' - soname_spec='${libname}${release}.so$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 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case "$host_os" in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -os2*) - libname_spec='$name' - need_lib_prefix=no - library_names_spec='$libname.dll $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_version=no - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - 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" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$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}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - 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 - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -# Report the final consequences. -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 -test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "x$enable_dlopen" != xyes; 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 - ;; - - cygwin* | mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* 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_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* 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_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$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 - - -if test "$enable_shared" = yes && test "$GCC" = yes; 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. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - if test "${lt_cv_archive_cmds_need_lc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - $rm conftest* - echo 'static int dummy;' > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_cv_prog_cc_wl - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { (eval echo "$as_me:$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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi -fi - - echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5 -echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6 - ;; - esac -fi -need_lc=${lt_cv_archive_cmds_need_lc-yes} - -# The second clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - : -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - test -f Makefile && make "$ltmain" -fi - -if test -f "$ltmain"; then - trap "$rm \"${ofile}T\"; exit 1" 1 2 15 - $rm -f "${ofile}T" - - echo creating $ofile - - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS SED \ - AR AR_FLAGS CC LD LN_S NM SHELL \ - reload_flag reload_cmds wl \ - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ - thread_safe_flag_spec whole_archive_flag_spec libname_spec \ - library_names_spec soname_spec \ - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ - postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ - old_striplib striplib file_magic_cmd export_symbols_cmds \ - deplibs_check_method allow_undefined_flag no_undefined_flag \ - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ - global_symbol_to_c_name_address \ - hardcode_libdir_flag_spec hardcode_libdir_separator \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do - - case $var in - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ - extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - cat <<__EOF__ > "${ofile}T" -#! $SHELL - -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996-2000 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 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 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. - -# A sed that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="${SED} -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$need_lc - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# The default C compiler. -CC=$lt_CC - -# Is the compiler the GNU C compiler? -with_gcc=$GCC - -# The linker used to build libraries. -LD=$lt_LD - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_wl - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_pic_flag -pic_mode=$pic_mode - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_compiler_c_o - -# Can we write directly to a .lo ? -compiler_o_lo=$lt_compiler_o_lo - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_link_static_flag - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_no_builtin_flag - -# 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 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# 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 and install a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# 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.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# 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 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" - -# 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 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_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 - -# ### END LIBTOOL CONFIG - -__EOF__ - - case $host_os in - aix3*) - cat <<\EOF >> "${ofile}T" - -# 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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - case $host_os in - cygwin* | mingw* | pw32* | os2*) - cat <<'EOF' >> "${ofile}T" - # This is a source program that is used to create dlls on Windows - # Don't remove nor modify the starting and closing comments -# /* ltdll.c starts here */ -# #define WIN32_LEAN_AND_MEAN -# #include -# #undef WIN32_LEAN_AND_MEAN -# #include -# -# #ifndef __CYGWIN__ -# # ifdef __CYGWIN32__ -# # define __CYGWIN__ __CYGWIN32__ -# # endif -# #endif -# -# #ifdef __cplusplus -# extern "C" { -# #endif -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); -# #ifdef __cplusplus -# } -# #endif -# -# #ifdef __CYGWIN__ -# #include -# DECLARE_CYGWIN_DLL( DllMain ); -# #endif -# HINSTANCE __hDllInstance_base; -# -# BOOL APIENTRY -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -# { -# __hDllInstance_base = hInst; -# return TRUE; -# } -# /* ltdll.c ends here */ - # This is a source program that is used to create import libraries - # on Windows for dlls which lack them. Don't remove nor modify the - # starting and closing comments -# /* impgen.c starts here */ -# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. -# -# This file is part of GNU libtool. -# -# 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. -# */ -# -# #include /* for printf() */ -# #include /* for open(), lseek(), read() */ -# #include /* for O_RDONLY, O_BINARY */ -# #include /* for strdup() */ -# -# /* O_BINARY isn't required (or even defined sometimes) under Unix */ -# #ifndef O_BINARY -# #define O_BINARY 0 -# #endif -# -# static unsigned int -# pe_get16 (fd, offset) -# int fd; -# int offset; -# { -# unsigned char b[2]; -# lseek (fd, offset, SEEK_SET); -# read (fd, b, 2); -# return b[0] + (b[1]<<8); -# } -# -# static unsigned int -# pe_get32 (fd, offset) -# int fd; -# int offset; -# { -# unsigned char b[4]; -# lseek (fd, offset, SEEK_SET); -# read (fd, b, 4); -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); -# } -# -# static unsigned int -# pe_as32 (ptr) -# void *ptr; -# { -# unsigned char *b = ptr; -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); -# } -# -# int -# main (argc, argv) -# int argc; -# char *argv[]; -# { -# int dll; -# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; -# unsigned long export_rva, export_size, nsections, secptr, expptr; -# unsigned long name_rvas, nexp; -# unsigned char *expdata, *erva; -# char *filename, *dll_name; -# -# filename = argv[1]; -# -# dll = open(filename, O_RDONLY|O_BINARY); -# if (dll < 1) -# return 1; -# -# dll_name = filename; -# -# for (i=0; filename[i]; i++) -# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') -# dll_name = filename + i +1; -# -# pe_header_offset = pe_get32 (dll, 0x3c); -# opthdr_ofs = pe_header_offset + 4 + 20; -# num_entries = pe_get32 (dll, opthdr_ofs + 92); -# -# if (num_entries < 1) /* no exports */ -# return 1; -# -# export_rva = pe_get32 (dll, opthdr_ofs + 96); -# export_size = pe_get32 (dll, opthdr_ofs + 100); -# nsections = pe_get16 (dll, pe_header_offset + 4 +2); -# secptr = (pe_header_offset + 4 + 20 + -# pe_get16 (dll, pe_header_offset + 4 + 16)); -# -# expptr = 0; -# for (i = 0; i < nsections; i++) -# { -# char sname[8]; -# unsigned long secptr1 = secptr + 40 * i; -# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); -# unsigned long vsize = pe_get32 (dll, secptr1 + 16); -# unsigned long fptr = pe_get32 (dll, secptr1 + 20); -# lseek(dll, secptr1, SEEK_SET); -# read(dll, sname, 8); -# if (vaddr <= export_rva && vaddr+vsize > export_rva) -# { -# expptr = fptr + (export_rva - vaddr); -# if (export_rva + export_size > vaddr + vsize) -# export_size = vsize - (export_rva - vaddr); -# break; -# } -# } -# -# expdata = (unsigned char*)malloc(export_size); -# lseek (dll, expptr, SEEK_SET); -# read (dll, expdata, export_size); -# erva = expdata - export_rva; -# -# nexp = pe_as32 (expdata+24); -# name_rvas = pe_as32 (expdata+32); -# -# printf ("EXPORTS\n"); -# for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) - - mv -f "${ofile}T" "$ofile" || \ - (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") - chmod +x "$ofile" -fi - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -# Prevent multiple expansion - - - - - -echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5 -echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6 -if test "${am_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* 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; -} -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 -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_prog_cc_stdc="$ac_arg"; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -CC="$ac_save_CC" - -fi - -if test -z "$am_cv_prog_cc_stdc"; then - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 -else - echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6 -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac - - -if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-Wall[\ \ ]*) ;; - *) CFLAGS="$CFLAGS -Wall" ;; - esac -fi - -# Check whether --enable-debug or --disable-debug was given. -if test "${enable_debug+set}" = set; then - enableval="$enable_debug" - if eval "test x$enable_debug = xyes"; then - DEBUGFLAG="-g" -fi -fi; - -# Check whether --enable-glibtest or --disable-glibtest was given. -if test "${enable_glibtest+set}" = set; then - enableval="$enable_glibtest" - -else - enable_glibtest=yes -fi; - - pkg_config_args=glib-2.0 - for module in . gobject gthread - do - case "$module" in - gmodule) - pkg_config_args="$pkg_config_args gmodule-2.0" - ;; - gobject) - pkg_config_args="$pkg_config_args gobject-2.0" - ;; - gthread) - pkg_config_args="$pkg_config_args gthread-2.0" - ;; - esac - done - - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - - no_glib="" - - if test x$PKG_CONFIG != xno ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - : - else - echo *** pkg-config too old; version 0.7 or better required. - no_glib=yes - PKG_CONFIG=no - fi - else - no_glib=yes - fi - - min_glib_version=2.0.0 - echo "$as_me:$LINENO: checking for GLIB - version >= $min_glib_version" >&5 -echo $ECHO_N "checking for GLIB - version >= $min_glib_version... $ECHO_C" >&6 - - if test x$PKG_CONFIG != xno ; then - ## don't try to run the test against uninstalled libtool libs - if $PKG_CONFIG --uninstalled $pkg_config_args; then - echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" - enable_glibtest=no - fi - - if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then - : - else - no_glib=yes - fi - fi - - if test x"$no_glib" = x ; then - GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` - GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` - GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` - - GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` - GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` - glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` - glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` - glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` - if test "x$enable_glibtest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$GLIB_LIBS $LIBS" - rm -f conf.glibtest - if test "$cross_compiling" = yes; then - echo $ac_n "cross compiling; assumed OK... $ac_c" -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include - -int -main () -{ - int major, minor, micro; - char *tmp_version; - - system ("touch conf.glibtest"); - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = g_strdup("$min_glib_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_glib_version"); - exit(1); - } - - if ((glib_major_version != $glib_config_major_version) || - (glib_minor_version != $glib_config_minor_version) || - (glib_micro_version != $glib_config_micro_version)) - { - printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", - $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, - glib_major_version, glib_minor_version, glib_micro_version); - printf ("*** was found! If pkg-config was correct, then it is best\n"); - printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); - printf("*** to point to the correct configuration files\n"); - } - else if ((glib_major_version != GLIB_MAJOR_VERSION) || - (glib_minor_version != GLIB_MINOR_VERSION) || - (glib_micro_version != GLIB_MICRO_VERSION)) - { - printf("*** GLIB header files (version %d.%d.%d) do not match\n", - GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); - printf("*** library (version %d.%d.%d)\n", - glib_major_version, glib_minor_version, glib_micro_version); - } - else - { - if ((glib_major_version > major) || - ((glib_major_version == major) && (glib_minor_version > minor)) || - ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", - glib_major_version, glib_minor_version, glib_micro_version); - printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); - printf("*** correct copy of pkg-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -no_glib=yes -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_glib" = x ; then - echo "$as_me:$LINENO: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5 -echo "${ECHO_T}yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6 - : - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - if test "$PKG_CONFIG" = "no" ; then - echo "*** A new enough version of pkg-config was not found." - echo "*** See http://www.freedesktop.org/software/pkgconfig/" - else - if test -f conf.glibtest ; then - : - else - echo "*** Could not run GLIB test program, checking why..." - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$LIBS $GLIB_LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding GLIB or finding the wrong" - echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means GLIB is incorrectly installed." -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - GLIB_CFLAGS="" - GLIB_LIBS="" - GLIB_GENMARSHAL="" - GOBJECT_QUERY="" - GLIB_MKENUMS="" - : - fi - - - - - - rm -f conf.glibtest - - - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for blib >= 1.0.0" >&5 -echo $ECHO_N "checking for blib >= 1.0.0... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "blib >= 1.0.0" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking BLIB_CFLAGS" >&5 -echo $ECHO_N "checking BLIB_CFLAGS... $ECHO_C" >&6 - BLIB_CFLAGS=`$PKG_CONFIG --cflags "blib >= 1.0.0"` - echo "$as_me:$LINENO: result: $BLIB_CFLAGS" >&5 -echo "${ECHO_T}$BLIB_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking BLIB_LIBS" >&5 -echo $ECHO_N "checking BLIB_LIBS... $ECHO_C" >&6 - BLIB_LIBS=`$PKG_CONFIG --libs "blib >= 1.0.0"` - echo "$as_me:$LINENO: result: $BLIB_LIBS" >&5 -echo "${ECHO_T}$BLIB_LIBS" >&6 - else - BLIB_CFLAGS="" - BLIB_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - BLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "blib >= 1.0.0"` - echo $BLIB_PKG_ERRORS - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - : - else - { { echo "$as_me:$LINENO: error: Library requirements (blib >= 1.0.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 -echo "$as_me: error: Library requirements (blib >= 1.0.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} - { (exit 1); exit 1; }; } - fi - - -DATADIR=$datadir/blccc - - - - - - ac_config_files="$ac_config_files Makefile data/Makefile examples/Makefile examples/on-demand/Makefile examples/movies/Makefile src/Makefile src/modules/Makefile stylesheets/Makefile stylesheets/examples/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, don't put newlines in cache variables' values. -# 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. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *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 \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - 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}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ 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[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $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} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# 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+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -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 - --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 commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.57, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -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=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - 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 -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - - - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "data/Makefile" ) CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; - "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; - "examples/on-demand/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/on-demand/Makefile" ;; - "examples/movies/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/movies/Makefile" ;; - "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "src/modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/modules/Makefile" ;; - "stylesheets/Makefile" ) CONFIG_FILES="$CONFIG_FILES stylesheets/Makefile" ;; - "stylesheets/examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES stylesheets/examples/Makefile" ;; - "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - 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_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 to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t -s,@MAINT@,$MAINT,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@PKG_CONFIG@,$PKG_CONFIG,;t t -s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t -s,@GLIB_LIBS@,$GLIB_LIBS,;t t -s,@GLIB_GENMARSHAL@,$GLIB_GENMARSHAL,;t t -s,@GOBJECT_QUERY@,$GOBJECT_QUERY,;t t -s,@GLIB_MKENUMS@,$GLIB_MKENUMS,;t t -s,@BLIB_CFLAGS@,$BLIB_CFLAGS,;t t -s,@BLIB_LIBS@,$BLIB_LIBS,;t t -s,@DATADIR@,$DATADIR,;t t -s,@PACAKGE@,$PACAKGE,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # 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. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #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. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # 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. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# 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 || { (exit 1); exit 1; } -fi - diff --git a/blccc-1.99/configure.in b/blccc-1.99/configure.in deleted file mode 100644 index a967f3a..0000000 --- a/blccc-1.99/configure.in +++ /dev/null @@ -1,53 +0,0 @@ -AC_INIT(src/blccc.c) - -PACKAGE=blccc -VERSION=1.99 - -AM_INIT_AUTOMAKE($PACKAGE,$VERSION) - -AM_MAINTAINER_MODE -AM_CONFIG_HEADER(config.h) - -ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" - -AC_CANONICAL_HOST - -AC_PROG_CC -AC_PROG_LIBTOOL -AM_PROG_CC_STDC - -changequote(,)dnl -if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-Wall[\ \ ]*) ;; - *) CFLAGS="$CFLAGS -Wall" ;; - esac -fi -changequote([,])dnl - -AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]], -if eval "test x$enable_debug = xyes"; then - DEBUGFLAG="-g" -fi) - -AM_PATH_GLIB_2_0(2.0.0, , , gobject gthread) - -PKG_CHECK_MODULES(BLIB, blib >= 1.0.0) - -DATADIR=$datadir/blccc -AC_SUBST(DATADIR) - -AC_SUBST(PACAKGE) -AC_SUBST(VERSION) - -AC_OUTPUT([ -Makefile -data/Makefile -examples/Makefile -examples/on-demand/Makefile -examples/movies/Makefile -src/Makefile -src/modules/Makefile -stylesheets/Makefile -stylesheets/examples/Makefile -]) diff --git a/blccc-1.99/data/Makefile.am b/blccc-1.99/data/Makefile.am deleted file mode 100644 index 9934067..0000000 --- a/blccc-1.99/data/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -## Makefile.am for blccc/data -## Process this file with automake to produce Makefile.in - -blcccdatadir = $(DATADIR) - -blcccdata_DATA = playlist.dtd - -EXTRA_DIST = $(blcccdata_DATA) diff --git a/blccc-1.99/data/Makefile.in b/blccc-1.99/data/Makefile.in deleted file mode 100644 index 01343cf..0000000 --- a/blccc-1.99/data/Makefile.in +++ /dev/null @@ -1,215 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -blcccdatadir = $(DATADIR) - -blcccdata_DATA = playlist.dtd - -EXTRA_DIST = $(blcccdata_DATA) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -DATA = $(blcccdata_DATA) - -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps data/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -install-blcccdataDATA: $(blcccdata_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(blcccdatadir) - @list='$(blcccdata_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(blcccdatadir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(blcccdatadir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(blcccdatadir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(blcccdatadir)/$$p; \ - fi; fi; \ - done - -uninstall-blcccdataDATA: - @$(NORMAL_UNINSTALL) - list='$(blcccdata_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(blcccdatadir)/$$p; \ - done -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = data - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: install-blcccdataDATA -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: uninstall-blcccdataDATA -uninstall: uninstall-am -all-am: Makefile $(DATA) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - $(mkinstalldirs) $(DESTDIR)$(blcccdatadir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: uninstall-blcccdataDATA install-blcccdataDATA tags distdir \ -info-am info dvi-am dvi check check-am installcheck-am installcheck \ -install-exec-am install-exec install-data-am install-data install-am \ -install uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/data/playlist.dtd b/blccc-1.99/data/playlist.dtd deleted file mode 100644 index 560c516..0000000 --- a/blccc-1.99/data/playlist.dtd +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/blccc-1.99/examples/Makefile.am b/blccc-1.99/examples/Makefile.am deleted file mode 100644 index b36d963..0000000 --- a/blccc-1.99/examples/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -## Makefile.am for blccc/examples - -SUBDIRS = on-demand movies - -EXTRA_DIST = \ - playlist.default.xml \ - config.xml \ - loveletters.xml diff --git a/blccc-1.99/examples/Makefile.in b/blccc-1.99/examples/Makefile.in deleted file mode 100644 index 67ca354..0000000 --- a/blccc-1.99/examples/Makefile.in +++ /dev/null @@ -1,296 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -SUBDIRS = on-demand movies - -EXTRA_DIST = playlist.default.xml config.xml loveletters.xml - -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps examples/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -# 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. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = examples - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: -uninstall: uninstall-recursive -all-am: Makefile -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: install-data-recursive uninstall-data-recursive \ -install-exec-recursive uninstall-exec-recursive installdirs-recursive \ -uninstalldirs-recursive all-recursive check-recursive \ -installcheck-recursive info-recursive dvi-recursive \ -mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/examples/config.xml b/blccc-1.99/examples/config.xml deleted file mode 100644 index 28281af..0000000 --- a/blccc-1.99/examples/config.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blccc-1.99/examples/loveletters.xml b/blccc-1.99/examples/loveletters.xml deleted file mode 100644 index 7b7d1b2..0000000 --- a/blccc-1.99/examples/loveletters.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/blccc-1.99/examples/movies/Makefile.am b/blccc-1.99/examples/movies/Makefile.am deleted file mode 100644 index fecee12..0000000 --- a/blccc-1.99/examples/movies/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -## Makefile.am for blccc/examples/movies - -EXTRA_DIST = \ - camel.blm \ - the_fly.blm \ - bushfire_60frames.gif \ - bushfire-test.gif diff --git a/blccc-1.99/examples/movies/Makefile.in b/blccc-1.99/examples/movies/Makefile.in deleted file mode 100644 index ac36a8f..0000000 --- a/blccc-1.99/examples/movies/Makefile.in +++ /dev/null @@ -1,190 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -EXTRA_DIST = camel.blm the_fly.blm bushfire_60frames.gif bushfire-test.gif - -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../../config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps examples/movies/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = examples/movies - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/examples/movies/bushfire-test.gif b/blccc-1.99/examples/movies/bushfire-test.gif deleted file mode 100644 index 876c889..0000000 Binary files a/blccc-1.99/examples/movies/bushfire-test.gif and /dev/null differ diff --git a/blccc-1.99/examples/movies/bushfire_60frames.gif b/blccc-1.99/examples/movies/bushfire_60frames.gif deleted file mode 100644 index 2185514..0000000 Binary files a/blccc-1.99/examples/movies/bushfire_60frames.gif and /dev/null differ diff --git a/blccc-1.99/examples/movies/camel.blm b/blccc-1.99/examples/movies/camel.blm deleted file mode 100644 index b90ceb0..0000000 --- a/blccc-1.99/examples/movies/camel.blm +++ /dev/null @@ -1,419 +0,0 @@ -# BlinkenLights Movie 18x8 -# name = camel -# description = aa -# creator = Blinkenpaint 2.4 -# author = christine jaschek -# width = 18 -# height = 8 -# loop = no -# duration = 8400 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010000 -000001100000110000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010000 -000001100000110000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010000 -000001100000110001 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110001 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010000 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010000 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010010 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010110 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110111 - -@200 -010000000000000000 -111000000000000000 -101100110011000000 -000111001100100000 -000100000000011100 -000011111111100000 -000000100001000010 -000001100011000111 - -@200 -100000000000000000 -110000000000000000 -011001100110000000 -001110011001000000 -001000000000111000 -000111111111000000 -000010000001000010 -000110000011000111 - -@200 -000000000000000000 -100000000000000000 -110011001100000000 -011100110010000000 -010000000001110000 -001111111110000000 -000010000100000010 -000110001100000111 - -@200 -000000000000000000 -000000000000000000 -100110011000000000 -111001100100000000 -100000000010000000 -011111111101000000 -001000000100000010 -011000001100000111 - -@200 -000000000000000000 -000000000000000000 -001100110000000000 -110011001000000000 -000000000100000000 -111111111010000000 -001000010000000010 -011000110000000111 - -@200 -000000000000000000 -000000000000000000 -011001100000000000 -100110010000000000 -000000001000000000 -111111110100000000 -100000010000000010 -100000110000000111 - -@200 -000000000000000000 -000000000000000000 -110011000000000000 -001100100000000000 -000000010000000000 -111111101000000000 -000001000000000010 -000011000000000111 - -@200 -000000000000000000 -000000000000000000 -100110000000000000 -011001000000000000 -000000100000000000 -111111010000000000 -000001000000000010 -000011000000000111 - -@200 -000000000000000000 -000000000000000000 -001100000000000000 -110010000000000000 -000001000000000000 -111110100000000000 -000100000000000010 -001100000000000111 - -@200 -000000000000000000 -000000000000000000 -011000000000000000 -100100000000000000 -000010000000000000 -111101000000000000 -000100000000000010 -001100000000000111 - -@200 -000000000000000000 -000000000000000000 -110000000000000000 -001000000000000000 -000100000000000000 -111010000000000000 -010000000000000010 -110000000000000111 - -@200 -000000000000000000 -000000000000000000 -100000000000000000 -010000000000000000 -001000000000000000 -110100000000000000 -010000000000000010 -110000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -100000000000000000 -010000000000000000 -101000000000000000 -100000000000000010 -100000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -100000000000000000 -010000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -100000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@400 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 diff --git a/blccc-1.99/examples/movies/the_fly.blm b/blccc-1.99/examples/movies/the_fly.blm deleted file mode 100644 index 09275be..0000000 --- a/blccc-1.99/examples/movies/the_fly.blm +++ /dev/null @@ -1,1011 +0,0 @@ -# BlinkenLights Movie 18x8 -# name = THE FLY -# description= -# creator = Blinkenpaint 2.1 -# author = Robert -# width = 18 -# height = 8 -# duration = 25000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@750 -111110100001011111 -001000100001010000 -001000100001010000 -001000111111011111 -001000100001010000 -001000100001010000 -001000100001010000 -001000100001011111 - -@750 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@750 -111111010000010001 -100000010000010001 -100000010000010001 -111110010000001110 -100000010000000100 -100000010000000100 -100000010000000100 -100000011111000100 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@3000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000001000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000001000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000010000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000100000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000001000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000100000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000100000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000010000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000100000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000100000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000001000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000100000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000001000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000010000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000100000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000100000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000100000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000100000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000010000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000100000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000010000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000010000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000100000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000010000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000100000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000100000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000100000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000100000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000010000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000100000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -100000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -001000000000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -001000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -001000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -001000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -001000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -001000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -001000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000100000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000010000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000100000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000010000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000010000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000100000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -010000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000100000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000100000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000001000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000010000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000100000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000100000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000001000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000010000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000010000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000001000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000001000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000001000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000100000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -010000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -100000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -001000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -000001000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000001000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -001111111111100000 -001111111111100000 -001111111111111111 -001111111111100000 -001111111111100000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -001111111111100000 -001111111111100000 -001111111111111111 -001111111111100000 -001111111111100000 -000000000000000000 - -@50 -000000000000000000 -000000000000000000 -001111111111100000 -001111111111100000 -001111111111111111 -001111111111100000 -001111111111100000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000111000000000 -000000011000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000111000000000 -000000011000000000 -000000000000000000 -000000000000000000 - -@1000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000111000000000 -000000011000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 - -@500 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000 -00 -0 diff --git a/blccc-1.99/examples/on-demand/4467.blm b/blccc-1.99/examples/on-demand/4467.blm deleted file mode 100644 index 7450fdc..0000000 --- a/blccc-1.99/examples/on-demand/4467.blm +++ /dev/null @@ -1 +0,0 @@ -# BlinkenLights Movie 18x8 # name = wilber1 # description = gimp Wilber Standbild # creator = Blinkenpaint 2.4 # author = the gimp crew # width = 18 # height = 8 # loop = no # duration = 200 @200 000000010000000011 000000001000011101 011100110110000001 110001111111000001 100001011001000010 011100000000010100 000010000011101000 000001111111110000 \ No newline at end of file diff --git a/blccc-1.99/examples/on-demand/Makefile.am b/blccc-1.99/examples/on-demand/Makefile.am deleted file mode 100644 index 48fe8e0..0000000 --- a/blccc-1.99/examples/on-demand/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -## Makefile.am for blccc/examples/on-demand - -EXTRA_DIST = 4467.blm diff --git a/blccc-1.99/examples/on-demand/Makefile.in b/blccc-1.99/examples/on-demand/Makefile.in deleted file mode 100644 index 55b7a38..0000000 --- a/blccc-1.99/examples/on-demand/Makefile.in +++ /dev/null @@ -1,189 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -EXTRA_DIST = 4467.blm -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../../config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps examples/on-demand/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = examples/on-demand - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/examples/playlist.default.xml b/blccc-1.99/examples/playlist.default.xml deleted file mode 100644 index 3d8d342..0000000 --- a/blccc-1.99/examples/playlist.default.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blccc-1.99/install-sh b/blccc-1.99/install-sh deleted file mode 100755 index c122ef9..0000000 --- a/blccc-1.99/install-sh +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# 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 $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/blccc-1.99/ltmain.sh b/blccc-1.99/ltmain.sh deleted file mode 100644 index 46a9450..0000000 --- a/blccc-1.99/ltmain.sh +++ /dev/null @@ -1,5100 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun configure. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 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 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. - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" - -# Parse our command line options once, thoroughly. -while test $# -gt 0 -do - arg="$1" - shift - - case $arg in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles="$execute_dlfiles $arg" - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=yes - ;; - - --version) - echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - exit 0 - ;; - - --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 - exit 0 - ;; - - --debug) - echo "$progname: enabling shell trace mode" - set -x - ;; - - --dry-run | -n) - run=: - ;; - - --features) - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - exit 0 - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --preserve-dup-deps) duplicate_deps="yes" ;; - - --quiet | --silent) - show=: - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 -fi - -# 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= - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - case $nonopt in - *cc | *++ | gcc* | *-gcc*) - mode=link - for arg - do - case $arg in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case $mode in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - prev= - lastarg= - srcfile="$nonopt" - suppress_output= - - user_target=no - for arg - do - case $prev in - "") ;; - xcompiler) - # Aesthetically quote the previous argument. - prev= - lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - - case $arg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - continue - ;; - esac - - # Accept any command-line options. - case $arg in - -o) - if test "$user_target" != "no"; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 - fi - user_target=next - ;; - - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - lastarg="$lastarg $arg" - done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - - # Add the arguments to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - continue - ;; - esac - - case $user_target in - next) - # The next one is the -o target name - user_target=yes - continue - ;; - yes) - # We got the output file - user_target=set - libobj="$arg" - continue - ;; - esac - - # Accept the current argument as the source file. - lastarg="$srcfile" - srcfile="$arg" - - # Aesthetically quote the previous argument. - - # Backslashify any backslashes, double quotes, and dollar signs. - # These are the only characters that are still specially - # interpreted inside of double-quoted scrings. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $lastarg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" - ;; - esac - - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - done - - case $user_target in - set) - ;; - no) - # Get the name of the library object. - libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - ;; - *) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSfmso]' - case $libobj in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; - *.for) xform=for ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case $libobj in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 - ;; - esac - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $libobj" - else - removelist="$libobj" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; 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 "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 - else - 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 "$need_locks" = yes; then - until $run ln "$0" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; 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." - - $run $rm $removelist - exit 1 - fi - echo $srcfile > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then - # All platforms use -DPIC, to notify preprocessed assembler code. - command="$base_compile $srcfile $pic_flag -DPIC" - else - # Don't build PIC code - command="$base_compile $srcfile" - fi - if test "$build_old_libs" = yes; then - lo_libobj="$libobj" - dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$libobj"; then - dir="$objdir" - else - dir="$dir/$objdir" - fi - libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` - - if test -d "$dir"; then - $show "$rm $libobj" - $run $rm $libobj - else - $show "$mkdir $dir" - $run $mkdir $dir - status=$? - if test $status -ne 0 && test ! -d $dir; then - exit $status - fi - fi - fi - if test "$compiler_o_lo" = yes; then - output_obj="$libobj" - command="$command -o $output_obj" - elif test "$compiler_c_o" = yes; then - output_obj="$obj" - command="$command -o $output_obj" - fi - - $run $rm "$output_obj" - $show "$command" - if $run eval "$command"; then : - else - test -n "$output_obj" && $run $rm $removelist - exit 1 - fi - - if test "$need_locks" = warn && - 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." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed, then go on to compile the next one - if test x"$output_obj" != x"$libobj"; then - $show "$mv $output_obj $libobj" - if $run $mv $output_obj $libobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # If we have no pic_flag, then copy the object into place and finish. - if (test -z "$pic_flag" || test "$pic_mode" != default) && - test "$build_old_libs" = yes; then - # Rename the .lo from within objdir to obj - if test -f $obj; then - $show $rm $obj - $run $rm $obj - fi - - $show "$mv $libobj $obj" - if $run $mv $libobj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` - libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` - # Now arrange that obj and lo_libobj become the same file - $show "(cd $xdir && $LN_S $baseobj $libobj)" - if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - $run $rm "$lockfile" - fi - exit 0 - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Allow error messages only from the first compilation. - suppress_output=' >/dev/null 2>&1' - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $srcfile" - else - # All platforms use -DPIC, to notify preprocessed assembler code. - command="$base_compile $srcfile $pic_flag -DPIC" - fi - if test "$compiler_c_o" = yes; then - command="$command -o $obj" - output_obj="$obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" - $run $rm "$output_obj" - $show "$command" - if $run eval "$command"; then : - else - $run $rm $removelist - exit 1 - fi - - if test "$need_locks" = warn && - 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." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed - if test x"$output_obj" != x"$obj"; then - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Create an invalid libtool object if no PIC, so that we do not - # accidentally link it into a program. - if test "$build_libtool_libs" != yes; then - $show "echo timestamp > $libobj" - $run eval "echo timestamp > \$libobj" || exit $? - else - # Move the .lo from within objdir - $show "$mv $libobj $lo_libobj" - if $run $mv $libobj $lo_libobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - fi - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - $run $rm "$lockfile" - fi - - exit 0 - ;; - - # libtool link mode - link | relink) - modename="$modename: link" - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra - # flag for every libtool invokation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which 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" - 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= - - avoid_version=no - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - prefer_static_libs=no - preload=no - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -all-static | -static) - if test "X$arg" = "X-all-static"; then - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - else - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - fi - build_libtool_libs=no - build_old_libs=yes - prefer_static_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 - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test - ;; - *) qarg=$arg ;; - esac - libtool_args="$libtool_args $qarg" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case $prev in - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - else - dlprefiles="$dlprefiles $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit 1 - fi - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) rpath="$rpath $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; - esac - fi - prev= - continue - ;; - xcompiler) - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" - prev= - compile_command="$compile_command $wl$qarg" - finalize_command="$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 - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -avoid-version) - avoid_version=yes - 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 - $echo "$modename: more than one -exported-symbols argument is not allowed" - exit 1 - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - 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* | no/*-*-nonstopux*) - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - ;; - esac - continue - ;; - - -L*) - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 - fi - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "*) ;; - *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-mingw* | *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - # The PATH hackery in wrapper scripts is required on Windows - # in order for the loader to find any dlls it needs. - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -o) prev=output ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - continue - ;; - - -static) - # 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 - ;; - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Wl,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $wl$flag" - linker_flags="$linker_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - - *.lo | *.$objext) - # A library or standard object. - if test "$prev" = dlfiles; then - # This file was specified with -dlopen. - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $arg" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` - prev= - else - case $arg in - *.lo) libobjs="$libobjs $arg" ;; - *) objs="$objs $arg" ;; - esac - fi - ;; - - *.$libext) - # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" - prev= - else - deplibs="$deplibs $arg" - 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. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done # argument parsing loop - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - - # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'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\" - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - # Create the object directory. - if test ! -d $output_objdir; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test $status -ne 0 && test ! -d $output_objdir; then - exit $status - fi - fi - - # Determine the type of output - case $output in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - *.$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 test "X$duplicate_deps" = "Xyes" ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - libs="$libs $deplib" - done - 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 link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit 1 - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - for pass in $passes; do - if test $linkmode = prog; then - # Determine which files to process - case $pass in - dlopen) - libs="$dlfiles" - save_deplibs="$deplibs" # Collect dlpreopened libraries - deplibs= - ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - for deplib in $libs; do - lib= - found=no - case $deplib in - -l*) - if test $linkmode = oldlib && test $linkmode = obj; then - $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 - continue - fi - if test $pass = conv; then - deplibs="$deplib $deplibs" - continue - fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` - for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - # Search the libtool library - lib="$searchdir/lib${name}.la" - if test -f "$lib"; then - found=yes - break - fi - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - ;; # -l - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test $pass = conv && continue - newdependency_libs="$deplib $newdependency_libs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - prog) - if test $pass = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test $pass = scan; then - deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - ;; - *) - $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test $pass = link; then - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) lib="$deplib" ;; - *.$libext) - if test $pass = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - if test "$deplibs_check_method" != pass_all; then - 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 used here." - else - echo - echo "*** Warning: Linking the shared library $output against the" - echo "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - continue - ;; - prog) - if test $pass != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - if test $found = yes || test -f "$lib"; then : - else - $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit 1 - fi - - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - # If the library was installed with an old release of libtool, - # it will not redefine variable installed. - installed=yes - - # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test $linkmode = oldlib && test $linkmode = obj; }; then - # Add dl[pre]opened files of deplib - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" - fi - - if test $pass = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - elif test $linkmode != prog && test $linkmode != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit 1 - fi - continue - fi # $pass = conv - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 - fi - - # This library was specified with -dlopen. - if test $pass = dlopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit 1 - fi - if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. - dlprefiles="$dlprefiles $lib" - else - newdlfiles="$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 - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 - abs_ladir="$ladir" - fi - ;; - esac - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - $echo "$modename: warning: library \`$lib' was moved." 1>&2 - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$libdir" - absdir="$libdir" - fi - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - - # This library was specified with -dlpreopen. - if test $pass = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit 1 - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test $linkmode = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" - fi - continue - fi - - if test $linkmode = prog && test $pass != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test - esac - # Need to link against all dependency_libs? - if test $linkalldeplibs = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - link_static=no # Whether the deplib will be linked statically - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - # Link against this shared library - - if test "$linkmode,$pass" = "prog,link" || - { test $linkmode = lib && test $hardcode_into_libs = yes; }; 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 "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - if test $linkmode = prog; then - # We need to hardcode the library path - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - fi - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - realname="$2" - shift; 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*) - major=`expr $current - $age` - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - soname=`echo $soroot | ${SED} -e 's/^.*\///'` - newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - $show "extracting exported symbol list from \`$soname'" - save_ifs="$IFS"; IFS='~' - eval cmds=\"$extract_expsyms_cmds\" - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - save_ifs="$IFS"; IFS='~' - eval cmds=\"$old_archive_from_expsyms_cmds\" - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - 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 $linkmode = prog || test "$mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case "$libdir" in - [\/]*) - add_dir="-L$inst_prefix_dir$libdir $add_dir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; - esac - fi - if test $linkmode = prog; 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 "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - fi - fi - fi - - if test $linkmode = prog || test "$mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - add="-l$name" - 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 - [\/]*) - add_dir="-L$inst_prefix_dir$libdir $add_dir" - ;; - esac - fi - add="-l$name" - fi - - if test $linkmode = prog; 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 $linkmode = prog; then - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - - # Try to link the static library - # 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 "$hardcode_direct" != unsupported; 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 "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; 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 can not 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 "$module" = yes; 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 "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test $linkmode = lib; then - if test -n "$dependency_libs" && - { test $hardcode_into_libs != yes || test $build_old_libs = yes || - test $link_static = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; - esac;; - *) temp_deplibs="$temp_deplibs $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - - if test $link_all_deplibs != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - case $deplib in - -L*) path="$deplib" ;; - *.la) - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$deplib" && dir="." - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - fi - ;; - esac - if grep "^installed=no" $deplib > /dev/null; then - path="-L$absdir/$objdir" - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi - if test "$absdir" != "$libdir"; then - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi - path="-L$absdir" - fi - ;; - *) continue ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$deplibs $path" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test $pass = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test $pass != dlopen; then - test $pass != scan && dependency_libs="$newdependency_libs" - if test $pass != conv; then - # 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 "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_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 - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - *) - 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 "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - if test "$pass" = "conv" && - { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then - libs="$deplibs" # reset libs - deplibs= - fi - done # for pass - if test $linkmode = prog; then - dlfiles="$newdlfiles" - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi - - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - objs="$objs$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval libname=\"$libname_spec\" - ;; - *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval libname=\"$libname_spec\" - else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit 1 - else - echo - echo "*** Warning: Linking the shared library $output against the non-libtool" - echo "*** objects $objs is not portable!" - libobjs="$libobjs $objs" - fi - fi - - if test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 - fi - - set dummy $rpath - if test $# -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - libext=al - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - IFS="$save_ifs" - - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - current="$2" - revision="$3" - age="$4" - - # 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]) ;; - *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case $revision in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case $age in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - if test $age -gt $current; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - 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 - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - minor_current=`expr $current + 1` - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current"; - ;; - - irix | nonstopux) - major=`expr $current - $age + 1` - - 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 $loop != 0; do - iface=`expr $revision - $loop` - loop=`expr $loop - 1` - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - osf) - major=`expr $current - $age` - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test $loop != 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - major=`expr $current - $age` - versuffix="-$major" - ;; - - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - verstring="0.0" - 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 "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - fi - - if test "$mode" != relink; then - # Remove our outputs. - $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" - $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - for path in $notinst_path; do - lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` - deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` - dependency_libs=`echo "$dependency_libs " | ${SED} -e '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 - temp_xrpath="$temp_xrpath -R$libdir" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - if test $hardcode_into_libs != yes || test $build_old_libs = yes; 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 "*) ;; - *) dlfiles="$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 "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - deplibs="$deplibs -framework System" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test $build_libtool_need_lc = "yes"; then - deplibs="$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 behaviour. - 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. - $rm conftest.c - cat > conftest.c </dev/null` - 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 "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | ${SED} 10q \ - | egrep "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - 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 - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; 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 below in file_magic test - if eval echo \"$potent_lib\" 2>/dev/null \ - | ${SED} 10q \ - | egrep "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - 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 - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | - grep . >/dev/null; then - echo - if test "X$deplibs_check_method" = "Xnone"; 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 - fi - ;; - 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 is the System framework - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; 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 "$build_old_libs" = no; 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 $allow_undefined = no; 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 "$build_old_libs" = no; 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 - - # 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 "$build_libtool_libs" = yes; then - if test $hardcode_into_libs = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$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 - rpath="$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 "$mode" != relink && 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 library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" - shift; shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - test -z "$dlname" && dlname=$soname - - lib="$output_objdir/$realname" - for link - do - linknames="$linknames $link" - done - - # Ensure that we have .o objects for linkers which dislike .lo - # (e.g. aix) in case we are running --disable-static - for obj in $libobjs; do - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` - if test ! -f $xdir/$oldobj; then - $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" - $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? - fi - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - eval cmds=\"$export_symbols_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - if test -n "$export_symbols_regex"; then - $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" - $run eval '$mv "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' - fi - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" - else - save_deplibs="$deplibs" - for conv in $convenience; do - tmp_deplibs= - for test_deplib in $deplibs; do - if test "$test_deplib" != "$conv"; then - tmp_deplibs="$tmp_deplibs $test_deplib" - fi - done - deplibs="$tmp_deplibs" - done - eval cmds=\"$archive_cmds\" - deplibs="$save_deplibs" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit 0 - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" - $run 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 "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case $output in - *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $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= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - eval cmds=\"$reload_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit 0 - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${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" - $run eval "echo timestamp > $libobj" || exit $? - exit 0 - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - eval cmds=\"$reload_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - else - # Just create a symlink. - $show $rm $libobj - $run $rm $libobj - xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$libobj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` - oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` - $show "(cd $xdir && $LN_S $oldobj $baseobj)" - $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? - fi - - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit 0 - ;; - - prog) - case $host in - *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; - esac - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi - - if test "$preload" = yes; then - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && - test "$dlopen_self_static" = unknown; then - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." - fi - fi - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - compile_command="$compile_command $compile_deplibs" - finalize_command="$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 "*) ;; - *) finalize_rpath="$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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - 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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) finalize_perm_rpath="$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 "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - - dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - fi - fi - - if test -n "$dlsyms"; then - case $dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${outputname}.nm" - - $show "$rm $nlist ${nlist}S ${nlist}T" - $run $rm "$nlist" "${nlist}S" "${nlist}T" - - # Parse the name list into a source file. - $show "creating $output_objdir/$dlsyms" - - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - $show "generating symbol list for \`$output'" - - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - for arg in $progfiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - if test -n "$export_symbols_regex"; then - $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$output.exp" - $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - else - $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' - $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - name=`echo "$arg" | ${SED} -e 's%^.*/%%'` - $run eval 'echo ": $name " >> "$nlist"' - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # 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/$dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] = -{\ -" - - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" - - $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - fi - - pic_flag_for_symtable= - 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*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; - esac;; - *-*-hpux*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DPIC";; - esac - esac - - # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 - ;; - 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 "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi - - if test $need_relink = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - status=$? - - # Delete the generated files. - if test -n "$dlsyms"; then - $show "$rm $output_objdir/${outputname}S.${objext}" - $run $rm "$output_objdir/${outputname}S.${objext}" - fi - - exit $status - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - 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 - rpath="$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 - rpath="$rpath$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; 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 "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $run $rm $output - # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? - exit 0 - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname - - $show "$link_command" - $run eval "$link_command" || exit $? - - # Now create the wrapper script. - $show "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}\" || 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 - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case $0 in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) exeext=.exe ;; - *) exeext= ;; - esac - $rm $output - trap "$rm $output; exit 1" 1 2 15 - - $echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# 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. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='$sed_quote_subst' - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variable: - 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 - echo=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - echo >> $output "\ - 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 >> $output "\ - - # 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 >> $output "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - echo >> $output "\ - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # 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 \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - - export $shlibpath_var -" - fi - - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $echo >> $output "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. -" - case $host in - # win32 systems need to use the prog path for dll - # lookup to work - *-*-cygwin* | *-*-pw32*) - $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} -" - ;; - - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) - $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} -" - ;; - - *) - $echo >> $output "\ - # Export the path to the program. - PATH=\"\$progdir:\$PATH\" - export PATH - - exec \$program \${1+\"\$@\"} -" - ;; - esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 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\ -" - chmod +x $output - fi - exit 0 - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` - done - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" - else - # Ensure that we have .o objects in place in case we decided - # not to build a shared library, and have fallen back to building - # static libs even though --disable-static was passed! - for oldobj in $oldobjs; do - if test ! -f $oldobj; then - xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$oldobj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` - obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` - $show "(cd $xdir && ${LN_S} $obj $baseobj)" - $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? - fi - done - - eval cmds=\"$old_archive_cmds\" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "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}\" || 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 - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - - # Only create the output if not a dry run. - if test -z "$run"; then - for installed in no yes; do - if test "$installed" = yes; 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) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdependency_libs="$newdependency_libs $libdir/$name" - ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - for lib in $dlfiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlfiles="$newdlfiles $libdir/$name" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlprefiles="$newdlprefiles $libdir/$name" - done - dlprefiles="$newdlprefiles" - fi - $rm $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac - $echo > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# 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' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test $need_relink = yes; then - $echo >> $output "\ -relink_command=\"$relink_command\"" - fi - done - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac - exit 0 - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg="$nonopt" - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest="$arg" - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; - -s) - stripme=" -s" - continue - ;; - -*) ;; - - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest="$arg" - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit 1 - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test $# -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - 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. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - library_names= - old_library= - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ - test "X$dir" = "X$file/" && dir= - dir="$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 "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. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit 1 - fi - - 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 - - $echo "$modename: warning: relinking \`$file'" 1>&2 - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit 1 - fi - fi - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$srcname $destdir/$realname" - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run eval "$striplib $destdir/$realname" || exit $? - fi - - if test $# -gt 0; then - # Delete the old symlinks, and create new ones. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$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 - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit 0 - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin*|*mingw*) - wrapper=`echo $file | ${SED} -e 's,.exe$,,'` - ;; - *) - wrapper=$file - ;; - esac - if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then - notinst_deplibs= - relink_command= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $wrapper ;; - *) . ./$wrapper ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit 1 - fi - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $wrapper ;; - *) . ./$wrapper ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir="/tmp" - test -n "$TMPDIR" && tmpdir="$TMPDIR" - tmpdir="$tmpdir/libtool-$$" - if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : - else - $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 - continue - fi - file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` - - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - ${rm}r "$tmpdir" - continue - fi - file="$outputname" - else - $echo "$modename: warning: cannot relink \`$file'" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyways - case $install_prog,$host in - /usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` - ;; - esac - ;; - esac - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && ${rm}r "$tmpdir" - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $0 --finish$current_libdirs' - else - exit 0 - fi - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" = ":" && exit 0 - - 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" - echo "more information, such as the ld(1) and ld.so(8) manual pages." - echo "----------------------------------------------------------------------" - exit 0 - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit 1 - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - dir= - case $file in - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - 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 - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved enviroment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # 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 0 - fi - ;; - - # libtool clean and uninstall mode - clean | uninstall) - modename="$modename: $mode" - rm="$nonopt" - files= - rmforce= - 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) rm="$rm $arg"; rmforce=yes ;; - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - rmdirs= - - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$file"; then - dir=. - objdir="$objdir" - else - objdir="$dir/$objdir" - fi - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test $mode = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates - if test $mode = clean; then - case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; - 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 test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - - if test $mode = uninstall; then - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test $? != 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test $? != 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - # FIXME: should reinstall the best remaining shared library. - fi - fi - ;; - - *.lo) - if test "$build_old_libs" = yes; then - oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` - rmfiles="$rmfiles $dir/$oldobj" - fi - ;; - - *) - # Do a test to see if this is a libtool program. - if test $mode = clean && - (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$file - - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" - fi - fi - ;; - esac - $show "$rm $rmfiles" - $run $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 - $show "rmdir $dir" - $run rmdir $dir >/dev/null 2>&1 - fi - done - - exit $exit_status - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - fi -fi # test -z "$show_help" - -if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit 1 -fi - -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --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 - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --version print version information - -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. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE." - exit 0 - ;; - -clean) - $echo \ -"Usage: $modename [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: $modename [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 - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static linking - -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: $modename [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: $modename [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: $modename [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 rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [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 - -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 - -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 - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -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: $modename [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." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; -esac - -echo -$echo "Try \`$modename --help' for more information about other modes." - -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/blccc-1.99/missing b/blccc-1.99/missing deleted file mode 100755 index 22e101a..0000000 --- a/blccc-1.99/missing +++ /dev/null @@ -1,198 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 2001, 2002 Free Software Foundation, Inc. -# Franc,ois 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.in; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing - GNU libit 0.0" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`$configure_ac'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`$configure_ac'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`$configure_ac'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' $configure_ac` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`$configure_ac'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/blccc-1.99/mkinstalldirs b/blccc-1.99/mkinstalldirs deleted file mode 100755 index 4f58503..0000000 --- a/blccc-1.99/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/blccc-1.99/src/Makefile.am b/blccc-1.99/src/Makefile.am deleted file mode 100644 index 4ba4e6b..0000000 --- a/blccc-1.99/src/Makefile.am +++ /dev/null @@ -1,62 +0,0 @@ -## Makefile.am for blccc/src - -SUBDIRS = modules - -bin_PROGRAMS = blccc - -AM_CPPFLAGS = -DG_DISABLE_DEPRECATED - -INCLUDES = @GLIB_CFLAGS@ @BLIB_CFLAGS@ -LDADD = @GLIB_LIBS@ @BLIB_LIBS@ -lm - -CLEANFILES = - -blccc_sources = \ - blaccept.c \ - blaccept.h \ - blapp.c \ - blapp.h \ - blccc.c \ - blccc.h \ - blconfig.c \ - blconfig.h \ - blisdn.c \ - blisdn.h \ - bllisten.c \ - bllisten.h \ - bllogger.c \ - bllogger.h \ - blloveletters.c \ - blloveletters.h \ - blmarshal.list \ - blondemand.c \ - blondemand.h \ - blplaylist.c \ - blplaylist.h \ - blplaylist-parse.c \ - blplaylist-parse.h \ - blplaylistitem.c \ - blplaylistitem.h \ - bltheater.c \ - bltheater.h \ - bltypes.h \ - main.c - -blccc_built_sources = \ - blmarshal.c \ - blmarshal.h - -blccc_SOURCES = $(blccc_built_sources) $(blccc_sources) - -gen_sources = xgen-gmh xgen-gmc -CLEANFILES += $(gen_sources) - -$(srcdir)/blmarshal.h: blmarshal.list - $(GLIB_GENMARSHAL) --prefix=bl_marshal $(srcdir)/blmarshal.list --header >> xgen-gmh \ - && (cmp -s xgen-gmh $@ || cp xgen-gmh $@) \ - && rm -f xgen-gmh xgen-gmh~ -$(srcdir)/blmarshal.c: $(srcdir)/blmarshal.h - echo "#include \"blmarshal.h\"" >> xgen-gmc \ - && $(GLIB_GENMARSHAL) --prefix=bl_marshal $(srcdir)/blmarshal.list --body >> xgen-gmc \ - && cp xgen-gmc $@ \ - && rm -f xgen-gmc xgen-gmc~ diff --git a/blccc-1.99/src/Makefile.in b/blccc-1.99/src/Makefile.in deleted file mode 100644 index e6e51fd..0000000 --- a/blccc-1.99/src/Makefile.in +++ /dev/null @@ -1,452 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -SUBDIRS = modules - -bin_PROGRAMS = blccc - -AM_CPPFLAGS = -DG_DISABLE_DEPRECATED - -INCLUDES = @GLIB_CFLAGS@ @BLIB_CFLAGS@ -LDADD = @GLIB_LIBS@ @BLIB_LIBS@ -lm -CLEANFILES = $(gen_sources) - -blccc_sources = blaccept.c blaccept.h blapp.c blapp.h blccc.c blccc.h blconfig.c blconfig.h blisdn.c blisdn.h bllisten.c bllisten.h bllogger.c bllogger.h blloveletters.c blloveletters.h blmarshal.list blondemand.c blondemand.h blplaylist.c blplaylist.h blplaylist-parse.c blplaylist-parse.h blplaylistitem.c blplaylistitem.h bltheater.c bltheater.h bltypes.h main.c - - -blccc_built_sources = blmarshal.c blmarshal.h - - -blccc_SOURCES = $(blccc_built_sources) $(blccc_sources) - -gen_sources = xgen-gmh xgen-gmc -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -bin_PROGRAMS = blccc$(EXEEXT) -PROGRAMS = $(bin_PROGRAMS) - - -DEFS = @DEFS@ -I. -I$(srcdir) -I.. -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -blccc_OBJECTS = blmarshal.$(OBJEXT) blaccept.$(OBJEXT) blapp.$(OBJEXT) \ -blccc.$(OBJEXT) blconfig.$(OBJEXT) blisdn.$(OBJEXT) bllisten.$(OBJEXT) \ -bllogger.$(OBJEXT) blloveletters.$(OBJEXT) blondemand.$(OBJEXT) \ -blplaylist.$(OBJEXT) blplaylist-parse.$(OBJEXT) \ -blplaylistitem.$(OBJEXT) bltheater.$(OBJEXT) main.$(OBJEXT) -blccc_LDADD = $(LDADD) -blccc_DEPENDENCIES = -blccc_LDFLAGS = -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -SOURCES = $(blccc_SOURCES) -OBJECTS = $(blccc_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .lo .o .obj .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-binPROGRAMS: - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) - -distclean-binPROGRAMS: - -maintainer-clean-binPROGRAMS: - -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(bindir) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - if test -f $$p; then \ - echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ - $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ - else :; fi; \ - done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - list='$(bin_PROGRAMS)'; for p in $$list; do \ - rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ - done - -.c.o: - $(COMPILE) -c $< - -# FIXME: We should only use cygpath when building on Windows, -# and only if it is available. -.c.obj: - $(COMPILE) -c `cygpath -w $<` - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -rm -f *.$(OBJEXT) - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -.c.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.s.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.S.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -maintainer-clean-libtool: - -blccc$(EXEEXT): $(blccc_OBJECTS) $(blccc_DEPENDENCIES) - @rm -f blccc$(EXEEXT) - $(LINK) $(blccc_LDFLAGS) $(blccc_OBJECTS) $(blccc_LDADD) $(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. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = src - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -blaccept.o: blaccept.c bltypes.h blaccept.h blccc.h bllisten.h -blapp.o: blapp.c bltypes.h blapp.h blplaylistitem.h -blccc.o: blccc.c bltypes.h blapp.h blplaylistitem.h blccc.h blconfig.h \ - blisdn.h blondemand.h blplaylist.h bltheater.h -blconfig.o: blconfig.c bltypes.h blapp.h blplaylistitem.h blconfig.h -blisdn.o: blisdn.c bltypes.h blconfig.h blmarshal.h blisdn.h -bllisten.o: bllisten.c bltypes.h blaccept.h bllisten.h -bllogger.o: bllogger.c bltypes.h bllogger.h -blloveletters.o: blloveletters.c bltypes.h blloveletters.h -blmarshal.o: blmarshal.c blmarshal.h -blondemand.o: blondemand.c bltypes.h blloveletters.h blondemand.h -blplaylist-parse.o: blplaylist-parse.c bltypes.h blconfig.h blplaylist.h \ - blplaylistitem.h blplaylist-parse.h -blplaylist.o: blplaylist.c bltypes.h blconfig.h blplaylist.h \ - blplaylistitem.h blplaylist-parse.h -blplaylistitem.o: blplaylistitem.c bltypes.h blplaylistitem.h -bltheater.o: bltheater.c bltypes.h blmarshal.h blconfig.h bllogger.h \ - blplaylist.h blplaylistitem.h bltheater.h -main.o: main.c ../config.h bltypes.h blccc.h blconfig.h bllisten.h \ - blondemand.h - -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: install-binPROGRAMS -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: uninstall-binPROGRAMS -uninstall: uninstall-recursive -all-am: Makefile $(PROGRAMS) -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(bindir) - - -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ - mostlyclean-libtool mostlyclean-tags \ - mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ - clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ - distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-binPROGRAMS \ - maintainer-clean-compile maintainer-clean-libtool \ - maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ -maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ -mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile mostlyclean-libtool distclean-libtool \ -clean-libtool maintainer-clean-libtool install-data-recursive \ -uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -$(srcdir)/blmarshal.h: blmarshal.list - $(GLIB_GENMARSHAL) --prefix=bl_marshal $(srcdir)/blmarshal.list --header >> xgen-gmh \ - && (cmp -s xgen-gmh $@ || cp xgen-gmh $@) \ - && rm -f xgen-gmh xgen-gmh~ -$(srcdir)/blmarshal.c: $(srcdir)/blmarshal.h - echo "#include \"blmarshal.h\"" >> xgen-gmc \ - && $(GLIB_GENMARSHAL) --prefix=bl_marshal $(srcdir)/blmarshal.list --body >> xgen-gmc \ - && cp xgen-gmc $@ \ - && rm -f xgen-gmc xgen-gmc~ - -# 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: diff --git a/blccc-1.99/src/blaccept.c b/blccc-1.99/src/blaccept.c deleted file mode 100644 index 10c9dc7..0000000 --- a/blccc-1.99/src/blaccept.c +++ /dev/null @@ -1,347 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "bltypes.h" - -#include "blaccept.h" -#include "blccc.h" -#include "bllisten.h" - - -const gchar *welcome_msg = -"--------------------------------------------------\n" -"Welcome to the Blinkenlights Chaos Control Center.\n" -"--------------------------------------------------\n" -"Type 'help' to get a list of supported commands.\n"; - -const gchar *help_msg = -"Supported commands are:\n" -" bye - closes the connection\n" -" help - shows this list of supported commands\n" -" isdn block - block control through isdn lines\n" -" isdn unblock - allow control through isdn lines\n" -" enable - enable application\n" -" disable - disable application\n" -" list - list items in current playlist\n" -" load - load new playlist\n" -" start - load new playlist and start immidiately\n" -" next - skip to next item\n" -" reload - reload current playlist\n" -" status - show status info\n" -" add - add recipient\n" -" remove - remove recipient\n" -#if 0 -" love - play loveletter \n" -#endif -" i - invert display\n" -" v - flip display vertically\n" -" h - flip display horizontally\n" -" l - mirror left side\n" -" r - mirror right side\n" -" 0..9 # * - fake isdn event\n"; - -const gchar *load_msg = "Playlist loaded.\n"; -const gchar *reload_msg = "Playlist reloaded.\n"; -const gchar *added_msg = "Host added.\n"; -const gchar *removed_msg = "Host removed.\n"; -const gchar *love_msg = "Made love.\n"; -const gchar *event_msg = "Event dispatched.\n"; -const gchar *ok_msg = "OK\n"; -const gchar *failed_msg = "Operation failed.\n"; -const gchar *timeout_msg = "\nConnection timed out.\n"; - -const gchar *unknown_msg = -"Unknown command, type 'help' to get a list of supported commands.\n"; - - -static inline void -write_prompt (gint sock) -{ - write (sock, "> ", 2); -} - -void -bl_accept_new (BlListen *listen) -{ - gint len; - gint sock; - gchar buf[1024]; - fd_set set; - struct timeval tv; - - g_return_if_fail (BL_IS_LISTEN (listen)); - - sock = accept (listen->sock, NULL, 0); - - g_thread_create ((GThreadFunc) bl_accept_new, listen, FALSE, NULL); - - write (sock, welcome_msg, strlen (welcome_msg)); - write_prompt (sock); - - while (TRUE) - { - /* wait for input with a timeout of 10 minutes */ - - FD_ZERO (&set); - FD_SET (sock, &set); - tv.tv_sec = 600; - tv.tv_usec = 0; - - len = select (sock + 1, &set, NULL, NULL, &tv); - - if (len < 0) - { - if (errno == EINTR) /* select() was interupted */ - continue; - else - break; - } - - if (len == 0) /* select() timed out */ - { - write (sock, timeout_msg, strlen (timeout_msg)); - break; - } - - len = read (sock, &buf, sizeof (buf)); - - if (len < 0) - break; - - if ((len > 2 && strncmp (buf, "bye", 3) == 0) || - (len > 3 && strncmp (buf, "quit", 4) == 0)) - { - write (sock, "Good Bye.\n", 10); - break; - } - else if (len > 5 && strncmp (buf, "status", 6) == 0) - { - if (listen->ccc) - { - gchar *status = bl_ccc_status (listen->ccc); - write (sock, status, strlen (status)); - g_free (status); - } - } - else if (len > 4 && strncmp (buf, "add ", 4) == 0) - { - gchar *host = g_strndup (buf + 4, len - 4); - g_strstrip (host); - if (listen->ccc && bl_ccc_add (listen->ccc, host, NULL)) - write (sock, added_msg, strlen (added_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (host); - } - else if (len > 7 && strncmp (buf, "remove ", 7) == 0) - { - gchar *host = g_strndup (buf + 7, len - 7); - g_strstrip (host); - if (listen->ccc && bl_ccc_remove (listen->ccc, host, NULL)) - write (sock, removed_msg, strlen (removed_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (host); - } -#if 0 - else if (len > 5 && strncmp (buf, "love ", 5) == 0) - { - gchar *id = g_strndup (buf + 5, len - 5); - g_strstrip (id); - if (listen->ccc && bl_ccc_on_demand (listen->ccc, id)) - write (sock, love_msg, strlen (love_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (id); - } -#endif - else if (len > 5 && strncmp (buf, "reload", 6) == 0) - { - if (listen->ccc && bl_ccc_reload (listen->ccc)) - write (sock, reload_msg, strlen (reload_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - } - else if (len > 3 && strncmp (buf, "list", 4) == 0) - { - if (listen->ccc) - { - gchar *list = bl_ccc_list (listen->ccc); - write (sock, list, strlen (list)); - g_free (list); - } - } - else if (len > 5 && strncmp (buf, "load ", 5) == 0) - { - gchar *name = g_strndup (buf + 5, len - 5); - g_strstrip (name); - if (listen->ccc && bl_ccc_load (listen->ccc, name, FALSE)) - write (sock, load_msg, strlen (load_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (name); - } - else if (len > 6 && strncmp (buf, "start ", 6) == 0) - { - gchar *name = g_strndup (buf + 6, len - 6); - g_strstrip (name); - if (listen->ccc && bl_ccc_load (listen->ccc, name, TRUE)) - write (sock, load_msg, strlen (load_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (name); - } - else if (len > 3 && strncmp (buf, "next", 4) == 0) - { - if (listen->ccc) - { - gchar *name = bl_ccc_next (listen->ccc); - if (name) - { - g_snprintf (buf, sizeof (buf), - "skipped to next item %s\n", name); - write (sock, buf, strlen (buf)); - } - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (name); - } - } - else if (len > 9 && strncmp (buf, "isdn block", 10) == 0) - { - if (listen->ccc) - bl_ccc_isdn_block (listen->ccc); - } - else if (len > 11 && strncmp (buf, "isdn unblock", 12) == 0) - { - if (listen->ccc) - bl_ccc_isdn_unblock (listen->ccc); - } - else if (len > 6 && strncmp (buf, "enable ", 7) == 0) - { - gchar *num = g_strndup (buf + 7, len - 7); - g_strstrip (num); - if (listen->ccc && bl_ccc_app_enable (listen->ccc, num)) - write (sock, ok_msg, strlen (ok_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (num); - } - else if (len > 7 && strncmp (buf, "disable ", 8) == 0) - { - gchar *num = g_strndup (buf + 8, len - 8); - g_strstrip (num); - if (listen->ccc && bl_ccc_app_disable (listen->ccc, num)) - write (sock, ok_msg, strlen (ok_msg)); - else - write (sock, failed_msg, strlen (failed_msg)); - g_free (num); - } - else if (len > 3 && strncmp (buf, "help", 4) == 0) - { - write (sock, help_msg, strlen (help_msg)); - } - else if (len > 0 && strncmp (buf, "i", 1) == 0) - { - if (listen->ccc && listen->ccc->effects) - listen->ccc->effects->invert ^= B_EFFECT_SCOPE_ALL; - } - else if (len > 0 && strncmp (buf, "v", 1) == 0) - { - if (listen->ccc && listen->ccc->effects) - listen->ccc->effects->vflip ^= B_EFFECT_SCOPE_ALL; - } - else if (len > 0 && strncmp (buf, "h", 1) == 0) - { - if (listen->ccc && listen->ccc->effects) - listen->ccc->effects->hflip ^= B_EFFECT_SCOPE_ALL; - } - else if (len > 0 && strncmp (buf, "l", 1) == 0) - { - if (listen->ccc && listen->ccc->effects) - { - listen->ccc->effects->lmirror ^= B_EFFECT_SCOPE_ALL; - - if (listen->ccc->effects->lmirror) - listen->ccc->effects->rmirror = B_EFFECT_SCOPE_NONE; - } - } - else if (len > 0 && strncmp (buf, "r", 1) == 0) - { - if (listen->ccc && listen->ccc->effects) - { - listen->ccc->effects->rmirror ^= B_EFFECT_SCOPE_ALL; - - if (listen->ccc->effects->rmirror) - listen->ccc->effects->lmirror = B_EFFECT_SCOPE_NONE; - } - } - else if (len > 1 && - ((*buf >= '0' && *buf <= '9') || *buf == '#' || *buf == '*')) - { - if (listen->ccc) - { - BModuleEvent event; - - event.device_id = 0; - event.type = B_EVENT_TYPE_KEY; - - switch (*buf) - { - case '#': - event.key = B_KEY_HASH; - break; - - case '*': - event.key = B_KEY_ASTERISK; - break; - - default: - event.key = *buf - '0' + B_KEY_0; - } - - bl_ccc_event (listen->ccc, &event); - write (sock, event_msg, strlen (event_msg)); - } - else - { - write (sock, failed_msg, strlen (failed_msg)); - } - } - else - { - write (sock, unknown_msg, strlen (unknown_msg)); - } - - write_prompt (sock); - } - - close (sock); -} diff --git a/blccc-1.99/src/blaccept.h b/blccc-1.99/src/blaccept.h deleted file mode 100644 index 89129f9..0000000 --- a/blccc-1.99/src/blaccept.h +++ /dev/null @@ -1,29 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_ACCEPT_H__ -#define __BL_ACCEPT_H__ - -G_BEGIN_DECLS - -void bl_accept_new (BlListen *listen); - -G_END_DECLS - -#endif /* __BL_ACCEPT_H__ */ diff --git a/blccc-1.99/src/blapp.c b/blccc-1.99/src/blapp.c deleted file mode 100644 index 5e8456a..0000000 --- a/blccc-1.99/src/blapp.c +++ /dev/null @@ -1,190 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include - -#include "bltypes.h" - -#include "blapp.h" - - -static void bl_app_class_init (BlAppClass *klass); -static void bl_app_init (BlApp *item); -static void bl_app_finalize (GObject *object); -static gchar * bl_app_describe (BlPlaylistItem *item); - -static GObjectClass *parent_class = NULL; - -GType -bl_app_get_type (void) -{ - static GType app_type = 0; - - if (! app_type) - { - static const GTypeInfo app_info = - { - sizeof (BlAppClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) bl_app_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlApp), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_app_init, - }; - - app_type = g_type_register_static (BL_TYPE_PLAYLIST_ITEM, - "BlApp", &app_info, 0); - } - - return app_type; -} - -static void -bl_app_class_init (BlAppClass *klass) -{ - GObjectClass *object_class; - BlPlaylistItemClass *item_class; - - object_class = G_OBJECT_CLASS (klass); - item_class = BL_PLAYLIST_ITEM_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = bl_app_finalize; - - item_class->describe = bl_app_describe; -} - -static void -bl_app_init (BlApp *item) -{ -} - -static void -bl_app_finalize (GObject *object) -{ - BlApp *app = BL_APP (object); - - g_free (app->name); - app->name = NULL; - g_free (app->number); - app->number = NULL; - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static gchar * -bl_app_describe (BlPlaylistItem *item) -{ - BlApp *app = BL_APP (item); - - return g_strdup_printf ("%s (%s)", app->name, app->number); -} - -static BlApp * -bl_app_new (GType module_type, - const gchar *name, - const gchar *number, - const gchar *vamp, - gboolean public, - gboolean disabled, - gint priority) -{ - BlApp *app = g_object_new (BL_TYPE_APP, NULL); - - app->name = g_strdup (name); - app->number = g_strdup (number); - app->vamp = g_strdup (vamp); - app->disabled = disabled; - app->public = public; - app->priority = priority; - - BL_PLAYLIST_ITEM (app)->module = g_object_new (module_type, NULL); - - return app; -} - -BlApp * -bl_app_new_from_attributes (const gchar **names, - const gchar **values, - const gchar *root, - GError **error) -{ - GType module_type; - const gchar *type = NULL; - const gchar *name = NULL; - const gchar *number = NULL; - const gchar *vamp = NULL; - gboolean public = FALSE; - gboolean disabled = FALSE; - gint priority = 0; - gint i; - - g_return_val_if_fail (names != NULL && values != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - for (i = 0; names[i] && values[i]; i++) - { - if (strcmp (names[i], "name") == 0) - name = values[i]; - else if (strcmp (names[i], "number") == 0) - number = values[i]; - else if (strcmp (names[i], "type") == 0) - type = values[i]; - else if (strcmp (names[i], "vamp") == 0) - vamp = values[i]; - else if (strcmp (names[i], "public") == 0) - b_parse_boolean (values[i], &public); - else if (strcmp (names[i], "disabled") == 0) - b_parse_boolean (values[i], &disabled); - } - - if (!name) - { - g_set_error (error, 0, 0, - "name argument missing in application element"); - return NULL; - } - if (!number) - { - g_set_error (error, 0, 0, - "number argument missing in application element"); - return NULL; - } - if (!type) - { - g_set_error (error, 0, 0, - "type argument missing in application element"); - return NULL; - } - - module_type = g_type_from_name (type); - if (!module_type || !g_type_is_a (module_type, B_TYPE_MODULE)) - { - g_set_error (error, 0, 0, - "application type '%s' is not a BModule", type); - return NULL; - } - - return bl_app_new (module_type, - name, number, vamp, public, disabled, priority); -} diff --git a/blccc-1.99/src/blapp.h b/blccc-1.99/src/blapp.h deleted file mode 100644 index f3c64cf..0000000 --- a/blccc-1.99/src/blapp.h +++ /dev/null @@ -1,61 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_APP_H__ -#define __BL_APP_H__ - -#include "blplaylistitem.h" - -G_BEGIN_DECLS - -#define BL_TYPE_APP (bl_app_get_type ()) -#define BL_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_APP, BlApp)) -#define BL_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_APP, BlAppClass)) -#define BL_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_APP)) - -typedef struct _BlAppClass BlAppClass; - -struct _BlApp -{ - BlPlaylistItem parent_instance; - - gchar *name; - gchar *number; - gchar *vamp; - gboolean public; - gboolean disabled; - gint priority; - - BlIsdnLine *line; -}; - -struct _BlAppClass -{ - BlPlaylistItemClass parent_class; -}; - -GType bl_app_get_type (void) G_GNUC_CONST; -BlApp * bl_app_new_from_attributes (const gchar **names, - const gchar **values, - const gchar *root, - GError **error); - -G_END_DECLS - -#endif /* __BL_APP_H__ */ diff --git a/blccc-1.99/src/blccc.c b/blccc-1.99/src/blccc.c deleted file mode 100644 index ed4cc5b..0000000 --- a/blccc-1.99/src/blccc.c +++ /dev/null @@ -1,814 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include - -#include - -#include "bltypes.h" - -#include "blapp.h" -#include "blccc.h" -#include "blconfig.h" -#include "blisdn.h" -#include "blondemand.h" -#include "blplaylist.h" -#include "blplaylistitem.h" -#include "bltheater.h" - - -static void bl_ccc_class_init (BlCccClass *class); -static void bl_ccc_init (BlCcc *ccc); -static void bl_ccc_finalize (GObject *object); - - -static GObjectClass *parent_class = NULL; - - -GType -bl_ccc_get_type (void) -{ - static GType ccc_type = 0; - - if (!ccc_type) - { - static const GTypeInfo ccc_info = - { - sizeof (BlCccClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) bl_ccc_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlCcc), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_ccc_init, - }; - - ccc_type = g_type_register_static (G_TYPE_OBJECT, - "BlCcc", &ccc_info, 0); - } - - return ccc_type; -} - -static void -bl_ccc_class_init (BlCccClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = bl_ccc_finalize; -} - -static void -bl_ccc_init (BlCcc *ccc) -{ - ccc->config = NULL; - ccc->mutex = g_mutex_new (); - ccc->theater = NULL; - ccc->playlist = NULL; - ccc->effects = NULL; - ccc->isdn = NULL; - ccc->active_app = NULL; - - g_type_class_ref (B_TYPE_MOVIE_PLAYER); -} - -static void -bl_ccc_finalize (GObject *object) -{ - BlCcc *ccc; - - ccc = BL_CCC (object); - - if (ccc->mutex) - { - g_mutex_free (ccc->mutex); - ccc->mutex = NULL; - } - if (ccc->isdn) - { - g_object_unref (ccc->isdn); - ccc->isdn = NULL; - } - if (ccc->theater) - { - g_object_unref (ccc->theater); - ccc->theater = NULL; - } - if (ccc->playlist) - { - g_object_unref (ccc->playlist); - ccc->playlist = NULL; - } - if (ccc->effects) - { - g_object_unref (ccc->effects); - ccc->effects = NULL; - } - - g_type_class_unref (g_type_class_peek (B_TYPE_MOVIE_PLAYER)); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -isdn_incoming_call (BlIsdn *isdn, - BlIsdnLine *line, - BlCcc *ccc) -{ - BlApp *active; - BlApp *app; - - g_printerr ("Incoming call on line %d: %s for %s\n", - line->channel, line->calling_number, line->called_number); - - active = ccc->active_app; - - /* if the line matches this is the call we already handle */ - if (active && active->line == line) - return; - - app = bl_config_select_app (ccc->config, line->called_number); - - if (!app) - { - g_printerr (" -> no matching number, go away.\n"); - bl_isdn_call_hangup (isdn, line, BL_ISDN_REASON_NO_USER_RESPONSE); - return; - } - - if (app->disabled) - { - g_printerr (" -> this application is temporarily disabled, go away.\n"); - bl_isdn_call_hangup (isdn, line, BL_ISDN_REASON_NO_USER_RESPONSE); - return; - } - - if (!app->public && - !bl_config_authorize_caller (ccc->config, line->calling_number)) - { - g_printerr (" -> I don't know you, go away.\n"); - bl_isdn_call_hangup (isdn, line, BL_ISDN_REASON_NO_USER_RESPONSE); - return; - } - - if (active) - { - if (app == active) - { - if (ccc->theater->item && ccc->theater->item->module) - { - BModule *module = ccc->theater->item->module; - - if (module->num_players < - B_MODULE_GET_CLASS (module)->max_players) - { -#if 0 - BModuleEvent event; - - bl_isdn_call_accept (isdn, line, app->vamp); - - app->line2 = line; - - /* add a player to the module */ - event.device_id = line->channel - 1; - event.type = B_EVENT_TYPE_PLAYER_ENTERED; - event.key = 0; - - bl_ccc_event (ccc, &event); - - return; -#endif - } - } - } - - if (app->priority > active->priority) - { - /* FIXME: change apps */ - } - - g_printerr (" -> sorry, we are busy.\n"); - bl_isdn_call_hangup (isdn, line, BL_ISDN_REASON_USER_BUSY); - return; - } - - bl_isdn_call_accept (isdn, line, app->vamp); - - line->app = app; -} - -static void -isdn_state_changed (BlIsdn *isdn, - BlIsdnLine *line, - BlCcc *ccc) -{ - BModuleEvent event; - - g_printerr ("Line %d went %s.\n", - line->channel, line->offhook ? "offhook" : "onhook"); - - if (! line->app) - return; - - if (line->offhook) - { - BlApp *app = line->app; - BlPlaylistItem *item = BL_PLAYLIST_ITEM (app); - - g_mutex_lock (ccc->mutex); - - ccc->active_app = app; - app->line = line; - - bl_theater_push_item (ccc->theater, item); - bl_theater_play (ccc->theater); - - g_mutex_unlock (ccc->mutex); - - /* add a player to the module */ - event.device_id = line->channel - 1; - event.type = B_EVENT_TYPE_PLAYER_ENTERED; - event.key = 0; - - bl_ccc_event (ccc, &event); - } - else - { - gboolean item_pushed; - - /* EEK */ - item_pushed = (ccc->theater->item == BL_PLAYLIST_ITEM (line->app)); - - if (item_pushed) - { - /* remove the player from the module */ - event.device_id = line->channel - 1; - event.type = B_EVENT_TYPE_PLAYER_LEFT; - event.key = 0; - - bl_ccc_event (ccc, &event); - } - - g_mutex_lock (ccc->mutex); - - line->app->line = NULL; - line->app = NULL; - - if (item_pushed) - bl_theater_finish (ccc->theater); - - g_mutex_unlock (ccc->mutex); - } -} - -static void -isdn_key_pressed (BlIsdn *isdn, - BlIsdnLine *line, - BModuleKey key, - BlCcc *ccc) -{ - BModuleEvent event; - - if (! ccc->active_app) - return; - - /* FIXME: should remap ids */ - event.device_id = line->channel - 1; - event.type = B_EVENT_TYPE_KEY; - event.key = key; - - bl_ccc_event (ccc, &event); -} - -static void -bl_ccc_set_item (BlCcc *ccc, - BlPlaylistItem *item) -{ - bl_theater_set_item (ccc->theater, item); - - bl_theater_play (ccc->theater); -} - -static void -theater_item_finished (BlTheater *theater, - BlPlaylistItem *item, - gboolean pushed, - BlCcc *ccc) -{ - if (ccc->active_app) - { - if (ccc->isdn && ccc->active_app->line) - { - bl_isdn_call_hangup (ccc->isdn, - ccc->active_app->line, - BL_ISDN_REASON_NORMAL_CALL_CLEARING); - } - - ccc->active_app = NULL; - } - - if (pushed) - { - bl_theater_pop_item (ccc->theater); - bl_theater_play (ccc->theater); - } - else - { - if (ccc->playlist) - { - item = bl_playlist_load_next_item (ccc->playlist, FALSE); - - if (! item) - { - /* reload the playlist menually because calling - * bl_ccc_reload() will cause a recursive mutex - * deadlock - */ - BlPlaylist *new; - const gchar *filename; - - g_print ("Playlist returned no item, reloading it...\n"); - - filename = b_object_get_filename (B_OBJECT (ccc->playlist)); - - new = bl_playlist_new_from_file (filename, ccc->config, - bl_theater_paint_callback, - ccc->theater); - - if (new) - { - g_object_unref (ccc->playlist); - ccc->playlist = new; - - item = bl_playlist_load_next_item (ccc->playlist, FALSE); - } - } - - if (item) - bl_ccc_set_item (ccc, item); - } - } -} - -static void -bl_ccc_setup_applications (BlCcc *ccc) -{ - GList *list; - - for (list = ccc->config->applications; list; list = list->next) - { - BModule *module = BL_PLAYLIST_ITEM (list->data)->module; - - module->width = ccc->config->width; - module->height = ccc->config->height; - module->channels = 1; - module->maxval = 255; - module->aspect = ccc->config->aspect; - module->buffer = g_new0 (guchar, module->width * module->height); - module->owns_buffer = TRUE; - module->paint_callback = bl_theater_paint_callback; - module->paint_data = ccc->theater; - } -} - -BlCcc * -bl_ccc_new (BlConfig *config) -{ - BlCcc *ccc; - BlTheater *theater; - GError *error = NULL; - - g_return_val_if_fail (BL_IS_CONFIG (config), NULL); - - theater = bl_theater_new (config); - if (!theater) - return NULL; - - ccc = BL_CCC (g_object_new (BL_TYPE_CCC, NULL)); - ccc->config = g_object_ref (config); - ccc->theater = theater; - - bl_theater_set_frame_data (theater, NULL); - - g_signal_connect (G_OBJECT (theater), "item_finished", - G_CALLBACK (theater_item_finished), - ccc); - - if (config->isdn_host) - { - ccc->isdn = bl_isdn_new (config, &error); - if (!ccc->isdn) - { - g_printerr ("Could not setup connection to ISDN system " - "on %s port %d:\n %s\n", - config->isdn_host, config->isdn_port, - error->message); - g_object_unref (ccc); - return NULL; - } - } - - if (ccc->isdn) - { - bl_ccc_setup_applications (ccc); - - g_signal_connect (G_OBJECT (ccc->isdn), "incoming_call", - G_CALLBACK (isdn_incoming_call), - ccc); - g_signal_connect (G_OBJECT (ccc->isdn), "state_changed", - G_CALLBACK (isdn_state_changed), - ccc); - g_signal_connect (G_OBJECT (ccc->isdn), "key_pressed", - G_CALLBACK (isdn_key_pressed), - ccc); - } - - bl_ccc_load (ccc, config->playlist, FALSE); - - ccc->effects = b_effects_new (); - - bl_theater_set_effects (ccc->theater, ccc->effects); - - return ccc; -} - -gchar * -bl_ccc_status (BlCcc *ccc) -{ - GString *status; - - g_return_val_if_fail (BL_IS_CCC (ccc), NULL); - - status = g_string_new (NULL); - - g_mutex_lock (ccc->mutex); - - if (ccc->playlist) - { - g_string_append_printf (status, "Playlist is '%s' with %d items.\n", - b_object_get_name (B_OBJECT (ccc->playlist)), - g_list_length (ccc->playlist->items)); - } - else - { - g_string_append (status, "No playlist loaded.\n"); - } - - if (ccc->effects) - { - g_string_append_printf (status, "Current effects: " - "invert=%s vflip=%s hflip=%s lmirror=%s rmirror=%s.\n", - ccc->effects->invert ? "ON" : "OFF", - ccc->effects->vflip ? "ON" : "OFF", - ccc->effects->hflip ? "ON" : "OFF", - ccc->effects->lmirror ? "ON" : "OFF", - ccc->effects->rmirror ? "ON" : "OFF"); - } - - if (ccc->theater->item) - { - gchar *str; - - str = bl_playlist_item_describe (ccc->theater->item); - g_string_append_printf (status, "Current item is a %s.\n", str); - g_free (str); - - if (bl_theater_is_playing (ccc->theater)) - g_string_append_printf (status, "The movie is playing%s.\n", - ccc->active_app ? " on demand" : ""); - else - g_string_append (status, "The movie is paused.\n"); - } - else - { - g_string_append (status, "No movie.\n"); - } - - { - GType *module_types; - gint n_module_types; - gint i; - - g_string_append (status, "Modules: "); - - module_types = g_type_children (B_TYPE_MODULE, &n_module_types); - - for (i = 0; i < n_module_types; i++) - { - if (i > 0) - g_string_append (status, ", "); - - g_string_append (status, g_type_name (module_types[i])); - } - - g_free (module_types); - - g_string_append (status, "\n"); - } - - { - GList *recipients; - - recipients = b_sender_list_recipients (ccc->theater->sender); - - if (recipients) - { - GList *list; - - g_string_append (status, "Recipients: "); - - for (list = recipients; list; list = g_list_next (list)) - { - if (list->prev) - g_string_append (status, ", "); - - g_string_append (status, (gchar *) list->data); - } - - g_string_append (status, ".\n"); - - g_list_foreach (recipients, (GFunc) g_free, NULL); - g_list_free (recipients); - } - else - { - g_string_append (status, "No recipients.\n"); - } - } - - if (ccc->isdn) - { - gint i; - - g_string_append_printf (status, "Control through isdn is %s.\n", - ccc->isdn->blocked ? "blocked" : "allowed"); - - g_string_append_printf (status, "The %d isdn lines are:\n", - ccc->isdn->num_lines); - - for (i = 0; i < ccc->isdn->num_lines; i++) - { - if (ccc->isdn->lines[i].offhook) - g_string_append_printf (status, " %d: offhook (%s for %s)\n", i, - ccc->isdn->lines[i].calling_number, - ccc->isdn->lines[i].called_number); - else - g_string_append_printf (status, " %d: onhook\n", i); - } - } - - g_mutex_unlock (ccc->mutex); - - return g_string_free (status, FALSE); -} - -gboolean -bl_ccc_reload (BlCcc *ccc) -{ - gchar *filename = NULL; - gboolean retval = FALSE; - - g_return_val_if_fail (BL_IS_CCC (ccc), FALSE); - - g_mutex_lock (ccc->mutex); - - if (ccc->playlist) - filename = g_strdup (b_object_get_filename (B_OBJECT (ccc->playlist))); - - g_mutex_unlock (ccc->mutex); - - retval = bl_ccc_load (ccc, filename, FALSE); - g_free (filename); - - return retval; -} - -gboolean -bl_ccc_load (BlCcc *ccc, - const gchar *filename, - gboolean instant_change) -{ - BlConfig *config; - BlPlaylist *new; - BlPlaylistItem *item; - - g_return_val_if_fail (BL_IS_CCC (ccc), FALSE); - g_return_val_if_fail (filename != NULL, FALSE); - - g_mutex_lock (ccc->mutex); - - config = ccc->config; - - new = bl_playlist_new_from_file (filename, config, - bl_theater_paint_callback, ccc->theater); - - if (new) - { - if (ccc->playlist) - g_object_unref (ccc->playlist); - ccc->playlist = new; - - if (!ccc->theater->item) - { - item = bl_playlist_load_next_item (ccc->playlist, FALSE); - - if (item) - bl_ccc_set_item (ccc, item); - } - else if (instant_change) - { - bl_theater_finish (ccc->theater); - } - } - - g_mutex_unlock (ccc->mutex); - - return (new != NULL); -} - -gchar * -bl_ccc_list (BlCcc *ccc) -{ - gchar *retval = NULL; - - g_return_val_if_fail (BL_IS_CCC (ccc), NULL); - - g_mutex_lock (ccc->mutex); - - if (ccc->playlist) - retval = bl_playlist_item_describe (BL_PLAYLIST_ITEM (ccc->playlist)); - - g_mutex_unlock (ccc->mutex); - - return retval; -} - -gchar * -bl_ccc_next (BlCcc *ccc) -{ - gchar *retval = NULL; - - g_return_val_if_fail (BL_IS_CCC (ccc), NULL); - - g_mutex_lock (ccc->mutex); - - bl_theater_finish (ccc->theater); - - if (ccc->theater->item) - retval = bl_playlist_item_describe (ccc->theater->item); - - g_mutex_unlock (ccc->mutex); - - return retval; -} - -void -bl_ccc_kill (BlCcc *ccc) -{ - g_return_if_fail (BL_IS_CCC (ccc)); - - g_mutex_lock (ccc->mutex); - - if (ccc->theater) - bl_theater_kill (ccc->theater); - - g_mutex_unlock (ccc->mutex); -} - -void -bl_ccc_event (BlCcc *ccc, - BModuleEvent *event) -{ - g_return_if_fail (BL_IS_CCC (ccc)); - g_return_if_fail (event != NULL); - - g_mutex_lock (ccc->mutex); - - bl_theater_event (ccc->theater, event); - - g_mutex_unlock (ccc->mutex); -} - -gboolean -bl_ccc_add (BlCcc *ccc, - const gchar *host, - GError **error) -{ - gboolean success; - - g_return_val_if_fail (BL_IS_CCC (ccc), FALSE); - g_return_val_if_fail (host != NULL, FALSE); - - g_mutex_lock (ccc->mutex); - - success = bl_theater_add_recipient (ccc->theater, host, error); - - g_mutex_unlock (ccc->mutex); - - return success; -} - -gboolean -bl_ccc_remove (BlCcc *ccc, - const gchar *host, - GError **error) -{ - gboolean success; - - g_return_val_if_fail (BL_IS_CCC (ccc), FALSE); - g_return_val_if_fail (host != NULL, FALSE); - - g_mutex_lock (ccc->mutex); - - success = bl_theater_remove_recipient (ccc->theater, host, error); - - g_mutex_unlock (ccc->mutex); - - return success; -} - -gboolean -bl_ccc_app_enable (BlCcc *ccc, - const gchar *number) -{ - BlApp *app; - - g_return_val_if_fail (BL_IS_CCC (ccc), FALSE); - g_return_val_if_fail (number != NULL, FALSE); - - app = bl_config_select_app (ccc->config, number); - if (!app) - return FALSE; - - if (!app->disabled) - return TRUE; - - app->disabled = FALSE; - g_printerr ("Enabled application %s (%s)\n", app->name, app->number); - - return TRUE; -} - -gboolean -bl_ccc_app_disable (BlCcc *ccc, - const gchar *number) -{ - BlApp *app; - - g_return_val_if_fail (BL_IS_CCC (ccc), FALSE); - g_return_val_if_fail (number != NULL, FALSE); - - app = bl_config_select_app (ccc->config, number); - if (!app) - return FALSE; - - if (app->disabled) - return TRUE; - - app->disabled = TRUE; - g_printerr ("Disabled application %s (%s)\n", app->name, app->number); - - return TRUE; -} - -void -bl_ccc_isdn_block (BlCcc *ccc) -{ - g_return_if_fail (BL_IS_CCC (ccc)); - - if (ccc->isdn) - bl_isdn_block (ccc->isdn); - - bl_theater_finish (ccc->theater); -} - -void -bl_ccc_isdn_unblock (BlCcc *ccc) -{ - g_return_if_fail (BL_IS_CCC (ccc)); - - if (ccc->isdn) - bl_isdn_unblock (ccc->isdn); -} diff --git a/blccc-1.99/src/blccc.h b/blccc-1.99/src/blccc.h deleted file mode 100644 index b2a8756..0000000 --- a/blccc-1.99/src/blccc.h +++ /dev/null @@ -1,85 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_CCC_H__ -#define __BL_CCC_H__ - -G_BEGIN_DECLS - -#define BL_TYPE_CCC (bl_ccc_get_type ()) -#define BL_CCC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_CCC, BlCcc)) -#define BL_CCC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_CCC, BlCccClass)) -#define BL_IS_CCC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_CCC)) -#define BL_IS_CCC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_CCC)) - -typedef struct _BlCccClass BlCccClass; - -struct _BlCccClass -{ - GObjectClass parent_class; -}; - -struct _BlCcc -{ - GObject parent_instance; - - BlConfig *config; - - GMutex *mutex; - BlTheater *theater; - BlPlaylist *playlist; - BEffects *effects; - BlIsdn *isdn; - - BlApp *active_app; -}; - -GType bl_ccc_get_type (void) G_GNUC_CONST; -BlCcc * bl_ccc_new (BlConfig *config); - -gchar * bl_ccc_status (BlCcc *ccc); -gboolean bl_ccc_reload (BlCcc *ccc); -gboolean bl_ccc_load (BlCcc *ccc, - const gchar *filename, - gboolean instant_change); -gchar * bl_ccc_list (BlCcc *ccc); -gchar * bl_ccc_next (BlCcc *ccc); -void bl_ccc_kill (BlCcc *ccc); - -void bl_ccc_event (BlCcc *ccc, - BModuleEvent *event); - -gboolean bl_ccc_add (BlCcc *ccc, - const gchar *host, - GError **error); -gboolean bl_ccc_remove (BlCcc *ccc, - const gchar *host, - GError **error); - -gboolean bl_ccc_app_enable (BlCcc *ccc, - const gchar *number); -gboolean bl_ccc_app_disable (BlCcc *ccc, - const gchar *number); - -void bl_ccc_isdn_block (BlCcc *ccc); -void bl_ccc_isdn_unblock (BlCcc *ccc); - -G_END_DECLS - -#endif /* __BL_CCC_H__ */ diff --git a/blccc-1.99/src/blconfig.c b/blccc-1.99/src/blconfig.c deleted file mode 100644 index 8c470f4..0000000 --- a/blccc-1.99/src/blconfig.c +++ /dev/null @@ -1,532 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include - -#include "bltypes.h" - -#include "blapp.h" -#include "blconfig.h" - -#define DEFAULT_WIDTH 18 -#define DEFAULT_HEIGHT 8 -#define DEFAULT_TELNET_PORT 2323 -#define DEFAULT_ISDN_PORT 1234 -#define DEFAULT_ISDN_LINES 4 - -enum -{ - PROP_0, - PROP_WIDTH, - PROP_HEIGHT, - PROP_MAXVAL, - PROP_CHANNELS, - PROP_ASPECT, - PROP_PLAYLIST, - PROP_LOGFILE, - PROP_RECIPIENT, - PROP_TELNET_PORT, - PROP_ISDN_HOST, - PROP_ISDN_PORT, - PROP_ISDN_LISTEN, - PROP_ISDN_LINES, - PROP_AUTH_CALLER -}; - -static void bl_config_class_init (BlConfigClass *klass); -static void bl_config_init (BlConfig *view); -static void bl_config_finalize (GObject *object); -static void bl_config_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); - -/* parser functions */ - -typedef struct _ParserData ParserData; - -struct _ParserData -{ - BlConfig *config; - BlApp *app; - gchar *root; -}; - -enum -{ - PARSER_IN_BLCCC = B_PARSER_STATE_USER, - PARSER_IN_CONFIG, - PARSER_IN_PARAM, - PARSER_IN_APP, - PARSER_IN_APP_PARAM, - PARSER_FINISH -}; - -static BParserState parser_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); -static BParserState parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); - - -static BObjectClass *parent_class = NULL; - - -GType -bl_config_get_type (void) -{ - static GType config_type = 0; - - if (!config_type) - { - static const GTypeInfo config_info = - { - sizeof (BlConfigClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) bl_config_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlConfig), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_config_init, - }; - - config_type = g_type_register_static (B_TYPE_OBJECT, - "BlConfig", &config_info, 0); - } - - return config_type; -} - -static void -bl_config_class_init (BlConfigClass *klass) -{ - GObjectClass *object_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = bl_config_finalize; - object_class->set_property = bl_config_set_property; - - param_spec = g_param_spec_int ("width", NULL, NULL, - 1, G_MAXSHORT, DEFAULT_WIDTH, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_WIDTH, param_spec); - - param_spec = g_param_spec_int ("height", NULL, NULL, - 1, G_MAXSHORT, DEFAULT_HEIGHT, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_HEIGHT, param_spec); - - param_spec = g_param_spec_int ("maxval", NULL, NULL, - 1, 255, 255, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_MAXVAL, param_spec); - - param_spec = g_param_spec_int ("channels", NULL, NULL, - 1, G_MAXSHORT, 1, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_CHANNELS, param_spec); - - param_spec = g_param_spec_double ("aspect", NULL, NULL, - 0.01, 100.0, 1.0, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_ASPECT, param_spec); - - param_spec = b_param_spec_filename ("playlist", NULL, NULL, - "playlist.default.xml", - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_PLAYLIST, param_spec); - - param_spec = b_param_spec_filename ("logfile", NULL, NULL, - NULL, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_LOGFILE, param_spec); - - param_spec = g_param_spec_string ("recipient", NULL, NULL, - NULL, - G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_RECIPIENT, param_spec); - - param_spec = g_param_spec_int ("telnet-port", NULL, NULL, - 1024, 65535, DEFAULT_TELNET_PORT, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_TELNET_PORT, param_spec); - - param_spec = g_param_spec_string ("isdn-host", NULL, NULL, - NULL, - G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_ISDN_HOST, param_spec); - - param_spec = g_param_spec_int ("isdn-port", NULL, NULL, - 1024, 65535, DEFAULT_ISDN_PORT, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_ISDN_PORT, param_spec); - - param_spec = g_param_spec_int ("isdn-listen", NULL, NULL, - 1024, 65535, DEFAULT_ISDN_PORT, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_ISDN_LISTEN, param_spec); - - param_spec = g_param_spec_int ("isdn-lines", NULL, NULL, - 0, 8, DEFAULT_ISDN_LINES, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_ISDN_LINES, param_spec); - - param_spec = g_param_spec_string ("authorized-caller", NULL, NULL, - NULL, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_AUTH_CALLER, param_spec); -} - -static void -bl_config_init (BlConfig *config) -{ - config->recipients = NULL; -} - -static void -bl_config_finalize (GObject *object) -{ - BlConfig *config = BL_CONFIG (object); - - if (config->recipients) - { - GList *list; - - for (list = config->recipients; list; list = list->next) - g_free (list->data); - - g_list_free (config->recipients); - config->recipients = NULL; - } - - if (config->authorized_callers) - { - GList *list; - - for (list = config->authorized_callers; list; list = list->next) - g_free (list->data); - - g_list_free (config->authorized_callers); - config->authorized_callers = NULL; - } - - if (config->applications) - { - GList *list; - - for (list = config->applications; list; list = list->next) - g_object_unref (G_OBJECT (list->data)); - - g_list_free (config->applications); - config->applications = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -bl_config_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BlConfig *config = BL_CONFIG (object); - - switch (property_id) - { - case PROP_WIDTH: - config->width = g_value_get_int (value); - break; - case PROP_HEIGHT: - config->height = g_value_get_int (value); - break; - case PROP_MAXVAL: - config->maxval = g_value_get_int (value); - break; - case PROP_CHANNELS: - config->channels = g_value_get_int (value); - break; - case PROP_ASPECT: - config->aspect = g_value_get_double (value); - break; - case PROP_PLAYLIST: - g_free (config->playlist); - config->playlist = g_value_dup_string (value); - break; - case PROP_LOGFILE: - g_free (config->logfile); - config->logfile = g_value_dup_string (value); - break; - case PROP_RECIPIENT: - if (g_value_get_string (value)) - config->recipients = g_list_append (config->recipients, - g_value_dup_string (value)); - break; - case PROP_TELNET_PORT: - config->telnet_port = g_value_get_int (value); - break; - case PROP_ISDN_HOST: - config->isdn_host = g_value_dup_string (value); - break; - case PROP_ISDN_PORT: - config->isdn_port = g_value_get_int (value); - break; - case PROP_ISDN_LISTEN: - config->isdn_listen = g_value_get_int (value); - break; - case PROP_ISDN_LINES: - config->isdn_lines = g_value_get_int (value); - break; - case PROP_AUTH_CALLER: - if (g_value_get_string (value)) - config->authorized_callers = g_list_append (config->authorized_callers, - g_value_dup_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -BlConfig * -bl_config_new (void) -{ - return BL_CONFIG (g_object_new (BL_TYPE_CONFIG, NULL)); -} - -gboolean -bl_config_parse (BlConfig *config, - const gchar *filename, - GError **error) -{ - GIOChannel *io; - BParser *parser; - ParserData data; - GList *list; - gboolean retval; - - g_return_val_if_fail (BL_IS_CONFIG (config), FALSE); - g_return_val_if_fail (filename != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - g_object_set (G_OBJECT (config), "filename", filename, NULL); - - io = g_io_channel_new_file (filename, "r", error); - if (! io) - return FALSE; - - data.config = config; - if (g_path_is_absolute (filename)) - { - data.root = g_path_get_dirname (filename); - } - else - { - gchar *dir = g_get_current_dir (); - gchar *tmp = g_build_filename (dir, filename, NULL); - - data.root = g_path_get_dirname (tmp); - - g_free (tmp); - g_free (dir); - } - - parser = b_parser_new (parser_start_element, parser_end_element, &data); - - retval = b_parser_parse_io_channel (parser, io, TRUE, error); - - if (retval && b_parser_get_state (parser) != PARSER_FINISH) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "This doesn't look like a blccc configuration file."); - retval = FALSE; - } - - b_parser_free (parser); - g_free (data.root); - g_io_channel_unref (io); - - /* now query the registered applications */ - for (list = config->applications; list; list = list->next) - { - BlApp *app = BL_APP (list->data); - BlPlaylistItem *item = BL_PLAYLIST_ITEM (app); - - if (B_MODULE_GET_CLASS (item->module)->query (config->width, - config->height, - 1, 255)) - { - g_print ("Registered app: %s on %s %s %s\n", - app->name, app->number, - app->public ? "(public)" : "", - app->disabled ? "(disabled)" : ""); - } - else - { - g_set_error (error, 0, 0, - "Application %s can not handle this configuration.", - app->name); - return FALSE; - } - } - - return retval; -} - -gboolean -bl_config_authorize_caller (BlConfig *config, - const gchar *caller) -{ - GList *list; - - g_return_val_if_fail (BL_IS_CONFIG (config), FALSE); - - if (!caller) - return FALSE; - - for (list = config->authorized_callers; list; list = list->next) - if (strcmp (caller, (gchar *) list->data) == 0) - return TRUE; - - return FALSE; -} - -BlApp * -bl_config_select_app (BlConfig *config, - const gchar *called_number) -{ - GList *list; - - for (list = config->applications; list; list = list->next) - { - BlApp *app = list->data; - - if (strcmp (app->number, called_number) == 0) - return app; - } - - return NULL; -} - -static BParserState -parser_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error) -{ - ParserData *data = user_data; - - switch (state) - { - case B_PARSER_STATE_TOPLEVEL: - if (strcmp (element_name, "blccc") == 0) - return PARSER_IN_BLCCC; - break; - - case PARSER_IN_BLCCC: - if (strcmp (element_name, "config") == 0) - return PARSER_IN_CONFIG; - break; - - case PARSER_IN_CONFIG: - if (strcmp (element_name, "param") == 0) - { - if (b_parse_param (G_OBJECT (data->config), data->root, - attribute_names, attribute_values, error)) - return PARSER_IN_PARAM; - } - else if (strcmp (element_name, "application") == 0) - { - if ((data->app = bl_app_new_from_attributes (attribute_names, - attribute_values, - data->root, error))) - return PARSER_IN_APP; - } - break; - - case PARSER_IN_APP: - if (strcmp (element_name, "param") == 0) - { - if (b_parse_param (G_OBJECT (BL_PLAYLIST_ITEM (data->app)->module), - data->root, - attribute_names, attribute_values, - error)) - return PARSER_IN_APP_PARAM; - } - break; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static BParserState -parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error) -{ - ParserData *data = user_data; - - switch (state) - { - case PARSER_IN_BLCCC: - return PARSER_FINISH; - - case PARSER_IN_CONFIG: - return PARSER_IN_BLCCC; - - case PARSER_IN_APP: - g_return_val_if_fail (BL_IS_APP (data->app), B_PARSER_STATE_UNKNOWN); - data->config->applications = g_list_append (data->config->applications, - data->app); - data->app = NULL; - return PARSER_IN_CONFIG; - - case PARSER_IN_PARAM: - return PARSER_IN_CONFIG; - - case PARSER_IN_APP_PARAM: - return PARSER_IN_APP; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} diff --git a/blccc-1.99/src/blconfig.h b/blccc-1.99/src/blconfig.h deleted file mode 100644 index 06d536e..0000000 --- a/blccc-1.99/src/blconfig.h +++ /dev/null @@ -1,79 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_CONFIG_H__ -#define __BL_CONFIG_H__ - -G_BEGIN_DECLS - -#define BL_TYPE_CONFIG (bl_config_get_type ()) -#define BL_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_CONFIG, BlConfig)) -#define BL_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_CONFIG, BlConfigClass)) -#define BL_IS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_CONFIG)) -#define BL_IS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_CONFIG)) - -typedef struct _BlConfigClass BlConfigClass; - -struct _BlConfigClass -{ - BObjectClass parent_class; -}; - -struct _BlConfig -{ - BObject parent_instance; - - gint width; - gint height; - gint maxval; - gint channels; - gdouble aspect; - - gchar *playlist; - gchar *logfile; - - GList *recipients; - - gint telnet_port; - - gchar *isdn_host; - gint isdn_port; - gint isdn_listen; - gint isdn_lines; - - GList *authorized_callers; - - GList *applications; -}; - - -GType bl_config_get_type (void) G_GNUC_CONST; -BlConfig * bl_config_new (void); -gboolean bl_config_parse (BlConfig *config, - const gchar *filename, - GError **error); - -BlApp * bl_config_select_app (BlConfig *config, - const gchar *called_number); -gboolean bl_config_authorize_caller (BlConfig *config, - const gchar *caller); - -G_END_DECLS - -#endif /* __BL_CONFIG_H__ */ diff --git a/blccc-1.99/src/blisdn.c b/blccc-1.99/src/blisdn.c deleted file mode 100644 index 6e11a63..0000000 --- a/blccc-1.99/src/blisdn.c +++ /dev/null @@ -1,733 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "bltypes.h" -#include "blconfig.h" -#include "blmarshal.h" -#include "blisdn.h" - - -/* #define ISDN_VERBOSE 1 */ - - -#define POLL_TIMEOUT 120 /* ms */ -#define RESET_TIMEOUT 60 /* sec */ - - -static void bl_isdn_class_init (BlIsdnClass *class); -static void bl_isdn_init (BlIsdn *isdn); -static void bl_isdn_finalize (GObject *object); - -static gboolean bl_isdn_setup (BlIsdn *isdn, - GError **error); -static void bl_isdn_teardown (BlIsdn *isdn); - -static void bl_isdn_hangup_all (BlIsdn *isdn); - -static void bl_isdn_heartbeat_start (BlIsdn *isdn); -static void bl_isdn_heartbeat_stop (BlIsdn *isdn); - -static void bl_isdn_handle_message (BlIsdn *isdn, - guchar *msg, - gint len); - -static gboolean udp_prepare (GSource *source, - gint *timeout); -static gboolean udp_check (GSource *source); -static gboolean udp_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data); - - -typedef struct _BlIsdnSource BlIsdnSource; -struct _BlIsdnSource -{ - GSource source; - BlIsdn *isdn; -}; - -static GSourceFuncs udp_funcs = -{ - udp_prepare, - udp_check, - udp_dispatch, - NULL -}; - -enum -{ - INCOMING_CALL, - STATE_CHANGED, - KEY_PRESSED, - LAST_SIGNAL -}; -static guint bl_isdn_signals[LAST_SIGNAL] = { 0 }; - -static GObjectClass *parent_class = NULL; - - -/* BlIsdn source function */ - -static gboolean -udp_prepare (GSource *source, - gint *timeout) -{ - BlIsdn *isdn = ((BlIsdnSource *) source)->isdn; - fd_set set; - struct timeval tv; - - FD_ZERO (&set); - FD_SET (isdn->listen_sock, &set); - tv.tv_sec = 0; - tv.tv_usec = 0; - - isdn->packet_pending = (select (isdn->listen_sock + 1, - &set, NULL, NULL, &tv) > 0); - - if (timeout) - *timeout = POLL_TIMEOUT; - - if (isdn->packet_pending) - isdn->no_packets = 0; - else - isdn->no_packets++; - - if (isdn->no_packets == (RESET_TIMEOUT * 1000 / POLL_TIMEOUT)) - { - g_printerr ("BlIsdn: %d seconds have gone by without any sign of life\n" - " from the ISDN system. I'll try to reconnect ...\n", - RESET_TIMEOUT); - - bl_isdn_teardown (isdn); - bl_isdn_setup (isdn, NULL); - } - - return isdn->packet_pending; -} - -static gboolean -udp_check (GSource *source) -{ - BlIsdn *isdn = ((BlIsdnSource *) source)->isdn; - - return isdn->packet_pending; -} - -static gboolean -udp_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) -{ - BlIsdn *isdn = ((BlIsdnSource *) source)->isdn; - guchar buffer[2048]; - fd_set set; - struct timeval tv; - - isdn->packet_pending = FALSE; - - FD_ZERO (&set); - FD_SET (isdn->listen_sock, &set); - tv.tv_sec = 0; - tv.tv_usec = 0; - - /* on first call empty the queue */ - if (!isdn->sock_initialized) - { - while (select (isdn->listen_sock + 1, &set, NULL, NULL, &tv) > 0) - { - FD_ZERO (&set); - FD_SET (isdn->listen_sock, &set); - tv.tv_sec = 0; - tv.tv_usec = 0; - - if (FD_ISSET (isdn->listen_sock, &set)) - read (isdn->listen_sock, buffer, sizeof (buffer)); - } - isdn->sock_initialized = TRUE; - } - - while (select (isdn->listen_sock + 1, &set, NULL, NULL, &tv) > 0) - { - FD_ZERO (&set); - FD_SET (isdn->listen_sock, &set); - tv.tv_sec = 0; - tv.tv_usec = 0; - - if (FD_ISSET (isdn->listen_sock, &set)) - { - gint bytes; - - bytes = read (isdn->listen_sock, buffer, sizeof (buffer) - 1); - - if (bytes > 0) - { - buffer[bytes] = '\0'; - - if (!isdn->blocked) - bl_isdn_handle_message (isdn, buffer, bytes); - } - } - } - - return TRUE; -} - -/* BlIsdn GObject framework */ - -GType -bl_isdn_get_type (void) -{ - static GType isdn_type = 0; - - if (!isdn_type) - { - static const GTypeInfo isdn_info = - { - sizeof (BlIsdnClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) bl_isdn_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlIsdn), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_isdn_init, - }; - - isdn_type = g_type_register_static (G_TYPE_OBJECT, - "BlIsdn", - &isdn_info, 0); - } - - return isdn_type; -} - -static void -bl_isdn_class_init (BlIsdnClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - - object_class = G_OBJECT_CLASS (class); - - bl_isdn_signals[INCOMING_CALL] = - g_signal_new ("incoming_call", - G_TYPE_FROM_CLASS (class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BlIsdnClass, incoming_call), - NULL, NULL, - bl_marshal_VOID__POINTER, - G_TYPE_NONE, 1, G_TYPE_POINTER); - bl_isdn_signals[STATE_CHANGED] = - g_signal_new ("state_changed", - G_TYPE_FROM_CLASS (class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BlIsdnClass, state_changed), - NULL, NULL, - bl_marshal_VOID__POINTER, - G_TYPE_NONE, 1, G_TYPE_POINTER); - bl_isdn_signals[KEY_PRESSED] = - g_signal_new ("key_pressed", - G_TYPE_FROM_CLASS (class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BlIsdnClass, key_pressed), - NULL, NULL, - bl_marshal_VOID__POINTER_INT, - G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_INT); - - class->incoming_call = NULL; - class->state_changed = NULL; - class->key_pressed = NULL; - - object_class->finalize = bl_isdn_finalize; -} - -static void -bl_isdn_init (BlIsdn *isdn) -{ - isdn->listen_sock = -1; - isdn->send_sock = -1; - isdn->heartbeat = 0; - isdn->sock_initialized = FALSE; - isdn->state_initialized = FALSE; - isdn->packet_pending = FALSE; - isdn->no_packets = 0; - isdn->blocked = FALSE; - isdn->lines = NULL; -} - -static void -bl_isdn_finalize (GObject *object) -{ - BlIsdn *isdn = BL_ISDN (object); - - bl_isdn_teardown (isdn); - - if (isdn->source) - { - g_source_destroy (isdn->source); - isdn->source = NULL; - } - if (isdn->lines) - { - g_free (isdn->lines); - isdn->lines = NULL; - } - if (isdn->config) - { - g_object_unref (isdn->config); - isdn->config = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static gboolean -bl_isdn_setup (BlIsdn *isdn, - GError **error) -{ - BlConfig *config; - struct sockaddr_in addr; - struct hostent *dest; - gchar *cmd; - gint port; - gint i; - - config = isdn->config; - - dest = gethostbyname (config->isdn_host); - if (dest == NULL) - { - g_set_error (error, 0, 0, - "Unable to resolve host '%s'", config->isdn_host); - return FALSE; - } - - if ((isdn->listen_sock = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP)) != -1) - { - memset (&addr, 0, sizeof (addr)); - - addr.sin_family = AF_INET; - addr.sin_port = htons (config->isdn_listen); - addr.sin_addr.s_addr = INADDR_ANY; - - if ((bind (isdn->listen_sock, - (struct sockaddr *) &addr, sizeof (addr))) == -1) - { - g_set_error (error, 0, 0, "Failed to bind listening socket: %s", - g_strerror (errno)); - return FALSE; - } - } - else - { - g_set_error (error, 0, 0, - "Failed to open listening socket: %s", g_strerror (errno)); - return FALSE; - } - - port = ntohs (addr.sin_port); - - memset (&addr, 0, sizeof (addr)); - - addr.sin_family = AF_INET; - addr.sin_port = htons (config->isdn_port); - memcpy (&addr.sin_addr.s_addr, dest->h_addr_list[0], dest->h_length); - - if ((isdn->send_sock = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP)) != -1) - { - i = 1; - if ((setsockopt (isdn->send_sock, - SOL_SOCKET, SO_REUSEADDR, &i, sizeof (i))) == -1) - { - g_set_error (error, 0, 0, "Failed to configure send socket: %s", - g_strerror (errno)); - return FALSE; - } - - if ((connect (isdn->send_sock, - (struct sockaddr *) &addr, sizeof (addr))) == -1) - { - g_set_error (error, 0, 0, - "Failed to bind send socket: %s", g_strerror (errno)); - return FALSE; - } - } - else - { - g_set_error (error, 0, 0, - "Failed to open send socket: %s", g_strerror (errno)); - return FALSE; - } - - cmd = g_strdup_printf ("0:register:%d", port); -#if ISDN_VERBOSE - g_printerr ("BlIsdn > %s\n", cmd); -#endif - if (send (isdn->send_sock, cmd, strlen (cmd), 0) == -1) - { - g_set_error (error, 0, 0, - "Failed to send register message: %s", g_strerror (errno)); - g_free (cmd); - return FALSE; - } - g_free (cmd); - - g_printerr ("Connected to ISDN system (%s:%d), listening on port %d\n", - config->isdn_host, config->isdn_port, port); - - bl_isdn_heartbeat_start (isdn); - - return TRUE; -} - -static void -bl_isdn_teardown (BlIsdn *isdn) -{ - bl_isdn_heartbeat_stop (isdn); - - if (isdn->listen_sock > -1) - { - close (isdn->listen_sock); - isdn->listen_sock = -1; - isdn->sock_initialized = FALSE; - } - - isdn->no_packets = 0; - - bl_isdn_hangup_all (isdn); - - if (isdn->send_sock > -1) - { - close (isdn->send_sock); - isdn->send_sock = -1; - } -} - -static void -bl_isdn_hangup_all (BlIsdn *isdn) -{ - BlIsdnLine *line; - gint i; - - for (i = 0, line = isdn->lines; i < isdn->num_lines; i++, line++) - { - if (line->offhook) - { - gchar *msg = g_strdup_printf ("%d:hangup", i + 1); - - send (isdn->send_sock, msg, strlen (msg), 0); - - line->offhook = FALSE; - if (!isdn->blocked) - g_signal_emit (G_OBJECT (isdn), - bl_isdn_signals[STATE_CHANGED], 0, line, NULL); - - g_free (line->called_number); - g_free (line->calling_number); - } - } -} - -static gboolean -bl_isdn_heartbeat (BlIsdn *isdn) -{ - const gchar *msg = "0:heartbeat"; - - send (isdn->send_sock, msg, strlen (msg), 0); - - return TRUE; -} - -static void -bl_isdn_heartbeat_start (BlIsdn *isdn) -{ - g_return_if_fail (isdn->heartbeat == 0); - - isdn->heartbeat = g_timeout_add (10000, - (GSourceFunc) bl_isdn_heartbeat, isdn); -} - -static void -bl_isdn_heartbeat_stop (BlIsdn *isdn) -{ - if (isdn->heartbeat) - { - g_source_remove (isdn->heartbeat); - isdn->heartbeat = 0; - } -} - -static void -bl_isdn_handle_message (BlIsdn *isdn, - guchar *msg, - gint len) -{ - gint channel; - - if (len < 2 || msg[1] != ':') - return; - - channel = msg[0] - '0'; - msg += 2; - - if (channel > 0 && channel <= isdn->num_lines) - { - BlIsdnLine *line = isdn->lines + channel - 1; - - g_return_if_fail (line->channel == channel); - - if (line->offhook) - { - if (strncmp (msg, "onhook", 6) == 0) - { -#if ISDN_VERBOSE - g_printerr ("BlIsdn: Line %d hung up\n", channel); -#endif - line->offhook = FALSE; - g_signal_emit (G_OBJECT (isdn), - bl_isdn_signals[STATE_CHANGED], 0, line); - - g_free (line->calling_number); - line->calling_number = NULL; - - g_free (line->called_number); - line->called_number = NULL; - - return; - } - else if (strncmp (msg, "dtmf:", 5) == 0) - { - BModuleKey key; - - switch (msg[5]) - { - case '0'...'9': - key = msg[5] - '0'; - break; - case '#': - key = B_KEY_HASH; - break; - case '*': - key = B_KEY_ASTERISK; - break; - default: - g_printerr ("BlIsdn: Unknown DTMF key '%s'\n", msg + 5); - return; - } - -#if ISDN_VERBOSE - g_printerr ("BlIsdn: Key %c pressed on line %d\n", - msg[5], channel); -#endif - g_signal_emit (G_OBJECT (isdn), - bl_isdn_signals[KEY_PRESSED], 0, line, key); - return; - } - } - else /* onhook */ - { - if (strncmp (msg, "setup:", 6) == 0) - { - gchar *caller = msg + 6; - gchar *called; - - if ((called = strchr (caller, ':'))) - *called++ = '\0'; - -#if ISDN_VERBOSE - g_printerr ("BlIsdn: incoming call on line %d from %s to %s\n", - channel, caller, called); -#endif - g_free (line->called_number); - line->called_number = g_strdup (called); - - g_free (line->calling_number); - line->calling_number = g_strdup (caller); - - g_signal_emit (G_OBJECT (isdn), - bl_isdn_signals[INCOMING_CALL], 0, line); - return; - } - else if (strncmp (msg, "connected", 9) == 0) - { -#if ISDN_VERBOSE - g_printerr ("BlIsdn: line %d connected\n", channel); -#endif - line->offhook = TRUE; - g_signal_emit (G_OBJECT (isdn), - bl_isdn_signals[STATE_CHANGED], 0, line); - return; - } - } - } - else if (channel != 0) - { - g_printerr ("BlIsdn: line %d is out of range (%d lines configured)\n", - channel, isdn->num_lines); - return; - } - - if (strncmp (msg, "error:", 6) == 0) - { - if (channel == 0) - g_printerr ("BlIsdn: General error signalled: %s\n", msg + 6); - else - g_printerr ("BlIsdn: Error signalled on line %d: %s\n", - channel, msg + 6); - } -} - -BlIsdn * -bl_isdn_new (BlConfig *config, - GError **error) -{ - BlIsdn *isdn; - struct hostent *dest; - gint i; - - g_return_val_if_fail (BL_IS_CONFIG (config), NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - g_return_val_if_fail (config->isdn_host != NULL, NULL); - g_return_val_if_fail (config->isdn_port > 0, NULL); - g_return_val_if_fail (config->isdn_listen > 0, NULL); - g_return_val_if_fail (config->isdn_lines < 9, NULL); - - dest = gethostbyname (config->isdn_host); - if (dest == NULL) - { - g_set_error (error, 0, 0, - "Unable to resolve host '%s'", config->isdn_host); - return FALSE; - } - - isdn = BL_ISDN (g_object_new (BL_TYPE_ISDN, NULL)); - - isdn->config = g_object_ref (config); - - if (! bl_isdn_setup (isdn, error)) - { - bl_isdn_teardown (isdn); - g_object_unref (isdn); - return NULL; - } - - isdn->num_lines = config->isdn_lines; - isdn->lines = g_new0 (BlIsdnLine, isdn->num_lines); - - for (i = 0; i < isdn->num_lines; i++) - isdn->lines[i].channel = i + 1; - - isdn->source = g_source_new (&udp_funcs, sizeof (BlIsdnSource)); - g_source_set_priority (isdn->source, G_PRIORITY_DEFAULT); - g_source_set_can_recurse (isdn->source, FALSE); - - ((BlIsdnSource *) isdn->source)->isdn = isdn; - g_source_attach (isdn->source, NULL); - - return isdn; -} - -void -bl_isdn_call_accept (BlIsdn *isdn, - BlIsdnLine *line, - const gchar *wamp) -{ - gchar *cmd; - - g_return_if_fail (BL_IS_ISDN (isdn)); - g_return_if_fail (line != NULL); - - if (isdn->blocked) - return; - - cmd = g_strdup_printf ("%d:accept", line->channel); -#if ISDN_VERBOSE - g_printerr ("BlIsdn > %s\n", cmd); -#endif - send (isdn->send_sock, cmd, strlen (cmd), 0); - g_free (cmd); - - if (wamp) - { - cmd = g_strdup_printf ("%d:playbackground:%s", line->channel, wamp); -#if ISDN_VERBOSE - g_printerr ("BlIsdn > %s\n", cmd); -#endif - send (isdn->send_sock, cmd, strlen (cmd), 0); - g_free (cmd); - } -} - -void -bl_isdn_call_hangup (BlIsdn *isdn, - BlIsdnLine *line, - BlIsdnReason reason) -{ - gchar *cmd; - - g_return_if_fail (BL_IS_ISDN (isdn)); - g_return_if_fail (line != NULL); - - if (reason) - cmd = g_strdup_printf ("%d:hangup:%d", line->channel, reason); - else - cmd = g_strdup_printf ("%d:hangup", line->channel); - -#if ISDN_VERBOSE - g_printerr ("BlIsdn > %s\n", cmd); -#endif - send (isdn->send_sock, cmd, strlen (cmd), 0); - g_free (cmd); -} - -void -bl_isdn_block (BlIsdn *isdn) -{ - g_return_if_fail (BL_IS_ISDN (isdn)); - - bl_isdn_hangup_all (isdn); - - isdn->blocked = TRUE; - - g_printerr ("BlIsdn: Thrown out all callers, ISDN is now blocked!\n"); -} - -void -bl_isdn_unblock (BlIsdn *isdn) -{ - g_return_if_fail (BL_IS_ISDN (isdn)); - - isdn->blocked = FALSE; - - g_printerr ("BlIsdn: Unblocked ISDN!\n"); -} diff --git a/blccc-1.99/src/blisdn.h b/blccc-1.99/src/blisdn.h deleted file mode 100644 index d34aa4e..0000000 --- a/blccc-1.99/src/blisdn.h +++ /dev/null @@ -1,106 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_ISDN_H__ -#define __BL_ISDN_H__ - -G_BEGIN_DECLS - - -typedef enum -{ - BL_ISDN_NO_REASON = 0, - BL_ISDN_REASON_NORMAL_CALL_CLEARING = 16, - BL_ISDN_REASON_USER_BUSY = 17, - BL_ISDN_REASON_NO_USER_RESPONSE = 18 -} BlIsdnReason; - - -#define BL_TYPE_ISDN (bl_isdn_get_type ()) -#define BL_ISDN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_ISDN, BlIsdn)) -#define BL_ISDN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_ISDN, BlIsdnClass)) -#define BL_IS_ISDN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_ISDN)) -#define BL_IS_ISDN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_ISDN)) - -typedef struct _BlIsdnClass BlIsdnClass; - -struct _BlIsdnClass -{ - GObjectClass parent_class; - - void (* incoming_call) (BlIsdn *isdn, - BlIsdnLine *line); - void (* state_changed) (BlIsdn *isdn, - BlIsdnLine *line); - void (* key_pressed) (BlIsdn *isdn, - BlIsdnLine *line, - BModuleKey key); -}; - -struct _BlIsdn -{ - GObject parent_instance; - - BlConfig *config; - - GSource *source; - - gint listen_sock; - gint send_sock; - - guint heartbeat; - - gboolean sock_initialized; - gboolean state_initialized; - gboolean packet_pending; - gint no_packets; - - gboolean blocked; - gint num_lines; - BlIsdnLine *lines; -}; - -struct _BlIsdnLine -{ - gint channel; - gboolean offhook; - gchar *called_number; - gchar *calling_number; - - /* used only by BlCcc */ - BlApp *app; -}; - - -GType bl_isdn_get_type (void) G_GNUC_CONST; -BlIsdn * bl_isdn_new (BlConfig *config, - GError **error); -void bl_isdn_call_accept (BlIsdn *isdn, - BlIsdnLine *line, - const gchar *wamp); -void bl_isdn_call_hangup (BlIsdn *isdn, - BlIsdnLine *line, - BlIsdnReason reason); -void bl_isdn_block (BlIsdn *isdn); -void bl_isdn_unblock (BlIsdn *isdn); - - -G_END_DECLS - -#endif /* __BL_ISDN_H__ */ diff --git a/blccc-1.99/src/bllisten.c b/blccc-1.99/src/bllisten.c deleted file mode 100644 index 7f15c60..0000000 --- a/blccc-1.99/src/bllisten.c +++ /dev/null @@ -1,163 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include -#include -#include -#include -#include -#include - -#include - -#include "bltypes.h" - -#include "blaccept.h" -#include "bllisten.h" - - -static void bl_listen_class_init (BlListenClass *class); -static void bl_listen_init (BlListen *listen); -static void bl_listen_finalize (GObject *object); - - -static GObjectClass *parent_class = NULL; - - -GType -bl_listen_get_type (void) -{ - static GType listen_type = 0; - - if (!listen_type) - { - static const GTypeInfo listen_info = - { - sizeof (BlListenClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) bl_listen_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlListen), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_listen_init, - }; - - listen_type = g_type_register_static (G_TYPE_OBJECT, - "BlListen", - &listen_info, 0); - } - - return listen_type; -} - -static void -bl_listen_class_init (BlListenClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = bl_listen_finalize; -} - -static void -bl_listen_init (BlListen *listen) -{ - listen->sock = -1; - listen->ccc = NULL; -} - -static void -bl_listen_finalize (GObject *object) -{ - BlListen *listen; - - listen = BL_LISTEN (object); - - if (listen->sock > -1) - { - close (listen->sock); - listen->sock = -1; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -BlListen * -bl_listen_new (gint port, - BlCcc *ccc) -{ - BlListen *listener; - struct sockaddr_in addr; - gint sock; - gint i; - - g_return_val_if_fail (port > 0, NULL); - - if ((sock = socket (PF_INET, SOCK_STREAM, IPPROTO_IP)) != -1) - { - i = 1; - if ((setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, &i, sizeof (i))) == -1) - { - close (sock); - g_warning ("Failed to configure socket: %s", g_strerror (errno)); - return NULL; - } - - memset (&addr, 0, sizeof (addr)); - - addr.sin_family = PF_INET; - addr.sin_addr.s_addr = htonl (INADDR_LOOPBACK); - addr.sin_port = htons (port); - - if ((bind (sock, (struct sockaddr *) &addr, sizeof (addr))) == -1) - { - close (sock); - g_print ("Failed to bind to socket: %s\n", g_strerror (errno)); - return NULL; - } - } - else - { - g_warning ("Failed to open socket: %s", g_strerror (errno)); - return NULL; - } - - if (listen (sock, 1) != 0) - { - g_warning ("Failed to put socket into the listening state: %s", - g_strerror (errno)); - close (sock); - return NULL; - } - - listener = BL_LISTEN (g_object_new (BL_TYPE_LISTEN, NULL)); - - listener->sock = sock; - listener->ccc = ccc; - g_object_add_weak_pointer (G_OBJECT (ccc), (gpointer *) &listener->ccc); - - g_thread_create ((GThreadFunc) bl_accept_new, listener, FALSE, NULL); - - return listener; -} diff --git a/blccc-1.99/src/bllisten.h b/blccc-1.99/src/bllisten.h deleted file mode 100644 index fb012a6..0000000 --- a/blccc-1.99/src/bllisten.h +++ /dev/null @@ -1,52 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_LISTEN_H__ -#define __BL_LISTEN_H__ - -G_BEGIN_DECLS - -#define BL_TYPE_LISTEN (bl_listen_get_type ()) -#define BL_LISTEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_LISTEN, BlListen)) -#define BL_LISTEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_LISTEN, BlListenClass)) -#define BL_IS_LISTEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_LISTEN)) -#define BL_IS_LISTEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_LISTEN)) - -typedef struct _BlListenClass BlListenClass; - -struct _BlListenClass -{ - GObjectClass parent_class; -}; - -struct _BlListen -{ - GObject parent_instance; - - gint sock; - BlCcc *ccc; -}; - -GType bl_listen_get_type (void) G_GNUC_CONST; -BlListen * bl_listen_new (gint port, - BlCcc *ccc); - -G_END_DECLS - -#endif /* __BL_LISTEN_H__ */ diff --git a/blccc-1.99/src/bllogger.c b/blccc-1.99/src/bllogger.c deleted file mode 100644 index 7742163..0000000 --- a/blccc-1.99/src/bllogger.c +++ /dev/null @@ -1,215 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include -#include -#include - -#include - -#include "bltypes.h" - -#include "bllogger.h" - - -#define LOG_INDENT 2 - - -static void bl_logger_class_init (BlLoggerClass *klass); -static void bl_logger_init (BlLogger *view); -static void bl_logger_finalize (GObject *object); - -static BObjectClass *parent_class = NULL; - - -GType -bl_logger_get_type (void) -{ - static GType logger_type = 0; - - if (!logger_type) - { - static const GTypeInfo logger_info = - { - sizeof (BlLoggerClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) bl_logger_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlLogger), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_logger_init, - }; - - logger_type = g_type_register_static (B_TYPE_OBJECT, - "BlLogger", - &logger_info, 0); - } - - return logger_type; -} - -static void -bl_logger_class_init (BlLoggerClass *klass) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = bl_logger_finalize; -} - -static void -bl_logger_init (BlLogger *logger) -{ - logger->writer = NULL; -} - -static void -bl_logger_finalize (GObject *object) -{ - BlLogger *logger = BL_LOGGER (object); - - if (logger->writer) - { - b_writer_free (logger->writer); - fclose (logger->stream); - - logger->writer = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -BlLogger * -bl_logger_new_from_file (const gchar *filename, - GError **error) -{ - BlLogger *logger; - FILE *stream; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - stream = fopen (filename, "a"); - if (!stream) - { - g_set_error (error, 0, 0, g_strerror (errno)); - return NULL; - } - - logger = BL_LOGGER (g_object_new (BL_TYPE_LOGGER, - "filename", filename, NULL)); - - logger->stream = stream; - logger->writer = b_writer_new (stream, LOG_INDENT); - - return logger; -} - -static void -bl_logger_get_time (BlLogger *logger) -{ - time_t now = time (NULL); - struct tm *tm = gmtime (&now); - - g_snprintf (logger->year, 8, "%d", tm->tm_year + 1900); - g_snprintf (logger->month, 8, "%d", tm->tm_mon + 1); - g_snprintf (logger->day, 8, "%d", tm->tm_mday); - g_snprintf (logger->hour, 8, "%d", tm->tm_hour); - g_snprintf (logger->minute, 8, "%d", tm->tm_min); - g_snprintf (logger->second, 8, "%d", tm->tm_sec); -} - -void -bl_logger_start_module (BlLogger *logger, - BModule *module) -{ - gchar *title; - gchar *description; - gchar *author; - - g_return_if_fail (BL_IS_LOGGER (logger)); - g_return_if_fail (B_IS_MODULE (module)); - - bl_logger_get_time (logger); - - b_write_open_tag (logger->writer, "start", - "tz", "UTC", - "year", logger->year, - "month", logger->month, - "day", logger->day, - "hour", logger->hour, - "minute", logger->minute, - "second", logger->second, - NULL); - - b_module_describe (module, &title, &description, &author); - - if (title) - { - b_write_element (logger->writer, "title", title, NULL); - g_free (title); - } - if (description) - { - b_write_element (logger->writer, "description", description, NULL); - g_free (description); - } - if (author) - { - b_write_element (logger->writer, "author", author, NULL); - g_free (author); - } - - if (B_IS_MOVIE_PLAYER (module)) - { - BMoviePlayer *player = B_MOVIE_PLAYER (module); - - if (player->filename) - b_write_element (logger->writer, "filename", player->filename, NULL); - } - - b_write_close_tag (logger->writer, "start"); - - fflush (logger->stream); -} - -void -bl_logger_stop (BlLogger *logger) -{ - g_return_if_fail (BL_IS_LOGGER (logger)); - - bl_logger_get_time (logger); - - b_write_element (logger->writer, "stop", NULL, - "tz", "UTC", - "year", logger->year, - "month", logger->month, - "day", logger->day, - "hour", logger->hour, - "minute", logger->minute, - "second", logger->second, - NULL); - - fflush (logger->stream); -} diff --git a/blccc-1.99/src/bllogger.h b/blccc-1.99/src/bllogger.h deleted file mode 100644 index 1572cb6..0000000 --- a/blccc-1.99/src/bllogger.h +++ /dev/null @@ -1,63 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_LOGGER_H__ -#define __BL_LOGGER_H__ - -G_BEGIN_DECLS - -#define BL_TYPE_LOGGER (bl_logger_get_type ()) -#define BL_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_LOGGER, BlLogger)) -#define BL_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_LOGGER, BlLoggerClass)) -#define BL_IS_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_LOGGER)) -#define BL_IS_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_LOGGER)) - -typedef struct _BlLoggerClass BlLoggerClass; - -struct _BlLoggerClass -{ - BObjectClass parent_class; -}; - -struct _BlLogger -{ - BObject parent_instance; - - FILE *stream; - BWriter *writer; - - gchar year[8]; - gchar month[8]; - gchar day[8]; - gchar hour[8]; - gchar minute[8]; - gchar second[8]; -}; - - -GType bl_logger_get_type (void) G_GNUC_CONST; -BlLogger * bl_logger_new_from_file (const gchar *filename, - GError **error); -void bl_logger_start_module (BlLogger *logger, - BModule *module); -void bl_logger_stop (BlLogger *logger); - -G_END_DECLS - -#endif /* __BL_LOGGER_H__ */ diff --git a/blccc-1.99/src/blloveletters.c b/blccc-1.99/src/blloveletters.c deleted file mode 100644 index adc4df1..0000000 --- a/blccc-1.99/src/blloveletters.c +++ /dev/null @@ -1,344 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include - -#include - -#include "bltypes.h" - -#include "blloveletters.h" - - -typedef enum -{ - PARSER_IN_LOVELETTERS = B_PARSER_STATE_USER, - PARSER_IN_MOVIE, - PARSER_FINISH -} ParserState; - -typedef struct _ParserData ParserData; -struct _ParserData -{ - gchar *root; - GHashTable *hash; -}; - - -static void bl_loveletters_class_init (BlLovelettersClass *klass); -static void bl_loveletters_init (BlLoveletters *view); -static void bl_loveletters_finalize (GObject *object); - -static void bl_loveletter_validate (const gchar *filename, - const gchar *id, - const gchar *vanity); - -static BParserState parser_start_element (BParserState state, - const gchar *name, - const gchar **names, - const gchar **attribute_values, - gpointer user_data, - GError **error); -static BParserState parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); - - -static BObjectClass *parent_class = NULL; - -static const gchar *vanity_codes[] = -{ - "0+", - "1", - "2abc", - "3def", - "4ghi", - "5jkl", - "6mno", - "7pqrs", - "8tuv", - "9wxyz", -}; - - -GType -bl_loveletters_get_type (void) -{ - static GType loveletters_type = 0; - - if (!loveletters_type) - { - static const GTypeInfo loveletters_info = - { - sizeof (BlLovelettersClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) bl_loveletters_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlLoveletters), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_loveletters_init, - }; - - loveletters_type = g_type_register_static (B_TYPE_OBJECT, - "BlLoveletters", - &loveletters_info, 0); - } - - return loveletters_type; -} - -static void -bl_loveletters_class_init (BlLovelettersClass *klass) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = bl_loveletters_finalize; -} - -static void -bl_loveletters_init (BlLoveletters *loveletters) -{ - loveletters->hash = g_hash_table_new_full (g_str_hash, g_str_equal, - g_free, g_free); -} - -static void -bl_loveletters_finalize (GObject *object) -{ - BlLoveletters *loveletters = BL_LOVELETTERS (object); - - if (loveletters->hash) - { - g_hash_table_destroy (loveletters->hash); - loveletters->hash = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -BlLoveletters * -bl_loveletters_new_from_file (const gchar *filename, - GError **error) -{ - GIOChannel *io; - BlLoveletters *loveletters; - BParser *parser; - ParserData data; - gboolean success; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (g_path_is_absolute (filename), NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - io = g_io_channel_new_file (filename, "r", error); - if (! io) - return NULL; - - loveletters = BL_LOVELETTERS (g_object_new (BL_TYPE_LOVELETTERS, - "filename", filename, - NULL)); - - data.hash = loveletters->hash; - data.root = g_path_get_dirname (filename); - - parser = b_parser_new (parser_start_element, parser_end_element, &data); - - success = b_parser_parse_io_channel (parser, io, TRUE, error); - - if (success && b_parser_get_state (parser) != PARSER_FINISH) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "This doesn't look like a Blinkenlights loveletters file."); - success = FALSE; - } - - b_parser_free (parser); - - if (!success) - { - g_object_unref (loveletters); - loveletters = NULL; - } - - g_free (data.root); - - return loveletters; -} - -const gchar * -bl_loveletters_lookup (BlLoveletters *loveletters, - const gchar *id) -{ - g_return_val_if_fail (BL_IS_LOVELETTERS (loveletters), NULL); - - return g_hash_table_lookup (loveletters->hash, id); -} - -static void -bl_loveletter_validate (const gchar *filename, - const gchar *id, - const gchar *vanity) -{ - const gchar *v_code = NULL; - gint id_len, v_len, i; - - if (!g_file_test (filename, G_FILE_TEST_EXISTS)) - g_printerr ("Loveletters-Warning: " - "href for '%s' points to nonexistant file.\n", id); - - id_len = id ? strlen (id) : 0; - v_len = vanity ? strlen (vanity) : 0; - - if (v_len && id_len != v_len) - { - g_printerr ("Loveletters-Warning: " - "id '%s' has invalid vanity code", id); - vanity = NULL; - } - - for (i = 0; i < id_len; i++) - { - switch (id[i]) - { - case '0' ... '9': - v_code = vanity_codes[id[i] - '0']; - break; - - default: - g_printerr ("Loveletters-Warning: " - "id '%s' contains illegal character(s).\n",id); - return; - } - - if (!vanity) - continue; - - if (!strchr (v_code, g_ascii_tolower (vanity[i]))) - { - g_printerr ("Loveletters-Warning: " - "id '%s' has invalid vanity code.\n", id); - vanity = NULL; - } - } -} - -static BParserState -parser_start_element (BParserState state, - const gchar *element_name, - const gchar **names, - const gchar **values, - gpointer user_data, - GError **error) -{ - ParserData *data = (ParserData *) user_data; - - switch (state) - { - case B_PARSER_STATE_TOPLEVEL: - if (! strcmp (element_name, "loveletters")) - return PARSER_IN_LOVELETTERS; - break; - - case PARSER_IN_LOVELETTERS: - if (! strcmp (element_name, "movie")) - { - const gchar *id = NULL; - const gchar *vanity = NULL; - const gchar *href = NULL; - gchar *filename; - gint i; - - for (i = 0; names[i] && values[i]; i++) - { - if (!id && strcmp (names[i], "id") == 0) - id = values[i]; - if (!vanity && strcmp (names[i], "vanity") == 0) - vanity = values[i]; - if (!href && strcmp (names[i], "href") == 0) - href = values[i]; - } - - if (!id) - { - g_set_error (error, 0, 0, - "id attribute is missing for movie element."); - break; - } - if (!href) - { - g_set_error (error, 0, 0, - "href attribute is missing for movie element."); - break; - } - - if (g_hash_table_lookup (data->hash, id)) - { - g_set_error (error, 0, 0, "id '%s' is not unique.", id); - break; - } - - filename = b_filename_from_utf8 (href, data->root, error); - if (filename) - { - bl_loveletter_validate (filename, id, vanity); - - g_hash_table_insert (data->hash, g_strdup (id), filename); - return PARSER_IN_MOVIE; - } - } - break; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static BParserState -parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error) -{ - switch (state) - { - case PARSER_IN_LOVELETTERS: - return PARSER_FINISH; - - case PARSER_IN_MOVIE: - return PARSER_IN_LOVELETTERS; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} diff --git a/blccc-1.99/src/blloveletters.h b/blccc-1.99/src/blloveletters.h deleted file mode 100644 index 2bfcf6d..0000000 --- a/blccc-1.99/src/blloveletters.h +++ /dev/null @@ -1,54 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_LOVELETTERS_H__ -#define __BL_LOVELETTERS_H__ - -G_BEGIN_DECLS - -#define BL_TYPE_LOVELETTERS (bl_loveletters_get_type ()) -#define BL_LOVELETTERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_LOVELETTERS, BlLoveletters)) -#define BL_LOVELETTERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_LOVELETTERS, BlLovelettersClass)) -#define BL_IS_LOVELETTERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_LOVELETTERS)) - - -typedef struct _BlLovelettersClass BlLovelettersClass; - -struct _BlLovelettersClass -{ - BObjectClass parent_class; -}; - -struct _BlLoveletters -{ - BObject parent_instance; - - GHashTable *hash; -}; - - -GType bl_loveletters_get_type (void) G_GNUC_CONST; -BlLoveletters * bl_loveletters_new_from_file (const gchar *filename, - GError **error); -const gchar * bl_loveletters_lookup (BlLoveletters *loveletters, - const gchar *id); - -G_END_DECLS - -#endif /* __BL_LOVELETTERS_H__ */ diff --git a/blccc-1.99/src/blmarshal.c b/blccc-1.99/src/blmarshal.c deleted file mode 100644 index e33c9c4..0000000 --- a/blccc-1.99/src/blmarshal.c +++ /dev/null @@ -1,132 +0,0 @@ -#include "blmarshal.h" - -#include - - -#ifdef G_ENABLE_DEBUG -#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) -#define g_marshal_value_peek_char(v) g_value_get_char (v) -#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) -#define g_marshal_value_peek_int(v) g_value_get_int (v) -#define g_marshal_value_peek_uint(v) g_value_get_uint (v) -#define g_marshal_value_peek_long(v) g_value_get_long (v) -#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) -#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) -#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) -#define g_marshal_value_peek_enum(v) g_value_get_enum (v) -#define g_marshal_value_peek_flags(v) g_value_get_flags (v) -#define g_marshal_value_peek_float(v) g_value_get_float (v) -#define g_marshal_value_peek_double(v) g_value_get_double (v) -#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) -#define g_marshal_value_peek_param(v) g_value_get_param (v) -#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) -#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) -#define g_marshal_value_peek_object(v) g_value_get_object (v) -#else /* !G_ENABLE_DEBUG */ -/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. - * Do not access GValues directly in your code. Instead, use the - * g_value_get_*() functions - */ -#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int -#define g_marshal_value_peek_char(v) (v)->data[0].v_int -#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint -#define g_marshal_value_peek_int(v) (v)->data[0].v_int -#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint -#define g_marshal_value_peek_long(v) (v)->data[0].v_long -#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong -#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 -#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 -#define g_marshal_value_peek_enum(v) (v)->data[0].v_int -#define g_marshal_value_peek_flags(v) (v)->data[0].v_uint -#define g_marshal_value_peek_float(v) (v)->data[0].v_float -#define g_marshal_value_peek_double(v) (v)->data[0].v_double -#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer -#endif /* !G_ENABLE_DEBUG */ - - -/* VOID:INT (./blmarshal.list:1) */ - -/* VOID:POINTER,INT (./blmarshal.list:2) */ -void -bl_marshal_VOID__POINTER_INT (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data) -{ - typedef void (*GMarshalFunc_VOID__POINTER_INT) (gpointer data1, - gpointer arg_1, - gint arg_2, - gpointer data2); - register GMarshalFunc_VOID__POINTER_INT callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; - - g_return_if_fail (n_param_values == 3); - - if (G_CCLOSURE_SWAP_DATA (closure)) - { - data1 = closure->data; - data2 = g_value_peek_pointer (param_values + 0); - } - else - { - data1 = g_value_peek_pointer (param_values + 0); - data2 = closure->data; - } - callback = (GMarshalFunc_VOID__POINTER_INT) (marshal_data ? marshal_data : cc->callback); - - callback (data1, - g_marshal_value_peek_pointer (param_values + 1), - g_marshal_value_peek_int (param_values + 2), - data2); -} - -/* VOID:POINTER (./blmarshal.list:3) */ - -/* VOID:POINTER,BOOLEAN (./blmarshal.list:4) */ -void -bl_marshal_VOID__POINTER_BOOLEAN (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data) -{ - typedef void (*GMarshalFunc_VOID__POINTER_BOOLEAN) (gpointer data1, - gpointer arg_1, - gboolean arg_2, - gpointer data2); - register GMarshalFunc_VOID__POINTER_BOOLEAN callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; - - g_return_if_fail (n_param_values == 3); - - if (G_CCLOSURE_SWAP_DATA (closure)) - { - data1 = closure->data; - data2 = g_value_peek_pointer (param_values + 0); - } - else - { - data1 = g_value_peek_pointer (param_values + 0); - data2 = closure->data; - } - callback = (GMarshalFunc_VOID__POINTER_BOOLEAN) (marshal_data ? marshal_data : cc->callback); - - callback (data1, - g_marshal_value_peek_pointer (param_values + 1), - g_marshal_value_peek_boolean (param_values + 2), - data2); -} - -/* VOID:UINT,POINTER (./blmarshal.list:5) */ - -/* VOID:VOID (./blmarshal.list:6) */ - diff --git a/blccc-1.99/src/blmarshal.h b/blccc-1.99/src/blmarshal.h deleted file mode 100644 index a475d6b..0000000 --- a/blccc-1.99/src/blmarshal.h +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef __bl_marshal_MARSHAL_H__ -#define __bl_marshal_MARSHAL_H__ - -#include - -G_BEGIN_DECLS - -/* VOID:INT (./blmarshal.list:1) */ -#define bl_marshal_VOID__INT g_cclosure_marshal_VOID__INT - -/* VOID:POINTER,INT (./blmarshal.list:2) */ -extern void bl_marshal_VOID__POINTER_INT (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); - -/* VOID:POINTER (./blmarshal.list:3) */ -#define bl_marshal_VOID__POINTER g_cclosure_marshal_VOID__POINTER - -/* VOID:POINTER,BOOLEAN (./blmarshal.list:4) */ -extern void bl_marshal_VOID__POINTER_BOOLEAN (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); - -/* VOID:UINT,POINTER (./blmarshal.list:5) */ -#define bl_marshal_VOID__UINT_POINTER g_cclosure_marshal_VOID__UINT_POINTER - -/* VOID:VOID (./blmarshal.list:6) */ -#define bl_marshal_VOID__VOID g_cclosure_marshal_VOID__VOID - -G_END_DECLS - -#endif /* __bl_marshal_MARSHAL_H__ */ - diff --git a/blccc-1.99/src/blmarshal.list b/blccc-1.99/src/blmarshal.list deleted file mode 100644 index 07627f5..0000000 --- a/blccc-1.99/src/blmarshal.list +++ /dev/null @@ -1,6 +0,0 @@ -VOID: INT -VOID: POINTER, INT -VOID: POINTER -VOID: POINTER, BOOLEAN -VOID: UINT, POINTER -VOID: VOID diff --git a/blccc-1.99/src/blondemand.c b/blccc-1.99/src/blondemand.c deleted file mode 100644 index e796196..0000000 --- a/blccc-1.99/src/blondemand.c +++ /dev/null @@ -1,391 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include -#include - -#include - -#include "bltypes.h" -#include "blloveletters.h" -#include "blondemand.h" - - -#define TICK 250 - -enum -{ - PROP_0, - PROP_ADVANCED, - PROP_LOVELETTERS -}; - -static void bl_on_demand_class_init (BlOnDemandClass *class); -static void bl_on_demand_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static gboolean bl_on_demand_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean bl_on_demand_prepare (BModule *module, - GError **error); -static void bl_on_demand_relax (BModule *module); -static void bl_on_demand_start (BModule *module); -static gint bl_on_demand_tick (BModule *module); -static void bl_on_demand_event (BModule *module, - BModuleEvent *event); -static void bl_on_demand_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); -static void bl_on_demand_paint (BModule *module); - - -static BModuleClass *parent_class = NULL; - - -GType -bl_on_demand_get_type (void) -{ - static GType type = 0; - - if (! type) - { - static const GTypeInfo info = - { - sizeof (BlOnDemandClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) bl_on_demand_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlOnDemand), - 0, /* n_preallocs */ - NULL /* instance_init */ - }; - - type = g_type_register_static (B_TYPE_MOVIE_PLAYER, - "BlOnDemand", &info, 0); - } - - return type; -} - -static void -bl_on_demand_class_init (BlOnDemandClass *klass) -{ - GObjectClass *object_class; - GParamSpec *param_spec; - BModuleClass *module_class; - BMoviePlayerClass *player_class; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - player_class = B_MOVIE_PLAYER_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->set_property = bl_on_demand_set_property; - - param_spec = g_param_spec_boolean ("advanced", NULL, - "Use advanced features (pause/restart).", - FALSE, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_ADVANCED, param_spec); - - param_spec = b_param_spec_filename ("loveletters", NULL, - "The filename of the loveletters list.", - NULL, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_LOVELETTERS, param_spec); - - module_class->max_players = 1; - - module_class->query = bl_on_demand_query; - module_class->prepare = bl_on_demand_prepare; - module_class->relax = bl_on_demand_relax; - module_class->start = bl_on_demand_start; - module_class->tick = bl_on_demand_tick; - module_class->event = bl_on_demand_event; - module_class->describe = bl_on_demand_describe; - - player_class->request_stop = parent_class->start; /* loop the movie */ -} - -static void -bl_on_demand_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BlOnDemand *on_demand = BL_ON_DEMAND (object); - - switch (property_id) - { - case PROP_ADVANCED: - on_demand->advanced = g_value_get_boolean (value); - break; - case PROP_LOVELETTERS: - if (on_demand->filename) - g_object_unref (on_demand->filename); - on_demand->filename = g_value_dup_string (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static gboolean -bl_on_demand_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 2 * MAX_ON_DEMAND_CHARS && height > 3 && - channels == 1 && maxval == 255); -} - -static gboolean -bl_on_demand_prepare (BModule *module, - GError **error) -{ - BlOnDemand *on_demand = BL_ON_DEMAND (module); - - if (!on_demand->filename) - { - g_set_error (error, 0, 0, "No loveletters file configured"); - return FALSE; - } - - B_MOVIE_PLAYER (module)->clear = FALSE; - - on_demand->loveletters = - bl_loveletters_new_from_file (on_demand->filename, error); - - on_demand->movie_active = FALSE; - on_demand->movie_paused = FALSE; - - return (on_demand->loveletters != NULL); -} - -static void -bl_on_demand_relax (BModule *module) -{ - BlOnDemand *on_demand = BL_ON_DEMAND (module); - - if (on_demand->loveletters) - { - g_object_unref (on_demand->loveletters); - on_demand->loveletters = NULL; - } - - if (on_demand->movie_active) - { - parent_class->relax (module); - on_demand->movie_active = FALSE; - } -} - -static void -bl_on_demand_start (BModule *module) -{ - BlOnDemand *on_demand = BL_ON_DEMAND (module); - - on_demand->chars = -1; - on_demand->movie_active = FALSE; - - bl_on_demand_paint (module); - b_module_ticker_start (module, TICK); -} - -static gint -bl_on_demand_tick (BModule *module) -{ - BlOnDemand *on_demand = BL_ON_DEMAND (module); - - if (on_demand->movie_active && !on_demand->movie_paused) - return parent_class->tick (module); - - if (!on_demand->movie_active) - bl_on_demand_paint (module); - - return TICK; -} - -static void -bl_on_demand_event (BModule *module, - BModuleEvent *event) -{ - BlOnDemand *on_demand = BL_ON_DEMAND (module); - const gchar *movie; - - /* in DAU mode, ignore keys when a movie has been started */ - if (!on_demand->advanced && on_demand->movie_active) - return; - - if (event->type != B_EVENT_TYPE_KEY) - return; - - switch (event->key) - { - case B_KEY_0 ... B_KEY_9: - if (on_demand->chars < 0) - return; - - on_demand->code[on_demand->chars] = event->key + '0'; - on_demand->chars++; - - if (on_demand->chars < MAX_ON_DEMAND_CHARS) - break; - /* else fallthru */ - - case B_KEY_HASH: - if (on_demand->movie_active) - { - on_demand->movie_paused = (on_demand->movie_paused == FALSE); - - if (!on_demand->movie_paused) - { - b_module_fill (module, 0); - parent_class->start (module); - } - } - - if (on_demand->chars <= 0) - return; - - if (on_demand->movie_active) - { - parent_class->relax (module); - on_demand->movie_active = FALSE; - } - - on_demand->code[on_demand->chars] = '\0'; - on_demand->chars = -1; - - movie = bl_loveletters_lookup (on_demand->loveletters, on_demand->code); - if (movie) - { - GError *error = NULL; - - g_object_set (module, "movie", movie, NULL); - - if (parent_class->prepare (module, &error)) - { - g_printerr ("Starting loveletter for ID '%s'.\n", - on_demand->code); - - on_demand->movie_active = TRUE; - on_demand->movie_paused = FALSE; - - b_module_fill (module, 0); - parent_class->start (module); - return; - } - else - { - g_printerr ("Error preparing BlOnDemand: %s\n", error->message); - g_clear_error (&error); - - on_demand->movie_active = FALSE; - } - } - else - { - g_printerr ("No loveletter found for ID '%s'.\n", on_demand->code); - } - break; - - case B_KEY_ASTERISK: - on_demand->chars = 0; - if (on_demand->movie_active) - { - B_MOVIE_PLAYER (module)->current = NULL; - on_demand->movie_paused = TRUE; - } - break; - } - - bl_on_demand_paint (module); -} - -static void -bl_on_demand_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BlOnDemand"; - *author = "Sven Neumann"; - - if (BL_ON_DEMAND (module)->advanced) - *description = "Interactive movie player (advcanced)"; - else - *description = "Interactive movie player (DAU mode)"; -} - -static void -bl_on_demand_paint (BModule *module) -{ - gint n; - gint w = module->width / 2; - gint h = module->height / 2; - gint v = module->maxval / 2; - gint l = MIN (w / 2, h / 2); - - b_module_fill (module, 0); - - h--; - - n = BL_ON_DEMAND (module)->chars; - - if (n < 0) - { - b_module_draw_line (module, w - l, h , w + l, h , v + rand()%v); - b_module_draw_line (module, w - l, h - l, w + l, h + l, v + rand()%v); - b_module_draw_line (module, w - l, h + l, w + l, h -l , v + rand()%v); - } - else - { - guchar *d = module->buffer + (h / 2) * module->width; - gint x, i; - - x = w - MAX_ON_DEMAND_CHARS; - - for (i = 0; i < MAX_ON_DEMAND_CHARS; i++, x += 2) - d[x] = (i < n) ? module->maxval : module->maxval / 2; - } - - if (n > 0 || BL_ON_DEMAND (module)->movie_active) - { - b_module_draw_line (module, - w - l , h + l/2, w + l , h + l/2 , v + rand()%v); - b_module_draw_line (module, - w - l , h + l , w + l , h + l , v + rand()%v); - b_module_draw_line (module, - w - l/2, h , w - l/2, h + 3*l/2, v + rand()%v); - b_module_draw_line (module, - w + l/2, h , w + l/2, h + 3*l/2, v + rand()%v); - } - - b_module_paint (module); -} diff --git a/blccc-1.99/src/blondemand.h b/blccc-1.99/src/blondemand.h deleted file mode 100644 index 71d2e37..0000000 --- a/blccc-1.99/src/blondemand.h +++ /dev/null @@ -1,61 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_ON_DEMAND_H__ -#define __BL_ON_DEMAND_H__ - -#define MAX_ON_DEMAND_CHARS 8 - -G_BEGIN_DECLS - -#define BL_TYPE_ON_DEMAND (bl_on_demand_get_type ()) -#define BL_ON_DEMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_ON_DEMAND, BlOnDemand)) -#define BL_ON_DEMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_ON_DEMAND, BlOnDemandClass)) -#define BL_IS_ON_DEMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_ON_DEMAND)) -#define BL_IS_ON_DEMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_ON_DEMAND)) -#define BL_ON_DEMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BL_TYPE_ON_DEMAND, BlOnDemandClass)) - -typedef struct _BlOnDemandClass BlOnDemandClass; - -struct _BlOnDemand -{ - BMoviePlayer parent_instance; - - gchar *filename; - BlLoveletters *loveletters; - - gboolean advanced; - - gint chars; - gchar code[MAX_ON_DEMAND_CHARS + 1]; - - gboolean movie_active; - gboolean movie_paused; -}; - -struct _BlOnDemandClass -{ - BMoviePlayerClass parent_class; -}; - -GType bl_on_demand_get_type (void) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __BL_ON_DEMAND_H__ */ diff --git a/blccc-1.99/src/blplaylist-parse.c b/blccc-1.99/src/blplaylist-parse.c deleted file mode 100644 index 5e96e3c..0000000 --- a/blccc-1.99/src/blplaylist-parse.c +++ /dev/null @@ -1,479 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include - -#include - -#include "bltypes.h" - -#include "blconfig.h" -#include "blplaylist.h" -#include "blplaylist-parse.h" -#include "blplaylistitem.h" - - -typedef enum -{ - PARSER_IN_PLAYLIST = B_PARSER_STATE_USER, - PARSER_IN_LIST, - PARSER_IN_ITEM, - PARSER_IN_PARAM, - PARSER_FINISH -} ParserState; - -typedef struct _ParserData ParserData; - -struct _ParserData -{ - gchar *root; - - GList *playlists; - BlConfig *config; - guchar *buffer; - BModulePaintCallback paint_callback; - gpointer paint_data; - - BlPlaylistItem *item; -}; - - -static BParserState parser_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); -static BParserState parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); -static GType item_parse_attributes (BlPlaylistItem *item, - const gchar **names, - const gchar **values); - - -gboolean -bl_playlist_parse (BlPlaylist *playlist, - BModulePaintCallback paint_callback, - gpointer paint_data, - GError **error) -{ - BParser *parser; - ParserData data = { 0 }; - GIOChannel *io; - const gchar *filename; - gboolean retval; - - g_return_val_if_fail (BL_IS_PLAYLIST (playlist), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - filename = b_object_get_filename (B_OBJECT (playlist)); - - g_return_val_if_fail (filename != NULL, FALSE); - - io = g_io_channel_new_file (filename, "r", error); - if (! io) - return FALSE; - - data.playlists = g_list_prepend (NULL, playlist); - data.config = playlist->config; - data.buffer = playlist->buffer; - data.paint_callback = paint_callback; - data.paint_data = paint_data; - - if (g_path_is_absolute (filename)) - { - data.root = g_path_get_dirname (filename); - } - else - { - gchar *dir = g_get_current_dir (); - gchar *tmp = g_build_filename (dir, filename, NULL); - - data.root = g_path_get_dirname (tmp); - - g_free (tmp); - g_free (dir); - } - - parser = b_parser_new (parser_start_element, parser_end_element, &data); - - retval = b_parser_parse_io_channel (parser, io, TRUE, error); - - if (retval && b_parser_get_state (parser) != PARSER_FINISH) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "This doesn't look like a Blinkenlights playlist"); - retval = FALSE; - } - - b_parser_free (parser); - - g_free (data.root); - - g_io_channel_unref (io); - - return retval; -} - - -/* private functions */ - -static inline void -parser_prepend_item (ParserData *data, - BlPlaylistItem *item) -{ - BlPlaylist *playlist; - - playlist = BL_PLAYLIST (data->playlists->data); - - playlist->items = g_list_prepend (playlist->items, item); -} - -static BParserState -parser_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error) -{ - ParserData *data = (ParserData *) user_data; - - switch (state) - { - case PARSER_IN_PLAYLIST: - if (! strcmp (element_name, "item")) - { - GType module_type; - - data->item = bl_playlist_item_new (); - - module_type = item_parse_attributes (data->item, - attribute_names, - attribute_values); - - data->item->module = b_module_new (module_type, - data->config->width, - data->config->height, - data->buffer, - data->paint_callback, - data->paint_data, - NULL); - if (data->item->module) - b_module_set_aspect (data->item->module, data->config->aspect); - - return PARSER_IN_ITEM; - } - - if (! strcmp (element_name, "list")) - { - /* just for storing the effects */ - data->item = bl_playlist_item_new (); - - /* ignore GType return value */ - item_parse_attributes (data->item, - attribute_names, - attribute_values); - - return PARSER_IN_LIST; - } - - /* fallthru */ - - case B_PARSER_STATE_TOPLEVEL: - if (! strcmp (element_name, "playlist")) - { - BlPlaylist *playlist; - BlPlaylistItem *item; - - if (state == PARSER_IN_PLAYLIST) - { - playlist = bl_playlist_new (data->config); - data->playlists = g_list_prepend (data->playlists, playlist); - } - else - { - playlist = BL_PLAYLIST (data->playlists->data); - } - - /* just for storing the effects */ - item = bl_playlist_item_new (); - - /* ignore GType return value */ - item_parse_attributes (item, - attribute_names, - attribute_values); - - g_object_set_data_full (G_OBJECT (playlist), "effect-item", item, - (GDestroyNotify) g_object_unref); - - return PARSER_IN_PLAYLIST; - } - break; - - case PARSER_IN_ITEM: - if (! strcmp (element_name, "param") && data->item->module) - { - if (!b_parse_param (G_OBJECT (data->item->module), data->root, - attribute_names, attribute_values, error)) - { - g_object_unref (data->item->module); - data->item->module = NULL; - break; - } - return PARSER_IN_PARAM; - } - break; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static BParserState -parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error) -{ - ParserData *data = (ParserData *) user_data; - - switch (state) - { - case PARSER_IN_PLAYLIST: - { - BlPlaylist *playlist; - BlPlaylistItem *item; - - playlist = BL_PLAYLIST (data->playlists->data); - - playlist->items = g_list_reverse (playlist->items); - - item = g_object_get_data (G_OBJECT (playlist), "effect-item"); - - if (item) - { - bl_playlist_item_apply_effects (BL_PLAYLIST_ITEM (playlist), - item->effects, - item->loop, - item->reverse, - item->speed); - - g_object_set_data (G_OBJECT (playlist), "effect-item", NULL); - } - - if (g_list_length (data->playlists) == 1) - return PARSER_FINISH; - - data->playlists = g_list_remove (data->playlists, playlist); - - if (g_list_length (playlist->items) == 0) - { - g_object_unref (G_OBJECT (playlist)); - } - else - { - parser_prepend_item (data, BL_PLAYLIST_ITEM (playlist)); - } - } - return PARSER_IN_PLAYLIST; - - case PARSER_IN_LIST: - { - BlPlaylist *sublist = NULL; - - if (cdata) - { - gchar *filename; - - filename = b_filename_from_utf8 (cdata, data->root, NULL); - - if (filename) - { - sublist = bl_playlist_new_from_file (filename, - data->config, - data->paint_callback, - data->paint_data); - g_free (filename); - - if (sublist->items == NULL) - { - g_object_unref (G_OBJECT (sublist)); - sublist = NULL; - } - } - } - - if (sublist) - { - bl_playlist_item_apply_effects (BL_PLAYLIST_ITEM (sublist), - data->item->effects, - data->item->loop, - data->item->reverse, - data->item->speed); - - parser_prepend_item (data, BL_PLAYLIST_ITEM (sublist)); - } - - g_object_unref (G_OBJECT (data->item)); - } - data->item = NULL; - return PARSER_IN_PLAYLIST; - - case PARSER_IN_ITEM: - if (data->item->module) - { - if (data->item->speed != 1.0 || data->item->module->speed != 1.0) - { - data->item->speed *= data->item->module->speed; - - g_object_set (G_OBJECT (data->item->module), - "speed", data->item->speed, - NULL); - } - - if (B_IS_MOVIE_PLAYER (data->item->module)) - { - BMoviePlayer *player; - - player = B_MOVIE_PLAYER (data->item->module); - - if (data->item->reverse || player->reverse) - { - data->item->reverse ^= player->reverse; - - player->reverse = data->item->reverse; - } - } - - parser_prepend_item (data, data->item); - } - else - { - g_object_unref (G_OBJECT (data->item)); - } - - data->item = NULL; - return PARSER_IN_PLAYLIST; - - case PARSER_IN_PARAM: - return PARSER_IN_ITEM; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static BEffectScope -parse_effect_scope (const gchar *value) -{ - if (value) - { - if (! g_ascii_strcasecmp (value, "left")) - return B_EFFECT_SCOPE_LEFT; - else if (! g_ascii_strcasecmp (value, "right")) - return B_EFFECT_SCOPE_RIGHT; - } - - return B_EFFECT_SCOPE_ALL; -} - -static GType -item_parse_attributes (BlPlaylistItem *item, - const gchar **names, - const gchar **values) -{ - const gchar *type_name = "BMoviePlayer"; - gint i; - - for (i = 0; names[i] && values[i]; i++) - { - if (! strcmp (names[i], "type")) - { - type_name = values[i]; - } - else if (! strcmp (names[i], "loop")) - { - gint loop; - - if (b_parse_int (values[i], &loop) && loop > 1) - item->loop = loop; - } - else if (! strcmp (names[i], "reverse")) - { - item->reverse = TRUE; - } - else if (! strcmp (names[i], "speed")) - { - gdouble speed; - - if (b_parse_double (values[i], &speed) && - speed >= 0.1 && speed <= 10) - item->speed = speed; - } - else if (! strcmp (names[i], "invert")) - { - item->effects->invert = parse_effect_scope (values[i]); - } - else if (! strcmp (names[i], "hflip")) - { - item->effects->hflip = parse_effect_scope (values[i]); - } - else if (! strcmp (names[i], "vflip")) - { - item->effects->vflip = parse_effect_scope (values[i]); - } - else if (! strcmp (names[i], "mirror")) - { - gboolean left = FALSE; - gboolean right = FALSE; - - if (! g_ascii_strcasecmp (values[i], "left")) - left = TRUE; - else if (! g_ascii_strcasecmp (values[i], "right")) - right = TRUE; - - if (left || right) - { - if (left) - { - item->effects->lmirror = TRUE; - item->effects->rmirror = FALSE; - } - else - { - item->effects->rmirror = TRUE; - item->effects->lmirror = FALSE; - } - } - } - } - - return g_type_from_name (type_name); -} diff --git a/blccc-1.99/src/blplaylist-parse.h b/blccc-1.99/src/blplaylist-parse.h deleted file mode 100644 index 34487bf..0000000 --- a/blccc-1.99/src/blplaylist-parse.h +++ /dev/null @@ -1,34 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_PLAYLIST_PARSE_H__ -#define __BL_PLAYLIST_PARSE_H__ - -G_BEGIN_DECLS - - -gboolean bl_playlist_parse (BlPlaylist *playlist, - BModulePaintCallback paint_callback, - gpointer paint_data, - GError **error); - -G_END_DECLS - - -#endif /* __BL_PLAYLIST_PARSE_H__ */ diff --git a/blccc-1.99/src/blplaylist.c b/blccc-1.99/src/blplaylist.c deleted file mode 100644 index 19aabfa..0000000 --- a/blccc-1.99/src/blplaylist.c +++ /dev/null @@ -1,401 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include -#include - -#include - -#include "bltypes.h" -#include "blconfig.h" -#include "blplaylist.h" -#include "blplaylist-parse.h" - - -static void bl_playlist_class_init (BlPlaylistClass *klass); -static void bl_playlist_init (BlPlaylist *playlist); -static void bl_playlist_finalize (GObject *object); - -static gchar * bl_playlist_describe (BlPlaylistItem *item); -static void bl_playlist_apply_effects (BlPlaylistItem *item, - BEffects *effects, - gint loop, - gboolean reverse, - gdouble speed); - - -static BlPlaylistItemClass *parent_class = NULL; - - -GType -bl_playlist_get_type (void) -{ - static GType playlist_type = 0; - - if (!playlist_type) - { - static const GTypeInfo playlist_info = - { - sizeof (BlPlaylistClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) bl_playlist_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlPlaylist), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_playlist_init, - }; - - playlist_type = g_type_register_static (BL_TYPE_PLAYLIST_ITEM, - "BlPlaylist", - &playlist_info, 0); - } - - return playlist_type; -} - -static void -bl_playlist_class_init (BlPlaylistClass *klass) -{ - GObjectClass *object_class; - BlPlaylistItemClass *item_class; - - object_class = G_OBJECT_CLASS (klass); - item_class = BL_PLAYLIST_ITEM_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = bl_playlist_finalize; - - item_class->describe = bl_playlist_describe; - item_class->apply_effects = bl_playlist_apply_effects; -} - -static void -bl_playlist_init (BlPlaylist *playlist) -{ - playlist->config = NULL; - playlist->buffer = NULL; - playlist->items = NULL; - playlist->current = NULL; -} - -static void -bl_playlist_finalize (GObject *object) -{ - BlPlaylist *playlist; - - playlist = BL_PLAYLIST (object); - - g_list_foreach (playlist->items, (GFunc) g_object_unref, NULL); - g_list_free (playlist->items); - - playlist->items = NULL; - playlist->current = NULL; - - if (playlist->config) - { - g_object_unref (playlist->config); - playlist->config = NULL; - } - if (playlist->buffer) - { - g_free (playlist->buffer); - playlist->buffer = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -BlPlaylist * -bl_playlist_new (BlConfig *config) -{ - BlPlaylist *playlist; - - g_return_val_if_fail (BL_IS_CONFIG (config), NULL); - - playlist = g_object_new (BL_TYPE_PLAYLIST, NULL); - - playlist->config = g_object_ref (config); - playlist->buffer = g_new0 (guchar, config->width * config->height); - - return playlist; -} - -BlPlaylist * -bl_playlist_new_from_file (const gchar *filename, - BlConfig *config, - BModulePaintCallback paint_callback, - gpointer paint_data) -{ - BlPlaylist *playlist; - GError *error = NULL; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (BL_IS_CONFIG (config), NULL); - g_return_val_if_fail (paint_callback != NULL, NULL); - - if (! g_file_test (filename, G_FILE_TEST_IS_REGULAR)) - { - g_printerr ("Playlist '%s' does not exist or is not a regular file\n", - filename); - return NULL; - } - - playlist = bl_playlist_new (config); - - b_object_set_filename (B_OBJECT (playlist), filename); - - if (! bl_playlist_parse (playlist, paint_callback, paint_data, &error)) - { - g_printerr ("Failed to parse playlist '%s': %s\n", - b_object_get_name (B_OBJECT (playlist)), error->message); - g_clear_error (&error); - } - else - { - g_printerr ("Successfully loaded playlist '%s' with %d items\n", - b_object_get_name (B_OBJECT (playlist)), - g_list_length (playlist->items)); - } - - return playlist; -} - -static BlPlaylistItem * -bl_playlist_load_item_internal (BlPlaylistItem *item) -{ - if (BL_IS_PLAYLIST (item)) - return bl_playlist_load_next_item (BL_PLAYLIST (item), FALSE); - - return item; -} - -BlPlaylistItem * -bl_playlist_load_next_item (BlPlaylist *playlist, - gboolean wrap_around) -{ - BlPlaylistItem *item; - BlPlaylistItem *return_item; - GList *list; - - g_return_val_if_fail (BL_IS_PLAYLIST (playlist), NULL); - - if (playlist->current) - { - item = (BlPlaylistItem *) playlist->current->data; - - if (BL_IS_PLAYLIST (item)) - { - return_item = bl_playlist_load_item_internal (item); - - if (return_item) - return return_item; - } - - item->count++; - - if (item->loop > item->count) - { - return_item = bl_playlist_load_item_internal (item); - - if (return_item) - return return_item; - } - - item->count = 0; - - list = g_list_next (playlist->current); - } - else - { - list = playlist->items; - } - - for (; list; list = g_list_next (list)) - { - item = (BlPlaylistItem *) list->data; - - return_item = bl_playlist_load_item_internal (item); - - if (return_item) - { - playlist->current = list; - return return_item; - } - } - -#if 0 - /* dirty HACK - so that I can go back to the party and drown myself in alcohol */ - wrap_around = TRUE; -#endif - - if (wrap_around) - { - /* start from the beginning */ - - for (list = playlist->items; list; list = g_list_next (list)) - { - item = (BlPlaylistItem *) list->data; - - return_item = bl_playlist_load_item_internal (item); - - if (return_item) - { - playlist->current = list; - return return_item; - } - } - } - - playlist->current = NULL; - return NULL; -} - -#if 0 -static BlPlaylistItem * -bl_playlist_peek_item_internal (BlPlaylistItem *item) -{ - if (BL_IS_PLAYLIST (item)) - return bl_playlist_peek_next_item (BL_PLAYLIST (item), FALSE); - - return item; -} - -BlPlaylistItem * -bl_playlist_peek_next_item (BlPlaylist *playlist, - gboolean wrap_around) -{ - BlPlaylistItem *item; - BlPlaylistItem *return_item; - GList *list; - - g_return_val_if_fail (BL_IS_PLAYLIST (playlist), NULL); - - if (playlist->current) - { - item = (BlPlaylistItem *) playlist->current->data; - - if (BL_IS_PLAYLIST (item)) - { - return_item = bl_playlist_peek_item_internal (item); - - if (return_item) - return return_item; - } - - if (item->loop > (item->count + 1)) - { - return_item = bl_playlist_peek_item_internal (item); - - if (return_item) - return return_item; - } - - list = g_list_next (playlist->current); - } - else - { - list = playlist->items; - } - - for (; list; list = g_list_next (list)) - { - item = (BlPlaylistItem *) list->data; - - return_item = bl_playlist_peek_item_internal (item); - - if (return_item) - return return_item; - } - - if (wrap_around) - { - /* start from the beginning */ - - for (list = playlist->items; list; list = g_list_next (list)) - { - item = (BlPlaylistItem *) list->data; - - return_item = bl_playlist_peek_item_internal (item); - - if (return_item) - return return_item; - } - } - - return NULL; -} -#endif - -static gchar * -bl_playlist_describe (BlPlaylistItem *item) -{ - BlPlaylist *playlist; - BlPlaylistItem *child; - GList *list; - GString *str; - gchar *tmp; - - playlist = BL_PLAYLIST (item); - - str = g_string_new (NULL); - g_string_printf (str, "Playlist '%s':\n", - b_object_get_name (B_OBJECT (playlist))); - - for (list = playlist->items; list; list = g_list_next (list)) - { - child = (BlPlaylistItem *) list->data; - - tmp = bl_playlist_item_describe (child); - g_string_append_printf (str, " %s\n", tmp); - g_free (tmp); - } - - return g_string_free (str, FALSE); -} - -static void -bl_playlist_apply_effects (BlPlaylistItem *item, - BEffects *effects, - gint loop, - gboolean reverse, - gdouble speed) -{ - BlPlaylist *playlist; - BlPlaylistItem *child; - GList *list; - - playlist = BL_PLAYLIST (item); - - BL_PLAYLIST_ITEM_CLASS (parent_class)->apply_effects (item, effects, - loop, reverse, speed); - - for (list = playlist->items; list; list = g_list_next (list)) - { - child = (BlPlaylistItem *) list->data; - - bl_playlist_item_apply_effects (child, effects, 0, reverse, speed); - } - - if (reverse) - playlist->items = g_list_reverse (playlist->items); -} diff --git a/blccc-1.99/src/blplaylist.h b/blccc-1.99/src/blplaylist.h deleted file mode 100644 index 1fabdda..0000000 --- a/blccc-1.99/src/blplaylist.h +++ /dev/null @@ -1,72 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_PLAYLIST_H__ -#define __BL_PLAYLIST_H__ - -G_BEGIN_DECLS - -#include "blplaylistitem.h" - - -#define BL_TYPE_PLAYLIST (bl_playlist_get_type ()) -#define BL_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_PLAYLIST, BlPlaylist)) -#define BL_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_PLAYLIST, BlPlaylistClass)) -#define BL_IS_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_PLAYLIST)) -#define BL_IS_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_PLAYLIST)) - - -typedef struct _BlPlaylistClass BlPlaylistClass; - -struct _BlPlaylist -{ - BlPlaylistItem parent_instance; - - BlConfig *config; - - guchar *buffer; - - GList *items; - GList *current; -}; - -struct _BlPlaylistClass -{ - BlPlaylistItemClass parent_class; -}; - - -GType bl_playlist_get_type (void) G_GNUC_CONST; -BlPlaylist * bl_playlist_new (BlConfig *config); -BlPlaylist * bl_playlist_new_from_file (const gchar *filename, - BlConfig *config, - BModulePaintCallback paint_callback, - gpointer paint_data); -BlPlaylistItem * bl_playlist_load_next_item (BlPlaylist *playlist, - gboolean wrap_around); - -#if 0 -BlPlaylistItem * bl_playlist_peek_next_item (BlPlaylist *playlist, - gboolean wrap_around); -#endif - - -G_END_DECLS - -#endif /* __BL_PLAYLIST_H__ */ diff --git a/blccc-1.99/src/blplaylistitem.c b/blccc-1.99/src/blplaylistitem.c deleted file mode 100644 index e741a7f..0000000 --- a/blccc-1.99/src/blplaylistitem.c +++ /dev/null @@ -1,202 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include - -#include "bltypes.h" - -#include "blplaylistitem.h" - - -static void bl_playlist_item_class_init (BlPlaylistItemClass *klass); -static void bl_playlist_item_init (BlPlaylistItem *item); -static void bl_playlist_item_finalize (GObject *object); - -static gchar * bl_playlist_item_real_describe (BlPlaylistItem *item); -static void bl_playlist_item_real_apply_effects (BlPlaylistItem *item, - BEffects *effects, - gint loop, - gboolean reverse, - gdouble speed); - - -static BObjectClass *parent_class = NULL; - - -GType -bl_playlist_item_get_type (void) -{ - static GType item_type = 0; - - if (! item_type) - { - static const GTypeInfo item_info = - { - sizeof (BlPlaylistItemClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) bl_playlist_item_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlPlaylistItem), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_playlist_item_init, - }; - - item_type = g_type_register_static (B_TYPE_OBJECT, - "BlPlaylistItem", - &item_info, 0); - } - - return item_type; -} - -static void -bl_playlist_item_class_init (BlPlaylistItemClass *klass) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = bl_playlist_item_finalize; - - klass->describe = bl_playlist_item_real_describe; - klass->apply_effects = bl_playlist_item_real_apply_effects; -} - -static void -bl_playlist_item_init (BlPlaylistItem *item) -{ - item->module = NULL; - item->effects = b_effects_new (); - item->loop = 0; - item->count = 0; - item->reverse = FALSE; - item->speed = 1.0; -} - -static void -bl_playlist_item_finalize (GObject *object) -{ - BlPlaylistItem *item; - - item = BL_PLAYLIST_ITEM (object); - - if (item->module) - g_object_unref (item->module); - - if (item->effects) - g_object_unref (item->effects); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static gchar * -bl_playlist_item_real_describe (BlPlaylistItem *item) -{ - GString *str; - - g_return_val_if_fail (BL_IS_PLAYLIST_ITEM (item), NULL); - - str = g_string_new (NULL); - - g_string_printf (str, "'%s'", - g_type_name (G_TYPE_FROM_INSTANCE (item->module))); - - if (B_IS_MOVIE_PLAYER (item->module)) - { - if (B_MOVIE_PLAYER (item->module)->movie) - { - g_string_append_printf (str, " (%s)", - b_object_get_name (B_OBJECT (B_MOVIE_PLAYER (item->module)->movie))); - } - else - { - g_string_append_printf (str, " (%s)", - B_MOVIE_PLAYER (item->module)->filename); - } - } - - if (item->loop > 1) - g_string_append_printf (str, " (%dx)", item->loop); - - return g_string_free (str, FALSE); -} - -void -bl_playlist_item_real_apply_effects (BlPlaylistItem *item, - BEffects *effects, - gint loop, - gboolean reverse, - gdouble speed) -{ - item->effects->invert ^= effects->invert; - item->effects->vflip ^= effects->vflip; - item->effects->hflip ^= effects->hflip; - item->effects->lmirror ^= effects->lmirror; - item->effects->rmirror ^= effects->rmirror; - - if (loop > 0) - item->loop = loop; - - item->reverse ^= reverse; - item->speed *= speed; - - if (item->module) - { - g_object_set (G_OBJECT (item->module), "speed", item->speed, NULL); - - if (B_IS_MOVIE_PLAYER (item->module)) - B_MOVIE_PLAYER (item->module)->reverse = item->reverse; - } -} - -BlPlaylistItem * -bl_playlist_item_new (void) -{ - BlPlaylistItem *item; - - item = g_object_new (BL_TYPE_PLAYLIST_ITEM, NULL); - - return item; -} - -gchar * -bl_playlist_item_describe (BlPlaylistItem *item) -{ - g_return_val_if_fail (BL_IS_PLAYLIST_ITEM (item), NULL); - - return BL_PLAYLIST_ITEM_GET_CLASS (item)->describe (item); -} - -void -bl_playlist_item_apply_effects (BlPlaylistItem *item, - BEffects *effects, - gint loop, - gboolean reverse, - gdouble speed) -{ - g_return_if_fail (BL_IS_PLAYLIST_ITEM (item)); - g_return_if_fail (B_IS_EFFECTS (effects)); - - BL_PLAYLIST_ITEM_GET_CLASS (item)->apply_effects (item, effects, - loop, reverse, speed); -} diff --git a/blccc-1.99/src/blplaylistitem.h b/blccc-1.99/src/blplaylistitem.h deleted file mode 100644 index 3c5ed26..0000000 --- a/blccc-1.99/src/blplaylistitem.h +++ /dev/null @@ -1,75 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_PLAYLIST_ITEM_H__ -#define __BL_PLAYLIST_ITEM_H__ - -G_BEGIN_DECLS - - -#define BL_TYPE_PLAYLIST_ITEM (bl_playlist_item_get_type ()) -#define BL_PLAYLIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_PLAYLIST_ITEM, BlPlaylistItem)) -#define BL_PLAYLIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_PLAYLIST_ITEM, BlPlaylistItemClass)) -#define BL_IS_PLAYLIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_PLAYLIST_ITEM)) -#define BL_IS_PLAYLIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_PLAYLIST_ITEM)) -#define BL_PLAYLIST_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BL_TYPE_PLAYLIST_ITEM, BlPlaylistItemClass)) - - -typedef struct _BlPlaylistItemClass BlPlaylistItemClass; - -struct _BLPlaylistItem -{ - BObject parent_instance; - - BModule *module; - BEffects *effects; - gint count; - gint loop; - gboolean reverse; - gdouble speed; -}; - -struct _BlPlaylistItemClass -{ - BObjectClass parent_class; - - /* virtual functions */ - gchar * (* describe) (BlPlaylistItem *item); - void (* apply_effects) (BlPlaylistItem *item, - BEffects *effects, - gint loop, - gboolean reverse, - gdouble speed); -}; - - -GType bl_playlist_item_get_type (void) G_GNUC_CONST; -BlPlaylistItem * bl_playlist_item_new (void); - -gchar * bl_playlist_item_describe (BlPlaylistItem *item); -void bl_playlist_item_apply_effects (BlPlaylistItem *item, - BEffects *effects, - gint loop, - gboolean reverse, - gdouble speed); - - -G_END_DECLS - -#endif /* __BL_PLAYLIST_ITEM_H__ */ diff --git a/blccc-1.99/src/bltheater.c b/blccc-1.99/src/bltheater.c deleted file mode 100644 index a095544..0000000 --- a/blccc-1.99/src/bltheater.c +++ /dev/null @@ -1,567 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include - -#include - -#include "bltypes.h" - -#include "blmarshal.h" -#include "blconfig.h" -#include "bllogger.h" -#include "blplaylist.h" -#include "blplaylistitem.h" -#include "bltheater.h" - - -enum -{ - ITEM_FINISHED, - LAST_SIGNAL -}; - -static void bl_theater_class_init (BlTheaterClass *klass); -static void bl_theater_init (BlTheater *view); -static void bl_theater_finalize (GObject *object); - -static void bl_theater_set_item_internal (BlTheater *theater, - BlPlaylistItem *item); -static void bl_theater_set_frame_data_internal (BlTheater *theater, - const guchar *data); -static void bl_theater_item_finished (BlTheater *theater, - gboolean relax); -static void bl_theater_stop_callback (BModule *module, - BlTheater *theater); - - -static guint bl_theater_signals[LAST_SIGNAL] = { 0 }; - -static GObjectClass *parent_class = NULL; - - -GType -bl_theater_get_type (void) -{ - static GType theater_type = 0; - - if (!theater_type) - { - static const GTypeInfo theater_info = - { - sizeof (BlTheaterClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) bl_theater_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BlTheater), - 0, /* n_preallocs */ - (GInstanceInitFunc) bl_theater_init, - }; - - theater_type = g_type_register_static (G_TYPE_OBJECT, - "BlTheater", - &theater_info, 0); - } - - return theater_type; -} - -static void -bl_theater_class_init (BlTheaterClass *klass) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - bl_theater_signals[ITEM_FINISHED] = - g_signal_new ("item_finished", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BlTheaterClass, item_finished), - NULL, NULL, - bl_marshal_VOID__POINTER_BOOLEAN, - G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_BOOLEAN); - - object_class->finalize = bl_theater_finalize; - - klass->item_finished = NULL; -} - -static void -bl_theater_init (BlTheater *theater) -{ - theater->width = 0; - theater->height = 0; - - theater->stop_signal_id = 0; - - theater->item = NULL; - theater->item_stack = NULL; - - theater->effects = NULL; - theater->sender = b_sender_new (); - theater->item_buffer = NULL; - theater->frame_buffer = NULL; -} - -static void -bl_theater_finalize (GObject *object) -{ - BlTheater *theater; - - theater = BL_THEATER (object); - - bl_theater_pause (theater); - - if (theater->item) - g_object_unref (theater->item); - - if (theater->item_stack) - { - g_list_foreach (theater->item_stack, (GFunc) g_object_unref, NULL); - g_list_free (theater->item_stack); - } - - if (theater->effects) - g_object_unref (theater->effects); - - if (theater->sender) - g_object_unref (theater->sender); - - if (theater->item_buffer) - g_free (theater->item_buffer); - - if (theater->frame_buffer) - g_free (theater->frame_buffer); - - if (theater->logger) - { - bl_logger_stop (theater->logger); - g_object_unref (theater->logger); - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -void -bl_theater_play (BlTheater *theater) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - - if (! theater->stop_signal_id && theater->item) - { - theater->stop_signal_id = - g_signal_connect (G_OBJECT (theater->item->module), "stop", - G_CALLBACK (bl_theater_stop_callback), - theater); - - b_module_start (theater->item->module); - - if (theater->logger) - bl_logger_start_module (theater->logger, theater->item->module); - - { - gchar *desc; - - desc = bl_playlist_item_describe (theater->item); - g_print ("started item: %s\n", desc); - g_free (desc); - } - } -} - -void -bl_theater_pause (BlTheater *theater) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - - if (theater->stop_signal_id && theater->item) - { - g_signal_handler_disconnect (G_OBJECT (theater->item->module), - theater->stop_signal_id); - theater->stop_signal_id = 0; - - b_module_stop (theater->item->module); - } -} - -void -bl_theater_finish (BlTheater *theater) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - - if (theater->item) - { - bl_theater_pause (theater); - bl_theater_item_finished (theater, TRUE); - } -} - -void -bl_theater_kill (BlTheater *theater) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - - bl_theater_pause (theater); - bl_theater_set_frame_data (theater, NULL); - - if (theater->logger) - bl_logger_stop (theater->logger); -} - -gboolean -bl_theater_is_playing (BlTheater *theater) -{ - g_return_val_if_fail (BL_IS_THEATER (theater), FALSE); - - return (theater->stop_signal_id > 0); -} - -void -bl_theater_event (BlTheater *theater, - BModuleEvent *event) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - g_return_if_fail (event != NULL); - - if (theater->item) - b_module_event (theater->item->module, event); -} - -void -bl_theater_set_frame_data (BlTheater *theater, - const guchar *data) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - - if (theater->stop_signal_id) - g_warning ("Someone tried to set frame data while a movie is running."); - else - bl_theater_set_frame_data_internal (theater, data); -} - -BlTheater * -bl_theater_new (BlConfig *config) -{ - BlTheater *theater; - GList *list; - GError *error = NULL; - gint added_recipients = 0; - - g_return_val_if_fail (BL_IS_CONFIG (config), NULL); - - theater = BL_THEATER (g_object_new (BL_TYPE_THEATER, NULL)); - - theater->width = config->width; - theater->height = config->height; - - if (! b_sender_configure (theater->sender, - config->width, config->height, - config->channels, config->maxval)) - { - g_object_unref (G_OBJECT (theater)); - return NULL; - } - - for (list = config->recipients; list; list = list->next) - { - if (! bl_theater_add_recipient (theater, list->data, &error)) - { - g_printerr ("Failed to add recipient: %s\n", error->message); - g_clear_error (&error); - } - else - { - added_recipients++; - } - } - - if (added_recipients == 0) - g_printerr ("No initial recipients, starting anyway ...\n"); - else - g_printerr ("Sending to %d recipients ...\n", added_recipients); - - theater->item_buffer = g_new0 (guchar, theater->width * theater->height); - theater->frame_buffer = g_new0 (guchar, theater->width * theater->height); - - if (config->logfile) - theater->logger = bl_logger_new_from_file (config->logfile, NULL); - - return theater; -} - -gboolean -bl_theater_add_recipient (BlTheater *theater, - const gchar *hostname, - GError **error) -{ - gchar *host; - gchar *colon; - gint port = MCU_LISTENER_PORT; - gboolean retval; - - g_return_val_if_fail (BL_IS_THEATER (theater), FALSE); - g_return_val_if_fail (hostname != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - host = g_strdup (hostname); - - if ((colon = strrchr (host, ':'))) - { - b_parse_int (colon + 1, &port); - *colon = '\0'; - } - - retval = b_sender_add_recipient (theater->sender, host, port, error); - - g_free (host); - - return retval; -} - -gboolean -bl_theater_remove_recipient (BlTheater *theater, - const gchar *hostname, - GError **error) -{ - gchar *host; - gchar *colon; - gint port = MCU_LISTENER_PORT; - gboolean retval; - - g_return_val_if_fail (BL_IS_THEATER (theater), FALSE); - g_return_val_if_fail (hostname != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - host = g_strdup (hostname); - - if ((colon = strrchr (host, ':'))) - { - b_parse_int (colon + 1, &port); - *colon = '\0'; - } - - retval = b_sender_remove_recipient (theater->sender, host, port, error); - - g_free (host); - - return retval; -} - -void -bl_theater_set_effects (BlTheater *theater, - BEffects *effects) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - g_return_if_fail (! effects || B_IS_EFFECTS (effects)); - - if (theater->effects) - g_object_unref (theater->effects); - - theater->effects = effects; - - if (theater->effects) - g_object_ref (theater->effects); -} - -void -bl_theater_set_item (BlTheater *theater, - BlPlaylistItem *item) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - - if (item) - g_return_if_fail (B_IS_MODULE (item->module) && - item->module->width == theater->width && - item->module->height == theater->height); - - if (theater->item) - { - bl_theater_pause (theater); - bl_theater_item_finished (theater, TRUE); - } - - if (item) - bl_theater_set_item_internal (theater, item); -} - -void -bl_theater_push_item (BlTheater *theater, - BlPlaylistItem *item) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - g_return_if_fail (BL_IS_PLAYLIST_ITEM (item)); - g_return_if_fail (B_IS_MODULE (item->module) && - item->module->width == theater->width && - item->module->height == theater->height); - - bl_theater_pause (theater); - - if (theater->item) - theater->item_stack = g_list_prepend (theater->item_stack, - theater->item); - - bl_theater_set_item_internal (theater, item); -} - -void -bl_theater_pop_item (BlTheater *theater) -{ - g_return_if_fail (BL_IS_THEATER (theater)); - - if (theater->item_stack) - { - bl_theater_pause (theater); - - if (theater->item) - g_object_unref (G_OBJECT (theater->item)); - - theater->item = theater->item_stack->data; - - theater->item_stack = g_list_remove (theater->item_stack, - theater->item); - } -} - -gboolean -bl_theater_paint_callback (BModule *module, - guchar *buffer, - gpointer data) -{ - BlTheater *theater; - - g_return_val_if_fail (B_IS_MODULE (module), FALSE); - g_return_val_if_fail (BL_IS_THEATER (data), FALSE); - - theater = BL_THEATER (data); - - if (theater->item && theater->item->effects) - { - memcpy (theater->item_buffer, buffer, theater->width * theater->height); - - b_effects_apply (theater->item->effects, - theater->item_buffer, - theater->width, theater->height, 1, 255); - - buffer = theater->item_buffer; - } - - bl_theater_set_frame_data_internal (BL_THEATER (data), buffer); - - return TRUE; -} - - -/* private functions */ - -static void -bl_theater_set_item_internal (BlTheater *theater, - BlPlaylistItem *item) -{ - GError *error = NULL; - - g_return_if_fail (BL_IS_THEATER (theater)); - g_return_if_fail (BL_IS_PLAYLIST_ITEM (item)); - g_return_if_fail (B_IS_MODULE (item->module) && - item->module->width == theater->width && - item->module->height == theater->height); - - theater->item = g_object_ref (G_OBJECT (item)); - - if (!b_module_prepare (item->module, &error)) - { - gchar *title; - - if (!error) - { - g_warning ("b_module_prepare didn't return an error ??\n"); - } - else - { - b_module_describe (item->module, &title, NULL, NULL); - g_printerr ("Couldn't prepare module '%s': %s\n", title, error->message); - g_free (title); - } - - bl_theater_item_finished (theater, FALSE); - return; - } -} - -static void -bl_theater_set_frame_data_internal (BlTheater *theater, - const guchar *data) -{ - if (data && theater->effects) - { - memcpy (theater->frame_buffer, data, theater->width * theater->height); - - b_effects_apply (theater->effects, - theater->frame_buffer, - theater->width, theater->height, 1, 255); - - data = (const gchar *) theater->frame_buffer; - } - - b_sender_send_frame (theater->sender, data); -} - -static void -bl_theater_item_finished (BlTheater *theater, - gboolean relax) -{ - BlPlaylistItem *item; - gboolean pushed; - - if (! theater->item) - return; - - item = theater->item; - - if (relax) - b_module_relax (item->module); - - theater->item = NULL; - - pushed = (theater->item_stack != NULL); - - g_signal_emit (G_OBJECT (theater), - bl_theater_signals[ITEM_FINISHED], 0, - item, pushed); - - g_object_unref (G_OBJECT (item)); -} - -static void -bl_theater_stop_callback (BModule *module, - BlTheater *theater) -{ - if (theater->stop_signal_id) - { - g_signal_handler_disconnect (G_OBJECT (theater->item->module), - theater->stop_signal_id); - theater->stop_signal_id = 0; - } - - bl_theater_item_finished (theater, TRUE); -} diff --git a/blccc-1.99/src/bltheater.h b/blccc-1.99/src/bltheater.h deleted file mode 100644 index 67780c4..0000000 --- a/blccc-1.99/src/bltheater.h +++ /dev/null @@ -1,95 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_THEATER_H__ -#define __BL_THEATER_H__ - -G_BEGIN_DECLS - -#define BL_TYPE_THEATER (bl_theater_get_type ()) -#define BL_THEATER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BL_TYPE_THEATER, BlTheater)) -#define BL_THEATER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BL_TYPE_THEATER, BlTheaterClass)) -#define BL_IS_THEATER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BL_TYPE_THEATER)) -#define BL_IS_THEATER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BL_TYPE_THEATER)) - - -typedef struct _BlTheaterClass BlTheaterClass; - -struct _BlTheaterClass -{ - GObjectClass parent_class; - - void (* item_finished) (BlTheater *theater, - BlPlaylistItem *item, - gboolean pushed); -}; - -struct _BlTheater -{ - GObject parent_instance; - - gint width; - gint height; - - guint stop_signal_id; - - BlPlaylistItem *item; - GList *item_stack; - - BEffects *effects; - BSender *sender; - guchar *item_buffer; - guchar *frame_buffer; - - BlLogger *logger; -}; - - -GType bl_theater_get_type (void) G_GNUC_CONST; -BlTheater *bl_theater_new (BlConfig *config); -gboolean bl_theater_add_recipient (BlTheater *theater, - const gchar *hostname, - GError **error); -gboolean bl_theater_remove_recipient (BlTheater *theater, - const gchar *hostname, - GError **error); -void bl_theater_set_effects (BlTheater *theater, - BEffects *effects); -void bl_theater_set_item (BlTheater *theater, - BlPlaylistItem *item); -void bl_theater_push_item (BlTheater *theater, - BlPlaylistItem *item); -void bl_theater_pop_item (BlTheater *theater); -void bl_theater_play (BlTheater *theater); -void bl_theater_pause (BlTheater *theater); -void bl_theater_finish (BlTheater *theater); -void bl_theater_kill (BlTheater *theater); -gboolean bl_theater_is_playing (BlTheater *theater); -void bl_theater_event (BlTheater *theater, - BModuleEvent *event); -void bl_theater_set_frame_data (BlTheater *theater, - const guchar *data); -gboolean bl_theater_paint_callback (BModule *module, - guchar *buffer, - gpointer data); - - -G_END_DECLS - -#endif /* __BL_THEATER_H__ */ diff --git a/blccc-1.99/src/bltypes.h b/blccc-1.99/src/bltypes.h deleted file mode 100644 index 97e2edb..0000000 --- a/blccc-1.99/src/bltypes.h +++ /dev/null @@ -1,42 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#ifndef __BL_TYPES_H__ -#define __BL_TYPES_H__ - -G_BEGIN_DECLS - - -typedef struct _BlApp BlApp; -typedef struct _BlCcc BlCcc; -typedef struct _BlConfig BlConfig; -typedef struct _BlEffects BlEffects; -typedef struct _BlIsdn BlIsdn; -typedef struct _BlIsdnLine BlIsdnLine; -typedef struct _BlListen BlListen; -typedef struct _BlLoveletters BlLoveletters; -typedef struct _BlLogger BlLogger; -typedef struct _BlOnDemand BlOnDemand; -typedef struct _BlPlaylist BlPlaylist; -typedef struct _BLPlaylistItem BlPlaylistItem; -typedef struct _BlTheater BlTheater; - -G_END_DECLS - -#endif /* __BL_TYPES_H__ */ diff --git a/blccc-1.99/src/main.c b/blccc-1.99/src/main.c deleted file mode 100644 index baddbc6..0000000 --- a/blccc-1.99/src/main.c +++ /dev/null @@ -1,222 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include -#include - -#include - -#include "bltypes.h" - -#include "blccc.h" -#include "blconfig.h" -#include "bllisten.h" -#include "blondemand.h" - - -static BlCcc *ccc = NULL; - - -static void -sigterm_handler (gint signum) -{ - sigset_t sigset; - - sigemptyset (&sigset); - sigprocmask (SIG_SETMASK, &sigset, NULL); - - g_print ("Received signal %d, blanking and exiting ...\n", signum); - - if (ccc) - { - bl_ccc_kill (ccc); - ccc = NULL; - } - - exit (EXIT_SUCCESS); -} - -static void -install_sighandlers (void) -{ - struct sigaction sa; - - /* handle SIGTERM */ - sigfillset (&sa.sa_mask); - sa.sa_handler = sigterm_handler; - sa.sa_flags = SA_RESTART; - sigaction (SIGTERM, &sa, NULL); - - /* handle SIGINT */ - sigfillset (&sa.sa_mask); - sa.sa_handler = sigterm_handler; - sa.sa_flags = SA_RESTART; - sigaction (SIGINT, &sa, NULL); - - /* ignore SIGPIPE */ - sigfillset (&sa.sa_mask); - sa.sa_handler = SIG_IGN; - sa.sa_flags = SA_RESTART; - sigaction (SIGPIPE, &sa, NULL); -} - -int -main (int argc, - char *argv[]) -{ - GMainLoop *main_loop; - BlConfig *config; - BlListen *listen; - GError *error = NULL; - gboolean show_version = FALSE; - gboolean show_help = FALSE; - gint i; - - g_thread_init (NULL); - b_init (); - - config = bl_config_new (); - - for (i = 1; i < argc; i++) - { - if (strcmp (argv[i], "--g-fatal-warnings") == 0) - { - GLogLevelFlags fatal_mask; - - fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK); - fatal_mask |= G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL; - g_log_set_always_fatal (fatal_mask); - argv[i] = NULL; - } - else if ((strcmp (argv[i], "--help") == 0) || - (strcmp (argv[i], "-?") == 0)) - { - show_help = TRUE; - argv[i] = NULL; - } - else if ((strcmp (argv[i], "--version") == 0) || - (strcmp (argv[i], "-v") == 0)) - { - show_version = TRUE; - argv[i] = NULL; - } - else if (argv[i][0] == '-') - { - /* - * anything else starting with a '-' is an error. - */ - g_print ("\nInvalid option \"%s\"\n", argv[i]); - show_help = TRUE; - } - } - - if (! show_help) - { - for (i = 1; i < argc; i++) - { - gint k; - - for (k = i; k < argc; k++) - if (argv[k] != NULL) - break; - - if (k > i) - { - gint j; - - k -= i; - - for (j = i + k; j < argc; j++) - argv[j-k] = argv[j]; - - argc -= k; - } - } - } - - if (! show_version && argc < 1) - show_help = TRUE; - - if (show_version || show_help) - g_print ("Blinkenlights Chaos Control Center version "VERSION"\n"); - - if (show_help) - g_print ("\nUsage: %s [options] [configfile]\n\n" - "Options:\n" - " -?, --help Output this help.\n" - " -v, --version Output version information.\n" - " --g-fatal-warnings Crash on warnings (for debugging)\n" - "\n", - argv[0]); - - if (show_version || show_help) - return EXIT_FAILURE; - - /* make sure the module types are registered */ - b_module_infos_scan_dir (NULL); - g_type_class_peek (BL_TYPE_ON_DEMAND); - g_type_class_peek (B_TYPE_MOVIE_PLAYER); - - if (argc > 1 && !bl_config_parse (config, argv[1], &error)) - { - g_printerr ("Error parsing config file '%s': %s\n", - argv[1], error->message); - return EXIT_FAILURE; - } - - if (config->channels != 1) - { - g_warning ("Sorry, channels != 1 is not supported.\n"); - return EXIT_FAILURE; - } - if (config->maxval != 255) - { - g_warning ("Sorry, maxval != 255 is not supported.\n"); - return EXIT_FAILURE; - } - - g_printerr ("Loaded config '%s' with %d application(s)\n", - b_object_get_name (B_OBJECT (config)), - g_list_length (config->applications)); - - ccc = bl_ccc_new (config); - g_object_unref (config); - - if (!ccc) - return EXIT_FAILURE; - - install_sighandlers (); - - listen = bl_listen_new (config->telnet_port, ccc); - - if (listen) - { - main_loop = g_main_loop_new (NULL, FALSE); - g_main_loop_run (main_loop); - - g_object_unref (listen); - } - - g_object_unref (ccc); - - return EXIT_SUCCESS; -} diff --git a/blccc-1.99/src/modules/Makefile.am b/blccc-1.99/src/modules/Makefile.am deleted file mode 100644 index 9b9c1a6..0000000 --- a/blccc-1.99/src/modules/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -## Makefile.am for blccc/src/modules - -libdir = $(prefix)/lib/blccc/modules - -AM_CPPFLAGS = -DG_DISABLE_DEPRECATED - -INCLUDES = @GLIB_CFLAGS@ @BLIB_CFLAGS@ - -lib_LTLIBRARIES = libtest.la - -libtest_la_SOURCES = test.c test.h -libtest_la_LDFLAGS = -avoid-version -module -libtest_la_LIBADD = @GLIB_LIBS@ @BLIB_LIBS@ diff --git a/blccc-1.99/src/modules/Makefile.in b/blccc-1.99/src/modules/Makefile.in deleted file mode 100644 index 77f94b9..0000000 --- a/blccc-1.99/src/modules/Makefile.in +++ /dev/null @@ -1,331 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -libdir = $(prefix)/lib/blccc/modules - -AM_CPPFLAGS = -DG_DISABLE_DEPRECATED - -INCLUDES = @GLIB_CFLAGS@ @BLIB_CFLAGS@ - -lib_LTLIBRARIES = libtest.la - -libtest_la_SOURCES = test.c test.h -libtest_la_LDFLAGS = -avoid-version -module -libtest_la_LIBADD = @GLIB_LIBS@ @BLIB_LIBS@ -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../../config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(lib_LTLIBRARIES) - - -DEFS = @DEFS@ -I. -I$(srcdir) -I../.. -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -libtest_la_DEPENDENCIES = -libtest_la_OBJECTS = test.lo -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -SOURCES = $(libtest_la_SOURCES) -OBJECTS = $(libtest_la_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .lo .o .obj .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/modules/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-libLTLIBRARIES: - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - -distclean-libLTLIBRARIES: - -maintainer-clean-libLTLIBRARIES: - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libdir) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \ - $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \ - else :; fi; \ - done - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ - done - -.c.o: - $(COMPILE) -c $< - -# FIXME: We should only use cygpath when building on Windows, -# and only if it is available. -.c.obj: - $(COMPILE) -c `cygpath -w $<` - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -rm -f *.$(OBJEXT) - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -.c.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.s.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.S.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -maintainer-clean-libtool: - -libtest.la: $(libtest_la_OBJECTS) $(libtest_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libtest_la_LDFLAGS) $(libtest_la_OBJECTS) $(libtest_la_LIBADD) $(LIBS) - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = src/modules - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -test.lo test.o : test.c - -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: install-libLTLIBRARIES -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: uninstall-libLTLIBRARIES -uninstall: uninstall-am -all-am: Makefile $(LTLIBRARIES) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - $(mkinstalldirs) $(DESTDIR)$(libdir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \ - mostlyclean-libtool mostlyclean-tags \ - mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \ - clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-libLTLIBRARIES distclean-compile \ - distclean-libtool distclean-tags distclean-generic \ - clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-libLTLIBRARIES \ - maintainer-clean-compile maintainer-clean-libtool \ - maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \ -clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \ -uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \ -distclean-compile clean-compile maintainer-clean-compile \ -mostlyclean-libtool distclean-libtool clean-libtool \ -maintainer-clean-libtool tags mostlyclean-tags distclean-tags \ -clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ -check-am installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/src/modules/test.c b/blccc-1.99/src/modules/test.c deleted file mode 100644 index ed2ca67..0000000 --- a/blccc-1.99/src/modules/test.c +++ /dev/null @@ -1,23 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center -* -* Copyright (c) 2002 The Blinkenlights Crew -* Daniel Mack -* -* 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. -*/ - -#include -#include - diff --git a/blccc-1.99/src/modules/test.h b/blccc-1.99/src/modules/test.h deleted file mode 100644 index e5b3d42..0000000 --- a/blccc-1.99/src/modules/test.h +++ /dev/null @@ -1,20 +0,0 @@ -/* blccc - Blinkenlights Chaos Control Center -* -* Copyright (c) 2002 The Blinkenlights Crew -* Daniel Mack -* -* 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. -*/ - diff --git a/blccc-1.99/stamp-h.in b/blccc-1.99/stamp-h.in deleted file mode 100644 index 9788f70..0000000 --- a/blccc-1.99/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/blccc-1.99/stylesheets/Makefile.am b/blccc-1.99/stylesheets/Makefile.am deleted file mode 100644 index db33e7d..0000000 --- a/blccc-1.99/stylesheets/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -## Makefile.am for blccc/stylesheets - -SUBDIRS = examples - -EXTRA_DIST = simple-playlist.xslt diff --git a/blccc-1.99/stylesheets/Makefile.in b/blccc-1.99/stylesheets/Makefile.in deleted file mode 100644 index 8d52a05..0000000 --- a/blccc-1.99/stylesheets/Makefile.in +++ /dev/null @@ -1,295 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -SUBDIRS = examples - -EXTRA_DIST = simple-playlist.xslt -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps stylesheets/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -# 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. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = stylesheets - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: -uninstall: uninstall-recursive -all-am: Makefile -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: install-data-recursive uninstall-data-recursive \ -install-exec-recursive uninstall-exec-recursive installdirs-recursive \ -uninstalldirs-recursive all-recursive check-recursive \ -installcheck-recursive info-recursive dvi-recursive \ -mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/stylesheets/examples/Makefile.am b/blccc-1.99/stylesheets/examples/Makefile.am deleted file mode 100644 index f8929a7..0000000 --- a/blccc-1.99/stylesheets/examples/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -## Makefile.am for blccc/stylesheets/examples - -EXTRA_DIST = simple.xml diff --git a/blccc-1.99/stylesheets/examples/Makefile.in b/blccc-1.99/stylesheets/examples/Makefile.in deleted file mode 100644 index 250847b..0000000 --- a/blccc-1.99/stylesheets/examples/Makefile.in +++ /dev/null @@ -1,189 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AS = @AS@ -CC = @CC@ -DATADIR = @DATADIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EXEEXT = @EXEEXT@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -VERSION = @VERSION@ - -EXTRA_DIST = simple.xml -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../../config.h -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps stylesheets/examples/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = stylesheets/examples - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# 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: diff --git a/blccc-1.99/stylesheets/examples/simple.xml b/blccc-1.99/stylesheets/examples/simple.xml deleted file mode 100644 index 24c3bdb..0000000 --- a/blccc-1.99/stylesheets/examples/simple.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/blccc-1.99/stylesheets/simple-playlist.xslt b/blccc-1.99/stylesheets/simple-playlist.xslt deleted file mode 100644 index 43d80a3..0000000 --- a/blccc-1.99/stylesheets/simple-playlist.xslt +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blib-1.1.7/AUTHORS b/blib-1.1.7/AUTHORS deleted file mode 100644 index 0a49afd..0000000 --- a/blib-1.1.7/AUTHORS +++ /dev/null @@ -1,20 +0,0 @@ -Main Authors: - - Sven Neumann - Michael Natterer - Daniel Mack - - -Blinkenproxy code was originally done by Hannes Mehnert. The Win32 port -wouldn't have been possible without the help from Michael Schumacher. - - -Modules contributed by: - - 1stein <1stein@1stein.no-ip.com> (Pacman, Breakout, Retris, Snake, Xxo) - Simon Budig (Matrix) - - -Views contributed by: - - pix (BView-AA) diff --git a/blib-1.1.7/COPYING b/blib-1.1.7/COPYING deleted file mode 100644 index d60c31a..0000000 --- a/blib-1.1.7/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/blib-1.1.7/ChangeLog b/blib-1.1.7/ChangeLog deleted file mode 100644 index ee85306..0000000 --- a/blib-1.1.7/ChangeLog +++ /dev/null @@ -1,3429 +0,0 @@ -2004-04-22 22:24 neo - - * ChangeLog: Made 1.1.7 release. - -2004-04-22 22:08 neo - - * NEWS, README: updated for 1.1.7 release - -2004-04-14 18:58 neo - - * blib/.cvsignore, blib/Makefile.am, blib/blib.h, - blib/bmarshal.list, blib/bpacket.c, blib/bpacket.h, - blib/bproxyserver.c, blib/bproxyserver.h, blib/btypes.h, - docs/reference/Makefile.am, docs/reference/blib-docs.sgml, - docs/reference/blib-sections.txt, - docs/reference/tmpl/bpacket.sgml, - docs/reference/tmpl/bproxyserver.sgml: Added BProxyServer. - Contains most of the code that used to live in blinkenproxy.c but - uses the same file descriptor for listening to the heartbeat and - for sending blinkenlights frames. - -2004-04-09 02:11 neo - - * blib/btheme.c, docs/reference/blib-sections.txt, - docs/reference/tmpl/btheme.sgml, - docs/reference/tmpl/bview-pixbuf.sgml, gfx/bview-pixbuf.c, - gfx/bview-pixbuf.h: documentation - -2004-04-09 01:45 neo - - * gfx/: bview-directfb.c, bview-directfb.h: Changed return value of - b_view_directfb_new() to match what the other views do. - -2004-04-09 00:55 neo - - * gfx/bview-pixbuf.c: fixed bugs in the new code - -2004-04-09 00:34 neo - - * gfx/: bview-aa.c, bview-aa.h, bview-gtk.c, bview-pixbuf.c, - bview-pixbuf.h: Added a theme-less mode for BViewPixbuf. Some - minor cleanups in other views. - -2004-04-08 23:53 neo - - * gfx/bview-pixbuf.c: actually skip image preloading if - b_view_pixbuf() is called with image_preload == FALSE - -2004-04-08 04:35 neo - - * blib/bmovie.c: minor cleanups - -2004-04-07 16:46 neo - - * gfx/bview-pixbuf.c: use a pixbuf w/o alpha channel - -2004-04-07 15:52 neo - - * blib/butils.c, gfx/bview-gtk.c, gfx/bview-gtk.h, - gfx/bview-pixbuf.c: numerous fixes - -2004-04-07 14:25 neo - - * blib-gtk.pc.in, blib/btheme-parser.c, blib/btheme.c, - blib/btheme.h, blib/butils.c, blib/butils.h, - data/blinkentheme.dtd, gfx/blib-gtk.h, gfx/bview-directfb.c, - gfx/bview-gtk.c, gfx/bview-gtk.h, gfx/bview-pixbuf.c, - gfx/bview-pixbuf.h: Added the possibility to specify an offset - for the background image in a blinkentheme. Added - b_theme_frame_diff_boundary(), used to live in bmovie-mng.c. - Added a clip rectangle to b_view_pixbuf_render(). Let BViewGtk - use BViewPixbuf for the unoptimized case. - -2004-04-07 01:28 neo - - * gfx/: bview-pixbuf.c, bview-pixbuf.h: added a GError parameter to - b_view_pixbuf_render() - -2004-04-07 00:16 neo - - * blib/butils.c: allow the dest rectangle to be NULL in - b_rectangle_intersect - -2004-04-07 00:02 neo - - * blib-pixbuf.pc.in: fixed typo - -2004-04-07 00:01 neo - - * Makefile.am: install the blib-pixbuf.pc file - -2004-04-06 23:35 neo - - * configure.in: bumped version number to 1.1.7, binary age 0, - interface age 0 - -2004-04-06 23:07 neo - - * .cvsignore, ChangeLog, blib-pixbuf.pc.in, configure.in, - blib/butils.c, blib/butils.h, docs/reference/Makefile.am, - docs/reference/blib-docs.sgml, docs/reference/blib-sections.txt, - docs/reference/blib.types.in, docs/reference/tmpl/butils.sgml, - docs/reference/tmpl/bview-pixbuf.sgml, gfx/.cvsignore, - gfx/Makefile.am, gfx/blib-pixbuf.h, gfx/bview-pixbuf.c, - gfx/bview-pixbuf.h: Added b_rectangle_union and - b_rectangle_intersect to butils.[ch]. Added BViewPixbuf, a new - view using gdk-pixbuf to render single frames. Duplicates quite - some code from BViewGtk but I will make the latter use the new - view later. - -2004-03-09 23:57 neo - - * ChangeLog, NEWS: Made 1.1.6 release. - -2004-03-09 20:14 neo - - * modules/: bretris.c, bsnake.c: applied modified versions of - patches from 1Stein to make snake and bretris multi-player aware. - -2004-02-24 22:15 neo - - * docs/reference/tmpl/bprotocol.sgml: documented defines that were - introduced for the blinkenproxy protocol - -2004-02-17 08:55 tim - - * .cvsignore: ignore mac stuff - -2004-02-16 15:50 neo - - * gfx/bview-gtk.c: oops, looks as if I accidentally committed some - broken code yesterday - -2004-02-16 15:47 neo - - * blib/bparser.c: Set the GIOChannel encoding to NULL before - attempting to locate the XML header. Fixes endless looping on - some binary files. - -2004-02-16 00:01 neo - - * gfx/bview-gtk.c: fixed color handling in gdk_pixbuf_fill_rect() - -2004-02-14 23:05 neo - - * NEWS, README, configure.in: Bumped version number to 1.1.6, - binary age 0, interface ago 0. - -2004-02-14 21:40 neo - - * blib/bsender.c, blib/bsender.h, docs/reference/blib-sections.txt, - docs/reference/tmpl/bsender.sgml: Suppress the error messages - when sending a packet fails. Added new function - b_sender_set_verbose() that allows to get the old behaviour back. - -2004-02-14 21:23 neo - - * gfx/: bview-directfb.c, bview-gtk.c, bview-gtk.h: Only do the - optimization if none of the loaded images has an alpha channel. - -2004-02-14 20:10 neo - - * blib/btheme-parser.c, blib/btheme.c, blib/btheme.h, - gfx/bview-directfb.c, gfx/bview-gtk.c, gfx/bview-gtk.h: Added a - boolean parameter "needs_blending" to the BTheme struct. Did - some improvements to the GTK+ view. Only minor speedup when the - theme needs blending but dramatically faster otherwise. - -2004-01-20 01:53 neo - - * AUTHORS, ChangeLog: Made 1.1.5 (development) release. - -2004-01-20 01:42 neo - - * ChangeLog, NEWS, README: Updates for the 1.1.5 release. - -2004-01-19 17:33 neo - - * blib/bmovieplayer.c: better error message when loading a movie - fails - -2004-01-07 20:27 neo - - * blib/bpacket.c: Removed overly picky assertions. - -2004-01-07 19:41 neo - - * configure.in: fixed check for win32 - -2004-01-07 00:39 neo - - * docs/reference/tmpl/bsocket.sgml: Added new template file. - -2004-01-07 00:29 neo - - * blib/bsocket.c, docs/reference/blib-docs.sgml, - docs/reference/blib-sections.txt: Documented the new functions. - -2004-01-07 00:07 neo - - * README, blib/bproxyclient.c, blib/bsender.c, blib/bsocket.c, - blib/bsocket.h: Added b_socket_init(), a function that - initializes the Winsock DLL on Win32 and does nothing on Unixes. - Call it before calling any network related functions like - gethostbyname(). - -2004-01-06 23:44 neo - - * blib/Makefile.am: fixed a typo - -2004-01-06 23:23 neo - - * blib.pc.in, configure.in, blib/Makefile.am, blib/breceiver.c, - gfx/Makefile.am, test/Makefile.am: Add -lwsock32 to the linker - flags on win32. Promote the win32 specific compiler and linker - flags to blib applications by putting them into the pkg-config - file. - -2004-01-06 22:58 neo - - * configure.in: check for win32 and modify CFLAGS to get struct - packing right - -2004-01-06 22:33 neo - - * blib/: bproxyclient.c, breceiver.c, bsender.c, bsocket.c: First - attempt at a win32 port using the winsock DLL. Thanks to Michael - Schumacher for his suggestions. - -2004-01-06 21:57 neo - - * blib/: Makefile.am, blib.h, bproxyclient.c, breceiver.c, - bsender.c, bsocket.c, bsocket.h: Factored out socket creation and - setup. - -2004-01-06 21:00 neo - - * blib/butils.h: cosmetics - -2004-01-04 22:24 neo - - * configure.in, docs/reference/tmpl/bview-aa.sgml: Fixed configure - output for the case aalib is not available. Updated docs. - -2004-01-04 13:30 neo - - * blib/bmovieplayer.c: Reverted the last change. The library should - never print any error messages (yes I know there are a few places - that still do). It's up to the caller to do that. - -2004-01-03 23:11 blccc - - * blib/bmovieplayer.c: print file name when unable to load movie - from playlist - -2004-01-03 21:38 tim - - * modules/digits.h: 3x5 digit font streamlined - -2003-12-31 18:55 daniel - - * modules/: bcountdown.c, bdebug.c: some smaller cosmetic changes - -2003-12-31 04:05 neo - - * ChangeLog: Made 1.1.4 (development) release. - -2003-12-31 04:04 neo - - * ChangeLog, NEWS: Updates for the 1.1.4 release. - -2003-12-31 02:32 neo - - * gfx/: bview-aa.c, bview-aa.h: Simplified the API of the aalib - view. - -2003-12-30 23:57 neo - - * blib/bmovie-gif-parser.c: Fixed combine mode that broke with my - latest GIF loading "fix". - -2003-12-30 23:22 neo - - * blib/bmovie.c: Fixed check for GIF header. Now reads GIF87a as - well. - -2003-12-30 22:12 neo - - * blib/bsender.c: fixed use of send() - -2003-12-30 22:11 neo - - * blib/: bproxyclient.c, bsender.c: Replaced write() with the more - portable send(). - -2003-12-30 21:46 neo - - * blib-aa.pc.in, configure.in, docs/reference/Makefile.am, - docs/reference/blib-docs.sgml, docs/reference/blib-sections.txt, - docs/reference/tmpl/bview-aa.sgml, gfx/Makefile.am: Added docs - for BViewAA. - -2003-12-30 21:40 daniel - - * modules/: bclock.c, bcountdown.c, bdebug.c, bpong.c, digits.h: - - changed the whole digits scheme to get rid of LARGE_DIGITS and to - make an application decide which font to use at runtime. Changed - all text-related modules accordingly. - Fixed a ":" spacing - issue in BClock - Improved the BCountdown-module a lot. It - scrolls down the old digits now and makes use of greyscales. It - also uses different fonts depending on the number of digits to - display. - -2003-12-30 21:37 neo - - * .cvsignore, AUTHORS, ChangeLog, Makefile.am, README, - blib-aa.pc.in, configure.in, docs/reference/blib.types.in, - gfx/.cvsignore, gfx/Makefile.am, gfx/blib-aa.h, gfx/bview-aa.c, - gfx/bview-aa.h: Added an aalib-based BView contributed by pix. - -2003-12-29 22:16 neo - - * configure.in: Bumped version number to 1.1.4. - -2003-12-29 21:58 neo - - * blib/: bprotocol.h, bproxyclient.c: Don't bind the local port - explicitely when b_proxy_client_new() is called with listen_port - < 0. - - For portability, use GLib types in bprotocol.h. - -2003-12-29 20:37 neo - - * modules/: bclock.c, bpong.c: increase the speedup when the - computer looses - -2003-12-29 05:03 neo - - * modules/bsnake.c: Updated version from 1stein. - -2003-12-28 18:09 neo - - * ChangeLog: Made 1.1.3 release. - -2003-12-28 18:07 neo - - * blib/bpacket.c: Always convert the magic between host and network - byteorder, not only for matching magics. - -2003-12-28 17:59 neo - - * ChangeLog, NEWS, README: Updates for the 1.1.3 release. - -2003-12-28 15:35 neo - - * configure.in, gfx/bview-directfb.c, gfx/bview-gtk.c: Bumped - version number to 1.1.3. Some minor optimizations in the GTK+ - widget. - -2003-12-28 15:34 neo - - * docs/reference/blib.types.in: Added BProxyClient. - -2003-12-28 05:31 neo - - * blib/bmovie-gif-parser.c: Made the GIF parser quiet again. - -2003-12-28 05:19 neo - - * blib/: bmovie-gif-parser.c, gif-load.c, gif-save.c: Made the GIF - parser more forgiving and fixed handling of local colormaps. - -2003-12-27 16:14 neo - - * gfx/bview-gtk.c: Removed trailing whitespace. - -2003-12-25 20:48 neo - - * ChangeLog: Made 1.1.2 (development) release. - -2003-12-25 20:47 neo - - * AUTHORS, ChangeLog, NEWS, README: Updates for the 1.1.2 release. - -2003-12-25 19:36 neo - - * blib/bproxyclient.c, blib/breceiver.c, blib/bsender.c, - blib/bsender.h, docs/reference/blib-docs.sgml, - docs/reference/blib-sections.txt, - docs/reference/tmpl/bproxyclient.sgml, - docs/reference/tmpl/breceiver.sgml: Updated API documentation. - -2003-12-25 19:10 neo - - * blib/bproxyclient.c: Fixed usage of bind() and connect(). - -2003-12-25 18:58 neo - - * blib/bproxyclient.c: Fixed BProxyClient implementation. - -2003-12-25 16:52 neo - - * configure.in, blib/Makefile.am, blib/blib.h, blib/bproxyclient.c, - blib/bproxyclient.h, blib/breceiver.c, blib/breceiver.h, - blib/btypes.h, docs/reference/tmpl/breceiver.sgml: Added - BProxyClient, derived from BReceiver. - -2003-12-24 22:11 tim - - * autogen.sh: check for glibtool alternatively for Mac OS X support - -2003-12-24 02:18 neo - - * ChangeLog: Made 1.1.1 (development) release. - -2003-12-24 02:16 neo - - * ChangeLog, Makefile.am, NEWS: Updates for the 1.1.1 release. - -2003-12-24 02:00 neo - - * blib/: breceiver.c, bsender.c: Set the SO_REUSEPORT socket option - where available. - -2003-12-24 01:22 neo - - * blib/: breceiver.c, bsender.c: Check if setsockopt() succeeds. - More verbose error reporting. - -2003-12-24 01:12 neo - - * blib/breceiver.c: Readded a line I accidentally deleted. - -2003-12-24 00:50 neo - - * blib/breceiver.c: Check the size of the received packets. - -2003-12-24 00:29 neo - - * configure.in, blib/bpacket.c, blib/bprotocol.h, blib/breceiver.c, - debian/rules: Bumped version to 1.1.1. Added a protocol version - number to the heartbeat packet header. Check the size of the - received packet before dispatching it. - -2003-12-23 05:01 neo - - * debian/: .cvsignore, libblib-dev.files, - libblib-directfb-dev.files, libblib-directfb.files, - libblib-gtk-dev.files, libblib-gtk.dirs, libblib-gtk.files, - libblib.files: A bunch of fixes for the debian files. - -2003-12-22 21:20 neo - - * debian/: .cvsignore, changelog, control, copyright, dirs, docs, - files, libblib-dev.dirs, libblib-dev.files, libblib-gtk.dirs, - libblib-gtk.files, libblib.dirs, libblib.files, rules: Debianized - the package. - -2003-12-21 21:29 neo - - * ChangeLog: Made 1.1.0 (development) release. - -2003-12-21 21:00 neo - - * blib/bsender.c: use memset to zero out the heartbeat packet - -2003-12-21 20:53 neo - - * ChangeLog, NEWS, README: Updated for development release. - -2003-12-21 18:00 neo - - * autogen.sh, blib/bsender.c: Nullify the hearbeat package. Added - a missing linefeed in autogen.sh. - -2003-12-21 17:23 neo - - * modules/: bbreakout.c, bclock.c, bpacman.c, bretris.c, bsnake.c, - bxxo.c: Fixed portability issues with the new modules: Use glib - for memory allocation; fixed include order; include config.h. - -2003-12-21 14:44 neo - - * blib/bsender.c, blib/bsender.h, docs/reference/blib-sections.txt, - docs/reference/tmpl/blib-unused.sgml, - docs/reference/tmpl/bprotocol.sgml, - docs/reference/tmpl/bsender.sgml: Removed the conceptually broken - function b_sender_check_recipients(). - -2003-12-21 13:41 neo - - * blib/: bprotocol.h, breceiver.c, breceiver.h: Removed port and - padding from heartbeat header. - - Removed host member from BReceiver struct. - - Added addr and port members to BReceiver. These are in network - byte order and are only valid while the BReceiverCallback runs. - Most users of BReceiver can safely ignore these values. - -2003-12-21 12:08 neo - - * blib/bsender.c, blib/bsender.h, test/test-module.c, - test/test-movie-player.c, test/test-sender.c: Added a source port - parameter to b_sender_add_recipients(). We will need this to - implement blinkenproxy so that it works thru (some) firewalls. - -2003-12-20 01:37 neo - - * blib/bsender.c: hardcode MCU_LISTENER_PORT as originating port - for hearbeat packets - -2003-12-20 01:16 neo - - * blib/bsender.c: explicitely bind the socket - -2003-12-20 00:30 neo - - * blib/: bpacket.c, breceiver.c, bsender.c, bsender.h: Don't send - the port number in the heartbeat packet. - -2003-12-19 23:47 neo - - * blib/bpacket.c, blib/bpacket.h, blib/breceiver.c, blib/bsender.c, - blib/bsender.h, docs/reference/tmpl/blib-unused.sgml, - docs/reference/tmpl/bpacket.sgml, - docs/reference/tmpl/bsender.sgml: Some cleanup to the heartbeat - code. Made b_packet_ntoh() and b_packet_hton() also work for - hearbeat packages. - -2003-12-19 03:25 neo - - * blib/bprotocol.h: Added back HEARTBEAT defines, this time - prefixed with B_. - -2003-12-19 03:19 neo - - * blib/bprotocol.h, blib/breceiver.c, blib/bsender.c, - docs/reference/blib-sections.txt, - docs/reference/tmpl/bpacket.sgml, - docs/reference/tmpl/bprotocol.sgml, - docs/reference/tmpl/bsender.sgml, test/test-module.c: Some code - cleanup, mainly related to the new hearbeat functionality. - -2003-12-19 02:27 neo - - * modules/: Makefile.am, bretris.c, bsnake.c, bxxo.c: Added three - new games for Blinkenlights Reloaded. These are contributed by - 1stein. - -2003-12-18 13:41 neo - - * configure.in, docs/reference/.cvsignore, - docs/reference/blib-docs.sgml, docs/reference/version.in, - docs/reference/version.xml.in: Use XInclude for the version - number instead of an entity. - -2003-12-05 12:07 neo - - * ChangeLog, NEWS, README, autogen.sh, blib/bparser.c: merged some - minor changes from HEAD, update ChangeLog, NEWS and README - -2003-09-15 19:50 neo - - * blib/bparser.c: set the buffer size to 8192 instead of 8196 - -2003-08-09 16:39 neo - - * blib/: breceiver.c, bsender.c: Some code cleanup, mainly moving - variable declarations to the start of the scope. - -2003-08-09 01:30 neo - - * blib/breceiver.c: Merged compat mode from HEAD. - -2003-08-09 00:54 neo - - * blib/breceiver.c: Enabled compatibility with the old-style - blinkenlights UDP packets. - -2003-06-25 00:17 hannes - - * autogen.sh: compile fix for FreeBSD - -2003-05-22 20:01 hannes - - * blib/: bpacket.c, bsender.c, bsender.h: cleanup - -2003-05-21 02:55 hannes - - * blib/breceiver.c: fix for compiling on bsd systems (thanks, tim - ;) - -2003-05-21 02:02 hannes - - * blib/bpacket.c, blib/bpacket.h, blib/bprotocol.h, - blib/breceiver.c, blib/breceiver.h, blib/bsender.c, - blib/bsender.h, modules/bproxy.c, test/test-receiver.c: - blinkenproxy changes - -2003-05-13 16:55 neo - - * README, blib/gif-load.c, blib/gif-load.h, blib/gif-save.c, - blib/gif-save.h: The copyright issues with the GIF code have - finally been sorted out. Changed the comments accordingly. - -2003-05-12 14:24 neo - - * gfx/Makefile.am: Merged fixes for automake-1.7 from stable - branch. - -2003-05-12 14:24 neo - - * NEWS, configure.in, gfx/Makefile.am: Bumped version to 1.0.2. - Fixed some Makefile issues to please automake-1.7. - -2003-05-11 21:29 neo - - * configure.in, modules/Makefile.am: Merged change from HEAD - branch: Allow to disable build of modules. - -2003-05-11 21:24 neo - - * configure.in, modules/Makefile.am: Allow to disable the build of - modules by passing --disable-modules to configure. - -2003-05-07 16:31 hannes - - * blib/bprotocol.h: heartbeat stuff - -2003-02-09 12:57 neo - - * ChangeLog: updated ChangeLog - -2003-02-07 15:40 neo - - * docs/reference/Makefile.am: merged fix from stable branch - -2003-02-07 15:29 neo - - * ChangeLog, docs/reference/Makefile.am: Fixed typo in dist-hook. - -2003-02-07 15:26 neo - - * NEWS, configure.in, docs/reference/tmpl/bpacket.sgml: Bumped - version number to 1.1.0. Merged changes to NEWS from blib-1-0 - branch. - -2003-02-07 15:21 neo - - * ChangeLog: Made 1.0.1 Release. - -2003-02-07 15:19 neo - - * ChangeLog, NEWS, configure.in: Bumped version number to 1.0.1 - (INTERFACE_AGE 0, BINARY_AGE 1). - -2003-02-07 15:14 neo - - * blib/bpacket.c, blib/bpacket.h, docs/reference/blib-sections.txt, - docs/reference/tmpl/bpacket.sgml: Merged fixes for the broken - inline functions from the HEAD branch. - -2003-02-06 16:58 neo - - * blib/bpacket.c, blib/bpacket.h, docs/reference/tmpl/bpacket.sgml: - Converted b_packet_hton() and b_packet_ntoh() to regular - functions. Trying to write portable inline functions obviously - didn't work and I doubt it will make any noticeable difference - anyway. - -2003-02-06 16:47 neo - - * docs/reference/blib-sections.txt: Updates for gtk-doc 1.0. - -2003-01-08 19:54 neo - - * blib/: blib.c, bpacket.h: Don't include external header blib.h - from blib itself. Fixed usage of G_INLINE_FUNC macro. - -2003-01-02 15:01 neo - - * modules/bclock.c: Fixed stupid typo in BClock. - -2002-12-31 19:32 neo - - * modules/bcountdown.c: Include for gettimeofday(). - -2002-12-31 19:29 neo - - * modules/bcountdown.c: Use gettimeofday() for more accurate - timing. - -2002-12-31 19:17 neo - - * modules/bcountdown.c: Don't request stop from - b_countdown_start(). Should work but not even test_module handles - it correctly :-( - -2002-12-31 19:08 neo - - * modules/: .cvsignore, Makefile.am, bcountdown.c, digits.h: Added - BCountdown module. - -2002-12-31 17:14 neo - - * modules/digits.h: Added a nice large (5x7) digits font. - -2002-12-29 00:29 neo - - * test/test-module-scanner.c: Use the local module directory if no - module dir is specified on the command-line. - -2002-12-28 23:47 neo - - * test/test-module-scanner.c: register the builtin BMoviePlayer - type explicitely - -2002-12-28 20:10 neo - - * modules/: bclock.c, bdebug.c, bpong.c, digits.h: Added defines - for the glyph metrics to digits.h. Use them from all modules - using digits.h. Improved how the digital clock adapts to the - screen size. - -2002-12-28 14:50 neo - - * ChangeLog: Made 1.0.0 release. - -2002-12-28 14:23 neo - - * README, modules/bclock.c: Updated the README for the 1.0.0 - release. - -2002-12-28 04:30 neo - - * modules/bclock.c: avoid bouncing digital clock - -2002-12-28 04:05 neo - - * docs/reference/tmpl/bmovie-effects.sgml, - docs/reference/tmpl/bmovie.sgml, modules/bclock.c, - modules/digits.h: Added a space character to the digits font. - Updated docs. Improved digital BClock for smaller displays. - -2002-12-28 03:22 neo - - * ChangeLog, NEWS: More news for the 1.0.0 release. - -2002-12-28 03:18 neo - - * blib/bmovie-effects.c, blib/bmovie-effects.h, - docs/reference/blib-sections.txt: Added new function - b_movie_apply_colormap(). - -2002-12-28 02:30 neo - - * ChangeLog, docs/reference/Makefile.am, modules/Makefile.am, - modules/bclock.c, modules/bdebug.c, modules/bpong.c, - modules/digits.h: Moved digits font into a separate file and - share it among modules. - -2002-12-28 01:44 neo - - * modules/bclock.c: grrr - -2002-12-28 01:40 neo - - * modules/bclock.c: oops - -2002-12-28 01:35 neo - - * modules/bclock.c: take the aspect ratio into account - -2002-12-28 01:22 neo - - * modules/bclock.c: Made the clock adapt better to the screen size. - -2002-12-27 22:36 neo - - * blib/btheme.c: Lazy-load scratch themes. - -2002-12-27 20:03 neo - - * blib/breceiver.c: If we need to drop frames in BReceiver, drop - all but the last frame instead of the first. - -2002-12-27 18:59 neo - - * ChangeLog: Updated ChangeLog for 1.0.0 release. - -2002-12-27 18:40 neo - - * docs/reference/: Makefile.am, blib-sections.txt, - tmpl/bmovie.sgml: documented the different BMovie implementations - -2002-12-27 18:12 neo - - * blib/bobject.c, docs/reference/blib.types.in, - docs/reference/tmpl/bmovie.sgml, - docs/reference/tmpl/bobject.sgml, - docs/reference/tmpl/bpacket.sgml, - docs/reference/tmpl/bprotocol.sgml, - docs/reference/tmpl/breceiver.sgml, - docs/reference/tmpl/bsender.sgml: Improved docs. - -2002-12-27 16:28 neo - - * modules/bpong.c: Fixed bug in Pong initialization. - -2002-12-27 16:13 neo - - * test/test-module.c: Ooops, didn't mean to commit that... - -2002-12-27 16:12 neo - - * modules/bpong.c, test/test-module.c: Fixed key bindings for Pong. - -2002-12-19 12:19 neo - - * blib/Makefile.am, gfx/Makefile.am, modules/Makefile.am: Removed - $(includedir) since it seems wrong. - -2002-12-18 23:42 neo - - * blib/bthemes.c: Include string.h for strcmp(). - -2002-12-18 20:06 neo - - * docs/reference/tmpl/: beffects.sgml, blib.sgml, - bmovie-effects.sgml: added missing short descriptions - -2002-12-18 19:17 neo - - * docs/reference/Makefile.am: added a dependency on blib.types - -2002-12-18 18:54 mitch - - * configure.in, docs/reference/.cvsignore, - docs/reference/Makefile.am, docs/reference/blib.types, - docs/reference/blib.types.in, gfx/bview-directfb.h, - gfx/bview-gtk.h: - generate the docs for conditionally built - sources conditionally. - declare object struct members of the - conditionally built object explicitely as /*< private >*/ so - they don't end up the the docs. - -2002-12-18 18:47 mitch - - * blib/bmovieplayer.c: better error reporting in - b_movie_player_prepare(). - -2002-12-17 15:23 neo - - * blib/btheme-parser.c, blib/btheme.c, blib/btheme.h, - blib/bthemes.c, docs/reference/blib-sections.txt, - docs/reference/tmpl/btheme.sgml: Added - b_theme_new_from_scratch(), a function that allows to create a - theme to quickly test a movie format w/o having to create a new - theme XML file. - -2002-12-17 11:18 neo - - * blib/bthemes.c, blib/bthemes.h, docs/reference/blib-sections.txt, - docs/reference/tmpl/btheme.sgml: Removed the short_name from the - new themes API and changed the wrappers for the old API so they - provide this functionality. - -2002-12-17 02:32 neo - - * blib/bthemes.h, blib/btypes.h, docs/reference/tmpl/btheme.sgml: - Changed structure declaration to more gtk-doc friendly format. - -2002-12-17 02:23 neo - - * blib/bthemes.c, data/blinkentheme.dtd: Fixed a possible crash in - b_themes_query(). - -2002-12-17 02:03 neo - - * data/blinkentheme.dtd: Added an optional type attribute to the - blinkenthemes DTD. - -2002-12-17 02:00 neo - - * blib/bthemes.h, docs/reference/Makefile.am: Guard the old themes - API with B_DISABLE_DEPRECATED. - -2002-12-17 01:54 neo - - * blib/btheme.h, blib/bthemes.c, blib/bthemes.h, - docs/reference/blib-sections.txt, - docs/reference/tmpl/bparser.sgml, - docs/reference/tmpl/breceiver.sgml, - docs/reference/tmpl/btheme.sgml: Polished the new themes API and - added compatibility wrappers for the old API. - -2002-12-16 23:17 tim - - * blib/: Makefile.am, blib.h, btheme-parser.c, btheme.c, btheme.h, - bthemes.c, bthemes.h: improved themes handling - changed by neo - -2002-12-16 01:09 neo - - * blib.pc.in: need to change the glib version here as well - -2002-12-16 00:55 neo - - * configure.in: Lower the required version of glib to 2.0.1 so that - blib can be build on Debian Woody (stable). - -2002-12-15 01:42 neo - - * modules/bdebug.c: removed a misleading comment - -2002-12-15 00:08 neo - - * modules/bdebug.c: Fixed copy'n'paste bug. Suppress display of - numbers if the screen is too small. - -2002-12-14 18:31 neo - - * modules/bpong.c: finetuned the digits - -2002-12-14 17:38 neo - - * configure.in: moved some lines around to please autoconf - -2002-12-14 16:51 neo - - * modules/btetris.c: Set bottom offset to 0. - -2002-12-10 20:54 neo - - * blib/bmodule.c, docs/reference/tmpl/bmodule.sgml, - docs/reference/tmpl/bmoduleinfo.sgml, - docs/reference/tmpl/bmovie.sgml, - docs/reference/tmpl/bmovieplayer.sgml, - docs/reference/tmpl/bpacket.sgml, - docs/reference/tmpl/bparser.sgml, - docs/reference/tmpl/breceiver.sgml, - docs/reference/tmpl/bsender.sgml, - docs/reference/tmpl/btheme.sgml, - docs/reference/tmpl/bwriter.sgml: More docs, almost there (98%). - -2002-12-10 19:15 neo - - * blib/bmodule.h, docs/reference/blib-docs.sgml, - docs/reference/tmpl/bmodule-internal.sgml, - docs/reference/tmpl/bmodule-utils.sgml, - docs/reference/tmpl/bmodule.sgml, - docs/reference/tmpl/bmoduleinfo.sgml, - docs/reference/tmpl/bobject.sgml, - docs/reference/tmpl/bprotocol.sgml, - docs/reference/tmpl/btheme.sgml, docs/reference/tmpl/butils.sgml, - docs/reference/tmpl/bview-directfb.sgml, - docs/reference/tmpl/bview-gtk.sgml: more documentation (85%) - -2002-12-10 16:56 neo - - * ChangeLog, blib/bmoduleinfo.c, blib/bmoduleinfo.h, - blib/bsender.c, docs/reference/blib-docs.sgml, - docs/reference/blib-sections.txt, - docs/reference/tmpl/bmoduleinfo.sgml, - docs/reference/tmpl/bmovie.sgml, - docs/reference/tmpl/bprotocol.sgml: Removed - b_module_info_scan_default_dir(). Pass NULL to - b_module_info_dir() to get this behaviour. Changed - b_sender_remove_recipient() so it only removes recipients with a - matching port number. Changed b_sender_list_recipients() to - include the port number. Added more docs (77%). - -2002-12-10 15:23 neo - - * blib/bpacket.c, blib/breceiver.c, blib/btheme.c, - docs/reference/blib-docs.sgml, docs/reference/tmpl/bpacket.sgml: - more docs (63%) - -2002-12-10 14:15 neo - - * blib/beffects.c, blib/bmovie-effects.c, - docs/reference/tmpl/bmovie.sgml, - docs/reference/tmpl/bparams.sgml, - docs/reference/tmpl/btheme.sgml, docs/reference/tmpl/btypes.sgml: - more docs (59%) - -2002-12-10 13:18 neo - - * blib/bmodule-utils.c, blib/bmodule.c, blib/bparser.c, - blib/breceiver.c, blib/breceiver.h, - docs/reference/tmpl/bmovie.sgml, - docs/reference/tmpl/breceiver.sgml: documented more functions - (50% symbol coverage) - -2002-12-10 11:47 neo - - * docs/reference/blib-docs.sgml: more updates to the toplevel - document, still not 100% valid - -2002-12-10 01:26 neo - - * docs/reference/: Makefile.am, blib-docs.sgml, blib-sections.txt, - tmpl/beffects.sgml, tmpl/blib.sgml, tmpl/bmodule-internal.sgml, - tmpl/bmodule-utils.sgml, tmpl/bmodule.sgml, - tmpl/bmoduleinfo.sgml, tmpl/bmovie-effects.sgml, - tmpl/bmovie.sgml, tmpl/bmovieplayer.sgml, tmpl/bobject.sgml, - tmpl/bpacket.sgml, tmpl/bparams.sgml, tmpl/bparser.sgml, - tmpl/bprotocol.sgml, tmpl/breceiver.sgml, tmpl/bsender.sgml, - tmpl/btheme.sgml, tmpl/btypes.sgml, tmpl/butils.sgml, - tmpl/bview-directfb.sgml, tmpl/bview-gtk.sgml, tmpl/bwriter.sgml, - tmpl/gif-load.sgml, tmpl/gif-save.sgml, tmpl/gif-types.sgml: - Decided that I don't want to document the GIF API. It's merely - for internal use and I don't want to encourage people to use this - format. Updated the template files. - -2002-12-09 18:58 neo - - * NEWS, docs/reference/blib-docs.sgml: Fixed a couple of docbook - errors and added more info. - -2002-12-09 18:26 neo - - * docs/reference/blib-docs.sgml: some introductory words - -2002-12-09 17:47 neo - - * configure.in: Added a micro number to the version so the next - release should become 1.0.0. - -2002-12-09 17:38 neo - - * configure.in, docs/reference/.cvsignore, - docs/reference/blib-docs.sgml, docs/reference/version.xml.in: - Added version information to the API reference. Started to write - a short introduction. - -2002-12-09 16:57 neo - - * blib/: bparser.c, bwriter.c: Documented BParser and BWriter (31% - docs coverage) - -2002-12-09 16:04 neo - - * blib/btheme.c, docs/reference/blib-sections.txt, - gfx/bview-directfb.c, gfx/bview-gtk.c: more documentation (22%) - -2002-12-09 15:30 neo - - * blib/: bmovie.c, bmovie.h, bparams.c, butils.c: up to 17% - documentation coverage - -2002-12-09 14:34 neo - - * blib/: blib.c, bobject.c, butils.c: Added documentation for a - couple of functions. - -2002-12-09 01:46 neo - - * docs/reference/: blib-docs.sgml, blib-sections.txt, - tmpl/beffects.sgml, tmpl/blib.sgml, tmpl/bmodule-internal.sgml, - tmpl/bmodule-utils.sgml, tmpl/bmodule.sgml, - tmpl/bmoduleinfo.sgml, tmpl/bmovie-effects.sgml, - tmpl/bmovie.sgml, tmpl/bmovieplayer.sgml, tmpl/bobject.sgml, - tmpl/bpacket.sgml, tmpl/bparams.sgml, tmpl/bparser.sgml, - tmpl/bprotocol.sgml, tmpl/breceiver.sgml, tmpl/bsender.sgml, - tmpl/btheme.sgml, tmpl/btypes.sgml, tmpl/butils.sgml, - tmpl/bview-directfb.sgml, tmpl/bview-gtk.sgml, tmpl/bwriter.sgml, - tmpl/gif-load.sgml, tmpl/gif-save.sgml, tmpl/gif-types.sgml: - unified titles - -2002-12-08 19:30 neo - - * Makefile.am, configure.in, docs/.cvsignore, docs/Makefile.am, - docs/reference/.cvsignore, docs/reference/Makefile.am, - docs/reference/blib-docs.sgml, docs/reference/blib-overrides.txt, - docs/reference/blib-sections.txt, docs/reference/blib.types, - docs/reference/tmpl/beffects.sgml, - docs/reference/tmpl/blib-unused.sgml, - docs/reference/tmpl/blib.sgml, - docs/reference/tmpl/bmodule-internal.sgml, - docs/reference/tmpl/bmodule-utils.sgml, - docs/reference/tmpl/bmodule.sgml, - docs/reference/tmpl/bmoduleinfo.sgml, - docs/reference/tmpl/bmovie-effects.sgml, - docs/reference/tmpl/bmovie.sgml, - docs/reference/tmpl/bmovieplayer.sgml, - docs/reference/tmpl/bobject.sgml, - docs/reference/tmpl/bpacket.sgml, - docs/reference/tmpl/bparams.sgml, - docs/reference/tmpl/bparser.sgml, - docs/reference/tmpl/bprotocol.sgml, - docs/reference/tmpl/breceiver.sgml, - docs/reference/tmpl/bsender.sgml, - docs/reference/tmpl/btheme.sgml, docs/reference/tmpl/btypes.sgml, - docs/reference/tmpl/butils.sgml, - docs/reference/tmpl/bview-directfb.sgml, - docs/reference/tmpl/bview-gtk.sgml, - docs/reference/tmpl/bwriter.sgml, - docs/reference/tmpl/gif-load.sgml, - docs/reference/tmpl/gif-save.sgml, - docs/reference/tmpl/gif-types.sgml: Added framework for a blib - API reference. This uses the very latest version of gtk-doc to - generate DocBook XML from the source files. Chances that are that - it doesn't work on your system. That's why it is disabled by - default. - -2002-12-08 18:11 neo - - * blib/: bobject.c, bpacket.h: Added blurbs for BObject properties. - Added prototype for packet byteorder functions. - -2002-12-08 16:23 neo - - * .cvsignore, autogen.sh: Call libtoolize explictly, since newer - automakes don't run it for us anymore. - -2002-10-21 18:10 neo - - * blib/btheme-parser.c, data/blinkentheme.dtd: Improved DTD, - teached the theme parser how to handle "all" value. - -2002-10-21 16:21 neo - - * gfx/bview-gtk.c: fixed safety checks - -2002-10-21 11:25 neo - - * NEWS, configure.in: Bumped version number to 1.0. - -2002-10-21 11:24 neo - - * blib/btheme-parser.c, blib/btheme.h, data/blinkentheme.dtd, - gfx/bview-directfb.c, gfx/bview-gtk.c: allow to specify overlay - images for the different intensity values - -2002-10-21 11:23 neo - - * modules/: bclock.c, bmatrix.c, bpushline.c: code cleanup, renamed - BPushLine to BPushline. - -2002-10-11 16:20 neo - - * modules/: Makefile.am, btetris.c: Some code and Makefile cleanup. - -2002-10-06 04:33 neo - - * modules/bclock.c: less debug output - -2002-10-04 23:08 daniel - - * modules/: bclock.c, bpong.c: sless speedup in pong - -2002-10-04 22:43 neo - - * modules/bbreakout.c: slightly faster breakout - -2002-10-04 21:03 mitch - - * modules/: .cvsignore, Makefile.am, bclock.c, btext.c: - added - BText module which prints arbitrary ASCII (!!) text in a - teletype style. - #include in bclock.c - -2002-10-04 18:05 daniel - - * modules/: Makefile.am, bclock.c, bmatrix.c: +BClock - -2002-10-03 02:59 daniel - - * modules/bpong.c: speed up if computer looses - -2002-10-03 02:51 daniel - - * modules/btetris.c: yet another rotate bug fixed. - -2002-10-01 16:10 neo - - * AUTHORS, README, modules/bmatrix.c: Changes from Simon that - vastly improve the BMatrix module. - -2002-10-01 01:58 neo - - * modules/bmatrix.c: Some fixes by Simon. - -2002-10-01 00:51 neo - - * modules/: .cvsignore, Makefile.am, bmatrix.c: Added BMatrix. - -2002-10-01 00:48 daniel - - * modules/btetris.c: foo - -2002-10-01 00:28 daniel - - * modules/: bpushline.c, btetris.c: random feature in pushline, - rotation bug in tetris - -2002-09-30 23:35 daniel - - * modules/bpushline.c: foo - -2002-09-30 19:50 neo - - * blib/blib.c, modules/bpushline.c: Make it work. - -2002-09-30 19:34 neo - - * modules/bpushline.c: Use an enum property for the direction. - -2002-09-30 19:21 neo - - * blib/blib.c: Added support for deserialzing enum values. - -2002-09-30 19:06 daniel - - * modules/: bpushline.c: fixes - -2002-09-30 18:59 daniel - - * modules/bpushline.c: removed hack - -2002-09-30 18:57 daniel - - * modules/bpushline.c: added property support to BPushLine - -2002-09-30 17:35 neo - - * blib/bmodule.c, modules/.cvsignore, modules/btetris.c: Keep an - additional refcount on the module during the tick callback so - that the module may stop itself w/o the module being destroyed - immidiately. - -2002-09-30 17:09 daniel - - * modules/: Makefile.am, bpushline.c, btetris.c: added pushline, a - generic screen cleanup tool - -2002-09-29 23:33 neo - - * blib/: bmodule.h, bmovieplayer.c, btheme.c: Added padding to - BModule and BModuleClass. Plugged a memleak in the BMoviePlayer. - -2002-09-29 22:56 neo - - * blib/bmodule.c, modules/bpong.c, modules/btetris.c: Quit Pong if - a player has ten or more points. Rewrote some code in bmodule.c - that looked suspicious. - -2002-09-29 22:29 daniel - - * modules/btetris.c: small fix - -2002-09-29 22:27 daniel - - * modules/btetris.c: reset speed - -2002-09-29 22:01 daniel - - * modules/btetris.c: foo - -2002-09-29 21:54 daniel - - * modules/btetris.c: added foo padding - -2002-09-29 19:43 neo - - * blib/bmovieplayer.c: cleanup - -2002-09-29 19:39 neo - - * blib/bmovieplayer.c, test/test-module.c: Allow to "Dump Frame" in - test-module. Small fix in BMoviePlayer. - -2002-09-28 22:25 neo - - * modules/bpong.c: Fixed the code that stops the game when a player - has 3 points and if 0'ed it then. - -2002-09-28 22:13 neo - - * modules/: bdebug.c, bpong.c: Display scores in Pong. - -2002-09-28 20:55 neo - - * modules/btetris.c: removed debug output, seems to work now - -2002-09-28 00:44 daniel - - * modules/bdropout.c: clear last ixel - -2002-09-28 00:17 daniel - - * modules/btetris.c, test/test-module.c: fixes. - -2002-09-28 00:01 daniel - - * test/test-module.c: made test-module usable again - -2002-09-27 23:52 daniel - - * modules/btetris.c: tetris service pack - -2002-09-27 23:47 neo - - * modules/: bbreakout.c, bpong.c: A fix for Pong and autostart mode - for Breakout. - -2002-09-27 22:35 neo - - * modules/bpong.c: adapt paddle size to module->height - -2002-09-27 21:35 daniel - - * modules/bdropout.c: foo - -2002-09-27 21:17 neo - - * modules/.cvsignore: shut up CVS - -2002-09-27 21:16 daniel - - * modules/bdropout.c: foo - -2002-09-27 21:02 daniel - - * modules/bdropout.c: foo - -2002-09-27 20:46 daniel - - * modules/bdropout.c: foo - -2002-09-27 20:24 daniel - - * modules/: Makefile.am, bdropout.c: added bdropout, yet another - effect - -2002-09-27 20:19 neo - - * modules/bpong.c: oops - -2002-09-27 19:41 neo - - * modules/bfire.c: fire fine tuning - -2002-09-27 19:21 neo - - * modules/: bdebug.c, bqix.c: Fine tuning. - -2002-09-27 17:54 neo - - * modules/bpong.c: Added scores and continue the game until one of - the players hits 5. - -2002-09-26 22:53 neo - - * AUTHORS, blib/bmovieplayer.c: Removed a wrong assertion. - -2002-09-26 19:48 neo - - * ChangeLog, NEWS: Made 0.9 release. - -2002-09-26 19:35 neo - - * blib/bmovieplayer.c: Always return a title. - -2002-09-26 19:32 neo - - * blib/: bmovieplayer.c, bmovieplayer.h: Load the movie in - prepare() and unref() it in relax. - -2002-09-26 19:10 neo - - * modules/bfire.c: increased default tick timeout - -2002-09-26 17:44 daniel - - * modules/bdebug.c: no comment - -2002-09-25 22:54 neo - - * blib/: bmovie-bml-parser.c, bmovie-gif-parser.c, bmovie.h: Use a - default delay of 100ms if the duration is below the minimum of - 20ms. - -2002-09-25 21:15 daniel - - * modules/bdebug.c: ARGH! belveder is 18th floor, not 3rd!! - -2002-09-25 19:41 mitch - - * modules/: bbreakout.c, bpacman.c: - ported BBreakout to the new - PLAYER_ENTERD/LEFT events. - tiny cleanup in BPacman. - -2002-09-25 18:16 mitch - - * blib/bmodule.c, blib/bmodule.h, blib/btypes.h, modules/bpacman.c, - modules/bpong.c, modules/btetris.c: - added - B_EVENT_TYPE_PLAYER_ENTERED and B_EVENT_TYPE_PLAYER_LEFT. - - added BModuleClass::max_players and BModule::num_players (they - must be set by the module in class_init and when it handled - the above two events). - ported all playable modules to the new - event types and remember the players' device_ids. - -2002-09-25 17:14 neo - - * modules/bdebug.c: Made BDebug less verbose. - -2002-09-25 16:57 daniel - - * modules/btetris.c: speed fix - -2002-09-25 16:52 daniel - - * modules/btetris.c: speed fix - -2002-09-25 16:34 daniel - - * modules/btetris.c: tetris rotate bug fixed. - -2002-09-25 11:04 mitch - - * blib/bmodule.c: Let the module connect to it's own "stop" signal - and set module->running to FALSE in the callback. This way stop() - implementations are called with running == TRUE, whereas for 3rd - party signal handlers it's FALSE. - -2002-09-25 07:58 neo - - * blib/bmoduleinfo.c: made b_module_infos_scan_dir() less verbose - -2002-09-25 06:37 neo - - * modules/bdebug.c: minor cleanup - -2002-09-25 05:42 daniel - - * modules/btetris.c: do not block while dropping tiles. - -2002-09-25 05:30 daniel - - * modules/: bdebug.c: better digits - -2002-09-25 05:15 daniel - - * modules/bdebug.c: nicer placement of digits - -2002-09-25 05:05 daniel - - * test/: test-module.c, modules/test.c: fixed hask->asterisk - swapping in test module - -2002-09-25 05:05 daniel - - * modules/bdebug.c: display big letters - -2002-09-25 03:26 neo - - * NEWS, blib/blib.c, blib/butils.c, blib/butils.h: added - b_parse_boolean() - -2002-09-25 03:18 daniel - - * modules/: .cvsignore, Makefile.am, bdebug.c: added BDebug, our - swissknife for tonight ;-) - -2002-09-25 02:54 daniel - - * blib/bsender.c: ARGH! don't stop sending when one host is - unreachable - -2002-09-25 01:21 daniel - - * modules/bbreakout.c: use g_malloc() and g_free() to make it - compile on MacOSX - -2002-09-25 00:37 neo - - * blib/bmodule.c, modules/.cvsignore, modules/Makefile.am, - modules/bbreakout.c: Added another module hacked by 1stein: - Breakout! - -2002-09-24 22:24 neo - - * blib/: bmovieplayer.c, bmovieplayer.h: Introduced - b_module_player_request_stop(), a dirty hack that allows derived - classes to implement a looping movie player. - -2002-09-24 13:30 neo - - * modules/bpacman.c: A patch from 1stein to make pacman less - verbose. - -2002-09-24 02:15 neo - - * blib/breceiver.c, modules/bpacman.c: Applied changes from 1stein: - BPacman stops after 3 kills. - -2002-09-23 21:09 neo - - * NEWS: oops, how could I forget BPong ? - -2002-09-23 20:59 neo - - * ChangeLog, NEWS: Updated NEWS. - -2002-09-23 17:38 neo - - * AUTHORS, modules/.cvsignore, modules/Makefile.am, - modules/bpacman.c, modules/bqix.c: Added BPacman contributed by - 1stein <1stein@1stein.no-ip.com>. - -2002-09-23 15:57 neo - - * test/test-module.c: Set the BNF aspect ration here. - -2002-09-23 15:56 neo - - * blib/bmodule-internal.h, blib/bmodule.c, blib/bmodule.h, - modules/bfire.c, modules/bqix.c: Added pixel aspect ratio - information to BModule. Use it from BQix and fixed a minor bug in - BFire. - -2002-09-23 15:20 mitch - - * modules/: .cvsignore, Makefile.am, bpong.c: Ported BLPong to - BModule. - -2002-09-23 15:17 mitch - - * blib/beffects.c: fixed effect scope bug (will have to change this - anyway...) - -2002-09-23 14:02 neo - - * modules/bfire.c: Let the fire module stop itself if it is called - with flames=no and the screen content is blown away completely. - -2002-09-23 00:40 neo - - * blib/breceiver.c, blib/breceiver.h, modules/bproxy.c: Added an - API to stop a BReceiver. Finished BProxy. - -2002-09-22 23:38 neo - - * ChangeLog, NEWS: updated NEWS - -2002-09-22 21:43 neo - - * modules/bfire.c: don't ignore the last pixel - -2002-09-22 21:26 neo - - * test/test-module-scanner.c: Let test-module-scanner spit out some - info about the module. - -2002-09-22 20:49 neo - - * blib/butils.c, blib/butils.h, test/test-module.c: Export the - functionality we need to set int, double and boolean object - properties from strings. Added that functionality to test-module. - -2002-09-22 20:26 neo - - * modules/: bfire.c, bqix.c: Allow to have fire w/o flames, allows - for a nice smoke effect. - -2002-09-22 20:06 enno - - * test/test-module.c: -add command line option to pass (string) - properties to BModule Example: test-module - /usr/local/lib/blib-1.0/modules Blinkenjava localhost - --property:class=de.blinkenlights.examples.BlinkenLife - make - sure type BMoviePlayer is registered, so we can use test-module - also with BMoviePlayer and property "movie" - -2002-09-22 19:47 neo - - * blib/bmodule.c, blib/bmovieplayer.c, blib/bmovieplayer.h, - modules/bqix.c: Started to document module parameters. Teached - the movie player to play movies that are not the size of the - module. - -2002-09-22 18:20 neo - - * blib/: beffects.c, beffects.h, bmovie-effects.c, bmovie.h: - Unified order of channels and maxval in our API. - -2002-09-22 17:23 neo - - * blib/bmodule-internal.h, blib/bmodule-utils.c, blib/bmodule.c, - blib/bmodule.h, blib/bmovieplayer.c, blib/bpacket.c, - blib/bpacket.h, modules/bfire.c, modules/bproxy.c, - modules/bqix.c, modules/btetris.c, test/test-module.c, - test/test-movie-player.c, test/modules/test.c: Changed the - modules once again. The packet member of the module object has - been replaced by a simple buffer which is width * height bytes. - A module always has channels == 1 and maxval == 255 (for now). - -2002-09-22 15:38 neo - - * blib/: Makefile.am, blib.h, bmodule-utils.c, bmodule.c, - bmovieplayer.c, bpacket.c, bpacket.h, breceiver.c, bsender.c, - btypes.h, butils.c: Factored out BPacket code and added - b_packet_new(), b_packet_hton() and b_packet_ntoh(). - -2002-09-21 22:00 neo - - * blib/butils.c: mini change - -2002-09-21 20:25 neo - - * blib/blib.c, blib/butils.c, blib/butils.h, modules/.cvsignore, - modules/Makefile.am: Let's call it libbbproxy.so. Added - b_parse_double(), a small wrapper around g_strtod(). - -2002-09-21 20:07 daniel - - * modules/bproxy.c: error handling - -2002-09-21 19:59 daniel - - * modules/bproxy.c: foo - -2002-09-21 19:40 neo - - * blib/: bparams.h, butils.c, butils.h: Added more parser utility - functions: b_filename_from_utf8() and b_parse_param(). - -2002-09-21 19:19 daniel - - * blib/bmodule.c, blib/bmodule.h, blib/bmovieplayer.c, - modules/bfire.c, modules/bproxy.c: added b_module_set_maxval() - use it# - -2002-09-21 18:52 daniel - - * modules/bproxy.c: only copy data, not the whole packet. - -2002-09-21 18:43 daniel - - * modules/: Makefile.am, bproxy.c: added bproxy module - -2002-09-21 17:58 neo - - * blib/Makefile.am, blib/blib.h, blib/bmovieplayer.c, - blib/bparams.c, blib/bparams.h, blib/bparser.c, blib/btypes.c, - blib/btypes.h, blib/butils.c, blib/bwriter.c, modules/bfire.c: - Added B_TYPE_FILENAME derived from G_TYPE_STRING and - B_TYPE_PARAM_FILENAME, a ParamSpec derived from - G_TYPE_PARAM_STRING. Changed the type of the movie property of - the movie player to B_TYPE_FILENAME. - -2002-09-21 17:41 daniel - - * modules/btetris.c: tetris stuck bug - -2002-09-21 15:45 neo - - * configure.in, blib/bmodule-internal.h, blib/bmodule.c, - blib/bmodule.h, blib/bmovieplayer.c, modules/bqix.c, - modules/btetris.c, test/modules/test.c: Added a relax method to - the module API. - -2002-09-21 15:15 daniel - - * modules/btetris.c: ich <- idiot. - -2002-09-21 14:48 daniel - - * modules/btetris.c: minor cleanups - -2002-09-21 14:26 neo - - * blib/bmodule.c: Actually use the return value of g_timeout_add(). - -2002-09-21 13:47 neo - - * blib/Makefile.am, blib/blib.c, blib/blib.h, blib/bmodule.c, - test/test-module-scanner.c, test/test-module.c, - test/test-movie-parser.c, test/test-movie-player.c, - test/test-movie-writer.c, test/test-receiver.c, - test/test-sender.c, test/test-theme-parser.c: Added b_init() - which calls g_type_init() and registers some handy value - transform functions. - -2002-09-21 11:56 neo - - * blib/: bmodule.c, bmodule.h: Implemented module lifetime: the - module is automatically stopped when it's lifetime expires. Well, - lifetime is not the correct term actually ... - -2002-09-20 22:01 neo - - * blib/: bmodule.c, bmodule.h: Added a (yet unused) lifetime - property to BModule. - -2002-09-20 20:51 mitch - - * blib/bmodule.c: s/g_value_get_float/g_value_get_double/ - -2002-09-20 20:34 neo - - * blib/bmodule.c: Added a warning and a fallback if a module didn't - return a title in the describe method. - -2002-09-20 20:28 neo - - * blib/bmovie-bml-parser.c: indentation - -2002-09-20 19:08 neo - - * blib/: bmodule.c, bmodule.h, bmovieplayer.c, bmovieplayer.h: - Moved the speed parameter from the movie player to BModule and - made it an object property. - -2002-09-20 18:43 neo - - * ChangeLog, blib/bmodule.c, blib/bmovieplayer.c: Reverted Mitch's - change and allow modules that don't implement describe since - there's a default implementation that takes care that title is - filled in. Made sure that the BMoviePlayer always sets a title. - -2002-09-20 18:11 mitch - - * blib/: bmovieplayer.c, bmovieplayer.h: - added "gboolean reverse" - and "gdouble speed". - do stuff accordingly in - b_movie_player_next_frame(). - -2002-09-20 18:04 mitch - - * blib/bmodule.c: made the describe() implementaion mandatory. - -2002-09-20 15:36 mitch - - * blib/bsender.h: indentation - -2002-09-20 15:36 mitch - - * blib/bmovieplayer.c: set module->maxval in prepare() - -2002-09-20 14:52 daniel - - * blib/bsender.c: set braodcast socket option - -2002-09-20 14:46 neo - - * test/test-module.c: One About dialog should be sufficient ... - -2002-09-20 13:08 neo - - * blib/bmodule-internal.h, blib/bmodule.c, blib/bmovieplayer.c, - modules/bfire.c, modules/bqix.c, modules/btetris.c, - test/test-module.c, test/modules/test.c: Implemented - BModule::describe in all modules. Added code to test the new - feature to test-module.c. - -2002-09-19 22:53 neo - - * blib/bmodule.c, blib/bmodule.h, modules/bqix.c, - test/modules/test.c: Added a new BModule method describe() that - modules can implement to describe themselves. We'll use this for - logging etc. - -2002-09-19 20:58 neo - - * test/test-module.c: Added a call to srand(). - -2002-09-18 19:36 neo - - * ChangeLog: Made 0.8 release. - -2002-09-18 14:46 neo - - * README, blib/bmodule-internal.h, blib/bmodule.c, blib/bmodule.h, - blib/bmovieplayer.c, modules/bfire.c, modules/bqix.c, - modules/btetris.c, test/test-module.c, test/test-movie-player.c, - test/modules/test.c: One more module API change: Added a GError - parameter to the prepare() method and to b_module_new() so that - we have a chance to know why a module failed. - -2002-09-18 12:14 neo - - * NEWS, blib/blib.h, blib/bmodule-utils.c, blib/bmodule.c, - blib/bmovieplayer.c, blib/breceiver.c, blib/bsender.h, - blib/btypes.h: Moved BPacket declaration into btypes.h so that we - don't need to include bsender.h from all over the place. - -2002-09-18 12:03 neo - - * blib/bmodule-internal.h, blib/bmodule.c, test/test-module.c, - test/test-movie-player.c: Removed the var_args from - b_module_new(). It's overly complex and construct_only properties - don't make much sense here anyway. Made BModule::start() a - signal just like BModule::stop(). - -2002-09-18 10:37 neo - - * blib/bmovieplayer.c, test/.cvsignore, test/Makefile.am, - test/test-movie-parser.c, test/test-movie-player.c: Added a test - for the BMoviePlayer. - -2002-09-18 09:43 neo - - * modules/bfire.c, test/modules/test.c: Made BFire work again and - improved the test module. - -2002-09-18 09:15 neo - - * blib/bmovieplayer.c, modules/bqix.c, modules/btetris.c, - test/test-module.c: Actually call b_module_prepare() in - test_module.c. Added a lines property to BQix. Ported - BMoviePlayer to the new API. - -2002-09-17 20:28 daniel - - * modules/: bfire.c, bqix.c: more adaptions - -2002-09-17 20:14 daniel - - * blib/bmodule-utils.c, modules/btetris.c, test/test-module.c: - - adaptions to new module api - #include fixes - -2002-09-17 18:29 neo - - * blib/: bmovie.c, bmovieplayer.c: Added a movie property to the - movie player. Not yet ported to the new module API. - -2002-09-17 18:27 neo - - * test/modules/test.c: Ported the test module to the new module - API. - -2002-09-17 18:21 neo - - * test/test-module.c: Ported the module test app to the new API. - -2002-09-17 18:18 neo - - * blib/: Makefile.am, blib.h, bmodule-internal.h, bmodule.c, - bmodule.h: New module API. Completely untested and no modules are - ported yet. Breaks the build... - -2002-09-16 17:40 neo - - * gfx/bview-gtk.c: Unrolled the inner loop even more. - -2002-09-16 15:06 neo - - * blib/breceiver.c: Use g_printerr() instead of g_warning() for - run-time errors that are not caused by wrong usage of the - library. - -2002-09-16 15:02 neo - - * gfx/: Makefile.am, bview-gtk.c: Replaced deprecated GDK function. - -2002-09-16 14:54 neo - - * gfx/bview-gtk.c: Added optimized blending functions for the GTK - view. Speeds up blinkensim-gtk with the BNF theme quite nicely. - -2002-09-13 16:44 neo - - * modules/bqix.c: Added more lines to the BQix module. - -2002-09-13 15:20 neo - - * blib/bmodule-utils.c, modules/bfire.c, modules/bqix.c: Removed - debug output in b_module_draw_line(). Some finetuning in BQix. - -2002-09-13 15:12 neo - - * test/modules/test.c: Improved test module. Don't paint in start - and stop. - -2002-09-13 14:46 daniel - - * modules/btetris.c: moved some code to tick() function to make - this module a bit more asyncronous. - -2002-09-13 14:45 daniel - - * modules/bfire.c: #include - -2002-09-12 20:36 neo - - * blib/Makefile.am, blib/blib.h, blib/bmodule-utils.c, - blib/bmodule-utils.h, modules/.cvsignore, modules/Makefile.am, - modules/bfire.c, modules/bqix.c: Added some simple graphics - funtions to ease module development. Started to port the Qix - screensaver. - -2002-09-12 14:56 neo - - * modules/bfire.c, test/test-module.c: Tweaked fire parameters. - Made test-module less verbose. - -2002-09-12 13:56 neo - - * modules/bfire.c: Removed calculations w/o any effect (didn't have - any effect in aafire neither). - -2002-09-12 13:37 neo - - * blib/bmodule.c, modules/.cvsignore, modules/bfire.c, - modules/btetris.c: Modules now only need to implement query() and - tick(). Code cleanup in tetris and fire module. - -2002-09-12 01:12 neo - - * modules/: Makefile.am, bfire.c: Added BFire, a port of aafire. - Needs some further tweaking... - -2002-09-11 20:16 mitch - - * blib/: beffects.c, beffects.h: Made a bitmask out of - BEffectScope. - -2002-09-11 04:29 neo - - * configure.in, blib/bmovie-bml-parser.c: Fixed parsing of movies - with maxval > 15 that I broke this afternoon. Bumped version to - 0.8. - -2002-09-10 23:15 mitch - - * blib/bprotocol.h: - removed c++ style comments and indented - everything. - typedef stuff separately from struct definition. - -2002-09-10 15:49 neo - - * blib/bsender.c: Include name of failing recipient in error - message. - -2002-09-10 15:04 neo - - * blib/bmovie-bml-parser.c, gfx/bview-gtk.c: Added more sanity - checks to gdk_pixbuf_fill_rect(). Made the BML parser complain - if the row data exceeds the movies' maxval. - -2002-09-10 13:57 neo - - * configure.in: oops, forgot to remove the themes directories here - -2002-09-10 04:18 neo - - * ChangeLog, NEWS: Made 0.7 release. - -2002-09-10 03:09 neo - - * README, blib.pc.in, data/Makefile.am, test/run-tests.sh: Finished - themes move. - -2002-09-10 01:45 neo - - * gfx/: bview-directfb.h, bview-gtk.h: document the fact that the - view expect data with maxval = 255 - -2002-09-10 01:36 mitch - - * blib/bmovie-gif-parser.c: Don't refuse to load non-animated GIFs, - just warn and use default values. - -2002-09-10 00:58 neo - - * blib/btheme-parser.c: made it less verbose - -2002-09-09 23:01 neo - - * blib/btheme-parser.c: Really made the parser imply 0 for - unspecified values. Added a 800x600 BNF theme. - -2002-09-09 22:51 daniel - - * blib/bmovieplayer.c, modules/btetris.c: stuff - -2002-09-09 22:33 daniel - - * modules/btetris.c: smoother tetris down blending - -2002-09-09 22:18 mitch - - * blib/btypes.h, test/test-module.c: - s/B_KEY_ASKERISK/B_KEY_ASTERISK/ - -2002-09-09 22:14 mitch - - * blib/: bmodule.h, btypes.h: moved BModule enums to btypes.h - -2002-09-09 21:59 mitch - - * blib/blib.h, blib/bmodule.h, blib/bmovieplayer.h, blib/btypes.h, - modules/btetris.c, test/test-module-scanner.c, - test/test-module.c, test/modules/test.c: moved all BModule - includes and types to global places and removed includes which - are no longer needed. - -2002-09-09 21:37 daniel - - * blib/bsender.c: foo - -2002-09-09 21:13 daniel - - * blib/: bsender.c, bsender.h: GError for _remove_recipient - -2002-09-09 21:08 neo - - * data/blinkentheme.dtd: Don't specify values if the implied value - of 0 is fine. Document the fact that 0 is the implied default - value. - -2002-09-09 20:55 neo - - * README, blib/bmoduleinfo.c, blib/btheme.c: plugged a minor - memleak, reindented some code and updated the README - -2002-09-09 20:52 daniel - - * blib/bsender.c: foo - -2002-09-09 20:52 daniel - - * blib/bsender.c, blib/bsender.h, modules/Makefile.am, - test/modules/Makefile.am: - added b_sender_list_recipients () - - Makefile.am cleanups for MacOSX - -2002-09-09 19:09 neo - - * data/blinkentheme.dtd, test/run-tests.sh: Fixed a minor bug in - the hdl-144x108 theme. Minor cleanups in the blinkentheme.dtd. - Validate the theme files when on 'make check'. - -2002-09-09 19:02 daniel - - * modules/: Makefile.am, btetris.c: blend down on 'game over' - -2002-09-09 18:30 neo - - * modules/btetris.c: Fixed start position. - -2002-09-09 18:20 neo - - * blib/: btheme.c, btheme.h: Added a function to iterate over all - themes in the theme path and renamed b_theme_lookup() for - consistency. - -2002-09-09 17:26 neo - - * Makefile.am, NEWS, configure.in, modules/.cvsignore, - modules/Makefile.am, modules/btetris.c, test/modules/.cvsignore, - test/modules/Makefile.am, test/modules/test.c, - test/modules/test.h, test/modules/tetris.c, - test/modules/tetris.h: Moved tetris into the modules directory. - Removed module headers since you can't derive from dynamic - modules anyway. - -2002-09-09 16:28 neo - - * test/movies/: Makefile.am, alfred-26x20.bml, rain-26x20.bml: - Replaced the master of suspense with a more interesting test - movie. - -2002-09-09 16:21 neo - - * gfx/bview-gtk.c: Respect background color. Seems to work fine - again :-) - -2002-09-09 16:11 daniel - - * test/modules/tetris.c: collision check on rotate - -2002-09-09 15:37 mitch - - * blib/Makefile.am, blib/bmovieplayer.c, blib/bmovieplayer.h, - test/modules/test.c, test/modules/test.h: Added BMoviePlayer, a - built-in BModule subclass which is always available. - -2002-09-09 14:57 neo - - * gfx/: bview-directfb.c, bview-gtk.c, bview-gtk.h: Resurrected the - GTK+ view and made it a lot faster. - -2002-09-09 13:47 mitch - - * configure.in, blib/Makefile.am: Pass MODULEPATH via -D, not via - config.h - -2002-09-09 12:25 mitch - - * configure.in, blib/bmoduleinfo.c, blib/bmoduleinfo.h, - test/modules/Makefile.am: - install the modules to - /lib/blib-1.0/modules - added - b_modules_scan_default_dir() to get the built-in modules - -2002-09-08 15:36 neo - - * configure.in, blib/btheme-parser.c, blib/btheme.c, blib/btheme.h, - blib/btypes.h, blib/butils.c, data/blinkentheme.dtd, - gfx/bview-directfb.c, gfx/bview-directfb.h, gfx/bview-gtk.c, - gfx/bview-gtk.h: Improved themes a lot. Thanks to the grid and - span elements, standard themes are very small and simple now. The - GTK view has not yet been completely ported to the new themes - API; the DirectFB view already works again. Added a simple - blinkenleds theme. - -2002-09-08 14:18 neo - - * configure.in: Allow to disable support for DirectFB and GTK+-2.0. - -2002-09-07 21:38 tim - - * blib/bprotocol.h: removed mcud specific defines - -2002-09-07 21:14 daniel - - * test/modules/tetris.c: tetris everywhere - -2002-09-07 21:01 tim - - * blib/bprotocol.h: remove BLFRAME_MAX_* defines because it does - not belong here - -2002-09-07 18:37 daniel - - * test/modules/tetris.c: much more tetris implementation - -2002-09-06 21:14 daniel - - * blib/bmodule.c, test/test-module.c, test/modules/tetris.c: stop - the module if return value of tick() was 0 - -2002-09-06 21:05 daniel - - * test/modules/: tetris.c, tetris.h: game over - -2002-09-06 20:57 daniel - - * test/modules/tetris.c: rotate counter clockwise - -2002-09-06 20:53 daniel - - * test/modules/tetris.c: lots of work in tetris code. "almost - perfect" ;-) - -2002-09-06 19:07 neo - - * test/test-module.c: Use S as the shortcut for Start as well as - for Stop. - -2002-09-06 19:03 daniel - - * test/modules/tetris.c: more tetris - -2002-09-06 18:52 daniel - - * test/modules/tetris.c: more tetris - -2002-09-06 15:40 neo - - * test/test-module.c: GUI cleanup. - -2002-09-06 14:58 neo - - * test/modules/tetris.c: Rewrote some parts so that the code is - easier to understand. - -2002-09-06 13:48 neo - - * blib/breceiver.c, gfx/bview-gtk.c: Read all pending packets from - the socket and drop all but the first valid packet. This way we - drop packets instead of piling them up in the queue when the - application is too busy to handle them all. - - Turn off double-buffering for the GTK BView. Our implementation - already does that. - -2002-09-06 12:13 neo - - * blib/bmovie-bml-parser.c, test/modules/tetris.c: Correctly fix - the loop handling this time. Removed some spurious characters - from the the tetris module to make it compile. - -2002-09-06 04:16 daniel - - * test/modules/.cvsignore: ignore - -2002-09-06 04:14 daniel - - * test/modules/: Makefile.am, tetris.c, tetris.h: first try to - implement tetris[tm] - -2002-09-06 03:51 neo - - * configure.in, blib/bmovie-bml-parser.c: Bumped version number to - 0.7. Fixed wrong handling of loop element in BML parser. - -2002-09-06 02:58 neo - - * ChangeLog, NEWS, README: Made 0.6 Release. - -2002-09-06 02:28 neo - - * gfx/bview-gtk.c: Ughh, gdk-pixbuf seems to have some bad bugs in - the composition code :-( The routines seem to be OK for bilinear - sampling, so use those. Use gdk_pixbuf_copy_area() whenever - possible. - -2002-09-06 01:55 neo - - * gfx/bview-directfb.c: Blit overlay with alpha channel blending. - -2002-09-06 01:27 neo - - * gfx/bview-gtk.c: Fixed a couple of bugs in the GTK+ view. - -2002-09-06 00:02 neo - - * gfx/: bview-directfb.c, bview-directfb.h, bview-gtk.c, - bview-gtk.h: misc minor changes - -2002-09-05 23:21 neo - - * gfx/: Makefile.am, blib-directfb.h, blib-gtk.h: Added headers for - the blib gfx libraries. - -2002-09-05 22:40 neo - - * .cvsignore, Makefile.am, blib-directfb.pc.in, blib-gtk.pc.in, - configure.in, data/blinkentheme.dtd, gfx/.cvsignore, - gfx/Makefile.am, gfx/bview-directfb.c, gfx/bview-directfb.h, - gfx/bview-gtk.c, gfx/bview-gtk.h: Added graphical views that make - use of the BTheme infrastructure. Both views are compiled - conditionally if DirectFB and/or GTK+-2.0 are available. - -2002-09-05 17:56 neo - - * blib/Makefile.am, blib/btheme-parser.c, blib/btheme.c, - blib/btheme.h, blib/butils.c, data/blinkentheme.dtd: Reworked - BTheme, added a simple Bushfire theme. Commented the - blinkentheme DTD. Not sure if this is yet the final version but - it's definitely closer. - -2002-09-05 15:59 neo - - * data/bml.dtd: Added comments to the BML DTD. - -2002-09-05 15:37 mitch - - * blib/bmodule.c: b_module_class_init: ser klass->query to NULL. - -2002-09-05 14:41 mitch - - * test/test-module.c: GSource ids are guint, so "no source" is 0, - not -1. - -2002-09-05 14:28 neo - - * blib/butils.c: fixed b_parse_int() - -2002-09-05 14:20 neo - - * blib/: Makefile.am, bmovie-bml-parser.c, bparser.c, bparser.h, - btheme-parser.c, butils.c, butils.h: Moved parsing utilities into - butils.c and made them check for errors. - -2002-09-05 14:11 mitch - - * blib/bmodule.c, blib/bmodule.h, test/test-module.c, - test/modules/Makefile.am, test/modules/test.c, - test/modules/test.h: - fixed the test module's type registration. - - do lots of checking in b_module_new(). All BModules *must* be - created b_module_new() now because it sets the paint callback - and allocates the BFrame. - added BModule->query() which gets - passed the theme parameters and returns TRUE if it can handle - it. - stuff... - -2002-09-05 00:33 neo - - * blib/bparser.c, blib/bparser.h, blib/btheme-parser.c, - blib/btheme.c, blib/btheme.h, blib/btypes.h, - data/blinkentheme.dtd: Moved some general parsing code from - BTheme to the BParser. Added an optional color attribute to the - background and overlay elements. Removed - b_theme_assure_windows() again, instead complete the theme when - it is loaded. - -2002-09-04 23:38 neo - - * blib/: Makefile.am, beffects.c, beffects.h, blib.h, bmodule.c, - bmodule.h, bmoduleinfo.c, bmoduleinfo.h, bmovie-blm.c, - bmovie-bml-parser.c, bmovie-bml.c, bmovie-effects.c, - bmovie-gif-parser.c, bmovie-gif.c, bmovie.c, bmovie.h, bobject.c, - bobject.h, bparser.c, bparser.h, breceiver.c, breceiver.h, - bsender.c, bsender.h, btheme-parser.c, btheme.c, btheme.h, - btypes.h, bwriter.c, bwriter.h: Added a header file for typedefs - that is included from all C files before all other blib headers. - This removes dependencies between the headers that forced a - certain order of inclusion. - -2002-09-04 07:17 neo - - * blib/bmovie-bml-parser.c: Be more informative about the errors - that make the parser fail. - -2002-09-04 06:04 daniel - - * test/modules/test.c: stuff - -2002-09-04 05:58 daniel - - * test/modules/test.c: off by one - -2002-09-04 05:45 daniel - - * test/modules/test.c: some more comments - -2002-09-04 05:31 daniel - - * configure.in: bumped version number to 0.6.0 - -2002-09-04 05:21 neo - - * ChangeLog, NEWS: Made 0.5 release. - -2002-09-04 04:52 daniel - - * test/: test-module.c, modules/test.c: make use of device_id in - test module - -2002-09-04 04:48 neo - - * blib/: btheme.c, btheme.h: Added b_theme_assure_windows() which - generates a grid of windows if none are present. Added a BNF - theme template. - -2002-09-04 04:38 daniel - - * blib/bmodule.h: added device_id to BEvent - -2002-09-04 04:28 daniel - - * blib/bmodule.h: s/B_MODULE_KEY/B_KEY/ - -2002-09-04 04:27 daniel - - * test/: test-module.c, modules/test.c, modules/test.h: made the - test module a 'game' ;-) - -2002-09-04 03:59 neo - - * blib/: breceiver.c, bsender.c, btheme.c, btheme.h: Set the - BReceivers' io_channel encoding to NULL. Improved - b_theme_lookup(). - -2002-09-04 03:57 daniel - - * blib/breceiver.c, test/test-module.c, test/modules/test.c, - test/modules/test.h: made the gtk program fully functional and - improved the test module a lot. - -2002-09-04 02:16 neo - - * blib/: breceiver.c, bsender.c: Use htons() / ntohs() where - appropriate. - -2002-09-04 01:50 neo - - * blib/bsender.c: Allow to call b_sender_send_frame() with NULL - data. - -2002-09-04 01:47 daniel - - * blib/breceiver.c: take care of network and host byte orders - -2002-09-04 01:45 neo - - * blib/bsender.c: Do host-to-network byteorder conversion in - BSender. - -2002-09-04 01:36 neo - - * test/Makefile.am: this should work with automake-1.4 as well - -2002-09-04 01:34 daniel - - * test/: Makefile.am, test-module.c: gtk, gtk, gtk... - -2002-09-04 01:24 neo - - * blib/bsender.c, blib/bsender.h, test/test-module.c, - test/test-sender.c: Reworked BSender API. - -2002-09-04 00:48 daniel - - * configure.in, test/Makefile.am, test/test-module.c: more gtk+ - stuff - -2002-09-04 00:26 neo - - * configure.in, blib/Makefile.am, blib/btheme.c: Added support for - the B_THEME_PATH environment variable. - -2002-09-03 23:17 daniel - - * test/test-module.c: GIOChannel stuff - -2002-09-03 23:16 neo - - * blib/btheme-parser.c, blib/btheme.c, blib/btheme.h, - data/blinkentheme.dtd, test/.cvsignore: Changed depth to channels - in BTheme. - -2002-09-03 22:58 daniel - - * test/test-module.c: eeek - -2002-09-03 22:40 daniel - - * configure.in, test/Makefile.am, test/test-module.c: added are - more complex test program to test the BModule environment. - -2002-09-03 22:39 neo - - * blib/btheme.c, blib/btheme.h, test/test-theme-parser.c: Replaced - b_themes_lookup() with the simpler b_theme_lookup(). - -2002-09-03 21:38 neo - - * Makefile.am, blib/breceiver.c, blib/breceiver.h, - test/test-receiver.c: Added callback_data to BReceiver. Made the - file descriptor private. - -2002-09-03 21:12 neo - - * blib/: bmovie-blm.c, bmovie-bml-parser.c, bmovie-gif-parser.c, - bmovie.h: Assure a minimum frame duration of 20ms. - -2002-09-03 19:26 neo - - * blib.pc.in, configure.in, blib/btheme.c, blib/btheme.h, - test/test-theme-parser.c: b_themes_lookup() now returns a list of - suitable themes. - -2002-09-03 19:04 daniel - - * blib/bmoduleinfo.c, test/modules/Makefile.am: lib cruft for - MacOSX - -2002-09-03 18:18 neo - - * blib.pc.in, configure.in, blib/bmodule.c, blib/bmodule.h, - blib/bmoduleinfo.c, blib/bmoduleinfo.h, blib/breceiver.c, - blib/breceiver.h, blib/bsender.c, blib/bsender.h, - blib/btheme-parser.c, blib/btheme.c, blib/btheme.h: Indentation - and header cleanup. Added a name to the BTheme struct. Added a - prototype for b_theme_lookup(). - -2002-09-03 17:25 neo - - * blib/btheme-parser.c: Warn if window coordinates are out of - range. - -2002-09-03 17:01 daniel - - * test/modules/: Makefile.am, symbols.txt: lib stuff - -2002-09-03 16:52 neo - - * ChangeLog, configure.in, blib/btheme-parser.c, blib/btheme.c, - blib/btheme.h, data/blinkentheme.dtd: Changed themes file format - and moved images to a seperate subdirectory. - -2002-09-03 16:41 daniel - - * blib/bmoduleinfo.c: - outcommented filename check for now to test - on MacOSX - one more check for failures on module loading - -2002-09-03 16:15 daniel - - * test/modules/Makefile.am: try this - -2002-09-03 16:12 daniel - - * test/modules/Makefile.am: try to make it compile on macosX - -2002-09-03 15:26 mitch - - * blib/bmoduleinfo.c: Moved g_module_supported() assertion to - b_module_info_new() and b_module_infos_scan_dir() because - checking this in the load() and unload() methods is a bit too - late :-) - -2002-09-03 14:39 neo - - * blib/bmovie-bml.c: Write encoding all lower-case. - -2002-09-03 14:11 neo - - * configure.in: Bumped version number to 0.5. - -2002-09-03 13:30 mitch - - * blib/: bmodule.c, bmodule.h, bmoduleinfo.c: more module stuff... - -2002-09-03 13:22 mitch - - * blib/bmodule.c: added g_return_if_fail() to all public BModule - functions. - -2002-09-03 13:19 mitch - - * blib/: bmodule.c, bmodule.h: added b_module_new() which creates - BModule subclass instances. - -2002-09-03 13:07 mitch - - * test/modules/: Makefile.am, test.c: Register the test module's - virtual functions. - -2002-09-03 12:57 mitch - - * blib/bmodule.c, blib/bmodule.h, blib/bmoduleinfo.c, - blib/bmoduleinfo.h, test/test-module-scanner.c, - test/modules/Makefile.am, test/modules/test.c, - test/modules/test.h: - implemented GTypeModule subclass - BModuleInfo which proxied the modules - install the test module - in prefix/lib/blib/test-modules so they actually become .so - files. - register the test module with it's GTypeModule. - load - "lib*.so" files only in the module loader. - -2002-09-03 03:44 neo - - * ChangeLog, NEWS: Made 0.4 release. - -2002-09-03 03:26 daniel - - * test/modules/test.c: more work on test programm - -2002-09-03 02:58 daniel - - * blib/bmodule.c, blib/bmodule.h, test/modules/test.c, - test/modules/test.h: filled the test program with code. - -2002-09-03 02:31 neo - - * test/modules/Makefile.am: fixed Makefile.am - -2002-09-03 02:26 neo - - * blib/bmovie.h: Removed effects from this header, they are - declared in bmovie-effects.h. - -2002-09-03 02:26 daniel - - * test/modules/Makefile.am: ... - -2002-09-03 02:22 daniel - - * test/modules/Makefile.am: argh. - -2002-09-03 02:20 daniel - - * configure.in, blib/bmodule.c, blib/bmodule.h, blib/bmoduleinfo.c, - test/Makefile.am, test/modules/.cvsignore, - test/modules/Makefile.am, test/modules/test.c, - test/modules/test.h: foo - -2002-09-03 02:07 neo - - * blib/bmovie-bml.c, data/bml.dtd, test/run-tests.sh: Changed the - the BML DTD once more. Adapted the implementation accordingly. - Validate the generated files when running 'make check'. - -2002-09-03 01:26 daniel - - * blib/bmodule.c: copyright - -2002-09-03 01:24 daniel - - * blib/: bmodule.c, bmodule.h, bmoduleinfo.c: first try to - implement our BModule API - -2002-09-03 00:42 neo - - * blib/bmovie-bml-parser.c: For backward compat with arcade-paint, - ignore loop flag if it has a value of "no". - -2002-09-03 00:36 neo - - * blib/bmovie-bml.c: Write loop and duration elements. - -2002-09-02 23:52 neo - - * blib/: bmovie-blm.c, bmovie-gif-parser.c, bmovie.c: Do the - reversal after loading in the BMovieClass. - -2002-09-02 23:20 daniel - - * test/test-module-scanner.c: coding style. - -2002-09-02 22:57 mitch - - * blib/Makefile.am, blib/blib.h, blib/bmodule.c, blib/bmodule.h, - blib/bmoduleinfo.c, blib/bmoduleinfo.h, blib/bsender.h, - test/test-module-scanner.c: - moved bmodule.* code to - bmoduleinfo.* - added the parent class of all games, BModule. - -2002-09-02 22:52 daniel - - * test/test-receiver.c: output data as %02x - -2002-09-02 20:32 neo - - * blib/bmovie-gif-parser.c: Report non-fatal errors to stderr. - -2002-09-02 16:49 neo - - * blib/bmovie-gif-parser.c: Set an error if no frames have been - found in the GIF. - -2002-08-31 22:51 daniel - - * test/test-receiver.c: use the function itsself as callback, not a - pointer to it. - -2002-08-31 22:42 daniel - - * test/test-receiver.c: again - -2002-08-31 22:40 daniel - - * test/test-receiver.c: typo - -2002-08-31 22:37 daniel - - * test/test-receiver.c: let test-receiver output the data received. - seems to work fine. - -2002-08-31 20:30 daniel - - * test/.cvsignore: ignore - -2002-08-31 20:29 daniel - - * test/test-receiver.c: "oops". - -2002-08-31 20:28 daniel - - * blib/: breceiver.c, breceiver.h: made receiver work. - -2002-08-31 17:21 daniel - - * blib/breceiver.c: more work on receiver code, but still not fully - functional. - -2002-08-31 16:51 daniel - - * blib/Makefile.am, blib/blib.h, blib/bmodule.c, blib/breceiver.c, - blib/breceiver.h, test/Makefile.am: - started to implement a generic BReceiver object - -2002-08-30 18:21 neo - - * configure.in, blib/btheme-parser.c, blib/btheme-parser.h, - blib/btheme.c, blib/btheme.h, test/test-theme-parser.c: Bumped - version number to 0.4. Changed BTheme API so it's more similar - to the BMovie API. - -2002-08-30 16:33 neo - - * ChangeLog, blib/beffects.c: Fixed vertical flip (did only work - for height == 3) and cleaned up effects code. - -2002-08-30 15:47 neo - - * blib/bmovie-bml-parser.c: Fixed a bug in the BML parser (and - sneaked the fix into the 0.3 tarball). - -2002-08-30 15:06 neo - - * ChangeLog: Made 0.3 release. - -2002-08-30 15:05 neo - - * NEWS, blib/Makefile.am, blib/beffects.c, blib/beffects.h, - blib/blib.h, blib/bmovie-effects.c, blib/bmovie-effects.h: - Improved effects ported from blccc. - -2002-08-30 13:52 neo - - * configure.in, blib/bmovie-effects.c: Bumped version number to 0.3 - and added bmovie-effects.c to CVS. - -2002-08-30 01:24 neo - - * blib/: Makefile.am, bmovie-blm.c, bmovie-bml-parser.c, - bmovie-gif-parser.c, bmovie.c, bmovie.h: Added b_movie_invert(). - -2002-08-30 00:56 neo - - * configure.in, blib/Makefile.am, blib/bmovie.c, blib/bmovie.h: - Added G_DISABLE_DEPRECATED to CFLAGS. Added b_movie_normalize(). - -2002-08-29 21:50 daniel - - * blib/bmodule.c, blib/bmodule.h, test/test-module-scanner.c: keep - track of opened modules with a static GSList. This is - intentionally not an GObjects since there must be only one list - of Modules anyway. - -2002-08-29 21:08 daniel - - * configure.in, blib/Makefile.am, blib/blib.h, blib/bmodule.c, - blib/bmodule.h, blib/bsender.c, test/.cvsignore, - test/Makefile.am, test/test-module-scanner.c: started framework - for BModules. - -2002-08-29 17:10 neo - - * README: fixed some typos - -2002-08-29 16:37 neo - - * ChangeLog: Made 0.2 release. - -2002-08-29 16:36 neo - - * NEWS, README: more words - -2002-08-29 16:23 neo - - * AUTHORS, README: words - -2002-08-29 15:49 daniel - - * test/: test-movie-parser.c, test-movie-writer.c: gcc doesn't like - instructions like 'x ?: y' - -2002-08-29 15:46 daniel - - * blib/bparser.c, test/test-movie-parser.c: 2 more #include - to shut up gcc - -2002-08-29 15:29 neo - - * blib/bmovie-bml-parser.c, blib/bmovie-bml.c, - blib/bmovie-gif-parser.c, blib/btheme-parser.c, blib/bwriter.c, - test/test-movie-writer.c: Added missing includes (to please - gcc-3.x) - -2002-08-29 15:11 neo - - * blib/bmovie-blm.c, blib/bmovie-bml.c, blib/bmovie-gif.c, - test/movies/alfred-26x20.bml: show your blib with pride - -2002-08-29 14:59 neo - - * test/test-movie-writer.c: foo - -2002-08-29 14:58 neo - - * blib/bmovie-blm.c, blib/bmovie-gif-parser.c, blib/bmovie-gif.c, - blib/bmovie.c, blib/bmovie.h, blib/gif-load.c, blib/gif-save.c, - test/run-tests.sh, test/test-movie-parser.c, - test/test-movie-writer.c: Fixed GIF frame delay (the external API - is milliseconds now). Added test code for b_movie_save_as(). - -2002-08-29 14:15 neo - - * blib/Makefile.am, blib/blib.h, blib/bmovie-blm.h, - blib/bmovie-bml.h, blib/bmovie-gif.h, test/run-tests.sh, - test/test-movie-parser.c, test/test-movie-writer.c: Added the - movie subclasses to the public header files. Added - test-movie-writer to the test suite. - -2002-08-29 13:58 neo - - * blib/: gif-load.c, gif-save.c: GIF routines use glib for memory - allocation. - -2002-08-29 13:54 neo - - * blib/bmovie-blm.c, blib/bmovie-bml-parser.c, - blib/bmovie-bml-parser.h, blib/bmovie-bml.c, - blib/bmovie-gif-parser.c, blib/bmovie-gif.c, blib/bmovie.c, - blib/bmovie.h, blib/gif-load.c, test/test-movie-parser.c, - test/test-movie-writer.c: Added loop to movie struct. Added a - lazy_load parameter to b_movie_new_from_file(). Misc fixes. - -2002-08-29 02:39 neo - - * blib/: Makefile.am, bmovie-blm.c, butils.c, butils.h: Removed - b_fgets(). - -2002-08-29 02:31 neo - - * blib/bmovie-gif.c, test/test-movie-writer.c: first draft of - b_movie_gif_save() - -2002-08-29 02:03 neo - - * configure.in: Removed micro version number and bumped version to - 0.2. We can always readd the micro version for the 1.0.0 - release. - -2002-08-29 01:53 neo - - * blib/bmovie-blm.c, blib/bmovie-bml-parser.c, blib/bmovie-bml.c, - blib/bwriter.c, blib/bwriter.h, test/.cvsignore, - test/Makefile.am, test/test-movie-writer.c: Added simple test for - saving movies. Finished implementations of b_movie_blm_save() - and b_movie_bml_save(). - -2002-08-29 01:15 neo - - * blib/: Makefile.am, bmovie-blm.c, bmovie-bml-parser.c, - bmovie-bml-parser.h, bmovie-bml.c, bmovie-gif-parser.c, - bmovie-gif-parser.h, bmovie-gif.c, bmovie.c, bmovie.h: Split some - files that started to grow to large. Implemented large parts of - b_movie_bml_save(). - -2002-08-29 00:10 neo - - * blib/: blib.h, bmovie-blm.c, bmovie-bml.c, bmovie-gif.c, - bwriter.c: misc fixes - -2002-08-28 21:37 neo - - * blib/Makefile.am, blib/bwriter.c, blib/bwriter.h, - test/test-movie-parser.c, test/test-theme-parser.c: Some utility - functions to write XML files. Yet unused. - -2002-08-28 20:42 neo - - * blib/: bmovie-bml.c, bmovie-gif.c: Only allow channels == 1 so - far. - -2002-08-28 20:37 neo - - * blib/: bmovie-blm.c, bmovie.c, bmovie.h: Also store frame - duration (not only start time). Implemented b_movie_blm_save(). - -2002-08-28 19:56 neo - - * blib/: bmovie-blm.c, bmovie-bml.c, bmovie-gif.c, bmovie.c, - bmovie.h: Set movie->maxval and movie->channels. - -2002-08-28 19:38 neo - - * blib/: bmovie-blm.c, bmovie-bml.c, bmovie-gif.c, bmovie.c, - bmovie.h: Added framework for b_movie_save() and - b_movie_save_as(). - -2002-08-28 19:14 neo - - * blib/bmovie-blm.c, blib/bmovie-gif.c, blib/bmovie.c, - test/test-movie-parser.c: Improved header parsing for BLM files. - Assure that a title is set for all movies. - -2002-08-28 18:34 neo - - * test/: run-tests.sh, test-movie-parser.c, test-theme-parser.c: - nicer tests - -2002-08-28 18:27 neo - - * blib/: bmovie-blm.c, bmovie-gif.c: Got rid of g_print(), use - GError instead. - -2002-08-28 18:14 neo - - * blib/bmovie-blm.c, blib/bmovie-bml.c, blib/bmovie.c, - blib/bparser.c, blib/bparser.h, blib/btheme-parser.c, - test/Makefile.am, test/run-tests.sh: Added encoding conversion to - b_parser_parse_io_channel() and use it for the BThemeParser. - Added a simple test suite. Some cleanup. - -2002-08-28 18:12 daniel - - * blib/bsender.c: removed debug output - -2002-08-28 17:12 neo - - * blib/: bmovie-bml.c, bparser.c, bparser.h: Added a convenience - function to parse a GIOChannel. Improved output on parse errors. - -2002-08-28 06:01 mitch - - * test/test-sender.c: send 5 packets. - -2002-08-28 05:57 daniel - - * blib/bsender.c: plugged a memleak - -2002-08-28 05:56 daniel - - * blib/: bsender.c, bsender.h: allocate the packet in set_size() - -2002-08-28 04:57 daniel - - * blib/bsender.c: fixed memory corruption - -2002-08-28 04:42 daniel - - * test/test-sender.c: keep test suite in sync - -2002-08-28 04:40 neo - - * blib/btheme-parser.c, test/test-theme-parser.c: Encoding - conversion for the theme-parser. - -2002-08-28 04:37 daniel - - * blib/: bsender.c, bsender.h: const! - -2002-08-28 04:33 daniel - - * blib/: bprotocol.h, bsender.c, bsender.h: bsender takes guchar* - now, not a BMovieFrame* - -2002-08-28 04:25 neo - - * data/bml.dtd: Added an optional version parameter with a fixed - value of "1.0". - -2002-08-28 04:18 neo - - * blib/bmovie-blm.c: Allocate frame data later so that load_all() - works even if load_info() wasn't called before. - -2002-08-28 03:58 neo - - * blib/bmovie-blm.c, blib/bmovie-bml.c, blib/bmovie-gif.c, - blib/bmovie.c, blib/bmovie.h, blib/gif-load.c, blib/gif-load.h, - test/test-movie-parser.c: Ported everything to GIOChannels. - -2002-08-28 02:59 mitch - - * blib/bprotocol.h: - #include - copyright header - - changed include guards according to filename change - -2002-08-28 02:56 daniel - - * blib/bsender.c: keep in sync with new bprotocol.h - -2002-08-28 01:50 daniel - - * blib/bsender.c, test/test-sender.c: use MAGIC_MCU_FRAME as magic - -2002-08-28 01:43 daniel - - * blib/blib.h, blib/bsender.c, blib/bsender.h, test/test-sender.c: - more work on sending code - -2002-08-28 01:02 daniel - - * blib/: Makefile.am, bsender.c: copied mcuprotocol.h from mcud and - renamed it to bprotocol.h - -2002-08-27 23:07 daniel - - * blib/bsender.c, blib/bsender.h, test/test-sender.c: added code - for sending packages added b_sender_set_size() - -2002-08-27 22:27 daniel - - * test/.cvsignore: argh. - -2002-08-27 22:25 daniel - - * blib/bsender.c: b_sender_remove_recipient - -2002-08-27 22:00 daniel - - * test/.cvsignore: ignore. - -2002-08-27 21:59 daniel - - * blib/blib.h, blib/bsender.c, blib/bsender.h, test/Makefile.am, - test/test-sender.c: - starting to fill BSender with life. added a small test programm. - -2002-08-27 21:30 neo - - * blib/bmovie.c: Refactoring. - -2002-08-27 21:13 neo - - * blib/: bmovie-blm.c, bmovie-bml.c, bmovie-gif.c, bmovie.c, - bmovie.h: Open the file in the BMovie base class. - -2002-08-27 21:09 daniel - - * blib/: Makefile.am, bsender.c, bsender.h: added skeleton for - BSender - -2002-08-27 20:45 mitch - - * blib/Makefile.am: bobject.h needs to be installed. - -2002-08-27 20:40 neo - - * blib/Makefile.am, blib/blib.h, blib/bmovie-blm.c, - blib/bmovie-bml.c, blib/bmovie-gif.c, blib/bmovie.c, - blib/bmovie.h, blib/bobject.c, blib/bobject.h, - blib/btheme-parser.c, blib/btheme.c, blib/btheme.h, - test/test-movie-parser.c, test/test-theme-parser.c: Added BObject - which adds filename and name to GObject. Derive BMovie and - BTheme from BObject. - -2002-08-27 13:32 neo - - * data/bml.dtd: Be less strict about the contents of the header - element. - -2002-08-27 01:56 tim - - * blib/bprotocol.h: renamed depth to channels - -2002-08-27 01:45 neo - - * blib/bmovie-blm.c, blib/bmovie-bml.c, blib/bmovie-gif.c, - blib/bmovie.c, blib/bmovie.h, test/test-movie-parser.c: Changed - BMovie API: b_movie_new() takes one filename and generates a name - from it. movie->name is the printable version and may be altered - using b_movie_set_name(). movie->filename is the filename used to - open the file (and should never be output). - -2002-08-27 00:51 neo - - * data/bml.dtd: Fixed a couple of issues with the DTD. Added - optional loop and duration elements to the header element. - -2002-08-27 00:25 neo - - * autogen.sh: Call 'libtoolize --version' instead of libtool. - -2002-08-26 21:34 neo - - * blib/: bmovie-blm.c, bmovie-bml.c, bmovie-gif.c, bmovie.c, - bmovie.h: Pass GError to the load functions. - -2002-08-26 17:37 neo - - * configure.in: Bumped version number to 0.1.0. Install into - $prefix/share/blib-1.0 and $prefix/include/blib-1.0. - -2002-08-21 18:18 neo - - * data/: Makefile.am, blinkentheme.dtd: Added a DTD for - blinkenthemes; subject to changes. - -2002-08-21 18:02 neo - - * data/bml.dtd: Specify default values for the "bits" and - "channels" attributes. - -2002-08-21 16:26 neo - - * blib/bmovie-blm.c, blib/bmovie-bml.c, blib/bmovie-gif.c, - blib/bmovie.c, blib/bmovie.h, blib/btheme.h, - test/test-movie-parser.c: Changed BMovie API to load all movies - and to behave similar to BTheme. - -2002-08-21 16:11 neo - - * blib/bparser.c: oops - -2002-08-21 15:40 neo - - * blib/bmovie.c, blib/btheme-parser.c, blib/btheme.c, - blib/btheme.h, test/test-theme-parser.c: Made BTheme a GObject. - -2002-08-21 14:32 neo - - * blib/blib.h, blib/bmovie-blm.c, blib/bmovie-blm.h, - blib/bmovie-bml.c, blib/bmovie-bml.h, blib/bmovie-gif.c, - blib/bmovie-gif.h, blib/bmovie.c, blib/bmovie.h, blib/bparser.c, - blib/bparser.h, blib/btheme-parser.c, blib/btheme-parser.h, - blib/btheme.c, blib/btheme.h, blib/butils.c, blib/butils.h, - blib/gif-load.c, blib/gif-load.h, blib/gif-save.c, - blib/gif-save.h, blib/gif-types.h, test/test-movie-parser.c, - test/test-theme-parser.c: Put everything under a GPL header. - Plugged one or two memleaks. - -2002-08-20 23:37 neo - - * blib/: bmovie-bml.c, btheme-parser.c: Ported the BML parser to - BParser. - -2002-08-20 23:34 mitch - - * blib/bmovie.c: A forgotten "else" in movie magic detection made - BLM unavailable. - -2002-08-20 23:25 neo - - * test/test-movie-parser.c: take width, height and maxval from the - command-line - -2002-08-20 23:18 mitch - - * test/Makefile.am: Added movies to SUBDIRS - -2002-08-20 23:17 mitch - - * configure.in, test/movies/.cvsignore, test/movies/Makefile.am, - test/movies/alfred-26x20.bml, test/movies/bushfire-test-16x3.gif, - test/movies/camel-18x8.blm: Added a test/movies/ subdirectory - containing a movie of each format we support. - -2002-08-20 23:09 neo - - * test/test-movie-parser.c: Call g_type_init(). - -2002-08-20 23:07 neo - - * test/: .cvsignore, Makefile.am, test-movie-parser.c: Added a very - simple movie test. Needs more work. - -2002-08-20 22:10 mitch - - * blib/: Makefile.am, blib.h, bmovie-blm.c, bmovie-blm.h, - bmovie-bml.c, bmovie-bml.h, bmovie-gif.c, bmovie-gif.h, bmovie.c, - bmovie.h: Added movie stuff from blccc with s/bl/b/g - -2002-08-20 22:06 neo - - * blib/: Makefile.am, blib.h, blutils.c, blutils.h, bml-parser.c, - bml-parser.h, bparser.c, bparser.h, btheme-parser.c, butils.c, - butils.h: blutils -> butils bml-parser -> bparser - -2002-08-20 21:27 neo - - * blib/: btheme-parser.c, btheme.h: Allow to specify offset and - size for images. - -2002-08-20 13:47 neo - - * blib/: bml-parser.c, bparser.c, btheme-parser.c, btheme.c: - improved error handling - -2002-08-20 13:14 neo - - * blib/blutils.c, blib/blutils.h, blib/bml-parser.c, - blib/bml-parser.h, blib/bparser.c, blib/bparser.h, blib/butils.c, - blib/butils.h, blib/btheme-parser.c, blib/btheme-parser.h, - blib/btheme.c, blib/btheme.h, test/test-theme-parser.c: copyleft - updates - -2002-08-20 12:49 neo - - * blib/btheme-parser.c, blib/btheme-parser.h, blib/btheme.c, - blib/btheme.h, test/test-theme-parser.c: Allow only one theme per - file. Added functionality to parse only the theme header. - Changed the test so it parses in two passes. - -2002-08-20 11:56 neo - - * blib/: bml-parser.c, bparser.c: strip trailing spaces from cdata - -2002-08-20 11:22 neo - - * blib/bml-parser.c, blib/bparser.c, blib/btheme-parser.c, - blib/btheme.h, test/test-theme-parser.c: Renamed width and height - to columns and rows. Added width and height attributes that - specify the screen size. Create absolute filenames. Strip - spaces from cdata (not yet perfect). - -2002-08-20 01:05 neo - - * blib/btheme-parser.c: first working version - -2002-08-20 00:56 neo - - * blib/btheme-parser.c, test/test-theme-parser.c: Better error - handling. - -2002-08-20 00:39 neo - - * Makefile.am, configure.in, blib/blib.h, blib/bml-parser.c, - blib/bparser.c, blib/btheme-parser.c, test/.cvsignore, - test/Makefile.am, test/test-theme-parser.c: Added a test app for - the theme-parser. - -2002-08-19 23:47 neo - - * blib/: btheme-parser.c, btheme.h: Added code to parse windows. - -2002-08-19 23:16 neo - - * configure.in, blib/btheme-parser.c, blib/btheme.c, blib/btheme.h, - data/Makefile.am: More work on the theme parser. - -2002-08-15 13:19 neo - - * configure.in, blib/Makefile.am, blib/bml-parser.c, - blib/bml-parser.h, blib/bparser.c, blib/bparser.h, - blib/btheme-parser.c, blib/btheme-parser.h, blib/btheme.c, - blib/btheme.h: Some unfinished code that might be useful one - day... - -2002-08-13 03:54 mitch - - * blib/bmovie-bml.c: Some minor fixes after testing it the first - time. - -2002-08-13 03:28 mitch - - * blib/bmovie-bml.c: Row parsing. ugly, untested, too stoned to - hack loops... - -2002-08-13 02:16 mitch - - * blib/bmovie-bml.c: Theoretically, it should now parse correct BML - files into a movie with empty frames of the correct size... - -2002-08-13 01:52 neo - - * Makefile.am, configure.in, data/.cvsignore, data/Makefile.am, - data/bml.dtd: Added a first draft of a DTD for BLM files. - -2002-08-13 01:49 mitch - - * blib/bmovie-bml.c: Require valid bits="foo" and channels="bar" - attributes to be passed and reject s with wrong lengths - (still untested). - -2002-08-13 01:15 mitch - - * blib/bmovie-bml.c: Accept only movies with correct attibute - values. - -2002-08-13 00:51 mitch - - * blib/: bmovie-blm.c, bmovie-bml.c, bmovie-bml.h, bmovie-gif.c, - bmovie.c, bmovie.h: Initial BML support: - - - added all metadata attributes from the BML
to BlMovie. - - initial blmovie-bml implementation which is totally untested - but should currectly parse the XML structure and metadata. - - changed BLM and GIF loaders to use movie->title instead of - movie->name. - -2002-08-13 00:50 neo - - * README, autogen.sh, blib.pc.in, configure.in, blib/Makefile.am: - Depend on gobject-2.0. - -2002-08-12 21:37 mitch - - * blib/: bmovie-blm.c, bmovie-gif.c, bmovie.c: Removed blutils.[ch] - and use the stuff from blib instead. - -2002-08-12 21:37 mitch - - * blib/: Makefile.am, blib.h, blutils.h, butils.h, gif-load.h, - gif-save.h, gif-types.h: - fixed header file installation - - include everything from blib/blib.h - added gif-types.h for the - GIF enums - -2002-08-12 21:05 mitch - - * blib/bmovie-gif.c: - depend on blib - removed gif-load.[ch] - use - GIF stuff from blib - -2002-08-12 21:04 mitch - - * configure.in: Removed trailing "/blib" from INCLUDEDIR - -2002-08-11 19:40 neo - - * blib/: .cvsignore, Makefile.am, blutils.c, blutils.h, butils.c, - butils.h, gif-load.c, gif-load.h, gif-save.c, gif-save.h: Added - GIF loading and saving code. Added bl_fgets(). - -2002-08-11 19:38 neo - - * .cvsignore, AUTHORS, ChangeLog, Makefile.am, NEWS, README, - autogen.sh, blib.pc.in, configure.in, blib/.cvsignore, - blib/Makefile.am, blib/blib.h: Added build framework. - -2002-07-26 19:12 tim - - * blib/bprotocol.h: moved protocol stuff to mcuprotocol.h - -2002-07-12 13:33 mitch - - * blib/: bmovie.c, bmovie.h: - added speed="factor" XML attribute - (0.1 <= value <= 10.0) - set TIME_CORRECTION magic in bltheater.c - to 0 - -2002-07-12 13:11 mitch - - * blib/bmovie-gif.c: Workaround for Björn's broken GIF writer: Set - frame duration to 100ms if specified as 0ms. - -2002-07-11 16:52 mitch - - * blib/bmovie.c: - added BlEffectScope enum which restricts effects - to either ALL, LEFT or RIGHT (works for all effects except - reverst and mirror). - changed example playlist accordingly. - -2002-07-09 14:50 neo - - * blib/: bmovie-blm.c, bmovie-gif.c, bmovie.c, bmovie.h: Added a - full filename to BlMovie. This is an absolute path build from the - basedir of the playlist and is in the filesystem encoding. - -2002-07-08 22:22 mitch - - * blib/: bmovie-blm.c, bmovie.c, bmovie.h: - added "maxval" - parameters / fields all over the place where needed. - multiply - BLM pixels with maxval on loading. - take maxval into account - when applying effects. - added a per BlPlaylistItem effect - object. - added effect parsing to the XML parser. - added - "reverse§" effect. - changed playlist.gondwana.xml to document - the effects' usage. - - (left the telnet-controllable effects object there because it's - still useful for live performance). - -2002-07-03 17:50 mitch - - * blib/bmovie-gif.c: Conditionalized debugging output with #ifdef - DEBUG_GIF - -2002-07-03 17:41 mitch - - * blib/: bmovie-blm.c, bmovie-blm.h, bmovie-gif.c, bmovie-gif.h, - bmovie.c, bmovie.h: Added support for loading GIF animations and - extended the protocol. - - - the default behaviour (without command line options) is exactly - as before. - added --protocol command line option, where '1' is - the original HDL 18x8 monochrome protocol, '2' is graysale with - arbitrary width and height (--width and --height options). - - added new magic 0xFEEDBEEF for protocol version 2. - create the - pong and isdn objects only for 18x8 matrices. - added - G_CONST_RETURN to all bl_*_get_type() functions. - made BlMovie - an abstract base class. - moved BLM code to blmovie-blm.[ch]. - - added blmovie-gif.[ch]. - added automatic file format detection - using magic header values. - added gif-load.[ch] from - blinkentools. - -2002-07-02 22:52 mitch - - * blib/bmovie.c: Chain up unconditionally in all finalize() - implementations. Removed G_FILE_TEST_EXISTS from all calls to - g_file_test() because G_FILE_TEST_IS_REGULAR already checks for - existance. - -2002-04-14 15:39 neo - - * blib/: bmovie.c, bmovie.h: eeek, blinkenlights was spelled wrong - all over the place - -2002-04-14 15:17 neo - - * blib/: bmovie.c, bmovie.h: Updated README, updated copyright, - unified spelling of Blinkenlights... - -2001-12-30 16:30 neo - - * blib/bmovie.c: Bumped version number to 0.9. Require latest - GLib. Cleaned up marshallers. Simplified Makefile. - -2001-11-05 02:03 neo - - * blib/bmovie.c: Bumped version number to 0.8. Require - glib-1.3.10. Added loop feature (indicated in the playlist by a - TAB followed by a number). Added Freudinnen feature (press *nnn# - while playing Pong to load movie on_demand/nnn.blm). Unload - movies after emitting "movie_finished", so movies aren't reloaded - when they are set again in the signal handler. - -2001-09-30 19:55 neo - - * blib/bmovie.c: Hopefully fixed the bug that caused the screen to - sometimes stay blank after Pong finished. Bumped version number - to 0.7. - -2001-09-28 20:35 neo - - * blib/bmovie.c: Implemented a bunch of commands, connect via - tcp/2323 and try: - - bye - closes the connection - help - shows a list of supported commands - list - list current playlist - reload - reload current playlist - status - show status info - - The default playlist is still 'default_pl'. This will change ... - -2001-09-26 16:50 neo - - * blib/bmovie.c: various misc fixes and changes - -2001-09-26 14:28 neo - - * blib/bmovie.c: it works :-) - - The old functionality is restored by using a default playlist. - I'll add more controls now. - -2001-09-26 00:18 neo - - * blib/bmovie.c: Moved fgets_line() to blutils.c and renamed it to - bl_fgets(). Added implementation for BlPlayList. - -2001-09-25 23:39 neo - - * blib/bmovie.c: Added framework of BlPlaylist object. - -2001-09-25 23:12 neo - - * blib/: bmovie.c, bmovie.h: changed movie load semantics in - preparaion of the upcoming new BlPlayList. - -2001-09-22 22:53 neo - - * blib/bmovie.c: Removed old usage of blccc.h and added framework - for BlCcc object. - -2001-09-21 18:47 neo - - * blib/: bmovie.c, bmovie.h: Added blccc2, the beginning of rewrite - of blccc the to the repository. - diff --git a/blib-1.1.7/INSTALL b/blib-1.1.7/INSTALL deleted file mode 100644 index 54caf7c..0000000 --- a/blib-1.1.7/INSTALL +++ /dev/null @@ -1,229 +0,0 @@ -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - These are generic installation instructions. - - 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 only 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. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. 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. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. 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. - -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=c89 CFLAGS=-O2 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 must use a version of `make' that -supports the `VPATH' variable, such as 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 `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have 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. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' 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. - - 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'. - -Optional Features -================= - - 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. - -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 `--target=TYPE' option 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 - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--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. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/blib-1.1.7/Makefile.am b/blib-1.1.7/Makefile.am deleted file mode 100644 index a804555..0000000 --- a/blib-1.1.7/Makefile.am +++ /dev/null @@ -1,44 +0,0 @@ -## Makefile.am for blib -## Process this file with automake to produce Makefile.in - -SUBDIRS = blib gfx modules test data docs - -if HAVE_AA -AA_PC = blib-aa.pc -endif - -if HAVE_DIRECTFB -DIRECTFB_PC = blib-directfb.pc -endif - -if HAVE_GTK -GTK_PC = blib-gtk.pc -endif - -if HAVE_PIXBUF -PIXBUF_PC = blib-pixbuf.pc -endif - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = \ - blib.pc \ - $(AA_PC) \ - $(DIRECTFB_PC) \ - $(GTK_PC) \ - $(PIXBUF_PC) - -EXTRA_DIST = \ - autogen.sh \ - debian/changelog \ - debian/control \ - debian/copyright \ - debian/dirs \ - debian/docs \ - debian/files \ - debian/libblib-dev.files \ - debian/libblib-directfb-dev.files\ - debian/libblib-directfb.files \ - debian/libblib-gtk-dev.files \ - debian/libblib-gtk.files \ - debian/libblib.files \ - debian/rules diff --git a/blib-1.1.7/Makefile.in b/blib-1.1.7/Makefile.in deleted file mode 100644 index 4508bd1..0000000 --- a/blib-1.1.7/Makefile.in +++ /dev/null @@ -1,676 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -SUBDIRS = blib gfx modules test data docs - -@HAVE_AA_TRUE@AA_PC = blib-aa.pc - -@HAVE_DIRECTFB_TRUE@DIRECTFB_PC = blib-directfb.pc - -@HAVE_GTK_TRUE@GTK_PC = blib-gtk.pc - -@HAVE_PIXBUF_TRUE@PIXBUF_PC = blib-pixbuf.pc - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = \ - blib.pc \ - $(AA_PC) \ - $(DIRECTFB_PC) \ - $(GTK_PC) \ - $(PIXBUF_PC) - - -EXTRA_DIST = \ - autogen.sh \ - debian/changelog \ - debian/control \ - debian/copyright \ - debian/dirs \ - debian/docs \ - debian/files \ - debian/libblib-dev.files \ - debian/libblib-directfb-dev.files\ - debian/libblib-directfb.files \ - debian/libblib-gtk-dev.files \ - debian/libblib-gtk.files \ - debian/libblib.files \ - debian/rules - -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = blib.pc blib-aa.pc blib-directfb.pc blib-gtk.pc \ - blib-pixbuf.pc -DIST_SOURCES = -DATA = $(pkgconfig_DATA) - - -RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ - ps-recursive install-info-recursive uninstall-info-recursive \ - all-recursive install-data-recursive install-exec-recursive \ - installdirs-recursive install-recursive uninstall-recursive \ - check-recursive installcheck-recursive -DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \ - COPYING ChangeLog INSTALL Makefile.am NEWS aclocal.m4 \ - blib-aa.pc.in blib-directfb.pc.in blib-gtk.pc.in \ - blib-pixbuf.pc.in blib.pc.in config.guess config.h.in \ - config.sub configure configure.in depcomp install-sh ltmain.sh \ - missing mkinstalldirs -DIST_SUBDIRS = $(SUBDIRS) -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: - -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) - -$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ - else :; fi - -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: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOHEADER) - touch $(srcdir)/config.h.in - -distclean-hdr: - -rm -f config.h stamp-h1 -blib.pc: $(top_builddir)/config.status blib.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -blib-aa.pc: $(top_builddir)/config.status blib-aa.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -blib-directfb.pc: $(top_builddir)/config.status blib-directfb.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -blib-gtk.pc: $(top_builddir)/config.status blib-gtk.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -blib-pixbuf.pc: $(top_builddir)/config.status blib-pixbuf.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -pkgconfigDATA_INSTALL = $(INSTALL_DATA) -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(pkgconfigdir) - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(pkgconfigDATA_INSTALL) $$d$$p $(DESTDIR)$(pkgconfigdir)/$$f"; \ - $(pkgconfigDATA_INSTALL) $$d$$p $(DESTDIR)$(pkgconfigdir)/$$f; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " rm -f $(DESTDIR)$(pkgconfigdir)/$$f"; \ - rm -f $(DESTDIR)$(pkgconfigdir)/$$f; \ - done - -# 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. -$(RECURSIVE_TARGETS): - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if (etags --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - else \ - include_option=--include; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = . -distdir = $(PACKAGE)-$(VERSION) - -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } - -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print - -distdir: $(DISTFILES) - $(am__remove_distdir) - mkdir $(distdir) - $(mkinstalldirs) $(distdir)/. $(distdir)/debian $(distdir)/docs/reference - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -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 $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__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 - $(am__remove_distdir) - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(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 ../.. && $(mkinstalldirs) "$$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-gzip \ - && rm -f $(distdir).tar.gz \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @echo "$(distdir).tar.gz is ready for distribution" | \ - sed 'h;s/./=/g;p;x;p;x' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { 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: check-recursive -all-am: Makefile $(DATA) config.h -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(pkgconfigdir) - -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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 $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: install-pkgconfigDATA - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -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: uninstall-info-am uninstall-pkgconfigDATA - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ - clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive dist dist-all dist-gzip distcheck distclean \ - distclean-generic distclean-hdr distclean-libtool \ - distclean-recursive distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am dvi-recursive info info-am \ - info-recursive install install-am install-data install-data-am \ - install-data-recursive install-exec install-exec-am \ - install-exec-recursive install-info install-info-am \ - install-info-recursive install-man install-pkgconfigDATA \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am \ - pdf-recursive ps ps-am ps-recursive tags tags-recursive \ - uninstall uninstall-am uninstall-info-am \ - uninstall-info-recursive uninstall-pkgconfigDATA \ - uninstall-recursive - -# 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: diff --git a/blib-1.1.7/NEWS b/blib-1.1.7/NEWS deleted file mode 100644 index 88bcc8b..0000000 --- a/blib-1.1.7/NEWS +++ /dev/null @@ -1,120 +0,0 @@ -blib 1.1.7 (development release) ----------- -- added BViewPixbuf, renders still frames -- let BViewGtk use BViewPixbuf -- added BProxyServer, implementing the server side of the - blinkenproxy protocol - -blib 1.1.6 (development release) ----------- -- optimizations to BViewGtk; makes blinkensim-gtk perform a lot better -- bug-fixes in the XML loader -- module fixes for multi-player - -blib 1.1.5 (development release) ----------- -- added Win32 port - -blib 1.1.4 (development release) ----------- -- added an aalib based BView -- improved some modules, most namely BCountdown -- bug-fixes in the GIF loader - -blib 1.1.3 (development release) ----------- -- bug-fixes in the GIF loader -- minor optimizations in the GTK+ view - -blib 1.1.2 (development release) ----------- -- added BProxyClient to be used from blinkensim - -blib 1.1.1 (development release) ----------- -- fixed use of network sockets on FreeBSD -- added files to build debian packages -- some minor bugfixes - -blib 1.1.0 (development release) ----------- - - added new modules BRetris, BSnake, Bxxo - - added hooks to allow implementation of blinkenproxy (in blinkentools) - - added compatibility with the old-style blinken network protocol - -blib 1.0.1 ----------- - - added new module BCountdown - - added a new large digits font - - fixed some bugs - -blib 1.0.0 ----------- - - added new modules BClock, BDropout, BMatrix, BPushLine and BText - - extended themes framework to allow to specify overlay images for - the different intensity values - - added b_movie_apply_colormap() - - documented the API - - fixed some bugs - -blib 0.9 --------- - - more changes to BModule, added describe and relax methods - - added module properties to allow customization of modules - - added value transform functions so we can deserialize property values - - allow to register filename properties - - added lots of new modules: BPacman, BPong, BBreakout, BProxy and BDebug - - improved the existing module implementations - - added a first draft of the multiplayer API (still subject to changes) - -blib 0.8 --------- - - improved BModule API - - teached the BModule base class how to run a module - - added new modules BQix and BFire - - improved BMoviePlayer - - added simple graphics functions to be used by modules - - added optimized blending functions to the GTK+ view - -blib 0.7 --------- - - added BTetris, the tetris game as a BModule - - added BMoviePlayer, a builtin BModule that plays movies - - cleaned up bprotocol header file - - improved BThemes, the file format is more flexible but still simpler - - optimized the GTK+ view so that it is actually useable - - moved themes into their own package: blinkenthemes - - misc bug fixes and enhancements - -blib 0.6 --------- - - BModule improvements, the API looks reasonably well now - - reworked BTheme once again - - added a preliminary BNF and Gondwana themes - - added BViewGtk and BViewDirectFB that implement views using BTheme - - improved documentation of the file formats - -blib 0.5 --------- - - added BSender - - fixed various bugs - - more BTheme improvements, started to add more themes - - improved BModule a lot, added a simple game for testing - - fixed various bugs - -blib 0.4 --------- - - added BReceiver - - added BModule, the parent class of all game modules - - cleaned up the BML DTD - - cleaned up BTheme API - - fixed various bugs - -blib 0.3 --------- - - added simple frame and movie effects - - added BModule framework that we'll need for the games API - -blib 0.2 --------- - - initial public release diff --git a/blib-1.1.7/README b/blib-1.1.7/README deleted file mode 100644 index 97ce4ba..0000000 --- a/blib-1.1.7/README +++ /dev/null @@ -1,102 +0,0 @@ -BLib - Library of useful things to hack the Blinkenlights ---------------------------------------------------------- - -This version (1.1.7) is a development release that adds a number of -new features that haven't seen much testing yet. Future 1.1.x releases -might change the newly added API. When the new API has settled and all -new features are tested, we will do a stable blib-1.2 release. - -This library contains some code that you will find useful if -you want to create any kind of software related to Blinkenlights. -If you have never heard about Blinkenlights, you want to check -http://www.blinkenlights.de/ first. - -There is code to read and write the old-style BLM movie format -as well as code to handle GIF files and the new Blinkenlights -Markup Language. Actually you don't have to care much since this -is all hidden in the BMovie object. - -Both sides of the Blinkenlights network protocol are implemented -so that you don't have to care about the details. - -The BModule object defines an API for games and the like. The -modules directory contains some BModule implementations. - -Last but not least there is code that reads Blinkenthemes. Based on -these themes, there are views for DirectFB, GTK+-2.0, GdkPixbuf and -aalib that you can use to implement graphical viewers and editors. -You will want to download the blinkenthemes package. - -We suggest you also download blinkentools and blinkensim. Both -packages make heavy use of BLib. - - -Requirements: -------------- - -BLib requires glib-2.0. You'll also need pkg-config to build BLib. -The configure script should detect whether you have DirectFB, GTK+-2.0 -and/or aalib installed and will skip building some parts of BLib if -you don't have these libraries. - -This software is known to compile and work on Linux, FreeBSD, MacOS X -and Win32 (using the MinGW environment; see http://www.mingw.org/). - - -Installation: -------------- - -BLib is configured, built and installed the usual way. Read the file -INSTALL or simply try to run - - ./configure; make; make install - -BLib will install a couple of pkg-config files into the prefix. These -are used by application to detect your blib installation. If BLib is -installed into a different prefix than the pkg-config utility, you -will want to adapt your PKG_CONFIG_PATH accordingly. See the man-page -for pkg-config(1). - - -Legal Disclaimer: ------------------ - - (c) Copyright 2002-2004 The Blinkenlights Crew All rights reversed. - -This library 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. - -The complete text of the license is found in the file COPYING. - -A list of authors is included with this package in the file AUTHORS. - - -The BFire module contains code taken from aafire which is distributed -with aalib. AAlib rules, nuff respect to the AA crew! - - -BQix was inspired by the qix hack from the xscreensaver distribution. -I haven't copied from the code but since I had a look at the -implementation, let's credit Jamie Zawinski as well. - - -BMatrix is based on the Matrix hack from the xscreensaver package which -comes with the following copyright notice: - - Permission to use, copy, modify, distribute, and sell this software and - its documentation for any purpose is hereby granted without fee, provided - that the above copyright notice appear in all copies and that both that - copyright notice and this permission notice appear in supporting - documentation. No representations are made about the suitability of this - software for any purpose. It is provided "as is" without express or - implied warranty. - - -The code to load and save GIF images contained in this package is -loosely based on the GIF plug-in for The GIMP which appears to have -had this copyright notices at one point in time: - - GIMP plug-in written by Adam D. Moss - Based around original GIF code by David Koblas. diff --git a/blib-1.1.7/aclocal.m4 b/blib-1.1.7/aclocal.m4 deleted file mode 100644 index c3cda3c..0000000 --- a/blib-1.1.7/aclocal.m4 +++ /dev/null @@ -1,7210 +0,0 @@ -# generated automatically by aclocal 1.7.9 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# Do all the work for Automake. -*- Autoconf -*- - -# 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. - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 10 - -AC_PREREQ([2.54]) - -# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow -# the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl - -# 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_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -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], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])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) -AM_MISSING_PROG(AMTAR, tar) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -# We need awk for the "check" target. 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([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -]) -]) - - -# 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_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $1 | $1:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) - -# Copyright 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - -# 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. -AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.7.9])]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# _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], -[AC_FOREACH([_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])]) - -# -# Check to make sure that the build environment is sane. -# - -# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 3 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# 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 ( - 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 - rm -f conftest.file - 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 - - 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)]) - -# -*- Autoconf -*- - - -# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 3 - -# 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 supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# AM_AUX_DIR_EXPAND - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# 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. - -# Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50]) - -AC_DEFUN([AM_AUX_DIR_EXPAND], [ -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# AM_PROG_INSTALL_STRIP - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# 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="\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# -*- Autoconf -*- -# Copyright (C) 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 1 - -# 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])]) - -# serial 5 -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - - -# 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", "GCJ", or "OBJC". -# 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 - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$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'. - 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 - 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 - : > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - 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 - ;; - none) break ;; - esac - # 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. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} 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 - # (even with -Werror). So we grep stderr for any message - # that says an option was ignored. - if grep 'ignoring option' 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, -[ --disable-dependency-tracking Speeds up one-time builds - --enable-dependency-tracking Do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -#serial 2 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _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. FIXME. This creates each `.P' file that we will -# 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" ac_aux_dir="$ac_aux_dir"]) -]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 5 - -AC_PREREQ(2.52) - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -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])]) - -# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- - -# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_PREREQ([2.52]) - -# serial 6 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - -# Add --enable-maintainer-mode option to configure. -# From Jim Meyering - -# Copyright 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - -# serial 47 AC_PROG_LIBTOOL -# Debian $Rev: 203 $ - - -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- -# If this macro is not defined by Autoconf, define it here. -m4_ifdef([AC_PROVIDE_IFELSE], - [], - [m4_define([AC_PROVIDE_IFELSE], - [m4_ifdef([AC_PROVIDE_$1], - [$2], [$3])])]) - - -# AC_PROG_LIBTOOL -# --------------- -AC_DEFUN([AC_PROG_LIBTOOL], -[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl -dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX -dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. - AC_PROVIDE_IFELSE([AC_PROG_CXX], - [AC_LIBTOOL_CXX], - [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX - ])]) -dnl And a similar setup for Fortran 77 support - AC_PROVIDE_IFELSE([AC_PROG_F77], - [AC_LIBTOOL_F77], - [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 -])]) - -dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. -dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run -dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. - AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [ifdef([AC_PROG_GCJ], - [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([A][M_PROG_GCJ], - [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([LT_AC_PROG_GCJ], - [define([LT_AC_PROG_GCJ], - defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) -])])# AC_PROG_LIBTOOL - - -# _AC_PROG_LIBTOOL -# ---------------- -AC_DEFUN([_AC_PROG_LIBTOOL], -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl -AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl -AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl -AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Prevent multiple expansion -define([AC_PROG_LIBTOOL], []) -])# _AC_PROG_LIBTOOL - - -# AC_LIBTOOL_SETUP -# ---------------- -AC_DEFUN([AC_LIBTOOL_SETUP], -[AC_PREREQ(2.50)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl -AC_REQUIRE([AC_PROG_NM])dnl - -AC_REQUIRE([AC_PROG_LN_S])dnl -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! -AC_REQUIRE([AC_OBJEXT])dnl -AC_REQUIRE([AC_EXEEXT])dnl -dnl - -AC_LIBTOOL_SYS_MAX_CMD_LEN -AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -AC_LIBTOOL_OBJDIR - -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -_LT_AC_PROG_ECHO_BACKSLASH - -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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -[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 avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -AC_CHECK_TOOL(AR, ar, false) -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - AC_PATH_MAGIC - fi - ;; -esac - -AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -enable_win32_dll=yes, enable_win32_dll=no) - -AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -AC_ARG_WITH([pic], - [AC_HELP_STRING([--with-pic], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -AC_LIBTOOL_LANG_C_CONFIG -_LT_AC_TAGCONFIG -])# AC_LIBTOOL_SETUP - - -# _LT_AC_SYS_COMPILER -# ------------------- -AC_DEFUN([_LT_AC_SYS_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_AC_SYS_COMPILER - - -# _LT_AC_SYS_LIBPATH_AIX -# ---------------------- -# 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. -AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], -[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 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 -])# _LT_AC_SYS_LIBPATH_AIX - - -# _LT_AC_SHELL_INIT(ARG) -# ---------------------- -AC_DEFUN([_LT_AC_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_AC_SHELL_INIT - - -# _LT_AC_PROG_ECHO_BACKSLASH -# -------------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], -[_LT_AC_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -echo=${ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(ECHO) -])])# _LT_AC_PROG_ECHO_BACKSLASH - - -# _LT_AC_LOCK -# ----------- -AC_DEFUN([_LT_AC_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && 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 which ABI we are using. - 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 which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; 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* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - 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-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|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-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - 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_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw* | *-*-pw32*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; - ]) -esac - -need_locks="$enable_libtool_lock" - -])# _LT_AC_LOCK - - -# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], -[AC_REQUIRE([LT_AC_PROG_SED]) -AC_CACHE_CHECK([$1], [$2], - [$2=no - ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # 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}? :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $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 - if test ! -s conftest.err; then - $2=yes - fi - fi - $rm conftest* -]) - -if test x"[$]$2" = xyes; then - ifelse([$5], , :, [$5]) -else - ifelse([$6], , :, [$6]) -fi -])# AC_LIBTOOL_COMPILER_OPTION - - -# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ------------------------------------------------------------ -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], -[AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler 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 - else - $2=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - ifelse([$4], , :, [$4]) -else - ifelse([$5], , :, [$5]) -fi -])# AC_LIBTOOL_LINKER_OPTION - - -# AC_LIBTOOL_SYS_MAX_CMD_LEN -# -------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], -[# 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*) - # 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; - ;; - - 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; - ;; - - *) - # 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"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - 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` - ;; - 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 -])# AC_LIBTOOL_SYS_MAX_CMD_LEN - - -# _LT_AC_CHECK_DLFCN -# -------------------- -AC_DEFUN([_LT_AC_CHECK_DLFCN], -[AC_CHECK_HEADERS(dlfcn.h)dnl -])# _LT_AC_CHECK_DLFCN - - -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ------------------------------------------------------------------ -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -}] -EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_unknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_AC_TRY_DLOPEN_SELF - - -# AC_LIBTOOL_DLOPEN_SELF -# ------------------- -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "x$enable_dlopen" != xyes; 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*) - 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 - ]) - ;; - - *) - 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="-dld"], - [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="-dld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - 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_AC_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 "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_AC_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 -])# AC_LIBTOOL_DLOPEN_SELF - - -# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) -# --------------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler -AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$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}? :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $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:__oline__: \$? = $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 - if test ! -s out/conftest.err; then - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . - $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 .. - rmdir conftest - $rm conftest* -]) -])# AC_LIBTOOL_PROG_CC_C_O - - -# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) -# ----------------------------------------- -# Check to see if we can do hard links to lock some files if needed -AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], -[AC_REQUIRE([_LT_AC_LOCK])dnl - -hard_links="nottested" -if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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 -])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS - - -# AC_LIBTOOL_OBJDIR -# ----------------- -AC_DEFUN([AC_LIBTOOL_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 -])# AC_LIBTOOL_OBJDIR - - -# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) -# ---------------------------------------------- -# Check hardcoding attributes. -AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_AC_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ - test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && - # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_AC_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_AC_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_AC_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH - - -# AC_LIBTOOL_SYS_LIB_STRIP -# ------------------------ -AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], -[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" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) -fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -])# AC_LIBTOOL_SYS_LIB_STRIP - - -# AC_LIBTOOL_SYS_DYNAMIC_LINKER -# ----------------------------- -# PORTME Fill in your ld.so characteristics -AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], -[AC_MSG_CHECKING([dynamic linker characteristics]) -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" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # 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. - 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 -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -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 - 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' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; 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 - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}' - else - # 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' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $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' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - 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*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - 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' - 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="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - 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 - ;; - 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 - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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}${versuffix}$shared_ext ${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)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - 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 - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-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='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - 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 - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -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 - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - 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' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - 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 - ;; - -# This must be Linux ELF. -linux*) - 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' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # 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 - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | 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' - ;; - -knetbsd*-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='GNU ld.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 - 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=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=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - 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 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -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" - ;; - -sco3.2v5*) - version_type=osf - 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 - ;; - -solaris*) - 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=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 "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - 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 - export_dynamic_flag_spec='${wl}-Blargedynsym' - 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 - 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 - ;; - -uts4*) - version_type=linux - 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 "$dynamic_linker" = no && can_build_shared=no -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER - - -# _LT_AC_TAGCONFIG -# ---------------- -AC_DEFUN([_LT_AC_TAGCONFIG], -[AC_ARG_WITH([tags], - [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], - [include additional configurations @<:@automatic@:>@])], - [tagnames="$withval"]) - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - AC_MSG_WARN([output file `$ofile' does not exist]) - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) - else - AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) - fi - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in - "") ;; - *) AC_MSG_ERROR([invalid tag name: $tagname]) - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - AC_MSG_ERROR([tag name \"$tagname\" already exists]) - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && test "X$CXX" != "Xno"; then - AC_LIBTOOL_LANG_CXX_CONFIG - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - AC_LIBTOOL_LANG_F77_CONFIG - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - AC_LIBTOOL_LANG_GCJ_CONFIG - else - tagname="" - fi - ;; - - RC) - AC_LIBTOOL_LANG_RC_CONFIG - ;; - - *) - AC_MSG_ERROR([Unsupported tag name: $tagname]) - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - AC_MSG_ERROR([unable to update list of available tagged configurations.]) - fi -fi -])# _LT_AC_TAGCONFIG - - -# AC_LIBTOOL_DLOPEN -# ----------------- -# enable checks for dlopen support -AC_DEFUN([AC_LIBTOOL_DLOPEN], - [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_DLOPEN - - -# AC_LIBTOOL_WIN32_DLL -# -------------------- -# declare package support for building win32 dll's -AC_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_WIN32_DLL - - -# AC_ENABLE_SHARED([DEFAULT]) -# --------------------------- -# implement the --enable-shared flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_SHARED], -[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([shared], - [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]AC_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=]AC_ENABLE_SHARED_DEFAULT) -])# AC_ENABLE_SHARED - - -# AC_DISABLE_SHARED -# ----------------- -#- set the default shared flag to --disable-shared -AC_DEFUN([AC_DISABLE_SHARED], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no) -])# AC_DISABLE_SHARED - - -# AC_ENABLE_STATIC([DEFAULT]) -# --------------------------- -# implement the --enable-static flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_STATIC], -[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([static], - [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]AC_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=]AC_ENABLE_STATIC_DEFAULT) -])# AC_ENABLE_STATIC - - -# AC_DISABLE_STATIC -# ----------------- -# set the default static flag to --disable-static -AC_DEFUN([AC_DISABLE_STATIC], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no) -])# AC_DISABLE_STATIC - - -# AC_ENABLE_FAST_INSTALL([DEFAULT]) -# --------------------------------- -# implement the --enable-fast-install flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_FAST_INSTALL], -[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([fast-install], - [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]AC_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=]AC_ENABLE_FAST_INSTALL_DEFAULT) -])# AC_ENABLE_FAST_INSTALL - - -# AC_DISABLE_FAST_INSTALL -# ----------------------- -# set the default to --disable-fast-install -AC_DEFUN([AC_DISABLE_FAST_INSTALL], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no) -])# AC_DISABLE_FAST_INSTALL - - -# AC_LIBTOOL_PICMODE([MODE]) -# -------------------------- -# implement the --with-pic flag -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -AC_DEFUN([AC_LIBTOOL_PICMODE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -pic_mode=ifelse($#,1,$1,default) -])# AC_LIBTOOL_PICMODE - - -# AC_PROG_EGREP -# ------------- -# This is predefined starting with Autoconf 2.54, so this conditional -# definition can be removed once we require Autoconf 2.54 or later. -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], -[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], - [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi]) - EGREP=$ac_cv_prog_egrep - AC_SUBST([EGREP]) -])]) - - -# AC_PATH_TOOL_PREFIX -# ------------------- -# find a file program which can recognise shared library -AC_DEFUN([AC_PATH_TOOL_PREFIX], -[AC_REQUIRE([AC_PROG_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="ifelse([$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 <&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 - -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 -])# AC_PATH_TOOL_PREFIX - - -# AC_PATH_MAGIC -# ------------- -# find a file program which can recognise a shared library -AC_DEFUN([AC_PATH_MAGIC], -[AC_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 - AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# AC_PATH_MAGIC - - -# AC_PROG_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([AC_PROG_LD], -[AC_ARG_WITH([gnu-ld], - [AC_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no]) -AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=ld -if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 GNU ld's 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 /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)/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 - ;; - -gnu*) - 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]) 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 - ;; - -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 Linux ELF. -linux*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | knetbsd*-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=unknown - ;; - -openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' - else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - 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 - ;; - esac - ;; - -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) -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 -])# AC_DEPLIBS_CHECK_METHOD - - -# AC_PROG_NM -# ---------- -# find the pathname to a BSD-compatible name lister -AC_DEFUN([AC_PROG_NM], -[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/${ac_tool_prefix}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 - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - 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" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi]) -NM="$lt_cv_path_NM" -])# AC_PROG_NM - - -# AC_CHECK_LIBM -# ------------- -# check for math library -AC_DEFUN([AC_CHECK_LIBM], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cygwin* | *-*-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_CHECK_LIBM - - -# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl convenience library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will -# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and -# top_srcdir appropriately in the Makefiles. -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_CONVENIENCE - - -# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl installable library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-install to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided and an installed libltdl is not found, it is -# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' -# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single -# quotes!). If your package is not flat and you're not using automake, -# define top_builddir and top_srcdir appropriately in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, lt_dlinit, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - LTDLINCL= - fi - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_INSTALLABLE - - -# AC_LIBTOOL_CXX -# -------------- -# enable support for C++ libraries -AC_DEFUN([AC_LIBTOOL_CXX], -[AC_REQUIRE([_LT_AC_LANG_CXX]) -])# AC_LIBTOOL_CXX - - -# _LT_AC_LANG_CXX -# --------------- -AC_DEFUN([_LT_AC_LANG_CXX], -[AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) -])# _LT_AC_LANG_CXX - - -# AC_LIBTOOL_F77 -# -------------- -# enable support for Fortran 77 libraries -AC_DEFUN([AC_LIBTOOL_F77], -[AC_REQUIRE([_LT_AC_LANG_F77]) -])# AC_LIBTOOL_F77 - - -# _LT_AC_LANG_F77 -# --------------- -AC_DEFUN([_LT_AC_LANG_F77], -[AC_REQUIRE([AC_PROG_F77]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) -])# _LT_AC_LANG_F77 - - -# AC_LIBTOOL_GCJ -# -------------- -# enable support for GCJ libraries -AC_DEFUN([AC_LIBTOOL_GCJ], -[AC_REQUIRE([_LT_AC_LANG_GCJ]) -])# AC_LIBTOOL_GCJ - - -# _LT_AC_LANG_GCJ -# --------------- -AC_DEFUN([_LT_AC_LANG_GCJ], -[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], - [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], - [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], - [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) -])# _LT_AC_LANG_GCJ - - -# AC_LIBTOOL_RC -# -------------- -# enable support for Windows resource files -AC_DEFUN([AC_LIBTOOL_RC], -[AC_REQUIRE([LT_AC_PROG_RC]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) -])# AC_LIBTOOL_RC - - -# AC_LIBTOOL_LANG_C_CONFIG -# ------------------------ -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) -AC_DEFUN([_LT_AC_LANG_C_CONFIG], -[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_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}\n' - -_LT_AC_SYS_COMPILER - -# -# Check for any special shared library compilation flags. -# -_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' - ;; - esac -fi -if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then - AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) - if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : - else - AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) - _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no - fi -fi - - -# -# Check to make sure the static flag actually works. -# -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), - $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) - - -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF($1) - -# Report which librarie types wil 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - darwin* | rhapsody*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - 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 "$enable_shared" = yes || enable_static=yes -AC_MSG_RESULT([$enable_static]) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_C_CONFIG - - -# AC_LIBTOOL_LANG_CXX_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) -AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], -[AC_LANG_PUSH(C++) -AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Dependencies to place before and after the object being linked: -_LT_AC_TAGVAR(predep_objects, $1)= -_LT_AC_TAGVAR(postdep_objects, $1)= -_LT_AC_TAGVAR(predeps, $1)= -_LT_AC_TAGVAR(postdeps, $1)= -_LT_AC_TAGVAR(compiler_lib_search_path, $1)= - -# Source file extension for C++ test sources. -ac_ext=cc - -# Object file extension for compiled C++ test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -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 - 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 - unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' -else - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - AC_PROG_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 "$with_gnu_ld" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_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_AC_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 "\-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_AC_TAGVAR(ld_shlibs, $1)=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aix4* | aix5*) - 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 - 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 - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - 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_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes; 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 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - else - # We have old collect2 - _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -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' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - dgux*) - case $cc_basename in - ec++) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - freebsd[12]*) - # C++ shared libraries reported to be fairly broken before switch to ELF - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - freebsd-elf*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - ;; - gnu*) - ;; - hpux9*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC) - _LT_AC_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 $output_objdir/$soname = $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) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - ;; - *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC) - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - _LT_AC_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; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - irix5* | irix6*) - case $cc_basename in - CC) - # SGI C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - linux*) - 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_AC_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_AC_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; echo $list' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' - _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc) - # Intel C++ - with_gnu_ld=yes - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_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' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - cxx) - # Compaq C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_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=`echo $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; echo $list' - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - m88k*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - mvs*) - case $cc_basename in - cxx) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_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::"' - ;; - osf3*) - 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_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=`echo $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; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_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 "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - _LT_AC_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 $objdir/so_locations -o $lib~ - $rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_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=`echo $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; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_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 "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - sco*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - lcc) - # Lucid - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_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} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The C++ compiler is used as linker so we must use $wl - # flag to pass the commands to the underlying system - # linker. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - # 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 -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx) - # Green Hills C++ Compiler - _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -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 \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_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 -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 \"\-L\"" - fi - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - fi - ;; - esac - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; -esac -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_AC_TAGVAR(GCC, $1)="$GXX" -_LT_AC_TAGVAR(LD, $1)="$LD" - -AC_LIBTOOL_POSTDEP_PREDEP($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -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 -])# AC_LIBTOOL_LANG_CXX_CONFIG - -# AC_LIBTOOL_POSTDEP_PREDEP([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. -AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ -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... -ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" -ifelse([$1], [], -[#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 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 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. - -# 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 s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG], -[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) - -# Is the compiler the GNU C compiler? -with_gcc=$_LT_AC_TAGVAR(GCC, $1) - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_[]_LT_AC_TAGVAR(LD, $1) - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) - -# Commands used to build and install a shared archive. -archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) -archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) -module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# 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 in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) - -# 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=$_LT_AC_TAGVAR(hardcode_automatic, $1) - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" - -# Set to yes if exported symbols are required. -always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) - -# The commands to list exported symbols. -export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) - -# Symbols that must always be exported. -include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) - -ifelse([$1],[], -[# ### END LIBTOOL CONFIG], -[# ### END LIBTOOL TAG CONFIG: $tagname]) - -__EOF__ - -ifelse([$1],[], [ - case $host_os in - aix3*) - cat <<\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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # 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" -]) -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi -])# AC_LIBTOOL_CONFIG - - -# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl - -_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - - AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI - - -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -# --------------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_NM]) -AC_REQUIRE([AC_OBJEXT]) -# 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]]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris* | sysv5*) - symcode='[[BDRT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# 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 - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext < $nlist) && 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 < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[[]] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_AC_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_save_LIBS" - CFLAGS="$lt_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 -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; 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 -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE - - -# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) -# --------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], -[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= - -AC_MSG_CHECKING([for $compiler option to produce PIC]) - ifelse([$1],[CXX],[ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - amigaos*) - # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # 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*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68) - # Green Hills C++ Compiler - # _LT_AC_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 - ;; - dgux*) - case $cc_basename in - ec++) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux*) - case $cc_basename in - KCC) - # KAI C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - icpc) - # Intel C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - cxx) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd* | knetbsd*-gnu) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC) - # Rational C++ 2.4.1 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx) - # Digital/Compaq C++ - _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - sco*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - *) - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc) - # Lucid - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - unixware*) - ;; - vxworks*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - hpux*) - # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - newsos6) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - ccc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' - ;; - - solaris*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sunos4*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - uts4*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then - AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), - [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" - ;; -esac -]) - - -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) -# ------------------------------------ -# See if the linker supports building shared libraries. -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], -[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -ifelse([$1],[CXX],[ - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - linux*) - _LT_AC_TAGVAR(link_all_deplibs, $1)=no - ;; - *) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -],[ - runpath_var= - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)= - _LT_AC_TAGVAR(archive_expsym_cmds, $1)= - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown - _LT_AC_TAGVAR(hardcode_automatic, $1)=no - _LT_AC_TAGVAR(module_cmds, $1)= - _LT_AC_TAGVAR(module_expsym_cmds, $1)= - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_AC_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_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" - # 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. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # 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 - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <&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. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sunos4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [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 - if test $supports_anon_versioning = yes; then - _LT_AC_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 -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds" - fi - _LT_AC_TAGVAR(link_all_deplibs, $1)=no - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix4* | aix5*) - 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 - 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 AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | 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 - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - 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 - - 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_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GCC" = yes; 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 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - else - # We have old collect2 - _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - # see comment about different semantics on the GNU ld section - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - bsdi4*) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # 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. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -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' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - dgux*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - freebsd1*) - _LT_AC_TAGVAR(ld_shlibs, $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_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - openbsd*) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_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~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - sco3.2v5*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_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' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4.2uw2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv5*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_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' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_AC_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_MSG_CHECKING([whether -lc should be explicitly linked in]) - $rm conftest* - printf "$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_AC_TAGVAR(lt_prog_compiler_wl, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) - then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) - ;; - esac - fi - ;; -esac -])# AC_LIBTOOL_PROG_LD_SHLIBS - - -# _LT_AC_FILE_LTDLL_C -# ------------------- -# Be careful that the start marker always follows a newline. -AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ -# /* ltdll.c starts here */ -# #define WIN32_LEAN_AND_MEAN -# #include -# #undef WIN32_LEAN_AND_MEAN -# #include -# -# #ifndef __CYGWIN__ -# # ifdef __CYGWIN32__ -# # define __CYGWIN__ __CYGWIN32__ -# # endif -# #endif -# -# #ifdef __cplusplus -# extern "C" { -# #endif -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); -# #ifdef __cplusplus -# } -# #endif -# -# #ifdef __CYGWIN__ -# #include -# DECLARE_CYGWIN_DLL( DllMain ); -# #endif -# HINSTANCE __hDllInstance_base; -# -# BOOL APIENTRY -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -# { -# __hDllInstance_base = hInst; -# return TRUE; -# } -# /* ltdll.c ends here */ -])# _LT_AC_FILE_LTDLL_C - - -# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) -# --------------------------------- -AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) - - -# old names -AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) -AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) -AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) - -# This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL]) - -AC_DEFUN([LT_AC_PROG_GCJ], -[AC_CHECK_TOOL(GCJ, gcj, no) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS) -]) - -AC_DEFUN([LT_AC_PROG_RC], -[AC_CHECK_TOOL(RC, windres, no) -]) - -# 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. # -# LT_AC_PROG_SED -# -------------- -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -AC_DEFUN([LT_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 -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 && break - 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 $lt_ac_count -gt 10 && 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_MSG_RESULT([$SED]) -]) - -# isc-posix.m4 serial 2 (gettext-0.11.2) -dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. - -# This test replaces the one in autoconf. -# Currently this macro should have the same name as the autoconf macro -# because gettext's gettext.m4 (distributed in the automake package) -# still uses it. Otherwise, the use in gettext.m4 makes autoheader -# give these diagnostics: -# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX -# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX - -undefine([AC_ISC_POSIX]) - -AC_DEFUN([AC_ISC_POSIX], - [ - dnl This test replaces the obsolescent AC_ISC_POSIX kludge. - AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) - ] -) - - -# Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# @defmac AC_PROG_CC_STDC -# @maindex PROG_CC_STDC -# @ovindex CC -# If the C compiler in not in ANSI C mode by default, try to add an option -# to output variable @code{CC} to make it so. This macro tries various -# options that select ANSI C on some system or another. It considers the -# compiler to be in ANSI C mode if it handles function prototypes correctly. -# -# If you use this macro, you should check after calling it whether the C -# compiler has been set to accept ANSI C; if not, the shell variable -# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source -# code in ANSI C, you can make an un-ANSIfied copy of it by using the -# program @code{ansi2knr}, which comes with Ghostscript. -# @end defmac - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_REQUIRE([AC_PROG_CC]) -AC_BEFORE([$0], [AC_C_INLINE]) -AC_BEFORE([$0], [AC_C_CONST]) -dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require -dnl a magic option to avoid problems with ANSI preprocessor commands -dnl like #elif. -dnl FIXME: can't do this because then AC_AIX won't work due to a -dnl circular dependency. -dnl AC_BEFORE([$0], [AC_PROG_CPP]) -AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C]) -AC_CACHE_VAL(am_cv_prog_cc_stdc, -[am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - AC_TRY_COMPILE( -[#include -#include -#include -#include -/* 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; -} -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; -], [ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -], -[am_cv_prog_cc_stdc="$ac_arg"; break]) -done -CC="$ac_save_CC" -]) -if test -z "$am_cv_prog_cc_stdc"; then - AC_MSG_RESULT([none needed]) -else - AC_MSG_RESULT([$am_cv_prog_cc_stdc]) -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac -]) - -AU_DEFUN([fp_PROG_CC_STDC], [AM_PROG_CC_STDC]) - -# Configure paths for GLIB -# Owen Taylor 1997-2001 - -dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) -dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or -dnl gthread is specified in MODULES, pass to pkg-config -dnl -AC_DEFUN(AM_PATH_GLIB_2_0, -[dnl -dnl Get the cflags and libraries from pkg-config -dnl -AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], - , enable_glibtest=yes) - - pkg_config_args=glib-2.0 - for module in . $4 - do - case "$module" in - gmodule) - pkg_config_args="$pkg_config_args gmodule-2.0" - ;; - gobject) - pkg_config_args="$pkg_config_args gobject-2.0" - ;; - gthread) - pkg_config_args="$pkg_config_args gthread-2.0" - ;; - esac - done - - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - - no_glib="" - - if test x$PKG_CONFIG != xno ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - : - else - echo *** pkg-config too old; version 0.7 or better required. - no_glib=yes - PKG_CONFIG=no - fi - else - no_glib=yes - fi - - min_glib_version=ifelse([$1], ,2.0.0,$1) - AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) - - if test x$PKG_CONFIG != xno ; then - ## don't try to run the test against uninstalled libtool libs - if $PKG_CONFIG --uninstalled $pkg_config_args; then - echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" - enable_glibtest=no - fi - - if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then - : - else - no_glib=yes - fi - fi - - if test x"$no_glib" = x ; then - GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` - GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` - GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` - - GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` - GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` - glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_glibtest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$GLIB_LIBS $LIBS" -dnl -dnl Now check if the installed GLIB is sufficiently new. (Also sanity -dnl checks the results of pkg-config to some extent) -dnl - rm -f conf.glibtest - AC_TRY_RUN([ -#include -#include -#include - -int -main () -{ - int major, minor, micro; - char *tmp_version; - - system ("touch conf.glibtest"); - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = g_strdup("$min_glib_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_glib_version"); - exit(1); - } - - if ((glib_major_version != $glib_config_major_version) || - (glib_minor_version != $glib_config_minor_version) || - (glib_micro_version != $glib_config_micro_version)) - { - printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", - $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, - glib_major_version, glib_minor_version, glib_micro_version); - printf ("*** was found! If pkg-config was correct, then it is best\n"); - printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); - printf("*** to point to the correct configuration files\n"); - } - else if ((glib_major_version != GLIB_MAJOR_VERSION) || - (glib_minor_version != GLIB_MINOR_VERSION) || - (glib_micro_version != GLIB_MICRO_VERSION)) - { - printf("*** GLIB header files (version %d.%d.%d) do not match\n", - GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); - printf("*** library (version %d.%d.%d)\n", - glib_major_version, glib_minor_version, glib_micro_version); - } - else - { - if ((glib_major_version > major) || - ((glib_major_version == major) && (glib_minor_version > minor)) || - ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", - glib_major_version, glib_minor_version, glib_micro_version); - printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); - printf("*** correct copy of pkg-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} -],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_glib" = x ; then - AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$PKG_CONFIG" = "no" ; then - echo "*** A new enough version of pkg-config was not found." - echo "*** See http://www.freedesktop.org/software/pkgconfig/" - else - if test -f conf.glibtest ; then - : - else - echo "*** Could not run GLIB test program, checking why..." - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$LIBS $GLIB_LIBS" - AC_TRY_LINK([ -#include -#include -], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding GLIB or finding the wrong" - echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means GLIB is incorrectly installed."]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - GLIB_CFLAGS="" - GLIB_LIBS="" - GLIB_GENMARSHAL="" - GOBJECT_QUERY="" - GLIB_MKENUMS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(GLIB_CFLAGS) - AC_SUBST(GLIB_LIBS) - AC_SUBST(GLIB_GENMARSHAL) - AC_SUBST(GOBJECT_QUERY) - AC_SUBST(GLIB_MKENUMS) - rm -f conf.glibtest -]) - - -dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) -dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page -dnl also defines GSTUFF_PKG_ERRORS on error -AC_DEFUN(PKG_CHECK_MODULES, [ - succeeded=no - - if test -z "$PKG_CONFIG"; then - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - AC_MSG_CHECKING(for $2) - - if $PKG_CONFIG --exists "$2" ; then - AC_MSG_RESULT(yes) - succeeded=yes - - AC_MSG_CHECKING($1_CFLAGS) - $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` - AC_MSG_RESULT($$1_CFLAGS) - - AC_MSG_CHECKING($1_LIBS) - $1_LIBS=`$PKG_CONFIG --libs "$2"` - AC_MSG_RESULT($$1_LIBS) - else - $1_CFLAGS="" - $1_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` - ifelse([$4], ,echo $$1_PKG_ERRORS,) - fi - - AC_SUBST($1_CFLAGS) - AC_SUBST($1_LIBS) - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - ifelse([$3], , :, [$3]) - else - ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) - fi -]) - - - diff --git a/blib-1.1.7/autogen.sh b/blib-1.1.7/autogen.sh deleted file mode 100755 index df06734..0000000 --- a/blib-1.1.7/autogen.sh +++ /dev/null @@ -1,159 +0,0 @@ -#!/bin/sh - -# This script does all the magic calls to automake/autoconf and -# friends that are needed to configure a cvs checkout. You need a -# couple of extra development tools to run this script successfully. -# -# If you are compiling from a released tarball you don't need these -# tools and you shouldn't use this script. Just call ./configure -# directly. - - -PROJECT="blib" -TEST_TYPE=-f -FILE=blib/blib.h - -LIBTOOL_REQUIRED_VERSION=1.3.4 -AUTOCONF_REQUIRED_VERSION=2.13 -AUTOMAKE_REQUIRED_VERSION=1.4 - - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. -ORIGDIR=`pwd` -cd $srcdir - - -check_version () -{ - if expr $1 \>= $2 > /dev/null; then - echo "yes (version $1)" - else - echo "Too old (found version $1)!" - DIE=1 - fi -} - -echo -echo "I am testing that you have the required versions of libtool, autoconf," -echo "and automake." -echo - -DIE=0 - - -# check if libtool is called libtool or glibtool for Mac OS X compatibility - -if (libtoolize --version) < /dev/null > /dev/null 2>&1; then - LIBTOOLIZE=libtoolize -else - if (glibtoolize --version) < /dev/null > /dev/null 2>&1; then - LIBTOOLIZE=glibtoolize - fi -fi - -echo -n "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... " -if ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then - VER=`$LIBTOOLIZE --version \ - | grep libtool | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $LIBTOOL_REQUIRED_VERSION -else - echo - echo " You must have libtool installed to compile $PROJECT." - echo " Install the appropriate package for your distribution," - echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1; -fi - -echo -n "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... " -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - VER=`autoconf --version \ - | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $AUTOCONF_REQUIRED_VERSION -else - echo - echo " You must have autoconf installed to compile $PROJECT." - echo " Download the appropriate package for your distribution," - echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1; -fi - -echo -n "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... " -if (automake --version) < /dev/null > /dev/null 2>&1; then - VER=`automake --version \ - | grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $AUTOMAKE_REQUIRED_VERSION -else - echo - echo " You must have automake installed to compile $PROJECT." - echo " Get ftp://ftp.cygnus.com/pub/home/tromey/automake-1.4p1.tar.gz" - echo " (or a newer version if it is available)" - DIE=1 -fi - -if test "$DIE" -eq 1; then - echo - echo "Please install/upgrade the missing tools and call me again." - echo - exit 1 -fi - - -test $TEST_TYPE $FILE || { - echo - echo "You must run this script in the top-level $PROJECT directory." - echo - exit 1 -} - - -if test -z "$*"; then - echo - echo "I am going to run ./configure with no arguments - if you wish " - echo "to pass any to it, please specify them on the $0 command line." - echo -fi - - -case $CC in - *xlc | *xlc\ * | *lcc | *lcc\ *) - am_opt=--include-deps - ;; -esac - -if test -z "$ACLOCAL_FLAGS"; then - - acdir=`aclocal --print-ac-dir` - m4list="glib-2.0.m4" - - for file in $m4list - do - if [ ! -f "$acdir/$file" ]; then - echo - echo "WARNING: aclocal's directory is $acdir, but..." - echo " no file $acdir/$file" - echo " You may see fatal macro warnings below." - echo " If these files are installed in /some/dir, set the ACLOCAL_FLAGS " - echo " environment variable to \"-I /some/dir\", or install" - echo " $acdir/$file." - echo - fi - done -fi - -aclocal $ACLOCAL_FLAGS - -# optionally feature autoheader -(autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader - -automake --add-missing $am_opt -autoconf - -$LIBTOOLIZE --copy --force - -cd $ORIGDIR - -$srcdir/configure --enable-maintainer-mode "$@" - -echo -echo "Now type 'make' to compile $PROJECT." diff --git a/blib-1.1.7/blib-aa.pc.in b/blib-1.1.7/blib-aa.pc.in deleted file mode 100644 index 1409e6b..0000000 --- a/blib-1.1.7/blib-aa.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: blib-aa -Description: Library to display the Blinkenlights using AA-lib -Version: @VERSION@ -Requires: blib = @VERSION@ -Libs: -L${libdir} -lb-aa @AA_LIBS@ -Cflags: -I@INCLUDEDIR@ diff --git a/blib-1.1.7/blib-directfb.pc.in b/blib-1.1.7/blib-directfb.pc.in deleted file mode 100644 index 0921735..0000000 --- a/blib-1.1.7/blib-directfb.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: blib-directfb -Description: Library to display the Blinkenlights on DirectFB -Version: @VERSION@ -Requires: blib = @VERSION@, directfb >= 0.9.11 -Libs: -L${libdir} -lb-directfb -Cflags: -I@INCLUDEDIR@ diff --git a/blib-1.1.7/blib-gtk.pc.in b/blib-1.1.7/blib-gtk.pc.in deleted file mode 100644 index 691b1b2..0000000 --- a/blib-1.1.7/blib-gtk.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: blib-gtk -Description: Library to display the Blinkenlights on GTK+ -Version: @VERSION@ -Requires: blib-pixbuf = @VERSION@, gtk+-2.0 >= 2.0.3 -Libs: -L${libdir} -lb-gtk -Cflags: -I@INCLUDEDIR@ diff --git a/blib-1.1.7/blib-pixbuf.pc.in b/blib-1.1.7/blib-pixbuf.pc.in deleted file mode 100644 index 21648fe..0000000 --- a/blib-1.1.7/blib-pixbuf.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: blib-pixbuf -Description: Library to render the Blinkenlights on a GdkPixbuf -Version: @VERSION@ -Requires: blib = @VERSION@, gdk-pixbuf-2.0 >= 2.0.0 -Libs: -L${libdir} -lb-pixbuf -Cflags: -I@INCLUDEDIR@ diff --git a/blib-1.1.7/blib.pc.in b/blib-1.1.7/blib.pc.in deleted file mode 100644 index f509b49..0000000 --- a/blib-1.1.7/blib.pc.in +++ /dev/null @@ -1,14 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ -datadir=@DATADIR@ -modulepath=@MODULEPATH@ -themepath=@THEMEPATH@ - -Name: blib -Description: Library of useful things to hack the Blinkenlights -Version: @VERSION@ -Requires: gobject-2.0 >= 2.0.1 -Libs: -L${libdir} -lb @WIN32_LIBS@ -Cflags: -I@INCLUDEDIR@ @WIN32_CFLAGS@ diff --git a/blib-1.1.7/blib/Makefile.am b/blib-1.1.7/blib/Makefile.am deleted file mode 100644 index 8bacfa2..0000000 --- a/blib-1.1.7/blib/Makefile.am +++ /dev/null @@ -1,127 +0,0 @@ -## Makefile.am for blib/blib -## Process this file with automake to produce Makefile.in - -AM_CPPFLAGS = \ - $(CFLAGS) \ - -DG_DISABLE_DEPRECATED \ - -DTHEMEPATH=\"$(THEMEPATH)\" \ - -DMODULEPATH=\"$(MODULEPATH)\" - -INCLUDES = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ - -lib_LTLIBRARIES = libb.la - -libb_la_includedir = $(INCLUDEDIR)/blib - -libb_gif_public_headers = \ - gif-load.h \ - gif-save.h \ - gif-types.h - -libb_gif_sources = \ - gif-load.c \ - gif-save.c - -libb_la_include_HEADERS = \ - blib.h \ - btypes.h \ - beffects.h \ - bmovie.h \ - bmovie-blm.h \ - bmovie-bml.h \ - bmovie-gif.h \ - bmovie-effects.h \ - bobject.h \ - bparams.h \ - bpacket.h \ - bparser.h \ - btheme.h \ - bthemes.h \ - bproxyclient.h \ - bproxyserver.h \ - breceiver.h \ - bsender.h \ - bsocket.h \ - butils.h \ - bwriter.h \ - bprotocol.h \ - bmodule.h \ - bmodule-internal.h \ - bmodule-utils.h \ - bmoduleinfo.h \ - bmovieplayer.h \ - $(libb_gif_public_headers) - -libb_la_sources = \ - blib.c \ - beffects.c \ - bmodule.c \ - bmodule-utils.c \ - bmoduleinfo.c \ - bmovieplayer.c \ - bmovie.c \ - bmovie-blm.c \ - bmovie-bml.c \ - bmovie-bml-parser.c \ - bmovie-bml-parser.h \ - bmovie-gif.c \ - bmovie-gif-parser.c \ - bmovie-gif-parser.h \ - bmovie-effects.c \ - bobject.c \ - bpacket.c \ - bparams.c \ - bparser.c \ - bproxyclient.c \ - bproxyserver.c \ - breceiver.c \ - bsender.c \ - bsocket.c \ - btheme.c \ - bthemes.c \ - btheme-parser.c \ - btheme-parser.h \ - btypes.c \ - butils.c \ - bwriter.c \ - $(libb_gif_sources) - -libb_la_built_sources = \ - bmarshal.c \ - bmarshal.h - -libb_la_extra_sources = \ - bmarshal.list - -libb_la_SOURCES = $(libb_la_built_sources) $(libb_la_sources) - - -libb_la_LDFLAGS = \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -export-dynamic - -libb_la_LIBADD = @GLIB_LIBS@ @WIN32_LIBS@ - - -EXTRA_DIST = $(libb_la_extra_sources) - - -# -# rules to generate built sources -# -# setup autogeneration dependencies -gen_sources = xgen-bmh xgen-bmc -CLEANFILES = $(gen_sources) - -$(srcdir)/bmarshal.h: $(srcdir)/bmarshal.list - $(GLIB_GENMARSHAL) --prefix=b_marshal $(srcdir)/bmarshal.list --header >> xgen-bmh \ - && (cmp -s xgen-bmh $(@F) || cp xgen-bmh $(@F)) \ - && rm -f xgen-bmh xgen-bmh~ - -$(srcdir)/bmarshal.c: $(srcdir)/bmarshal.h - echo "#include \"bmarshal.h\"" >> xgen-bmc \ - && $(GLIB_GENMARSHAL) --prefix=b_marshal $(srcdir)/bmarshal.list --body >> xgen-bmc \ - && cp xgen-bmc $(@F) \ - && rm -f xgen-bmc xgen-bmc~ diff --git a/blib-1.1.7/blib/Makefile.in b/blib-1.1.7/blib/Makefile.in deleted file mode 100644 index e2e9fc9..0000000 --- a/blib-1.1.7/blib/Makefile.in +++ /dev/null @@ -1,702 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -AM_CPPFLAGS = \ - $(CFLAGS) \ - -DG_DISABLE_DEPRECATED \ - -DTHEMEPATH=\"$(THEMEPATH)\" \ - -DMODULEPATH=\"$(MODULEPATH)\" - - -INCLUDES = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ - - -lib_LTLIBRARIES = libb.la - -libb_la_includedir = $(INCLUDEDIR)/blib - -libb_gif_public_headers = \ - gif-load.h \ - gif-save.h \ - gif-types.h - - -libb_gif_sources = \ - gif-load.c \ - gif-save.c - - -libb_la_include_HEADERS = \ - blib.h \ - btypes.h \ - beffects.h \ - bmovie.h \ - bmovie-blm.h \ - bmovie-bml.h \ - bmovie-gif.h \ - bmovie-effects.h \ - bobject.h \ - bparams.h \ - bpacket.h \ - bparser.h \ - btheme.h \ - bthemes.h \ - bproxyclient.h \ - bproxyserver.h \ - breceiver.h \ - bsender.h \ - bsocket.h \ - butils.h \ - bwriter.h \ - bprotocol.h \ - bmodule.h \ - bmodule-internal.h \ - bmodule-utils.h \ - bmoduleinfo.h \ - bmovieplayer.h \ - $(libb_gif_public_headers) - - -libb_la_sources = \ - blib.c \ - beffects.c \ - bmodule.c \ - bmodule-utils.c \ - bmoduleinfo.c \ - bmovieplayer.c \ - bmovie.c \ - bmovie-blm.c \ - bmovie-bml.c \ - bmovie-bml-parser.c \ - bmovie-bml-parser.h \ - bmovie-gif.c \ - bmovie-gif-parser.c \ - bmovie-gif-parser.h \ - bmovie-effects.c \ - bobject.c \ - bpacket.c \ - bparams.c \ - bparser.c \ - bproxyclient.c \ - bproxyserver.c \ - breceiver.c \ - bsender.c \ - bsocket.c \ - btheme.c \ - bthemes.c \ - btheme-parser.c \ - btheme-parser.h \ - btypes.c \ - butils.c \ - bwriter.c \ - $(libb_gif_sources) - - -libb_la_built_sources = \ - bmarshal.c \ - bmarshal.h - - -libb_la_extra_sources = \ - bmarshal.list - - -libb_la_SOURCES = $(libb_la_built_sources) $(libb_la_sources) - -libb_la_LDFLAGS = \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -export-dynamic - - -libb_la_LIBADD = @GLIB_LIBS@ @WIN32_LIBS@ - -EXTRA_DIST = $(libb_la_extra_sources) - -# -# rules to generate built sources -# -# setup autogeneration dependencies -gen_sources = xgen-bmh xgen-bmc -CLEANFILES = $(gen_sources) -subdir = blib -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(lib_LTLIBRARIES) - -libb_la_DEPENDENCIES = -am__objects_1 = bmarshal.lo -am__objects_2 = gif-load.lo gif-save.lo -am__objects_3 = blib.lo beffects.lo bmodule.lo bmodule-utils.lo \ - bmoduleinfo.lo bmovieplayer.lo bmovie.lo bmovie-blm.lo \ - bmovie-bml.lo bmovie-bml-parser.lo bmovie-gif.lo \ - bmovie-gif-parser.lo bmovie-effects.lo bobject.lo bpacket.lo \ - bparams.lo bparser.lo bproxyclient.lo bproxyserver.lo \ - breceiver.lo bsender.lo bsocket.lo btheme.lo bthemes.lo \ - btheme-parser.lo btypes.lo butils.lo bwriter.lo \ - $(am__objects_2) -am_libb_la_OBJECTS = $(am__objects_1) $(am__objects_3) -libb_la_OBJECTS = $(am_libb_la_OBJECTS) - -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/beffects.Plo ./$(DEPDIR)/blib.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmarshal.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmodule-utils.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmodule.Plo ./$(DEPDIR)/bmoduleinfo.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmovie-blm.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmovie-bml-parser.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmovie-bml.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmovie-effects.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmovie-gif-parser.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmovie-gif.Plo ./$(DEPDIR)/bmovie.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmovieplayer.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bobject.Plo ./$(DEPDIR)/bpacket.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bparams.Plo ./$(DEPDIR)/bparser.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bproxyclient.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bproxyserver.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/breceiver.Plo ./$(DEPDIR)/bsender.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bsocket.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/btheme-parser.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/btheme.Plo ./$(DEPDIR)/bthemes.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/btypes.Plo ./$(DEPDIR)/butils.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bwriter.Plo ./$(DEPDIR)/gif-load.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/gif-save.Plo -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ - $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DIST_SOURCES = $(libb_la_SOURCES) -HEADERS = $(libb_la_include_HEADERS) - -DIST_COMMON = $(libb_la_include_HEADERS) $(srcdir)/Makefile.in \ - Makefile.am -SOURCES = $(libb_la_SOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu blib/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -libLTLIBRARIES_INSTALL = $(INSTALL) -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libdir) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ - $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ - else :; fi; \ - done - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ - $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" = "$$p" && dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libb.la: $(libb_la_OBJECTS) $(libb_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libb_la_LDFLAGS) $(libb_la_OBJECTS) $(libb_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/beffects.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blib.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmarshal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmodule-utils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmodule.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmoduleinfo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie-blm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie-bml-parser.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie-bml.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie-effects.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie-gif-parser.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie-gif.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovieplayer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bobject.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpacket.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bparams.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bparser.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bproxyclient.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bproxyserver.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/breceiver.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsender.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsocket.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btheme-parser.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btheme.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bthemes.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btypes.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/butils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bwriter.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif-load.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif-save.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` - -.c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -libb_la_includeHEADERS_INSTALL = $(INSTALL_HEADER) -install-libb_la_includeHEADERS: $(libb_la_include_HEADERS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libb_la_includedir) - @list='$(libb_la_include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(libb_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_la_includedir)/$$f"; \ - $(libb_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_la_includedir)/$$f; \ - done - -uninstall-libb_la_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libb_la_include_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " rm -f $(DESTDIR)$(libb_la_includedir)/$$f"; \ - rm -f $(DESTDIR)$(libb_la_includedir)/$$f; \ - done - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(LTLIBRARIES) $(HEADERS) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(libb_la_includedir) -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: install-libb_la_includeHEADERS - -install-exec-am: install-libLTLIBRARIES - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -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-info-am uninstall-libLTLIBRARIES \ - uninstall-libb_la_includeHEADERS - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am \ - install-libLTLIBRARIES install-libb_la_includeHEADERS \ - install-man 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 uninstall \ - uninstall-am uninstall-info-am uninstall-libLTLIBRARIES \ - uninstall-libb_la_includeHEADERS - - -$(srcdir)/bmarshal.h: $(srcdir)/bmarshal.list - $(GLIB_GENMARSHAL) --prefix=b_marshal $(srcdir)/bmarshal.list --header >> xgen-bmh \ - && (cmp -s xgen-bmh $(@F) || cp xgen-bmh $(@F)) \ - && rm -f xgen-bmh xgen-bmh~ - -$(srcdir)/bmarshal.c: $(srcdir)/bmarshal.h - echo "#include \"bmarshal.h\"" >> xgen-bmc \ - && $(GLIB_GENMARSHAL) --prefix=b_marshal $(srcdir)/bmarshal.list --body >> xgen-bmc \ - && cp xgen-bmc $(@F) \ - && rm -f xgen-bmc xgen-bmc~ -# 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: diff --git a/blib-1.1.7/blib/beffects.c b/blib-1.1.7/blib/beffects.c deleted file mode 100644 index 2df18eb..0000000 --- a/blib-1.1.7/blib/beffects.c +++ /dev/null @@ -1,214 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include - -#include "btypes.h" -#include "beffects.h" - - -static void b_effects_init (BEffects *effects); - - -GType -b_effects_get_type (void) -{ - static GType effects_type = 0; - - if (!effects_type) - { - static const GTypeInfo effects_info = - { - sizeof (BEffectsClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - NULL, /* class_init */ - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BEffects), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_effects_init, - }; - - effects_type = g_type_register_static (G_TYPE_OBJECT, - "BEffects", &effects_info, 0); - } - - return effects_type; -} - -static void -b_effects_init (BEffects *effects) -{ - effects->invert = B_EFFECT_SCOPE_NONE; - effects->vflip = B_EFFECT_SCOPE_NONE; - effects->hflip = B_EFFECT_SCOPE_NONE; - effects->lmirror = B_EFFECT_SCOPE_NONE; - effects->rmirror = B_EFFECT_SCOPE_NONE; -} - -/** - * b_effects_new: - * - * Creates a new #BEffects object with default values. - * - * Return value: the newly allocate #BEffects object. - **/ -BEffects * -b_effects_new (void) -{ - return g_object_new (B_TYPE_EFFECTS, NULL); -} - -/** - * b_effects_apply: - * @effects: a #BEffects object - * @frame_data: data to apply the effects on - * @width: width of the @frame_data buffer - * @height: height of the @frame_data buffer - * @channels: number of channels in the @frame_data buffer - * @maxval: the maximum value for the @frame_data buffer - * - * This function applies the effects described in the @effects object - * to a single frame. - **/ -void -b_effects_apply (BEffects *effects, - guchar *frame_data, - gint width, - gint height, - gint channels, - gint maxval) -{ - BEffectScope scope; - gint start_x; - gint end_x; - gint rowstride; - - g_return_if_fail (B_IS_EFFECTS (effects)); - g_return_if_fail (frame_data != NULL); - g_return_if_fail (channels == 1); - - start_x = 0; - end_x = width; - rowstride = width; - - for (scope = B_EFFECT_SCOPE_ALL; scope >= B_EFFECT_SCOPE_LEFT; scope--) - { - if (scope == B_EFFECT_SCOPE_RIGHT) - { - width /= 2; - start_x = width; - } - else if (scope == B_EFFECT_SCOPE_LEFT) - { - start_x = 0; - end_x = width; - } - - if (effects->invert == scope) - { - gint x, y; - guchar *buf; - - buf = (guchar *) frame_data; - - for (y = 0; y < height; y++) - { - for (x = start_x; x < end_x; x++) - { - buf[x] = maxval - buf[x]; - } - - buf += rowstride; - } - } - - if (effects->vflip == scope) - { - gint y; - guchar temp[width]; - guchar *upper; - guchar *lower; - - for (y = 0; y < height / 2; y++) - { - upper = frame_data + rowstride * y; - lower = frame_data + rowstride * (height - y - 1); - - memcpy (temp, upper + start_x, width); - memcpy (upper + start_x, lower + start_x, width); - memcpy (lower + start_x, temp, width); - } - } - - if (effects->hflip == scope) - { - gint x, y; - guchar temp; - guchar *buf; - - buf = frame_data; - - for (y = 0; y < height; y++) - { - for (x = start_x; x < (start_x + width / 2); x++) - { - gint swap_x; - - swap_x = start_x + width - 1 - (x - start_x); - - temp = buf[x]; - buf[x] = buf[swap_x]; - buf[swap_x] = temp; - } - - buf += rowstride; - } - } - - if (effects->lmirror == scope || effects->rmirror == scope) - { - gint x, y; - guchar *buf; - - buf = frame_data; - - for (y = 0; y < height; y++) - { - for (x = start_x; x < (start_x + width / 2); x++) - { - if (effects->lmirror == scope) - buf[width - 1 - x] = buf[x]; - else if (effects->rmirror == scope) - buf[x] = buf[width - 1 - x]; - } - - buf += rowstride; - } - } - } -} diff --git a/blib-1.1.7/blib/beffects.h b/blib-1.1.7/blib/beffects.h deleted file mode 100644 index ff4a7c6..0000000 --- a/blib-1.1.7/blib/beffects.h +++ /dev/null @@ -1,70 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_EFFECTS_H__ -#define __B_EFFECTS_H__ - -G_BEGIN_DECLS - -typedef enum -{ - B_EFFECT_SCOPE_NONE = 0, - B_EFFECT_SCOPE_LEFT = 1 << 0, - B_EFFECT_SCOPE_RIGHT = 1 << 1, - B_EFFECT_SCOPE_ALL = B_EFFECT_SCOPE_LEFT | B_EFFECT_SCOPE_RIGHT -} BEffectScope; - -#define B_TYPE_EFFECTS (b_effects_get_type ()) -#define B_EFFECTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_EFFECTS, BEffects)) -#define B_EFFECTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_EFFECTS, BEffectsClass)) -#define B_IS_EFFECTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_EFFECTS)) -#define B_IS_EFFECTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_EFFECTS)) - -typedef struct _BEffectsClass BEffectsClass; - -struct _BEffectsClass -{ - GObjectClass parent_class; -}; - -struct _BEffects -{ - GObject parent_instance; - - BEffectScope invert; - BEffectScope vflip; - BEffectScope hflip; - BEffectScope lmirror; - BEffectScope rmirror; -}; - -GType b_effects_get_type (void) G_GNUC_CONST; -BEffects * b_effects_new (void); -void b_effects_apply (BEffects *effects, - guchar *frame_data, - gint width, - gint height, - gint channels, - gint maxval); - -G_END_DECLS - -#endif /* __B_EFFECTS_H__ */ diff --git a/blib-1.1.7/blib/blib.c b/blib-1.1.7/blib/blib.c deleted file mode 100644 index ac73a35..0000000 --- a/blib-1.1.7/blib/blib.c +++ /dev/null @@ -1,134 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include - -#include "btypes.h" -#include "butils.h" - -static void b_register_transform_funcs (void); - -static gboolean initialized = FALSE; - - -/** - * b_init: - * - * This function initializes the BLib library. It calls g_type_init() - * for you, initializes the random number generator and registers some - * transform functions needed for the deserialization routines. - * - * It is safe to call this function multiple times but you should at - * least call it once before you use any other BLib functions. - **/ -void -b_init (void) -{ - if (initialized) - return; - - srand (time (NULL)); - - g_type_init (); - - b_register_transform_funcs (); - - initialized = TRUE; -} - -static void -b_value_transform_string_int (const GValue *src_value, - GValue *dest_value) -{ - const gchar *str = g_value_get_string (src_value); - gint i; - - if (b_parse_int (str, &i)) - g_value_set_int (dest_value, i); - else - g_warning ("can not convert '%s' to an integer value", str); -} - -static void -b_value_transform_string_double (const GValue *src_value, - GValue *dest_value) -{ - const gchar *str = g_value_get_string (src_value); - gdouble d; - - if (b_parse_double (str, &d)) - g_value_set_double (dest_value, d); - else - g_warning ("can not convert '%s' to a double value", str); -} - -static void -b_value_transform_string_boolean (const GValue *src_value, - GValue *dest_value) -{ - const gchar *str = g_value_get_string (src_value); - gboolean b; - - if (b_parse_boolean (str, &b)) - g_value_set_boolean (dest_value, b); - else - g_warning ("can not convert '%s' to a boolean value", str); -} - -static void -b_value_transform_string_enum (const GValue *src_value, - GValue *dest_value) -{ - GEnumClass *enum_class; - GEnumValue *enum_value; - - g_return_if_fail (G_VALUE_HOLDS_ENUM (dest_value)); - - enum_class = g_type_class_peek (G_VALUE_TYPE (dest_value)); - enum_value = g_enum_get_value_by_name (G_ENUM_CLASS (enum_class), - g_value_get_string (src_value)); - if (!enum_value) - enum_value = g_enum_get_value_by_nick (G_ENUM_CLASS (enum_class), - g_value_get_string (src_value)); - - if (enum_value) - g_value_set_enum (dest_value, enum_value->value); - else - g_warning ("can not convert '%s' to an enum value", - g_value_get_string (src_value)); -} - -static void -b_register_transform_funcs (void) -{ - g_value_register_transform_func (G_TYPE_STRING, G_TYPE_INT, - b_value_transform_string_int); - g_value_register_transform_func (G_TYPE_STRING, G_TYPE_DOUBLE, - b_value_transform_string_double); - g_value_register_transform_func (G_TYPE_STRING, G_TYPE_BOOLEAN, - b_value_transform_string_boolean); - g_value_register_transform_func (G_TYPE_STRING, G_TYPE_ENUM, - b_value_transform_string_enum); -} diff --git a/blib-1.1.7/blib/blib.h b/blib-1.1.7/blib/blib.h deleted file mode 100644 index 8f6a8aa..0000000 --- a/blib-1.1.7/blib/blib.h +++ /dev/null @@ -1,57 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002-2003 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __BLIB_H__ -#define __BLIB_H__ - -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -void b_init (void); - -#endif /* __BLIB_H__ */ diff --git a/blib-1.1.7/blib/bmarshal.c b/blib-1.1.7/blib/bmarshal.c deleted file mode 100644 index 2ec0ed9..0000000 --- a/blib-1.1.7/blib/bmarshal.c +++ /dev/null @@ -1,87 +0,0 @@ -#include "bmarshal.h" - -#include - - -#ifdef G_ENABLE_DEBUG -#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) -#define g_marshal_value_peek_char(v) g_value_get_char (v) -#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) -#define g_marshal_value_peek_int(v) g_value_get_int (v) -#define g_marshal_value_peek_uint(v) g_value_get_uint (v) -#define g_marshal_value_peek_long(v) g_value_get_long (v) -#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) -#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) -#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) -#define g_marshal_value_peek_enum(v) g_value_get_enum (v) -#define g_marshal_value_peek_flags(v) g_value_get_flags (v) -#define g_marshal_value_peek_float(v) g_value_get_float (v) -#define g_marshal_value_peek_double(v) g_value_get_double (v) -#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) -#define g_marshal_value_peek_param(v) g_value_get_param (v) -#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) -#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) -#define g_marshal_value_peek_object(v) g_value_get_object (v) -#else /* !G_ENABLE_DEBUG */ -/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. - * Do not access GValues directly in your code. Instead, use the - * g_value_get_*() functions - */ -#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int -#define g_marshal_value_peek_char(v) (v)->data[0].v_int -#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint -#define g_marshal_value_peek_int(v) (v)->data[0].v_int -#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint -#define g_marshal_value_peek_long(v) (v)->data[0].v_long -#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong -#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 -#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 -#define g_marshal_value_peek_enum(v) (v)->data[0].v_int -#define g_marshal_value_peek_flags(v) (v)->data[0].v_uint -#define g_marshal_value_peek_float(v) (v)->data[0].v_float -#define g_marshal_value_peek_double(v) (v)->data[0].v_double -#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer -#endif /* !G_ENABLE_DEBUG */ - - -/* VOID:STRING,INT (./bmarshal.list:3) */ -void -b_marshal_VOID__STRING_INT (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data) -{ - typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer data1, - gpointer arg_1, - gint arg_2, - gpointer data2); - register GMarshalFunc_VOID__STRING_INT callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; - - g_return_if_fail (n_param_values == 3); - - if (G_CCLOSURE_SWAP_DATA (closure)) - { - data1 = closure->data; - data2 = g_value_peek_pointer (param_values + 0); - } - else - { - data1 = g_value_peek_pointer (param_values + 0); - data2 = closure->data; - } - callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback); - - callback (data1, - g_marshal_value_peek_string (param_values + 1), - g_marshal_value_peek_int (param_values + 2), - data2); -} - diff --git a/blib-1.1.7/blib/bmarshal.h b/blib-1.1.7/blib/bmarshal.h deleted file mode 100644 index 30ff11e..0000000 --- a/blib-1.1.7/blib/bmarshal.h +++ /dev/null @@ -1,20 +0,0 @@ - -#ifndef __b_marshal_MARSHAL_H__ -#define __b_marshal_MARSHAL_H__ - -#include - -G_BEGIN_DECLS - -/* VOID:STRING,INT (./bmarshal.list:3) */ -extern void b_marshal_VOID__STRING_INT (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); - -G_END_DECLS - -#endif /* __b_marshal_MARSHAL_H__ */ - diff --git a/blib-1.1.7/blib/bmarshal.list b/blib-1.1.7/blib/bmarshal.list deleted file mode 100644 index b86da6f..0000000 --- a/blib-1.1.7/blib/bmarshal.list +++ /dev/null @@ -1,3 +0,0 @@ -# see glib-genmarshal(1) for a detailed description of the file format, - -VOID:STRING,INT diff --git a/blib-1.1.7/blib/bmodule-internal.h b/blib-1.1.7/blib/bmodule-internal.h deleted file mode 100644 index 2bf5866..0000000 --- a/blib-1.1.7/blib/bmodule-internal.h +++ /dev/null @@ -1,52 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Daniel Mack - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MODULE_INTERNAL_H__ -#define __B_MODULE_INTERNAL_H__ - -G_BEGIN_DECLS - -BModule * b_module_new (GType module_type, - gint width, - gint height, - guchar *buffer, - BModulePaintCallback paint_callback, - gpointer paint_data, - GError **error); -void b_module_set_aspect (BModule *module, - gdouble aspect_ratio); -gboolean b_module_prepare (BModule *module, - GError **error); -void b_module_relax (BModule *module); -void b_module_start (BModule *module); -void b_module_stop (BModule *module); -void b_module_event (BModule *module, - BModuleEvent *event); -gint b_module_tick (BModule *module); -void b_module_describe (BModule *module, - gchar **title, - gchar **description, - gchar **author); - -G_END_DECLS - -#endif /* __B_MODULE_INTERNAL_H__ */ diff --git a/blib-1.1.7/blib/bmodule-utils.c b/blib-1.1.7/blib/bmodule-utils.c deleted file mode 100644 index 569aa0a..0000000 --- a/blib-1.1.7/blib/bmodule-utils.c +++ /dev/null @@ -1,266 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * Clipping functions and bresenham implementation based on code taken - * from DirectFB (http://www.directfb.org/). - * - * 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. - */ - -#include "config.h" - -#include -#include -#include - -#include "btypes.h" -#include "bmodule.h" -#include "bmodule-utils.h" - -typedef struct _BRegion BRegion; - -struct _BRegion -{ - gint x1; - gint y1; - gint x2; - gint y2; -}; - -#define SIGN(x) ((x<0) ? -1 : ((x>0) ? 1 : 0)) - - -static gboolean -clip_line (const BRegion *clip, - BRegion *line) -{ -#define REGION_CODE(x,y,cx1,cx2,cy1,cy2) ( ( (y) > (cy2) ? 8 : 0) | \ - ( (y) < (cy1) ? 4 : 0) | \ - ( (x) > (cx2) ? 2 : 0) | \ - ( (x) < (cx1) ? 1 : 0) ) - - guchar region_code1 = REGION_CODE (line->x1, line->y1, - clip->x1, clip->x2, clip->y1, clip->y2); - guchar region_code2 = REGION_CODE (line->x2, line->y2, - clip->x1, clip->x2, clip->y1, clip->y2); - - while (region_code1 | region_code2) - { - if (region_code1 & region_code2) - return FALSE; /* line completely outside the clipping rectangle */ - - if (region_code1) - { - if (region_code1 & 8) - { /* divide line at bottom*/ - line->x1 = (line->x1 + (line->x2-line->x1) * - (clip->y2 - line->y1) / (line->y2-line->y1)); - line->y1 = clip->y2; - } - else if (region_code1 & 4) - { /* divide line at top*/ - line->x1 = (line->x1 + (line->x2-line->x1) * - (clip->y1 - line->y1) / (line->y2-line->y1)); - line->y1 = clip->y1; - } - else if (region_code1 & 2) - { /* divide line at right*/ - line->y1 = (line->y1 +(line->y2-line->y1) * - (clip->x2 - line->x1) / (line->x2-line->x1)); - line->x1 = clip->x2; - } - else if (region_code1 & 1) - { /* divide line at right*/ - line->y1 = (line->y1 +(line->y2-line->y1) * - (clip->x1 - line->x1) / (line->x2-line->x1)); - line->x1 = clip->x1; - } - - region_code1 = REGION_CODE (line->x1, line->y1, - clip->x1, clip->x2, clip->y1, clip->y2); - } - else - { - if (region_code2 & 8) - { /* divide line at bottom*/ - line->x2 = (line->x1 + (line->x2-line->x1) * - (clip->y2 - line->y1) / (line->y2-line->y1)); - line->y2 = clip->y2; - } - else if (region_code2 & 4) - { /* divide line at top*/ - line->x2 = (line->x1 +(line->x2-line->x1) * - (clip->y1 - line->y1) / (line->y2-line->y1)); - line->y2 = clip->y1; - } - else if (region_code2 & 2) - { /* divide line at right*/ - line->y2 = (line->y1 +(line->y2-line->y1) * - (clip->x2 - line->x1) / (line->x2-line->x1)); - line->x2 = clip->x2; - } - else if (region_code2 & 1) - { /* divide line at right*/ - line->y2 = (line->y1 +(line->y2-line->y1) * - (clip->x1 - line->x1) / (line->x2-line->x1)); - line->x2 = clip->x1; - } - - region_code2 = REGION_CODE (line->x2, line->y2, - clip->x1, clip->x2, clip->y1, clip->y2); - } - } - - return TRUE; -} - -/** - * b_module_draw_point: - * @module: a #BModule object - * @x: x coordinate - * @y: y coordinate - * @value: the color to draw with - * - * Draws a point to the @module's frame buffer. It is safe to specify - * coordinates outside the buffer. - **/ -void -b_module_draw_point (BModule *module, - gint x, - gint y, - guchar value) -{ - g_return_if_fail (B_IS_MODULE (module)); - - if (x < 0 || x >= module->width) - return; - if (y < 0 || y >= module->height) - return; - - module->buffer[module->width * y + x] = value; -} - -/** - * b_module_draw_line: - * @module: a #BModule object - * @x1: x coordinate of the start point - * @y1: y coordinate of the start point - * @x2: x coordinate of the end point - * @y2: y coordinate of the end point - * @value: the color to draw with - * - * Draws a one-pixel wide line between two points to the module's - * frame buffer. The endpoints are included in the line. If the line - * exceeds the buffer, it is properly clipped. - **/ -void -b_module_draw_line (BModule *module, - gint x1, - gint y1, - gint x2, - gint y2, - guchar value) -{ - BRegion clip; - BRegion line; - gint x, y, i; - gint dx, dy, sdy; - gint dxabs, dyabs; - guchar *d; - - g_return_if_fail (B_IS_MODULE (module)); - - clip.x1 = 0; - clip.y1 = 0; - clip.x2 = module->width - 1; - clip.y2 = module->height - 1; - - line.x1 = x1; - line.y1 = y1; - line.x2 = x2; - line.y2 = y2; - - if (!clip_line (&clip, &line)) - return; - - /* the horizontal distance of the line */ - dx = line.x2 - line.x1; - dxabs = abs (dx); - - /* the vertical distance of the line */ - dy = line.y2 - line.y1; - dyabs = abs (dy); - - sdy = dx ? SIGN(dy) * SIGN(dx) : SIGN(dy); - - d = module->buffer; - - if (dx >= 0) - d += line.y1 * module->width + line.x1; - else - d += line.y2 * module->width + line.x2; - - x = dyabs >> 1; - y = dxabs >> 1; - - if (dxabs >= dyabs) - { /* the line is more horizontal than vertical */ - for (i = 0; i <= dxabs; i++) - { - *d = value; - - d++; - y += dyabs; - if (y >= dxabs) - { - y -= dxabs; - d += sdy * module->width; - } - } - } - else /* the line is more vertical than horizontal */ - { - for (i = 0; i <= dyabs; i++) - { - *d = value; - d += sdy * module->width; - - x += dxabs; - if (x >= dyabs) - { - x -= dyabs; - d++; - } - } - } -} - -/** - * b_module_fill: - * @module: a #BModule object - * @value: the color to draw with - * - * Fills the module's framebuffer with @value. - **/ -void -b_module_fill (BModule *module, - guchar value) -{ - g_return_if_fail (B_IS_MODULE (module)); - - memset (module->buffer, value, module->width * module->height); -} diff --git a/blib-1.1.7/blib/bmodule-utils.h b/blib-1.1.7/blib/bmodule-utils.h deleted file mode 100644 index 24b3f92..0000000 --- a/blib-1.1.7/blib/bmodule-utils.h +++ /dev/null @@ -1,44 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Daniel Mack - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MODULE_UTILS_H__ -#define __B_MODULE_UTILS_H__ - -G_BEGIN_DECLS - -void b_module_draw_point (BModule *module, - gint x, - gint y, - guchar value); -void b_module_draw_line (BModule *module, - gint x1, - gint y1, - gint x2, - gint y2, - guchar value); -void b_module_fill (BModule *module, - guchar value); - - -G_END_DECLS - -#endif /* __B_MODULE_H__ */ diff --git a/blib-1.1.7/blib/bmodule.c b/blib-1.1.7/blib/bmodule.c deleted file mode 100644 index b506907..0000000 --- a/blib-1.1.7/blib/bmodule.c +++ /dev/null @@ -1,674 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Daniel Mack - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" -#include "bmodule.h" -#include "bmodule-internal.h" - -enum -{ - START, - STOP, - LAST_SIGNAL -}; - -enum -{ - PROP_0, - PROP_SPEED, - PROP_LIFETIME -}; - -static void b_module_class_init (BModuleClass *klass); -static void b_module_init (BModule *module); -static void b_module_finalize (GObject *object); -static void b_module_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); - -static gint tick (BModule *module); -static void describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); -static void stop_callback (BModule *module); - - -static guint module_signals[LAST_SIGNAL] = { 0 }; -static GObjectClass *parent_class = NULL; - - -GType -b_module_get_type (void) -{ - static GType module_type = 0; - - if (!module_type) - { - static const GTypeInfo module_info = - { - sizeof (BModuleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_module_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BModule), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_module_init, - }; - - module_type = g_type_register_static (G_TYPE_OBJECT, - "BModule", &module_info, 0); - } - - return module_type; -} - -static void -b_module_class_init (BModuleClass *klass) -{ - GObjectClass *object_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = b_module_finalize; - object_class->set_property = b_module_set_property; - - module_signals[START] = g_signal_new ("start", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BModuleClass, start), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - module_signals[STOP] = g_signal_new ("stop", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BModuleClass, stop), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - param_spec = g_param_spec_double ("speed", NULL, - "Allows to tune the playback speed.", - 0.01, 100.0, 1.0, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_SPEED, param_spec); - - param_spec = g_param_spec_int ("lifetime", NULL, - "Maximum time a module is allowed to run " - "(in milliseconds).", - 0, G_MAXINT, 0, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_LIFETIME, param_spec); - - klass->max_players = 0; - - klass->query = NULL; - klass->prepare = NULL; - klass->start = NULL; - klass->stop = NULL; - klass->event = NULL; - klass->tick = NULL; - klass->describe = describe; -} - -static void -b_module_init (BModule *module) -{ - module->aspect = 1.0; - - module->speed = 1.0; - module->lifetime = 0; - - module->num_players = 0; - - module->ready = FALSE; - module->running = FALSE; - module->tick_source_id = 0; - module->life_source_id = 0; - - g_signal_connect (G_OBJECT (module), "stop", - G_CALLBACK (stop_callback), - NULL); -} - -static void -b_module_finalize (GObject *object) -{ - BModule *module = B_MODULE (object); - - if (module->ready) - b_module_relax (module); - - if (module->tick_source_id) - { - g_source_remove (module->tick_source_id); - module->tick_source_id = 0; - } - if (module->life_source_id) - { - g_source_remove (module->life_source_id); - module->life_source_id = 0; - } - if (module->owns_buffer && module->buffer) - { - g_free (module->buffer); - module->buffer = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_module_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BModule *module = B_MODULE (object); - - switch (property_id) - { - case PROP_SPEED: - g_return_if_fail (g_value_get_double (value) > 0.0); - module->speed = g_value_get_double (value); - break; - - case PROP_LIFETIME: - module->lifetime = g_value_get_int (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static gboolean -tick (BModule *module) -{ - gint timeout; - - g_object_ref (module); - - timeout = (gdouble) b_module_tick (module) / module->speed; - - if (timeout > 0) - module->tick_source_id = g_timeout_add (timeout, - (GSourceFunc) tick, module); - else - module->tick_source_id = 0; - - g_object_unref (module); - - return FALSE; -} - -static gboolean -lifetime_expired (BModule *module) -{ - module->life_source_id = 0; - - b_module_stop (module); - - return FALSE; -} - -static void -describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = g_type_name_from_instance ((GTypeInstance *) module); - *description = NULL; - *author = NULL; -} - -static void -stop_callback (BModule *module) -{ - /* this is a real signal callback, no virtual function implementation */ - - module->running = FALSE; -} - - -/***************************** - * internal module functions * - *****************************/ - -/** - * b_module_new: - * @module_type: the type of module to create - * @width: width of the frame buffer - * @height: height of the frame buffer - * @buffer: pointer to a preallocated buffer or %NULL - * @paint_callback: the function to call in b_module_paint() - * @paint_data: data to pass to the @paint_callback - * @error: location to store the error occuring, or %NULL to ignore errors - * - * This function tries to create the class for the @module_type and - * queries it with the given width and height. Only if the class can - * handle the requested size, a #BModule instance is created and - * initialized with the given values. - * - * Return value: the newly allocate #BModule object - **/ -BModule * -b_module_new (GType module_type, - gint width, - gint height, - guchar *buffer, - BModulePaintCallback paint_callback, - gpointer paint_data, - GError **error) -{ - BModuleClass *klass; - BModule *module = NULL; - - g_return_val_if_fail (module_type != B_TYPE_MODULE, NULL); - g_return_val_if_fail (g_type_is_a (module_type, B_TYPE_MODULE), NULL); - g_return_val_if_fail (width > 0, NULL); - g_return_val_if_fail (height > 0, NULL); - g_return_val_if_fail (paint_callback != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - klass = g_type_class_ref (module_type); - - if (!B_IS_MODULE_CLASS (klass)) - { - g_set_error (error, 0, 0, - "Class '%s' is not a BModuleClass.", - g_type_name (module_type)); - } - else if (!klass->query || !klass->prepare) - { - g_set_error (error, 0, 0, - "Module '%s' does not implement the BModule vtable.", - g_type_name (module_type)); - } - else if (klass->query (width, height, 1, 255)) - { - module = (BModule *) g_object_new (module_type, NULL); - } - else - { - g_set_error (error, 0, 0, - "Module '%s' cannot handle the requested configuration.", - g_type_name (module_type)); - } - - g_type_class_unref (klass); - - if (!module) - return NULL; - - if (buffer) - { - module->owns_buffer = FALSE; - } - else - { - buffer = g_new0 (guchar, width * height); - module->owns_buffer = TRUE; - } - - module->width = width; - module->height = height; - module->channels = 1; - module->maxval = 255; - module->buffer = buffer; - module->paint_callback = paint_callback; - module->paint_data = paint_data; - - return module; -} - -/** - * b_module_set_aspect: - * @module: a #BModule object - * @aspect_ratio: the new pixel aspect ratio (x / y) - * - * Sets the pixel (or window) aspect ratio for the @module. Most - * modules ignore this value but some may adapt their output to take - * the shape of pixels into account. - **/ -void -b_module_set_aspect (BModule *module, - gdouble aspect_ratio) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (aspect_ratio >= 0.01 && aspect_ratio <= 100.0); - - module->aspect = aspect_ratio; -} - -/** - * b_module_prepare: - * @module: a #BModule object - * @error: location to store the error occuring, or %NULL to ignore errors - * - * This function first queries the module once more to check that it - * can handle the current settings. If the query succeeds, the prepare() - * method of the module is called. The module should then prepare - * itself and will be able to start as soon as b_module_start() is called. - * - * Return value: %TRUE is the module has successfully prepared itself, - * %FALSE otherwise - **/ -gboolean -b_module_prepare (BModule *module, - GError **error) -{ - g_return_val_if_fail (B_IS_MODULE (module), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (module->ready == FALSE, FALSE); - - /* first query the module again with the current values */ - module->ready = B_MODULE_GET_CLASS (module)->query (module->width, - module->height, - module->channels, - module->maxval); - - if (!module->ready) - { - g_set_error (error, 0, 0, "Module can not handle this configuration."); - return FALSE; - } - - module->ready = B_MODULE_GET_CLASS (module)->prepare (module, error); - - if (!module->ready && error && *error == NULL) - g_set_error (error, 0, 0, "Module gave no reason."); - - return module->ready; -} - -/** - * b_module_relax: - * @module: a #BModule object - * - * Calls the relax() method of the @module causing it to release - * resources allocated in b_module_prepare(). - **/ -void -b_module_relax (BModule *module) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (module->ready == TRUE); - - if (B_MODULE_GET_CLASS (module)->relax) - B_MODULE_GET_CLASS (module)->relax (module); - - module->ready = FALSE; -} - -/** - * b_module_start: - * @module: a #BModule object - * - * Emits the start signal for @module. If @module has a lifetime set, - * a timer is installed that stops the module when the lifetime expires. - * - * You need to prepare @module by calling b_module_prepare() before it - * can be started. - **/ -void -b_module_start (BModule *module) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (module->ready == TRUE); - g_return_if_fail (module->running == FALSE); - - module->running = TRUE; - - g_signal_emit (G_OBJECT (module), module_signals[START], 0); - - if (module->lifetime > 0) - module->life_source_id = g_timeout_add (module->lifetime, - (GSourceFunc) lifetime_expired, - module); -} - -/** - * b_module_stop: - * @module: a #BModule object - * - * Emits the stop signal for @module. You may only call this function - * for a #BModule that is currently running. - **/ -void -b_module_stop (BModule *module) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (module->running == TRUE); - - if (module->life_source_id) - { - g_source_remove (module->life_source_id); - module->life_source_id = 0; - } - - b_module_ticker_stop (module); - - g_signal_emit (G_OBJECT (module), module_signals[STOP], 0); -} - -/** - * b_module_event: - * @module: a #BModule object - * @event: pointer to a #BModuleEvent - * - * Dispatches an event to @module by calling its event() method with - * @event. This function has no effect if the module is not currently - * running. - **/ -void -b_module_event (BModule *module, - BModuleEvent *event) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (event != NULL); - - if (!module->running) - return; - - if (B_MODULE_GET_CLASS (module)->event) - B_MODULE_GET_CLASS (module)->event (module, event); -} - -/** - * b_module_tick: - * @module: a #BModule object - * - * Calls the tick() method of @module. You may only call this function - * for a #BModule that is currently running. - * - * Return value: the number of milliseconds until tick() should be - * called again or -1 to indicate that no further ticks are requested - **/ -gint -b_module_tick (BModule *module) -{ - g_return_val_if_fail (B_IS_MODULE (module), -1); - g_return_val_if_fail (module->running == TRUE, -1); - - if (!B_MODULE_GET_CLASS (module)->tick) - return -1; - - return B_MODULE_GET_CLASS (module)->tick (module); -} - -/** - * b_module_describe: - * @module: a #BModule object - * @title: return location for the module title or %NULL - * @description: return location for the module description or %NULL - * @author: return location for the name of the module author or %NULL - * - * This function queries @module for a title, description and the name - * of the author. It does so by calling the modules describe() method. - * You may pass %NULL as return location if you are not interested in - * a particular information. The @title is guaranteed to be available, - * @description and @author may be %NULL if the module doesn't provide - * this information. - * - * You must free all returned strings using g_free() if you don't need - * them any longer. - **/ -void -b_module_describe (BModule *module, - gchar **title, - gchar **description, - gchar **author) -{ - const gchar *t, *d, *a; - - g_return_if_fail (B_IS_MODULE (module)); - - B_MODULE_GET_CLASS (module)->describe (module, &t, &d, &a); - - if (!t) - { - g_warning ("Module %s didn't return a title in b_module_describe()!", - g_type_name_from_instance ((GTypeInstance *) module)); - t = g_type_name_from_instance ((GTypeInstance *) module); - } - - if (title) - *title = g_strdup (t); - - if (description) - *description = g_strdup (d); - - if (author) - *author = g_strdup (a); -} - - -/*************************** - * public module functions * - ***************************/ - -/** - * b_module_ticker_start: - * @module: a #BModule object - * @timeout: the timeout interval in milliseconds - * - * Starts a timeout for @module that will call cause its tick() method - * to be called in @timeout milliseconds. The return value of the - * tick() method is then used to install a new timeout for @module. - * This proceeds until the tick() method returns -1, - * b_module_ticker_stop() is called or the module is stopped. - * - * You may only call this function for a #BModule that is currently - * running. - **/ -void -b_module_ticker_start (BModule *module, - gint timeout) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (B_MODULE_GET_CLASS (module)->tick); - g_return_if_fail (module->running == TRUE); - g_return_if_fail (timeout > 0); - - b_module_ticker_stop (module); - - timeout = (gdouble) timeout / module->speed; - - if (timeout > 0) - module->tick_source_id = g_timeout_add (timeout, - (GSourceFunc) tick, module); -} - -/** - * b_module_ticker_stop: - * @module: a #BModule object - * - * Stops the ticker for @module. If there is a pending timeout for - * @module, it is removed. - * - * You may only call this function for a #BModule that is currently - * running. - **/ -void -b_module_ticker_stop (BModule *module) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (module->running == TRUE); - - if (module->tick_source_id) - { - g_source_remove (module->tick_source_id); - module->tick_source_id = 0; - } -} - -/** - * b_module_request_stop: - * @module: a #BModule object - * - * This function causes the module to be stopped. This is for example - * used when a game module decides that the game is over. - * - * You may only call this function for a #BModule that is currently - * running. - **/ -void -b_module_request_stop (BModule *module) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (module->running == TRUE); - - b_module_stop (module); -} - -/** - * b_module_paint: - * @module: a #BModule object - * - * This function causes a repaint of the screen. - **/ -void -b_module_paint (BModule *module) -{ - g_return_if_fail (B_IS_MODULE (module)); - g_return_if_fail (module->running == TRUE); - g_return_if_fail (module->paint_callback != NULL); - - if (!module->running) - return; - - module->paint_callback (module, module->buffer, module->paint_data); -} diff --git a/blib-1.1.7/blib/bmodule.h b/blib-1.1.7/blib/bmodule.h deleted file mode 100644 index 758d6a7..0000000 --- a/blib-1.1.7/blib/bmodule.h +++ /dev/null @@ -1,152 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Daniel Mack - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MODULE_H__ -#define __B_MODULE_H__ - -G_BEGIN_DECLS - -struct _BModuleEvent -{ - gint device_id; - BModuleEventType type; - BModuleKey key; -}; - -typedef gboolean (* BModulePaintCallback) (BModule *bmodule, - guchar *buffer, - gpointer data); - - -#define B_TYPE_MODULE (b_module_get_type ()) -#define B_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MODULE, BModule)) -#define B_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MODULE, BModuleClass)) -#define B_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MODULE)) -#define B_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_MODULE)) -#define B_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_MODULE, BModuleClass)) - -typedef struct _BModuleClass BModuleClass; - -struct _BModule -{ - GObject parent_instance; - - gint width; - gint height; - gint channels; - gint maxval; - gdouble aspect; - - gdouble speed; - gint lifetime; - - gint num_players; - - guchar *buffer; - - /*< private >*/ - gboolean owns_buffer; - - BModulePaintCallback paint_callback; - gpointer paint_data; - - gboolean ready; /* TRUE between prepare() and relax() */ - gboolean running; /* TRUE between start() and stop() */ - guint tick_source_id; - guint life_source_id; - - gpointer pad1; - gpointer pad2; - gpointer pad3; - gpointer pad4; -}; - -struct _BModuleClass -{ - GObjectClass parent_class; - - /* max_players defaults to 0. It needs to be set to a value between - 1 and 4 to indicate that the module can handle events from this - number of different devices. */ - gint max_players; - - /* query() can be called w/o a module instance, it returns TRUE if - the module class can handle the given parameters, FALSE otherwise. */ - gboolean (* query) (gint width, - gint height, - gint channels, - gint maxval); - - /* In prepare() the module prepares itself for being started but it - doesn't perform any visible action yet, i.e. it may not call - b_module_paint(). */ - gboolean (* prepare) (BModule *module, - GError **error); - /* In relax() the module releases any resources it has allocated in - the prepare() method. */ - void (* relax) (BModule *module); - - /* start() signals that the module should start to run. It may call - b_module_paint() to clear the screen or show an intro and it - should call b_module_start_ticker() if it needs ticks. */ - void (* start) (BModule *module); - - /* stop() signals that the module is stopped. It may call - b_module_paint() once more (but it shouldn't). */ - void (* stop) (BModule *module); - - /* An event occured and the module may do anything in response. */ - void (* event) (BModule *bmodule, - BModuleEvent *event); - - /* A previously set timeout expired. The module should do whatever it - likes and return a new timeout (in milliseconds). If the return - value is <= 0, no new timeout is installed. */ - gint (* tick) (BModule *module); - - void (* describe) (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - /* padding for future use */ - gpointer pad1; - gpointer pad2; - gpointer pad3; - gpointer pad4; -}; - - -GType b_module_get_type (void) G_GNUC_CONST; - - -/* functions the module implementations may call */ - -void b_module_ticker_start (BModule *module, - gint timeout); -void b_module_ticker_stop (BModule *module); -void b_module_request_stop (BModule *module); -void b_module_paint (BModule *module); - -G_END_DECLS - -#endif /* __B_MODULE_H__ */ diff --git a/blib-1.1.7/blib/bmoduleinfo.c b/blib-1.1.7/blib/bmoduleinfo.c deleted file mode 100644 index 1e1f594..0000000 --- a/blib-1.1.7/blib/bmoduleinfo.c +++ /dev/null @@ -1,250 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Daniel Mack - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include "btypes.h" -#include "bmoduleinfo.h" - - -static void b_module_info_class_init (BModuleInfoClass *klass); -static void b_module_info_init (BModuleInfo *module_info); -static void b_module_info_finalize (GObject *object); -static gboolean b_module_info_load (GTypeModule *gmodule); -static void b_module_info_unload (GTypeModule *gmodule); - - -static GSList *module_infos = NULL; -static GTypeModuleClass *parent_class = NULL; - - -GType -b_module_info_get_type (void) -{ - static GType module_info_type = 0; - - if (! module_info_type) - { - static const GTypeInfo module_info_info = - { - sizeof (BModuleInfoClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) b_module_info_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BModuleInfo), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_module_info_init, - }; - - module_info_type = g_type_register_static (G_TYPE_TYPE_MODULE, - "BModuleInfo", - &module_info_info, 0); - } - - return module_info_type; -} - -static void -b_module_info_class_init (BModuleInfoClass *klass) -{ - GObjectClass *object_class; - GTypeModuleClass *module_class; - - object_class = G_OBJECT_CLASS (klass); - module_class = G_TYPE_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = b_module_info_finalize; - - module_class->load = b_module_info_load; - module_class->unload = b_module_info_unload; -} - -static void -b_module_info_init (BModuleInfo *module) -{ - module->module = NULL; - module->filename = NULL; -} - -static void -b_module_info_finalize (GObject *object) -{ - BModuleInfo *module_info; - - module_info = B_MODULE_INFO (object); - - if (module_info->filename) - { - g_free (module_info->filename); - module_info->filename = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static gboolean -b_module_info_load (GTypeModule *gmodule) -{ - BModuleInfo *module_info; - - module_info = B_MODULE_INFO (gmodule); - - g_return_val_if_fail (module_info->filename != NULL, FALSE); - - module_info->module = g_module_open (module_info->filename, - G_MODULE_BIND_LAZY); - - if (! module_info->module) - { - g_warning (g_module_error ()); - return FALSE; - } - - if (! g_module_symbol (module_info->module, "b_module_register", - (gpointer *) &module_info->register_module)) - { - g_warning (g_module_error ()); - g_module_close (module_info->module); - module_info->module = NULL; - - return FALSE; - } - - return module_info->register_module (gmodule); -} - -static void -b_module_info_unload (GTypeModule *gmodule) -{ - BModuleInfo *module_info; - - module_info = B_MODULE_INFO (gmodule); - - g_return_if_fail (module_info->module != NULL); - - g_module_close (module_info->module); /* FIXME: error handling */ - module_info->module = NULL; -} - -/** - * b_module_info_new: - * @filename: the filename of the loadable module - * - * Creates a new #BModuleInfo object a loadable module. - * - * Return value: a newly allocated #BModuleInfo object - **/ -BModuleInfo * -b_module_info_new (const gchar *filename) -{ - BModuleInfo *module_info; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (g_module_supported (), NULL); - - module_info = B_MODULE_INFO (g_object_new (B_TYPE_MODULE_INFO, NULL)); - - module_info->filename = g_strdup (filename); - - if (! b_module_info_load (G_TYPE_MODULE (module_info))) - { - g_object_unref (G_OBJECT (module_info)); - return NULL; - } - - b_module_info_unload (G_TYPE_MODULE (module_info)); - - return module_info; -} - -/** - * b_module_infos_scan_dir: - * @dirname: the name of the directory to scan or %NULL to use the - * default directory - * - * Scans the given directory for loadable modules and registers the - * types implemented by the found modules. - * - * Return value: the number of successfully registered modules - **/ -gint -b_module_infos_scan_dir (const gchar *dirname) -{ - gint count = 0; - GDir *dir; - const gchar *name; - char *full_name; - BModuleInfo *module_info; - - if (!dirname) - dirname = MODULEPATH; - - dir = g_dir_open (dirname, 0, NULL); - if (dir == NULL) - { - g_warning ("Unable to open dir '%s': %s", dirname, g_strerror (errno)); - return 0; - } - - while ((name = g_dir_read_name (dir))) - { - if ((strlen (name) < 7) || - strncmp (name, "lib", 3) || - strcmp (name + strlen (name) - 3, ".la")) - continue; - - full_name = g_build_filename (dirname, name, NULL); - -#ifdef VERBOSE - g_print ("Testing file '%s'\n", full_name); -#endif - - if (g_file_test (full_name, G_FILE_TEST_IS_REGULAR)) - { - module_info = b_module_info_new (full_name); - - if (module_info) - { -#ifdef VERBOSE - g_print ("Successfully loaded module '%s'\n", full_name); -#endif - module_infos = g_slist_append (module_infos, module_info); - count++; - } - } - - g_free (full_name); - } - - g_dir_close (dir); - - return count; -} diff --git a/blib-1.1.7/blib/bmoduleinfo.h b/blib-1.1.7/blib/bmoduleinfo.h deleted file mode 100644 index 0a6f32c..0000000 --- a/blib-1.1.7/blib/bmoduleinfo.h +++ /dev/null @@ -1,58 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -#ifndef __B_MODULE_INFO_H__ -#define __B_MODULE_INFO_H__ - -#include - -#define B_TYPE_MODULE_INFO (b_module_info_get_type ()) -#define B_MODULE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MODULE_INFO, BModuleInfo)) -#define B_MODULE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MODULE_INFO, BModuleInfoClass)) -#define B_IS_MODULE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MODULE_INFO)) -#define B_IS_MODULE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_MODULE_INFO)) -#define B_MODULE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_MODULE_INFO, BModuleInfoClass)) - - -typedef struct _BModuleInfoClass BModuleInfoClass; - -struct _BModuleInfo -{ - GTypeModule parent_instance; - - GModule *module; - gchar *filename; - - gboolean (* register_module) (GTypeModule *module); -}; - -struct _BModuleInfoClass -{ - GTypeModuleClass parent_class; -}; - - -GType b_module_info_get_type (void) G_GNUC_CONST; -BModuleInfo * b_module_info_new (const gchar *filename); - -gint b_module_infos_scan_dir (const gchar *dirname); - - -#endif /* __B_MODULE_INFO_H__ */ diff --git a/blib-1.1.7/blib/bmovie-blm.c b/blib-1.1.7/blib/bmovie-blm.c deleted file mode 100644 index 5547114..0000000 --- a/blib-1.1.7/blib/bmovie-blm.c +++ /dev/null @@ -1,365 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "btypes.h" -#include "bmovie-blm.h" - - -static void b_movie_blm_class_init (BMovieBLMClass *class); -static void b_movie_blm_init (BMovie *movie); - -static gboolean b_movie_blm_load_info (BMovie *movie, - GIOChannel *io, - GError **error); -static gboolean b_movie_blm_load_all (BMovie *movie, - GIOChannel *io, - GError **error); -static gboolean b_movie_blm_save (BMovie *movie, - FILE *stream, - GError **error); - -static gboolean b_movie_blm_parse_header_line (BMovie *movie, - const gchar *buf, - gsize len, - gboolean *magic); - -static void b_movie_blm_save_header (FILE *stream, - const gchar *name, - const gchar *value); - -static BMovieClass *parent_class = NULL; - - -GType -b_movie_blm_get_type (void) -{ - static GType movie_type = 0; - - if (!movie_type) - { - static const GTypeInfo movie_info = - { - sizeof (BMovieBLMClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_movie_blm_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BMovieBLM), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_movie_blm_init - }; - - movie_type = g_type_register_static (B_TYPE_MOVIE, - "BMovieBLM", - &movie_info, 0); - } - - return movie_type; -} - -static void -b_movie_blm_class_init (BMovieBLMClass *class) -{ - BMovieClass *movie_class; - - parent_class = g_type_class_peek_parent (class); - - movie_class = B_MOVIE_CLASS (class); - - movie_class->load_info = b_movie_blm_load_info; - movie_class->load_all = b_movie_blm_load_all; - movie_class->save = b_movie_blm_save; -} - -static void -b_movie_blm_init (BMovie *movie) -{ - movie->maxval = 1; -} - -static gboolean -b_movie_blm_load_info (BMovie *movie, - GIOChannel *io, - GError **error) -{ - GString *str = g_string_new_len (NULL, 128); - gboolean magic = FALSE; - - while (g_io_channel_read_line_string (io, str, NULL, - error) == G_IO_STATUS_NORMAL) - { - if (! b_movie_blm_parse_header_line (movie, str->str, str->len, &magic)) - { - if (!magic) - g_set_error (error, 0, 0, "Error parsing movie header."); - break; - } - } - - g_string_free (str, TRUE); - - return magic; -} - -static gboolean -b_movie_blm_load_all (BMovie *movie, - GIOChannel *io, - GError **error) -{ - GString *str = g_string_new_len (NULL, 128); - guchar *data = NULL; - gboolean header_parsed = FALSE; - gboolean magic = FALSE; - gint line = -1; - gint duration; - - while (g_io_channel_read_line_string (io, str, NULL, - error) == G_IO_STATUS_NORMAL) - { - if (!header_parsed) - { - if (! b_movie_blm_parse_header_line (movie, - str->str, str->len, &magic)) - { - if (magic) - header_parsed = TRUE; - else - break; - - movie->duration = 0; - } - } - - if (header_parsed) - { - const gchar *buf = str->str; - gint len = str->len; - - if (!data) - data = g_malloc (movie->width * movie->height); - - /* skip empty lines and bufs */ - if (len == 0 || buf[0] == '#' || g_ascii_isspace (buf[0])) - continue; - - if (line == -1) - { - if (buf[0] == '@') - { - if (sscanf (buf+1, "%d", &duration) == 1 && duration > 0) - line = 0; - - if (duration < B_MOVIE_MIN_DELAY) - { - g_printerr ("Frame with %d ms duration, " - "using %d ms instead\n", - duration, B_MOVIE_MIN_DELAY); - duration = B_MOVIE_MIN_DELAY; - } - } - } - else - { - if (buf[0] == '@' || len - 1 < movie->width) - { - g_printerr ("Invalid frame, skipping.\n"); - line = -1; - } - else - { - gint i; - - for (i = 0; i < movie->width; i++) - { - gint d = (buf[i] == '1' ? 1 : 0); - data[movie->width * line + i] = d * movie->maxval; - } - - if (++line == movie->height) - { - b_movie_prepend_frame (movie, duration, data); - line = -1; - } - } - } - } - } - - g_free (data); - g_string_free (str, TRUE); - - /* caller checks movie->n_frames and sets an error if no frames were found */ - - return TRUE; -} - -static gboolean -b_movie_blm_save (BMovie *movie, - FILE *stream, - GError **error) -{ - GList *list; - - if (movie->channels != 1) - { - g_set_error (error, 0, 0, - "Cannot save movie with more than one channel as BLM"); - return FALSE; - } - - fprintf (stream, - "# Blinkenlights Movie %dx%d\n", movie->width, movie->height); - - b_movie_blm_save_header (stream, "name", movie->title); - b_movie_blm_save_header (stream, "description", movie->description); - b_movie_blm_save_header (stream, "creator", movie->creator); - b_movie_blm_save_header (stream, "creator", "blib " VERSION); - b_movie_blm_save_header (stream, "author", movie->author); - b_movie_blm_save_header (stream, "email", movie->email); - b_movie_blm_save_header (stream, "url", movie->url); - - fprintf (stream, "# duration = %d\n", movie->duration); - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - const guchar *data = frame->data; - gint x, y; - - fprintf (stream, "\n@%d\n", frame->duration); - - for (y = 0; y < movie->height; y++) - { - for (x = 0; x < movie->width; x++, data++) - fputc ((*data > movie->maxval / 2) ? '1' : '0', stream); - - fputc ('\n', stream); - } - } - - return TRUE; -} - -static gboolean -b_movie_blm_parse_header_line (BMovie *movie, - const gchar *buf, - gsize len, - gboolean *magic) -{ - const gchar *comment; - - if (!len) - return FALSE; - - if (! *magic) - { - gint width; - gint height; - - if (sscanf (buf, " %dx%d", &width, &height) != 2 || - width < 1 || height < 1) - { - return FALSE; - } - - movie->width = width; - movie->height = height; - - *magic = TRUE; - return TRUE; - } - - if (buf[0] != '#') - return FALSE; - - comment = buf + 1; - len--; - while (len && g_ascii_isspace (*comment)) - { - comment++; - len--; - } - - if (!g_utf8_validate (comment, -1, NULL)) - return TRUE; /* ignore silently */ - - if (!movie->title) - { - if (g_ascii_strncasecmp (comment, "name=", 5) == 0) - movie->title = g_strstrip (g_strndup (comment + 5, len - 6)); - else if (g_ascii_strncasecmp (comment, "name =", 6) == 0) - movie->title = g_strstrip (g_strndup (comment + 6, len - 7)); - } - if (!movie->description) - { - if (g_ascii_strncasecmp (comment, "description=", 12) == 0) - movie->description = g_strstrip (g_strndup (comment + 12, len - 13)); - else if (g_ascii_strncasecmp (comment, "description =", 13) == 0) - movie->description = g_strstrip (g_strndup (comment + 13, len - 14)); - } - if (!movie->duration) - { - if (g_ascii_strncasecmp (comment, "duration=", 9) == 0 || - g_ascii_strncasecmp (comment, "duration =", 10) == 0) - { - sscanf (comment + 9, "%d", &movie->duration); - } - } - - return TRUE; -} - -static void -b_movie_blm_save_header (FILE *stream, - const gchar *name, - const gchar *value) -{ - const gchar *end; - - if (!value || !*value) - return; - - fprintf (stream, "# %s = ", name); - - end = strchr (value, '\n'); - if (!end) - end = value + MIN (strlen (value), 70 - strlen (name)); - - if (*end) - { - gchar *dup = g_strndup (value, end - value); - fprintf (stream, dup); - g_free (dup); - } - else - { - fprintf (stream, value); - } - - fputc ('\n', stream); -} diff --git a/blib-1.1.7/blib/bmovie-blm.h b/blib-1.1.7/blib/bmovie-blm.h deleted file mode 100644 index b485c87..0000000 --- a/blib-1.1.7/blib/bmovie-blm.h +++ /dev/null @@ -1,42 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_BLM_H__ -#define __B_MOVIE_BLM_H__ - -#include "bmovie.h" - -G_BEGIN_DECLS - -#define B_TYPE_MOVIE_BLM (b_movie_blm_get_type ()) -#define B_MOVIE_BLM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MOVIE_BLM, BMovieBLM)) -#define B_MOVIE_BLM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MOVIE_BLM, BMovieBLMClass)) -#define B_IS_MOVIE_BLM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MOVIE_BLM)) -#define B_IS_MOVIE_BLM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_MOVIE_BLM)) - -typedef struct _BMovieClass BMovieBLMClass; -typedef struct _BMovie BMovieBLM; - -GType b_movie_blm_get_type (void) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __B_MOVIE_BLM_H__ */ diff --git a/blib-1.1.7/blib/bmovie-bml-parser.c b/blib-1.1.7/blib/bmovie-bml-parser.c deleted file mode 100644 index 65e59ed..0000000 --- a/blib-1.1.7/blib/bmovie-bml-parser.c +++ /dev/null @@ -1,478 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include - -#include "btypes.h" -#include "bmovie.h" -#include "bmovie-bml-parser.h" -#include "bparser.h" -#include "butils.h" - -enum -{ - PARSER_IN_BLM = B_PARSER_STATE_USER, - PARSER_IN_HEADER, - PARSER_IN_TITLE, - PARSER_IN_DESCRIPTION, - PARSER_IN_CREATOR, - PARSER_IN_AUTHOR, - PARSER_IN_EMAIL, - PARSER_IN_URL, - PARSER_IN_DURATION, - PARSER_IN_LOOP, - PARSER_IN_FRAME, - PARSER_IN_ROW, - PARSER_IN_SEGMENTS, - PARSER_FINISH, -}; - -typedef struct _ParserData ParserData; - -struct _ParserData -{ - gint bits; - gint channels; - - gint frame_duration; - guchar *frame_data; - gint frame_next_row; - - BMovie *movie; - gboolean lazy; -}; - -static BParserState parser_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); -static BParserState parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); - -static gboolean parse_blm_attributes (ParserData *data, - const gchar **names, - const gchar **values); -static gboolean parse_frame_attributes (ParserData *data, - const gchar **names, - const gchar **values); - - -gboolean -b_movie_bml_parse_bml (BMovie *movie, - GIOChannel *io, - gboolean lazy, - GError **error) -{ - BParser *parser; - ParserData data; - gboolean retval; - - data.movie = movie; - data.lazy = lazy; - data.frame_data = NULL; - - parser = b_parser_new (parser_start_element, parser_end_element, &data); - - retval = b_parser_parse_io_channel (parser, io, FALSE, error); - - if (retval && b_parser_get_state (parser) != PARSER_FINISH) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "This doesn't look like Blinkenlights Markup Language"); - retval = FALSE; - } - - b_parser_free (parser); - - g_free (data.frame_data); - - return retval; -} - - -/* parser functions */ - -static BParserState -parser_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error) -{ - ParserData *data = (ParserData *) user_data; - - switch (state) - { - case B_PARSER_STATE_TOPLEVEL: - if (! strcmp (element_name, "blm")) - { - if (! parse_blm_attributes (data, attribute_names, attribute_values)) - { - g_set_error (error, - G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "Invalid attributes for blm element"); - break; - } - - return PARSER_IN_BLM; - } - break; - - case PARSER_IN_BLM: - if (! strcmp (element_name, "header")) - return PARSER_IN_HEADER; - - if (data->lazy) - return B_PARSER_STATE_UNKNOWN; - - if (! strcmp (element_name, "frame")) - { - if (! parse_frame_attributes (data, - attribute_names, attribute_values)) - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - "Invalid attributes for frame element number %d", - data->movie->n_frames); - break; - } - - if (data->frame_data) - memset (data->frame_data, 0, - data->movie->width * data->movie->height); - else - data->frame_data = g_new0 (guchar, (data->movie->width * - data->movie->height)); - - data->frame_next_row = 0; - - return PARSER_IN_FRAME; - } - break; - - case PARSER_IN_HEADER: - if (! strcmp (element_name, "title")) - return PARSER_IN_TITLE; - - if (! strcmp (element_name, "description")) - return PARSER_IN_DESCRIPTION; - - if (! strcmp (element_name, "creator")) - return PARSER_IN_CREATOR; - - if (! strcmp (element_name, "author")) - return PARSER_IN_AUTHOR; - - if (! strcmp (element_name, "email")) - return PARSER_IN_EMAIL; - - if (! strcmp (element_name, "url")) - return PARSER_IN_URL; - - /* only parse duration if we are lazy-loading ! */ - if (! strcmp (element_name, "duration") && data->lazy) - return PARSER_IN_DURATION; - - if (! strcmp (element_name, "loop")) - return PARSER_IN_LOOP; - - break; - - case PARSER_IN_FRAME: - if (! strcmp (element_name, "row")) - { - if (data->frame_next_row == data->movie->height) - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - "Too many rows in frame number %d", - data->movie->n_frames); - break; - } - - return PARSER_IN_ROW; - } - else if(! strcmp (element_name, "segments")) - { - return PARSER_IN_SEGMENTS; - } - break; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static BParserState -parser_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error) -{ - ParserData *data = (ParserData *) user_data; - - switch (state) - { - case PARSER_IN_BLM: - return PARSER_FINISH; - - case PARSER_IN_HEADER: - return PARSER_IN_BLM; - - case PARSER_IN_TITLE: - if (!data->movie->title) - data->movie->title = g_strdup (cdata); - return PARSER_IN_HEADER; - - case PARSER_IN_DESCRIPTION: - if (!data->movie->description) - data->movie->description = g_strdup (cdata); - return PARSER_IN_HEADER; - - case PARSER_IN_CREATOR: - if (!data->movie->creator) - data->movie->creator = g_strdup (cdata); - return PARSER_IN_HEADER; - - case PARSER_IN_AUTHOR: - if (!data->movie->author) - data->movie->author = g_strdup (cdata); - return PARSER_IN_HEADER; - - case PARSER_IN_EMAIL: - if (!data->movie->email) - data->movie->email = g_strdup (cdata); - return PARSER_IN_HEADER; - - case PARSER_IN_URL: - if (!data->movie->url) - data->movie->url = g_strdup (cdata); - return PARSER_IN_HEADER; - - case PARSER_IN_DURATION: - b_parse_int (cdata, & data->movie->duration); - return PARSER_IN_HEADER; - - case PARSER_IN_LOOP: - /* for backward compat, ignore loop if it has a value of "no" */ - if (!cdata_len || g_ascii_tolower (*cdata) != 'n') - data->movie->loop = TRUE; - return PARSER_IN_HEADER; - - case PARSER_IN_FRAME: - if (data->frame_next_row != data->movie->height) - { - g_set_error (error, - G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "Too few rows in frame number %d", - data->movie->n_frames); - break; - } - else - { - b_movie_prepend_frame (data->movie, - data->frame_duration, data->frame_data); - } - return PARSER_IN_BLM; - - case PARSER_IN_ROW: - { - gchar *row; - gchar *src; - guchar *dest; - gint bpp_src; - gint i, x = 0; - - row = g_strdup (cdata); - - if ((data->bits <= 4 && - cdata_len != data->movie->width * data->channels) || - (data->bits > 4 && - cdata_len != data->movie->width * data->channels * 2)) - { - g_set_error (error, - G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "Invalid row length in frame number %d", - data->movie->n_frames); - goto row_done; - } - - bpp_src = data->bits <= 4 ? 1 : 2; - - src = row; - dest = data->frame_data + (data->movie->width * data->frame_next_row); - - for (; x < data->movie->width; x++, src += bpp_src, dest += 1) - { - *dest = 0; - - for (i = 0; i < bpp_src; i++) - { - *dest <<= 4; - - src[i] = g_ascii_tolower (src[i]); - - switch (src[i]) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - *dest += src[i] - '0'; - break; - - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - *dest += 10 + src[i] - 'a'; - break; - - default: - g_set_error (error, - G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - "Invalid row data in frame number %d", - data->movie->n_frames); - goto row_done; - } - } - - if (*dest > data->movie->maxval) - { - g_set_error (error, - G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "Row data exceeds maxval (%d) in frame number %d", - data->movie->maxval, data->movie->n_frames); - goto row_done; - } - } - - row_done: - g_free (row); - data->frame_next_row++; - - if (x != data->movie->width) - return B_PARSER_STATE_UNKNOWN; - } - return PARSER_IN_FRAME; - - case PARSER_IN_SEGMENTS: - { - /* parse the segment information */ - } - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static gboolean -parse_blm_attributes (ParserData *data, - const gchar **names, - const gchar **values) -{ - gint i; - gint width = 0; - gint height = 0; - gint bits = 1; - gint channels = 1; - - for (i = 0; names[i] && values[i]; i++) - { - if (strcmp (names[i], "width") == 0) - b_parse_int (values[i], &width); - else if (strcmp (names[i], "height") == 0) - b_parse_int (values[i], &height); - else if (strcmp (names[i], "bits") == 0) - b_parse_int (values[i], &bits); - else if (strcmp (names[i], "channels") == 0) - b_parse_int (values[i], &channels); - } - - if (width > 0 && height > 0 && - (bits >= 1 && bits <= 8) && (channels == 1)) /* channels == 3 */ - { - data->movie->width = width; - data->movie->height = height; - data->movie->maxval = (1 << bits) - 1; - data->movie->channels = channels; - - data->bits = bits; - data->channels = channels; - - return TRUE; - } - - return FALSE; -} - -static gboolean -parse_frame_attributes (ParserData *data, - const gchar **names, - const gchar **values) -{ - gint i; - gint duration = 0; - - for (i = 0; names[i] && values[i]; i++) - { - if (strcmp (names[i], "duration") == 0) - b_parse_int (values[i], &duration); - } - - if (duration < B_MOVIE_MIN_DELAY) - { - g_printerr ("Frame with %d ms duration, using %d ms instead\n", - duration, B_MOVIE_DEFAULT_DELAY); - duration = B_MOVIE_DEFAULT_DELAY; - } - - data->frame_duration = duration; - - return TRUE; -} diff --git a/blib-1.1.7/blib/bmovie-bml-parser.h b/blib-1.1.7/blib/bmovie-bml-parser.h deleted file mode 100644 index 3af65e3..0000000 --- a/blib-1.1.7/blib/bmovie-bml-parser.h +++ /dev/null @@ -1,34 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_BML_PARSER_H__ -#define __B_MOVIE_BML_PARSER_H__ - -G_BEGIN_DECLS - -gboolean b_movie_bml_parse_bml (BMovie *movie, - GIOChannel *io, - gboolean lazy, - GError **error); - -G_END_DECLS - -#endif /* __B_MOVIE_BML_PARSER_H__ */ diff --git a/blib-1.1.7/blib/bmovie-bml.c b/blib-1.1.7/blib/bmovie-bml.c deleted file mode 100644 index c0a29a9..0000000 --- a/blib-1.1.7/blib/bmovie-bml.c +++ /dev/null @@ -1,211 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "btypes.h" -#include "bobject.h" -#include "bmovie-bml.h" -#include "bmovie-bml-parser.h" -#include "bwriter.h" - - -static void b_movie_bml_class_init (BMovieBMLClass *class); - -static gboolean b_movie_bml_load_info (BMovie *movie, - GIOChannel *io, - GError **error); -static gboolean b_movie_bml_load_all (BMovie *movie, - GIOChannel *io, - GError **error); -static gboolean b_movie_bml_save (BMovie *movie, - FILE *stream, - GError **error); - - -static BMovieClass *parent_class = NULL; - - -GType -b_movie_bml_get_type (void) -{ - static GType movie_type = 0; - - if (!movie_type) - { - static const GTypeInfo movie_info = - { - sizeof (BMovieBMLClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_movie_bml_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BMovieBML), - 0, /* n_preallocs */ - NULL /* instance_init */ - }; - - movie_type = g_type_register_static (B_TYPE_MOVIE, - "BMovieBML", - &movie_info, 0); - } - - return movie_type; -} - -static void -b_movie_bml_class_init (BMovieBMLClass *class) -{ - BMovieClass *movie_class; - - parent_class = g_type_class_peek_parent (class); - - movie_class = B_MOVIE_CLASS (class); - - movie_class->load_info = b_movie_bml_load_info; - movie_class->load_all = b_movie_bml_load_all; - movie_class->save = b_movie_bml_save; -} - -static gboolean -b_movie_bml_load_info (BMovie *movie, - GIOChannel *io, - GError **error) -{ - return b_movie_bml_parse_bml (movie, io, TRUE, error); -} - -static gboolean -b_movie_bml_load_all (BMovie *movie, - GIOChannel *io, - GError **error) -{ - return b_movie_bml_parse_bml (movie, io, FALSE, error); -} - - -static gboolean -b_movie_bml_save (BMovie *movie, - FILE *stream, - GError **error) -{ - BWriter *writer; - GList *list; - gchar width[16]; - gchar height[16]; - gchar buf[16]; - gchar *row; - guint len, bits; - - if (movie->channels != 1) - { - g_set_error (error, 0, 0, - "Cannot yet save movie with more than one channel as BML"); - return FALSE; - } - - /* calculate bits from movie->maxval */ - for (len = movie->maxval, bits = 0; len; len >>= 1, bits++) - ; - - g_snprintf (width, sizeof (width), "%d", movie->width); - g_snprintf (height, sizeof (height), "%d", movie->height); - g_snprintf (buf, sizeof (buf), "%u", bits); - - writer = b_writer_new (stream, 4); - - b_write_header (writer, "utf-8"); - - b_write_open_tag (writer, "blm", - "width", width, "height", height, "bits", buf, NULL); - - if (movie->title) - { - b_write_open_tag (writer, "header", NULL); - -#define BML_WRITE_META(tag) \ - if (movie->tag) b_write_element (writer, #tag, movie->tag, NULL); - - BML_WRITE_META (title); - BML_WRITE_META (description); - - if (movie->creator) - b_write_element (writer, "creator", movie->creator, NULL); - else - b_write_element (writer, "creator", "blib " VERSION, NULL); - - BML_WRITE_META (author); - BML_WRITE_META (email); - BML_WRITE_META (url); - - g_snprintf (buf, sizeof (buf), "%d", movie->duration); - b_write_element (writer, "duration", buf, NULL); - - if (movie->loop) - b_write_element (writer, "loop", NULL, NULL); - -#undef BML_WRITE_META - - b_write_close_tag (writer, "header"); - } - - /* calculate length of row data */ - len = movie->width * (bits > 4 ? 2 : 1); - row = g_new (gchar, len + 1); - row[len] = '\0'; - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - guchar *data = frame->data; - gint x, y; - - g_snprintf (buf, sizeof (buf), "%d", frame->duration); - b_write_open_tag (writer, "frame", "duration", buf, NULL); - - for (y = 0; y < movie->height; y++) - { - if (bits > 4) - for (x = 0; x < movie->width; x++, data++) - g_snprintf (row + x * 2, 3, "%02x", *data); - else - for (x = 0; x < movie->width; x++, data++) - g_snprintf (row + x, 2, "%1x", *data); - - b_write_element (writer, "row", row, NULL); - } - - b_write_close_tag (writer, "frame"); - } - - g_free (row); - - b_write_close_tag (writer, "blm"); - - b_writer_free (writer); - - return TRUE; -} diff --git a/blib-1.1.7/blib/bmovie-bml.h b/blib-1.1.7/blib/bmovie-bml.h deleted file mode 100644 index 86e05bf..0000000 --- a/blib-1.1.7/blib/bmovie-bml.h +++ /dev/null @@ -1,42 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_BML_H__ -#define __B_MOVIE_BML_H__ - -#include "bmovie.h" - -G_BEGIN_DECLS - -#define B_TYPE_MOVIE_BML (b_movie_bml_get_type ()) -#define B_MOVIE_BML(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MOVIE_BML, BMovieBML)) -#define B_MOVIE_BML_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MOVIE_BML, BMovieBMLClass)) -#define B_IS_MOVIE_BML(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MOVIE_BML)) -#define B_IS_MOVIE_BML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_MOVIE_BML)) - -typedef struct _BMovieClass BMovieBMLClass; -typedef struct _BMovie BMovieBML; - -GType b_movie_bml_get_type (void) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __B_MOVIE_BML_H__ */ diff --git a/blib-1.1.7/blib/bmovie-effects.c b/blib-1.1.7/blib/bmovie-effects.c deleted file mode 100644 index a0c8d6b..0000000 --- a/blib-1.1.7/blib/bmovie-effects.c +++ /dev/null @@ -1,158 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" -#include "beffects.h" -#include "bmovie.h" -#include "bmovie-effects.h" - - -/** - * b_movie_normalize: - * @movie: a #BMovie object - * @maxval: the new maximum value to apply to @movie - * - * Changes the maximum value for @movie, that is the value that will - * cause the lamp to glow with full intensity. This function iterates - * over all frames of the movie and changes the frame data accordingly. - **/ -void -b_movie_normalize (BMovie *movie, - gint maxval) -{ - GList *list; - - g_return_if_fail (B_IS_MOVIE (movie)); - g_return_if_fail (maxval > 0 && maxval < 256); - - if (movie->maxval == maxval) - return; - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - guchar *data = frame->data; - gint x, y; - - for (y = 0; y < movie->height; y++) - for (x = 0; x < movie->width; x++, data++) - *data = ((gint) *data * maxval) / movie->maxval; - } - - movie->maxval = maxval; -} - -/** - * b_movie_apply_colormap: - * @movie: a #BMovie object - * @map: a LUT that remaps each color value - * - * Applies a mapping defined by @map to all frames of the @movie. The - * mapping must not exceed the movie's maxval. - **/ -void -b_movie_apply_colormap (BMovie *movie, - guchar *map) -{ - GList *list; - - g_return_if_fail (B_IS_MOVIE (movie)); - g_return_if_fail (map != NULL); - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - guchar *data = frame->data; - gint x, y; - - for (y = 0; y < movie->height; y++) - for (x = 0; x < movie->width; x++, data++) - *data = map[*data]; - } -} - -/** - * b_movie_apply_effects: - * @movie: a #BMovie object - * @effects: a #BEffects object or %NULL - * @reverse: whether to reverse the order of frames in @movie - * @speed: an adjustment factor to be applied on the frame timing - * - * If @effects is non-%NULL, the effects described by it are applied - * to @movie. If @reverse is %TRUE, the order of frames is reversed. - * If @speed is different from 1.0, the frame timing is adjusted; for - * example a value of 2.0 makes the movie play with double speed. - **/ -void -b_movie_apply_effects (BMovie *movie, - BEffects *effects, - gboolean reverse, - gdouble speed) -{ - GList *list; - - g_return_if_fail (B_IS_MOVIE (movie)); - g_return_if_fail (effects == NULL || B_IS_EFFECTS (effects)); - g_return_if_fail (speed > 0.0); - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - - if (effects) - { - b_effects_apply (effects, - frame->data, - movie->width, movie->height, - movie->channels, movie->maxval); - } - - if (speed != 1.0) - { - frame->start /= speed; - frame->duration /= speed; - } - } - - if (speed != 1.0) - { - movie->duration /= speed; - } - - if (reverse) - { - gint start = 0; - - movie->frames = g_list_reverse (movie->frames); - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - - frame->start = start; - start += frame->duration; - } - } -} diff --git a/blib-1.1.7/blib/bmovie-effects.h b/blib-1.1.7/blib/bmovie-effects.h deleted file mode 100644 index f7708fd..0000000 --- a/blib-1.1.7/blib/bmovie-effects.h +++ /dev/null @@ -1,38 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_EFFECTS_H__ -#define __B_MOVIE_EFFECTS_H__ - -G_BEGIN_DECLS - -void b_movie_normalize (BMovie *movie, - gint maxval); -void b_movie_apply_colormap (BMovie *movie, - guchar *map); -void b_movie_apply_effects (BMovie *movie, - BEffects *effects, - gboolean reverse, - gdouble speed); - -G_END_DECLS - -#endif /* __B_MOVIE_EFFECTS_H__ */ diff --git a/blib-1.1.7/blib/bmovie-gif-parser.c b/blib-1.1.7/blib/bmovie-gif-parser.c deleted file mode 100644 index 5578510..0000000 --- a/blib-1.1.7/blib/bmovie-gif-parser.c +++ /dev/null @@ -1,282 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "btypes.h" -#include "bmovie.h" -#include "bmovie-gif-parser.h" - -#include "gif-load.h" - -/* #define DEBUG_GIF 1 */ - - -static void -b_movie_gif_compose_frame (BMovie *movie, - guchar *gray_buf, - guchar *image_buf, - gint image_colors, - guchar *image_cmap, - guchar *frame_buf, - GIFDisposeType frame_disposal, - gint frame_duration, - gint frame_transparent, - gint frame_width, - gint frame_height, - gint frame_off_x, - gint frame_off_y, - gint frame_colors, - guchar *frame_cmap) -{ - guchar *src; - guchar *dest; - guchar *d; - guchar *cmap; - gint colors; - gint x, y; - -#if DEBUG_GIF - g_printerr ("GIF frame: " - "%dx%d @ %d,%d disposal: %d duration: %d transp: %d cmap: %s\n", - frame_width, frame_height, - frame_off_x, frame_off_y, - frame_disposal, - frame_duration, - frame_transparent, - frame_cmap ? "yes" : "no"); -#endif - - cmap = frame_cmap ? frame_cmap : image_cmap; - colors = frame_cmap ? frame_colors : image_colors; - - src = frame_buf; - dest = image_buf + frame_off_y * movie->width + frame_off_x; - - for (y = 0; y < frame_height; y++) - { - d = dest; - - for (x = 0; x < frame_width; x++) - { - if (frame_transparent > -1 && - *src == frame_transparent && - frame_disposal != DISPOSE_REPLACE) - { - d++; - src++; - } - else - { - *d++ = *src++; - } - } - - dest += movie->width; - } - - src = image_buf; - dest = gray_buf; - - for (y = 0; y < movie->height; y++) - { - d = dest; - - for (x = 0; x < movie->width; x++) - { - if (*src < colors) - { - guchar *cmap_entry = cmap + *src * 3; - -#define INTENSITY_RED 0.30 -#define INTENSITY_GREEN 0.59 -#define INTENSITY_BLUE 0.11 -#define INTENSITY(r,g,b) ((r) * INTENSITY_RED + \ - (g) * INTENSITY_GREEN + \ - (b) * INTENSITY_BLUE + \ - (1) * (1.0 / 256.0)) - - *d = INTENSITY (cmap_entry[0], cmap_entry[1], cmap_entry[2]); - -#undef INTENSITY_RED -#undef INTENSITS_GREEN -#undef INTENSITY_BLUE -#undef INTENSITY - } - else - { - *d = 0; - } - - d++; - src++; - } - - dest += movie->width; - } - - b_movie_prepend_frame (movie, frame_duration, gray_buf); -} - -gboolean -b_movie_gif_parse_gif (BMovie *movie, - GIOChannel *io, - gboolean lazy, - GError **error) -{ - gint width; - gint height; - gint background; - gint colors; - guchar *cmap = NULL; - GIFRecordType record_type; - gint duration = 0; - gchar *comment = NULL; - guchar *buffer = NULL; - guchar *frame_buffer = NULL; - guchar *gray_buffer = NULL; - gboolean success = FALSE; - GIFDisposeType frame_disposal = DISPOSE_REPLACE; - gint frame_delay = 100; - gint frame_transparent = -1; - - if (! GIFDecodeHeader (io, - TRUE, &width, &height, &background, &colors, &cmap)) - goto cleanup; - - movie->width = width; - movie->height = height; - -#if DEBUG_GIF - g_printerr ("GIF background: %d colors: %d\n", background, colors); -#endif - - buffer = g_new0 (guchar, width * height); - frame_buffer = g_new0 (guchar, width * height); - gray_buffer = g_new0 (guchar, width * height); - - if (background > -1) - memset (buffer, background, width * height); - - while (GIFDecodeRecordType (io, &record_type)) - { - switch (record_type) - { - case IMAGE: - { - gint frame_width; - gint frame_height; - gint frame_off_x; - gint frame_off_y; - gint frame_colors; - guchar *frame_cmap; - - if (! GIFDecodeImage (io, - &frame_width, &frame_height, - &frame_off_x, &frame_off_y, - &frame_colors, &frame_cmap, - frame_buffer)) - { - g_set_error (error, 0, 0, - "Broken or missing image frame"); - goto cleanup; - } - - if (frame_delay < B_MOVIE_MIN_DELAY) - { - g_printerr ("Frame with %d ms duration, using %d ms instead\n", - frame_delay, B_MOVIE_DEFAULT_DELAY); - frame_delay = B_MOVIE_DEFAULT_DELAY; - } - - duration += frame_delay; - - if (! lazy) - { - b_movie_gif_compose_frame (movie, - gray_buffer, - buffer, - colors, - cmap, - frame_buffer, - frame_disposal, - frame_delay, - frame_transparent, - frame_width, - frame_height, - frame_off_x, - frame_off_y, - frame_colors, - frame_cmap); - } - - g_free (frame_cmap); - } - break; - - case GRAPHIC_CONTROL_EXTENSION: - if (! GIFDecodeGraphicControlExt (io, - &frame_disposal, - &frame_delay, - &frame_transparent)) - { - g_set_error (error, 0, 0, - "Broken or missing graphic control extension"); - goto cleanup; - } - break; - - case COMMENT_EXTENSION: - if (! GIFDecodeCommentExt (io, &comment)) - { - g_set_error (error, 0, 0, - "Broken or missing comment extension"); - goto cleanup; - } - break; - - case UNKNOWN_EXTENSION: - GIFDecodeUnknownExt (io); - break; - - case TERMINATOR: - success = TRUE; - goto cleanup; - } - } - - cleanup: - - if (success && lazy) - movie->duration = duration; - - g_free (cmap); - g_free (buffer); - g_free (frame_buffer); - g_free (gray_buffer); - g_free (comment); - - return success; -} diff --git a/blib-1.1.7/blib/bmovie-gif-parser.h b/blib-1.1.7/blib/bmovie-gif-parser.h deleted file mode 100644 index 7ca3f0a..0000000 --- a/blib-1.1.7/blib/bmovie-gif-parser.h +++ /dev/null @@ -1,34 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_GIF_PARSER_H__ -#define __B_MOVIE_GIF_PARSER_H__ - -G_BEGIN_DECLS - -gboolean b_movie_gif_parse_gif (BMovie *movie, - GIOChannel *io, - gboolean all, - GError **error); - -G_END_DECLS - -#endif /* __B_MOVIE_GIF_PARSER_H__ */ diff --git a/blib-1.1.7/blib/bmovie-gif.c b/blib-1.1.7/blib/bmovie-gif.c deleted file mode 100644 index 7945360..0000000 --- a/blib-1.1.7/blib/bmovie-gif.c +++ /dev/null @@ -1,165 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" -#include "bmovie-gif.h" -#include "bmovie-gif-parser.h" - -#include "gif-save.h" - - -static void b_movie_gif_class_init (BMovieGIFClass *class); -static void b_movie_gif_init (BMovie *movie); - -static gboolean b_movie_gif_load_info (BMovie *movie, - GIOChannel *io, - GError **error); -static gboolean b_movie_gif_load_all (BMovie *movie, - GIOChannel *io, - GError **error); -static gboolean b_movie_gif_save (BMovie *movie, - FILE *stream, - GError **error); - - -static BMovieClass *parent_class = NULL; - - -GType -b_movie_gif_get_type (void) -{ - static GType movie_type = 0; - - if (!movie_type) - { - static const GTypeInfo movie_info = - { - sizeof (BMovieGIFClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_movie_gif_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BMovieGIF), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_movie_gif_init - }; - - movie_type = g_type_register_static (B_TYPE_MOVIE, - "BMovieGIF", - &movie_info, 0); - } - - return movie_type; -} - -static void -b_movie_gif_class_init (BMovieGIFClass *class) -{ - BMovieClass *movie_class; - - parent_class = g_type_class_peek_parent (class); - - movie_class = B_MOVIE_CLASS (class); - - movie_class->load_info = b_movie_gif_load_info; - movie_class->load_all = b_movie_gif_load_all; - movie_class->save = b_movie_gif_save; -} - -static void -b_movie_gif_init (BMovie *movie) -{ - movie->maxval = 255; -} - -static gboolean -b_movie_gif_load_info (BMovie *movie, - GIOChannel *io, - GError **error) -{ - return b_movie_gif_parse_gif (movie, io, TRUE, error); -} - -static gboolean -b_movie_gif_load_all (BMovie *movie, - GIOChannel *io, - GError **error) -{ - return b_movie_gif_parse_gif (movie, io, FALSE, error); -} - -static gboolean -b_movie_gif_save (BMovie *movie, - FILE *stream, - GError **error) -{ - GList *list; - guchar *cmap; - guint i, len; - guint bits; - - g_return_val_if_fail (movie->maxval > 0, FALSE); - - /* calculate bits from movie->maxval */ - for (len = movie->maxval, bits = 0; len; len >>= 1, bits++) - ; - - len = 1 << bits; - cmap = g_new0 (guchar, 3 * len); - - for (i = 0; i <= movie->maxval; i++) - { - guint value = (i * 255) / movie->maxval; - - cmap[i*3 + 0] = value; - cmap[i*3 + 1] = value; - cmap[i*3 + 2] = value; - } - - GIFEncodeHeader (stream, TRUE, movie->width, movie->height, 0, bits, cmap); - - if (movie->loop) - GIFEncodeLoopExt (stream, 0); - - GIFEncodeCommentExt (stream, "Blinkenlights Movie written by blib " VERSION); - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - guchar *data = frame->data; - - GIFEncodeGraphicControlExt (stream, - DISPOSE_REPLACE, frame->duration, TRUE, -1); - GIFEncodeImageData (stream, - movie->width, movie->height, bits, 0, 0, data); - } - - GIFEncodeClose (stream); - - g_free (cmap); - - return TRUE; -} diff --git a/blib-1.1.7/blib/bmovie-gif.h b/blib-1.1.7/blib/bmovie-gif.h deleted file mode 100644 index 9cbcd77..0000000 --- a/blib-1.1.7/blib/bmovie-gif.h +++ /dev/null @@ -1,42 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_GIF_H__ -#define __B_MOVIE_GIF_H__ - -#include "bmovie.h" - -G_BEGIN_DECLS - -#define B_TYPE_MOVIE_GIF (b_movie_gif_get_type ()) -#define B_MOVIE_GIF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MOVIE_GIF, BMovieGIF)) -#define B_MOVIE_GIF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MOVIE_GIF, BMovieGIFClass)) -#define B_IS_MOVIE_GIF(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MOVIE_GIF)) -#define B_IS_MOVIE_GIF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_MOVIE_GIF)) - -typedef struct _BMovieClass BMovieGIFClass; -typedef struct _BMovie BMovieGIF; - -GType b_movie_gif_get_type (void) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __B_MOVIE_GIF_H__ */ diff --git a/blib-1.1.7/blib/bmovie.c b/blib-1.1.7/blib/bmovie.c deleted file mode 100644 index a37eb04..0000000 --- a/blib-1.1.7/blib/bmovie.c +++ /dev/null @@ -1,657 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "btypes.h" -#include "bmovie.h" -#include "bobject.h" -#include "bparser.h" - -/* it's bad style to include our own subclasses, but... */ -#include "bmovie-blm.h" -#include "bmovie-bml.h" -#include "bmovie-gif.h" - - -static void b_movie_class_init (BMovieClass *class); -static void b_movie_init (BMovie *movie); -static void b_movie_finalize (GObject *object); -static void b_movie_finalize_data (BMovie *movie, - gboolean all); -static void b_movie_nullify_data (BMovie *movie, - gboolean all); -static gboolean b_movie_load_info (BMovie *movie, - GIOChannel *io, - GError **error); -static gboolean b_movie_load_all (BMovie *movie, - GIOChannel *io, - GError **error); -static BMovie * b_movie_new_from_io_channel (GIOChannel *io, - const gchar *filename, - const gchar *name, - gboolean lazy, - GError **error); -static GType b_movie_type_from_io_channel(GIOChannel *io, - GError **error); - - -static BObjectClass *parent_class = NULL; - - -GType -b_movie_get_type (void) -{ - static GType movie_type = 0; - - if (!movie_type) - { - static const GTypeInfo movie_info = - { - sizeof (BMovieClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_movie_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BMovie), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_movie_init, - }; - - movie_type = g_type_register_static (B_TYPE_OBJECT, - "BMovie", &movie_info, 0); - } - - return movie_type; -} - -static void -b_movie_class_init (BMovieClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = b_movie_finalize; - - class->load_info = NULL; - class->load_all = NULL; -} - -static void -b_movie_init (BMovie *movie) -{ - movie->width = 0; - movie->height = 0; - movie->maxval = 0; - movie->channels = 1; - - movie->load_count = 0; - - b_movie_nullify_data (movie, TRUE); -} - -static void -b_movie_finalize (GObject *object) -{ - BMovie *movie = B_MOVIE (object); - - b_movie_finalize_data (movie, TRUE); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_movie_finalize_data (BMovie *movie, - gboolean all) -{ - BMovieFrame *frame; - GList *list; - - g_return_if_fail (B_IS_MOVIE (movie)); - - if (all) - { - g_free (movie->title); - g_free (movie->description); - g_free (movie->creator); - g_free (movie->author); - g_free (movie->email); - g_free (movie->url); - } - - for (list = movie->frames; list; list = g_list_next (list)) - { - frame = (BMovieFrame *) list->data; - - g_free (frame->data); - g_free (frame); - } - g_list_free (movie->frames); - - b_movie_nullify_data (movie, all); -} - -static void -b_movie_nullify_data (BMovie *movie, - gboolean all) -{ - movie->duration = 0; - movie->n_frames = 0; - movie->frames = NULL; - - if (all) - { - movie->title = NULL; - movie->description = NULL; - movie->creator = NULL; - movie->author = NULL; - movie->email = NULL; - movie->url = NULL; - movie->loop = FALSE; - } -} - -static gboolean -b_movie_load_info (BMovie *movie, - GIOChannel *io, - GError **error) -{ - if (B_MOVIE_GET_CLASS (movie)->load_info) - return B_MOVIE_GET_CLASS (movie)->load_info (movie, io, error); - - g_warning ("b_movie_load_info() unimplemented"); - return FALSE; -} - -static gboolean -b_movie_load_all (BMovie *movie, - GIOChannel *io, - GError **error) -{ - gboolean success = FALSE; - - b_movie_finalize_data (movie, TRUE); - - if (B_MOVIE_GET_CLASS (movie)->load_all) - success = B_MOVIE_GET_CLASS (movie)->load_all (movie, io, error); - else - g_warning ("b_movie_load_all() unimplemented"); - - if (success) - { - if (movie->n_frames > 0) - { - movie->frames = g_list_reverse (movie->frames); - } - else - { - g_set_error (error, 0, 0, - "Couldn't find any valid frames in the input."); - success = FALSE; - } - } - - return success; -} - -/** - * b_movie_new_from_file: - * @filename: the name of the file to load - * @lazy_load: whether to do lazy-loading, i.e. only load the header - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Tries to load a #BMovie from the file pointed to by @filename. If - * @lazy_load is %TRUE, only the header is loaded and no frames are stored. - * - * Return value: a newly allocated #BMovie object or %NULL if the load - * failed - **/ -BMovie * -b_movie_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error) -{ - BMovie *movie = NULL; - GIOChannel *io; - gchar *name; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - name = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL); - - io = g_io_channel_new_file (filename, "r", error); - if (! io) - return NULL; - - g_io_channel_set_encoding (io, NULL, NULL); - - movie = b_movie_new_from_io_channel (io, filename, name, lazy_load, error); - - g_io_channel_unref (io); - - g_free (name); - - return movie; -} - -/** - * b_movie_new_from_fd: - * @fd: a UNIX file descriptor - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Tries to load a #BMovie from the UNIX file descriptor @fd. Lazy - * loading from file descriptors is not implemented since it doesn't - * seem to make much sense. - * - * Return value: a newly allocated #BMovie object or %NULL if the load - * failed - **/ -BMovie * -b_movie_new_from_fd (gint fd, - GError **error) -{ - BMovie *movie = NULL; - GIOChannel *io; - const gchar *name; - - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (fd == 0) - name = ""; - else - name = ""; - - io = g_io_channel_unix_new (fd); - - g_io_channel_set_encoding (io, NULL, NULL); - - movie = b_movie_new_from_io_channel (io, NULL, name, FALSE, error); - - g_io_channel_unref (io); - - return movie; -} - -/** - * b_movie_load: - * @movie: a #BMovie object - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Assures that the frames of the @movie are loaded. - * - * Return value: %TRUE if the movie was loaded successfully. - **/ -gboolean -b_movie_load (BMovie *movie, - GError **error) -{ - g_return_val_if_fail (B_IS_MOVIE (movie), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (movie->load_count == 0) - { - const gchar *filename; - GIOChannel *io; - gboolean success; - - g_return_val_if_fail (movie->frames == NULL && movie->n_frames == 0, - FALSE); - - filename = b_object_get_filename (B_OBJECT (movie)); - if (!filename) - { - g_set_error (error, 0, 0, - "Cannot load a movie that has no filename"); - return FALSE; - } - - - io = g_io_channel_new_file (filename, "r", error); - if (! io) - return FALSE; - - g_io_channel_set_encoding (io, NULL, NULL); - - success = ((b_movie_type_from_io_channel (io, error) == - G_TYPE_FROM_INSTANCE (movie)) && - b_movie_load_all (movie, io, error)); - - g_io_channel_unref (io); - - if (!success) - return FALSE; - } - - movie->load_count++; - - return TRUE; -} - -/** - * b_movie_unload: - * @movie: a #BMovie object - * - * Unloads the frames of a movie. - * - * The movie object counts how many times you call b_movie_load() and - * b_movie_unload() and only really unloads the frames if - * b_movie_unload() was called as often as b_movie_load(). Note that - * b_movie_new_from_file() and b_movie_new_from_fd() call - * b_movie_load() unless lazy-loading was requested. - **/ -void -b_movie_unload (BMovie *movie) -{ - g_return_if_fail (B_IS_MOVIE (movie)); - g_return_if_fail (movie->load_count > 0); - - movie->load_count--; - - if (movie->load_count == 0) - b_movie_finalize_data (movie, FALSE); -} - -/** - * b_movie_save: - * @movie: a #BMovie object - * @stream: a FILE stream ready for writing - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Saves a #BMovie object to a @stream. - * - * Return value: %TRUE on success or %FALSE otherwise - **/ -gboolean -b_movie_save (BMovie *movie, - FILE *stream, - GError **error) -{ - g_return_val_if_fail (B_IS_MOVIE (movie), FALSE); - g_return_val_if_fail (stream != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - return b_movie_save_as (movie, G_TYPE_FROM_INSTANCE (movie), stream, error); -} - -/** - * b_movie_save_as: - * @movie: a #BMovie object - * @movie_type: the movie type to use for saving - * @stream: a FILE stream ready for writing - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Saves a #BMovie object to a @stream and allows to specify the file - * format to use. - * - * The format is specified by passing a type derived from - * #B_TYPE_MOVIE as @movie_type. At the moment B_TYPE_MOVIE_BML, - * B_TYPE_MOVIE_BLM and B_TYPE_MOVIE_GIF are supported types. - * - * Return value: %TRUE on success or %FALSE otherwise - **/ -gboolean -b_movie_save_as (BMovie *movie, - GType movie_type, - FILE *stream, - GError **error) -{ - BMovieClass *movie_class; - gboolean retval; - - g_return_val_if_fail (B_IS_MOVIE (movie), FALSE); - g_return_val_if_fail (g_type_is_a (movie_type, B_TYPE_MOVIE), FALSE); - g_return_val_if_fail (stream != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (! b_movie_load (movie, error)) - return FALSE; - - movie_class = g_type_class_ref (movie_type); - - retval = B_MOVIE_CLASS (movie_class)->save (movie, stream, error); - - g_type_class_unref (movie_class); - - b_movie_unload (movie); - - return retval; -} - -/** - * b_movie_get_frame_at_time: - * @movie: a loaded #BMovie object - * @seed: an optional GList pointer that can speed up the search - * @time: the time in milliseconds - * - * Looks for the frame active after @time milliseconds. - * - * If you are calling this function subsequentially with increasing - * time values, you can speed up the search by passing the last return - * value as the @seed parameter. - * - * Return value: a GList pointer that has the frame as data or %NULL - * if the time was out of the @movie's range. - **/ -GList * -b_movie_get_frame_at_time (BMovie *movie, - GList *seed, - gint time) -{ - BMovieFrame *frame; - GList *list; - - g_return_val_if_fail (B_IS_MOVIE (movie), FALSE); - - if (!movie->frames) - return NULL; - - list = seed ? seed : movie->frames; - - frame = (BMovieFrame *) list->data; - - while (time > frame->start && list->next) - { - list = list->next; - frame = (BMovieFrame *) list->data; - } - - while (list->prev && time <= frame->start) - { - list = list->prev; - frame = (BMovieFrame *) list->data; - } - - return list; -} - -/** - * b_movie_prepend_frame: - * @movie: - * @duration: - * @data: - * - * This is an internal function used by the movie loaders. It should - * never be called from anywhere else. - **/ -void -b_movie_prepend_frame (BMovie *movie, - gint duration, - const guchar *data) -{ - BMovieFrame *frame; - - g_return_if_fail (B_IS_MOVIE (movie)); - g_return_if_fail (data != NULL); - - frame = g_new (BMovieFrame, 1); - - frame->start = movie->duration; - frame->duration = duration; - frame->data = g_memdup (data, - movie->width * movie->height * movie->channels); - - movie->frames = g_list_prepend (movie->frames, frame); - movie->n_frames++; - movie->duration += duration; -} - -static BMovie * -b_movie_new_from_io_channel (GIOChannel *io, - const gchar *filename, - const gchar *name, - gboolean lazy, - GError **error) -{ - BMovie *movie; - GType movie_type; - gboolean success; - - movie_type = b_movie_type_from_io_channel (io, error); - - if (movie_type == G_TYPE_NONE) - { - if (error && !*error) - g_set_error (error, 0, 0, "Unknown file type"); - return NULL; - } - - movie = B_MOVIE (g_object_new (movie_type, - "filename", filename, - "name", name, - NULL)); - - if (lazy) - { - success = b_movie_load_info (movie, io, error); - } - else - { - success = b_movie_load_all (movie, io, error); - movie->load_count++; - } - - if (!success) - { - g_object_unref (movie); - movie = NULL; - } - - if (movie && !movie->title) - movie->title = g_strdup (b_object_get_name (B_OBJECT (movie))); - - return movie; -} - -static GType -b_movie_type_from_io_channel (GIOChannel *io, - GError **error) -{ - GType movie_type = G_TYPE_NONE; - const gchar *magic = NULL; - gsize magic_len = 1; - gsize len = 0; - gchar buf[1024]; - - for (len = 0; len < sizeof (buf); len++) - { - GIOStatus status; - - status = g_io_channel_read_chars (io, buf + len, 1, NULL, error); - - if (status == G_IO_STATUS_ERROR || status == G_IO_STATUS_EOF) - return G_TYPE_NONE; - - if (movie_type == G_TYPE_NONE) - { - switch (buf[len]) - { - case '#': - movie_type = B_TYPE_MOVIE_BLM; - magic = buf + len + 1; - break; - case '<': - movie_type = B_TYPE_MOVIE_BML; - magic = buf + len; - break; - case 'G': - if (len == 0) - movie_type = B_TYPE_MOVIE_GIF; - break; - } - } - else if (movie_type == B_TYPE_MOVIE_BLM) - { - if (magic_len == 1 && buf[len] == ' ') - magic++; - else - magic_len++; - - if (magic_len == 20) - { - if (g_ascii_strncasecmp (magic, "BlinkenLights Movie", 19)) - return G_TYPE_NONE; - else - return B_TYPE_MOVIE_BLM; - } - } - else if (movie_type == B_TYPE_MOVIE_GIF) - { - if (len < 5) - continue; - - if (len == 5 && - (strncmp (buf, "GIF87a", 6) == 0 || - strncmp (buf, "GIF89a", 6) == 0)) - return B_TYPE_MOVIE_GIF; - - return G_TYPE_NONE; - } - else if (movie_type == B_TYPE_MOVIE_BML) - { - magic_len++; - if (magic_len == 5) - { - if (strncmp (magic, " 6 && buf[len-1] == '?' && buf[len] == '>') - { - gboolean ret; - gchar *encoding = b_parse_encoding (magic, magic_len); - - ret = g_io_channel_set_encoding (io, encoding, error); - g_free (encoding); - - return (ret ? B_TYPE_MOVIE_BML : G_TYPE_NONE); - } - } - } - - return G_TYPE_NONE; -} diff --git a/blib-1.1.7/blib/bmovie.h b/blib-1.1.7/blib/bmovie.h deleted file mode 100644 index 2813076..0000000 --- a/blib-1.1.7/blib/bmovie.h +++ /dev/null @@ -1,126 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_H__ -#define __B_MOVIE_H__ - -#include - -#include - -G_BEGIN_DECLS - -#define B_MOVIE_MIN_DELAY 20 -#define B_MOVIE_DEFAULT_DELAY 100 - -#define B_TYPE_MOVIE (b_movie_get_type ()) -#define B_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MOVIE, BMovie)) -#define B_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MOVIE, BMovieClass)) -#define B_IS_MOVIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MOVIE)) -#define B_IS_MOVIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_MOVIE)) -#define B_MOVIE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_MOVIE, BMovieClass)) - - -typedef struct _BMovieClass BMovieClass; - -struct _BMovieClass -{ - BObjectClass parent_class; - - gboolean (* load_info) (BMovie *movie, - GIOChannel *io, - GError **error); - gboolean (* load_all) (BMovie *movie, - GIOChannel *io, - GError **error); - gboolean (* save) (BMovie *movie, - FILE *stream, - GError **error); -}; - -struct _BMovie -{ - BObject parent_instance; - - gint width; - gint height; - gint channels; - gint maxval; - - /* movie data */ - gint duration; - gint load_count; - gint n_frames; - GList *frames; - - /* meta data */ - gchar *title; - gchar *description; - gchar *creator; - gchar *author; - gchar *email; - gchar *url; - gboolean loop; -}; - - -typedef struct _BMovieFrame BMovieFrame; - -struct _BMovieFrame -{ - gint start; - gint duration; - guchar *data; -}; - - -GType b_movie_get_type (void) G_GNUC_CONST; -BMovie * b_movie_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error); -BMovie * b_movie_new_from_fd (gint fd, - GError **error); - -gboolean b_movie_load (BMovie *movie, - GError **error); -void b_movie_unload (BMovie *movie); - -gboolean b_movie_save (BMovie *movie, - FILE *stream, - GError **error); -gboolean b_movie_save_as (BMovie *movie, - GType movie_type, - FILE *stream, - GError **error); - -GList * b_movie_get_frame_at_time (BMovie *movie, - GList *seed, - gint time); - -/* private, should only be used by movie loaders */ -void b_movie_prepend_frame (BMovie *movie, - gint duration, - const guchar *data); - - -G_END_DECLS - -#endif /* __B_MOVIE_H__ */ diff --git a/blib-1.1.7/blib/bmovieplayer.c b/blib-1.1.7/blib/bmovieplayer.c deleted file mode 100644 index a48bed8..0000000 --- a/blib-1.1.7/blib/bmovieplayer.c +++ /dev/null @@ -1,423 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - + Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include "btypes.h" -#include "bmodule.h" -#include "bmodule-utils.h" -#include "bmovie.h" -#include "bmovieplayer.h" -#include "bparams.h" - - -enum -{ - PROP_0, - PROP_MOVIE, - PROP_REVERSE, - PROP_CLEAR, - PROP_HALIGN, - PROP_VALIGN -}; - -static void b_movie_player_class_init (BMoviePlayerClass *klass); -static void b_movie_player_init (BMoviePlayer *player); -static void b_movie_player_finalize (GObject *object); -static void b_movie_player_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static gboolean b_movie_player_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_movie_player_prepare (BModule *module, - GError **error); -static void b_movie_player_relax (BModule *module); -static void b_movie_player_start (BModule *module); -static gint b_movie_player_tick (BModule *module); -static void b_movie_player_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); -static gint b_movie_player_next_frame (BMoviePlayer *player); -static void b_movie_player_request_stop (BModule *module); -static void - b_movie_player_real_request_stop (BModule *module); - - -static BModuleClass *parent_class = NULL; - - -GType -b_movie_player_get_type (void) -{ - static GType player_type = 0; - - if (! player_type) - { - static const GTypeInfo player_info = - { - sizeof (BMoviePlayerClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_movie_player_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BMoviePlayer), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_movie_player_init, - }; - - player_type = g_type_register_static (B_TYPE_MODULE, - "BMoviePlayer", - &player_info, 0); - } - - return player_type; -} - -static void -b_movie_player_class_init (BMoviePlayerClass *klass) -{ - GObjectClass *object_class; - GParamSpec *param_spec; - BModuleClass *module_class; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->set_property = b_movie_player_set_property; - object_class->finalize = b_movie_player_finalize; - - param_spec = b_param_spec_filename ("movie", NULL, - "The filename of the movie to play.", - NULL, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_MOVIE, param_spec); - - param_spec = g_param_spec_boolean ("reverse", NULL, - "Allows to play the movie backwards.", - FALSE, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_REVERSE, param_spec); - - param_spec = g_param_spec_boolean ("clear", NULL, - "Clear the screen before starting.", - TRUE, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_CLEAR, param_spec); - - param_spec = g_param_spec_double ("h-align", NULL, - "Horizontal alignment on the screen.", - 0.0, 1.0, 0.5, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_HALIGN, param_spec); - - param_spec = g_param_spec_double ("v-align", NULL, - "Vertical alignment on the screen.", - 0.0, 1.0, 0.5, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_VALIGN, param_spec); - - module_class->query = b_movie_player_query; - module_class->prepare = b_movie_player_prepare; - module_class->relax = b_movie_player_relax; - module_class->start = b_movie_player_start; - module_class->tick = b_movie_player_tick; - module_class->describe = b_movie_player_describe; - - klass->request_stop = b_movie_player_real_request_stop; -} - -static void -b_movie_player_init (BMoviePlayer *player) -{ - player->current = NULL; -} - -static void -b_movie_player_finalize (GObject *object) -{ - BMoviePlayer *player; - - player = B_MOVIE_PLAYER (object); - - if (player->movie) - { - g_object_unref (G_OBJECT (player->movie)); - player->movie = NULL; - } - if (player->filename) - { - g_free (player->filename); - player->filename = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_movie_player_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BMoviePlayer *player = B_MOVIE_PLAYER (object); - - switch (property_id) - { - case PROP_MOVIE: - if (player->movie) - { - g_object_unref (player->movie); - player->movie = NULL; - player->current = NULL; - } - - if (player->filename) - g_free (player->filename); - - player->filename = g_value_dup_string (value); - break; - - case PROP_REVERSE: - player->reverse = g_value_get_boolean (value); - break; - - case PROP_CLEAR: - player->clear = g_value_get_boolean (value); - break; - - case PROP_HALIGN: - player->halign = g_value_get_double (value); - break; - - case PROP_VALIGN: - player->valign = g_value_get_double (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static gboolean -b_movie_player_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 0 && channels == 1 && maxval == 255); -} - -static gboolean -b_movie_player_prepare (BModule *module, - GError **error) -{ - BMoviePlayer *player = B_MOVIE_PLAYER (module); - - if (!player->filename) - { - g_set_error (error, 0, 0, "No movie configured."); - return FALSE; - } - - player->current = NULL; - - if (player->movie) - g_object_unref (player->movie); - - player->movie = b_movie_new_from_file (player->filename, FALSE, error); - if (!player->movie) - { - if (error && *error) - { - gchar *tmp = g_strdup_printf ("movie '%s': %s", - player->filename, (*error)->message); - - g_free ((*error)->message); - (*error)->message = tmp; - } - - return FALSE; - } - - if (module->channels != player->movie->channels) - { - g_object_unref (player->movie); - player->movie = NULL; - - g_set_error (error, 0, 0, - "Can't handle movie '%s' with more than one channel.", - player->filename); - return FALSE; - } - - player->xoffset = - (gdouble)(module->width - player->movie->width) * player->halign; - player->yoffset = - (gdouble)(module->height - player->movie->height) * player->valign; - - return TRUE; -} - -static void -b_movie_player_relax (BModule *module) -{ - BMoviePlayer *player = B_MOVIE_PLAYER (module); - - if (player->movie) - { - g_object_unref (player->movie); - player->movie = NULL; - } - - player->current = NULL; -} - -static void -b_movie_player_start (BModule *module) -{ - BMoviePlayer *player = B_MOVIE_PLAYER (module); - gint timeout; - - if (player->clear) - b_module_fill (module, 0); - - timeout = b_movie_player_next_frame (player); - - if (timeout > 0) - b_module_ticker_start (module, timeout); -} - -static gint -b_movie_player_tick (BModule *module) -{ - return b_movie_player_next_frame (B_MOVIE_PLAYER (module)); -} - -static void -b_movie_player_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - BMoviePlayer *player = B_MOVIE_PLAYER (module); - BMovie *movie = player->movie; - - if (movie) - { - *title = (movie->title ? - movie->title : b_object_get_name (B_OBJECT (movie))); - *description = movie->description; - *author = movie->author; - } - else - { - B_MODULE_CLASS (parent_class)->describe (module, - title, description, author); - } -} - -static gint -b_movie_player_next_frame (BMoviePlayer *player) -{ - BMovieFrame *frame; - BModule *module; - - do - { - if (player->current) - { - if (player->reverse) - player->current = g_list_previous (player->current); - else - player->current = g_list_next (player->current); - } - else if (player->movie) - { - if (player->reverse) - player->current = g_list_last (player->movie->frames); - else - player->current = g_list_first (player->movie->frames); - } - - if (! player->current) /* movie finished */ - { - b_movie_player_request_stop (B_MODULE (player)); - return 0; - } - - frame = (BMovieFrame *) player->current->data; - } - while (frame->duration <= 0); - - module = B_MODULE (player); - - { - BMovie *movie = B_MOVIE (player->movie); - guchar *s, *d = module->buffer; - gint max = movie->maxval; - gint x, y; - - for (y = 0; y < module->height; y++, d += module->width) - { - if (y - player->yoffset < 0 || y - player->yoffset >= movie->height) - continue; - - s = frame->data + (y - player->yoffset) * movie->width; - - for (x = 0; x < module->width; x++) - { - if (x - player->xoffset < 0 || x - player->xoffset >= movie->width) - continue; - - if (max == 255) - d[x] = s[x - player->xoffset]; - else - d[x] = ((gint) (s[x - player->xoffset]) * 255) / max; - } - } - } - - b_module_paint (module); - - return frame->duration; -} - -static void -b_movie_player_request_stop (BModule *module) -{ - B_MOVIE_PLAYER_GET_CLASS (module)->request_stop (module); -} - -static void -b_movie_player_real_request_stop (BModule *module) -{ - b_module_request_stop (module); -} diff --git a/blib-1.1.7/blib/bmovieplayer.h b/blib-1.1.7/blib/bmovieplayer.h deleted file mode 100644 index a81ba16..0000000 --- a/blib-1.1.7/blib/bmovieplayer.h +++ /dev/null @@ -1,64 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Michael Natterer - * - * 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. - */ - -#ifndef __B_MOVIE_PLAYER_H__ -#define __B_MOVIE_PLAYER_H__ - -G_BEGIN_DECLS - - -#define B_TYPE_MOVIE_PLAYER (b_movie_player_get_type ()) -#define B_MOVIE_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MOVIE_PLAYER, BMoviePlayer)) -#define B_MOVIE_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MOVIE_PLAYER, BMoviePlayerClass)) -#define B_IS_MOVIE_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MOVIE_PLAYER)) -#define B_IS_MOVIE_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_MOVIE_PLAYER)) -#define B_MOVIE_PLAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_MOVIE_PLAYER, BMoviePlayerClass)) - -typedef struct _BMoviePlayerClass BMoviePlayerClass; - -struct _BMoviePlayer -{ - BModule parent_instance; - - BMovie *movie; - GList *current; - - gchar *filename; - gboolean reverse; - - gboolean clear; - gdouble halign; - gdouble valign; - gint xoffset; - gint yoffset; -}; - -struct _BMoviePlayerClass -{ - BModuleClass parent_class; - - void (* request_stop) (BModule *module); -}; - -GType b_movie_player_get_type (void) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __B_MOVIE_PLAYER_H__ */ diff --git a/blib-1.1.7/blib/bobject.c b/blib-1.1.7/blib/bobject.c deleted file mode 100644 index cbbdd6c..0000000 --- a/blib-1.1.7/blib/bobject.c +++ /dev/null @@ -1,246 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" -#include "bobject.h" - -enum -{ - PROP_0, - PROP_FILENAME, - PROP_NAME -}; - - -static void b_object_class_init (BObjectClass *class); -static void b_object_init (BObject *object); -static void b_object_finalize (GObject *object); -static void b_object_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static void b_object_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec); - - -static GObjectClass *parent_class = NULL; - - -GType -b_object_get_type (void) -{ - static GType object_type = 0; - - if (!object_type) - { - static const GTypeInfo object_info = - { - sizeof (BObjectClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_object_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BObject), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_object_init, - }; - - object_type = g_type_register_static (G_TYPE_OBJECT, - "BObject", &object_info, 0); - } - - return object_type; -} - -static void -b_object_class_init (BObjectClass *class) -{ - GObjectClass *object_class; - GParamSpec *param_spec; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - - object_class->set_property = b_object_set_property; - object_class->get_property = b_object_get_property; - object_class->finalize = b_object_finalize; - - param_spec = g_param_spec_string ("filename", NULL, - "The filename associated with the object. " - "This is a string in the filesystems's " - "encoding.", - NULL, - G_PARAM_READWRITE); - g_object_class_install_property (object_class, PROP_FILENAME, param_spec); - - param_spec = g_param_spec_string ("name", NULL, - "The name associated with the object. " - "This is a string in UTF-8 encoding.", - NULL, - G_PARAM_READWRITE); - g_object_class_install_property (object_class, PROP_NAME, param_spec); -} - -static void -b_object_init (BObject *object) -{ - object->filename = NULL; - object->name = NULL; -} - -static void -b_object_finalize (GObject *object) -{ - BObject *bobject; - - bobject = B_OBJECT (object); - - g_free (bobject->filename); - g_free (bobject->name); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_object_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - switch (property_id) - { - case PROP_FILENAME: - b_object_set_filename (B_OBJECT (object), g_value_get_string (value)); - break; - case PROP_NAME: - b_object_set_name (B_OBJECT (object), g_value_get_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -b_object_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - switch (property_id) - { - case PROP_FILENAME: - g_value_set_string (value, B_OBJECT (object)->filename); - break; - case PROP_NAME: - g_value_set_string (value, B_OBJECT (object)->name); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -/** - * b_object_set_filename: - * @object: a #BObject. - * @filename: the new filename, a nul-terminated string in the filesystem's - * encoding. - * - * Sets the filename associated with @object. - **/ -void -b_object_set_filename (BObject *object, - const gchar *filename) -{ - g_return_if_fail (B_IS_OBJECT (object)); - - g_free (object->filename); - object->filename = g_strdup (filename); - - g_object_notify (G_OBJECT (object), "filename"); -} - -/** - * b_object_set_name: - * @object: a #BObject. - * @name: the new name, a nul-terminated string in UTF-8 encoding. - * - * Sets the name associated with @object. - **/ -void -b_object_set_name (BObject *object, - const gchar *name) -{ - g_return_if_fail (B_IS_OBJECT (object)); - g_return_if_fail (g_utf8_validate (name, -1, NULL)); - - g_free (object->name); - object->name = g_strdup (name); - - g_object_notify (G_OBJECT (object), "name"); -} - -/** - * b_object_get_filename: - * @object: a #BObject. - * - * This functions retrieves the filename associated with @object. The - * returned value must not be freed. - * - * Return value: the fileanme or %NULL if no filename was set for @object. - **/ -const gchar * -b_object_get_filename (BObject *object) -{ - g_return_val_if_fail (B_IS_OBJECT (object), NULL); - - return object->filename; -} - -/** - * b_object_get_name: - * @object: a #BObject. - * - * This functions retrieves the name associated with @object. If no - * name has been set for @object, the name is generated from the - * @object's filename. The returned value must not be freed. - * - * Return value: the name or %NULL if no name and no filename was set - * for @object. - **/ -const gchar * -b_object_get_name (BObject *object) -{ - g_return_val_if_fail (B_IS_OBJECT (object), NULL); - - if (!object->name && object->filename) - object->name = g_filename_to_utf8 (object->filename, -1, NULL, NULL, NULL); - - return object->name; -} diff --git a/blib-1.1.7/blib/bobject.h b/blib-1.1.7/blib/bobject.h deleted file mode 100644 index 8cdeed5..0000000 --- a/blib-1.1.7/blib/bobject.h +++ /dev/null @@ -1,63 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * - * 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. - */ - -#ifndef __B_OBJECT_H__ -#define __B_OBJECT_H__ - -G_BEGIN_DECLS - -#define B_TYPE_OBJECT (b_object_get_type ()) -#define B_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_OBJECT, BObject)) -#define B_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_OBJECT, BObjectClass)) -#define B_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_OBJECT)) -#define B_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_OBJECT)) -#define B_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_OBJECT, BObjectClass)) - - -typedef struct _BObjectClass BObjectClass; - -struct _BObjectClass -{ - GObjectClass parent_class; -}; - -struct _BObject -{ - GObject parent_instance; - - gchar *filename; /* in filesystem encoding */ - gchar *name; /* UTF-8 encoded, defaults to converted filename */ -}; - - -GType b_object_get_type (void) G_GNUC_CONST; - -void b_object_set_filename (BObject *object, - const gchar *filename); -void b_object_set_name (BObject *object, - const gchar *name); - -const gchar * b_object_get_filename (BObject *object); -const gchar * b_object_get_name (BObject *object); - -G_END_DECLS - -#endif /* __B_OBJECT_H__ */ diff --git a/blib-1.1.7/blib/bpacket.c b/blib-1.1.7/blib/bpacket.c deleted file mode 100644 index 7e7211f..0000000 --- a/blib-1.1.7/blib/bpacket.c +++ /dev/null @@ -1,181 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" -#include "bpacket.h" - - -/** - * b_packet_new: - * @width: the number of pixels per row - * @height: the number of pixels per column - * @channels: the number of channels per pixels - * @maxval: the maximum value - * @data_size: returns the size of the packet data - * - * Allocates a new #BPacket structure and initializes it with the - * given values. If @data_size is non-NULL the size of the data area - * (in bytes) is returned via this variable. - * - * The packet should be freed with g_free() when it is not needed any - * longer. - * - * Return value: a newly allocated #BPacket. - **/ -BPacket * -b_packet_new (gint width, - gint height, - gint channels, - gint maxval, - gint *data_size) -{ - BPacket *packet; - gint size; - - g_return_val_if_fail (width > 0, NULL); - g_return_val_if_fail (height > 0, NULL); - g_return_val_if_fail (channels > 0, NULL); - g_return_val_if_fail (maxval > 0 && maxval <= 255, NULL); - - size = width * height * channels; - - packet = (BPacket *) g_new0 (guchar, sizeof (BPacket) + size); - - packet->header.mcu_frame_h.magic = MAGIC_MCU_FRAME; - packet->header.mcu_frame_h.width = width; - packet->header.mcu_frame_h.height = height; - packet->header.mcu_frame_h.channels = channels; - packet->header.mcu_frame_h.maxval = maxval; - - if (data_size) - *data_size = size; - - return packet; -} - -gsize -b_packet_size (BPacket *packet) -{ - guint32 *magic; - - g_return_val_if_fail (packet != NULL, 0); - - magic = (guint32 *) packet; - - switch (*magic) - { - case MAGIC_MCU_FRAME: - { - mcu_frame_header_t *header = &packet->header.mcu_frame_h; - - return (sizeof (BPacket) + - header->width * header->height * header->channels); - } - - default: - return (sizeof (BPacket)); - } -} - - -/* byte order conversions */ - -/** - * b_packet_hton: - * @packet: pointer to a #BPacket - * - * Converts all members of @packet from host to network byteorder. - **/ -void -b_packet_hton (BPacket *packet) -{ - guint32 *magic = (guint32 *) packet; - - switch (*magic) - { - case MAGIC_MCU_FRAME: - { - mcu_frame_header_t *header = &packet->header.mcu_frame_h; - - header->magic = g_htonl (header->magic); - header->width = g_htons (header->width); - header->height = g_htons (header->height); - header->channels = g_htons (header->channels); - header->maxval = g_htons (header->maxval); - } - break; - - case MAGIC_HEARTBEAT: - { - heartbeat_header_t *header = &packet->header.heartbeat_h; - - header->magic = g_htonl (header->magic); - header->version = g_htons (header->version); - } - break; - - default: - *magic = g_htonl (magic); - break; - } -} - -/** - * b_packet_ntoh: - * @packet: pointer to a #BPacket - * - * Converts all members of @packet from network to host byteorder. - **/ -void -b_packet_ntoh (BPacket *packet) -{ - guint32 *magic = (guint32 *) packet; - - *magic = g_ntohl (*magic); - - switch (*magic) - { - case MAGIC_MCU_FRAME: - { - mcu_frame_header_t *header = &packet->header.mcu_frame_h; - - header->width = g_ntohs (header->width); - header->height = g_ntohs (header->height); - header->channels = g_ntohs (header->channels); - header->maxval = g_ntohs (header->maxval); - } - break; - - case MAGIC_HEARTBEAT: - { - heartbeat_header_t *header = &packet->header.heartbeat_h; - - header->version = g_ntohs (header->version); - } - break; - - default: - break; - } -} diff --git a/blib-1.1.7/blib/bpacket.h b/blib-1.1.7/blib/bpacket.h deleted file mode 100644 index f837c3b..0000000 --- a/blib-1.1.7/blib/bpacket.h +++ /dev/null @@ -1,52 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __B_PACKET_H__ -#define __B_PACKET_H__ - -#include "blib/bprotocol.h" - -G_BEGIN_DECLS - -typedef union _BPacketHeader BPacketHeader; - -union _BPacketHeader -{ - mcu_frame_header_t mcu_frame_h; - heartbeat_header_t heartbeat_h; -}; - -struct _BPacket -{ - BPacketHeader header; - guchar data[0]; -}; - -BPacket * b_packet_new (gint width, - gint height, - gint channels, - gint maxval, - gint *data_size); -gsize b_packet_size (BPacket *packet); -void b_packet_hton (BPacket *packet); -void b_packet_ntoh (BPacket *packet); - -G_END_DECLS - -#endif /* __B_PACKET_H__ */ diff --git a/blib-1.1.7/blib/bparams.c b/blib-1.1.7/blib/bparams.c deleted file mode 100644 index b153638..0000000 --- a/blib-1.1.7/blib/bparams.c +++ /dev/null @@ -1,87 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" -#include "bparams.h" - -static void b_param_filename_class_init (GParamSpecClass *class); - -GType -b_param_filename_get_type (void) -{ - static GType spec_type = 0; - - if (!spec_type) - { - static const GTypeInfo type_info = - { - sizeof (GParamSpecClass), - NULL, NULL, - (GClassInitFunc) b_param_filename_class_init, - NULL, NULL, - sizeof (GParamSpecString), - 0, NULL, NULL - }; - - spec_type = g_type_register_static (G_TYPE_PARAM_STRING, - "BParamFilename", &type_info, 0); - } - - return spec_type; -} - -static void -b_param_filename_class_init (GParamSpecClass *class) -{ - class->value_type = B_TYPE_FILENAME; -} - -/** - * b_param_spec_filename: - * @name: the property name - * @nick: an optional short version of the name - * @blurb: an optional description - * @default_value: the default value (may be %NULL) - * @flags: the #GParamFlags for this param_spec - * - * Creates a new #GParamSpec for a #B_TYPE_FILENAME property. - * - * Return value: the newly allocate #GParamSpec. - **/ -GParamSpec * -b_param_spec_filename (const gchar *name, - const gchar *nick, - const gchar *blurb, - gchar *default_value, - GParamFlags flags) -{ - GParamSpecString *pspec; - - pspec = g_param_spec_internal (B_TYPE_PARAM_FILENAME, - name, nick, blurb, flags); - - pspec->default_value = default_value; - - return G_PARAM_SPEC (pspec); -} diff --git a/blib-1.1.7/blib/bparams.h b/blib-1.1.7/blib/bparams.h deleted file mode 100644 index cacf4d6..0000000 --- a/blib-1.1.7/blib/bparams.h +++ /dev/null @@ -1,33 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __B_PARAMS_H__ -#define __B_PARAMS_H__ - -#define B_TYPE_PARAM_FILENAME (b_param_filename_get_type ()) -#define B_IS_PARAM_SPEC_FILENAME(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), B_TYPE_PARAM_FILENAME)) - -GType b_param_filename_get_type (void) G_GNUC_CONST; -GParamSpec * b_param_spec_filename (const gchar *name, - const gchar *nick, - const gchar *blurb, - gchar *default_value, - GParamFlags flags); - -#endif /* __B_PARAMS_H__ */ diff --git a/blib-1.1.7/blib/bparser.c b/blib-1.1.7/blib/bparser.c deleted file mode 100644 index f2ca07f..0000000 --- a/blib-1.1.7/blib/bparser.c +++ /dev/null @@ -1,466 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include - -#include "btypes.h" -#include "bparser.h" - - -struct _BParser -{ - GMarkupParseContext *context; - BParserState state; - BParserState last_state; - gint unknown_depth; - GString *cdata; - gpointer user_data; - BParserStartFunc start_element; - BParserEndFunc end_element; -}; - - -static void parser_start_element (GMarkupParseContext *context, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); -static void parser_end_element (GMarkupParseContext *context, - const gchar *element_name, - gpointer user_data, - GError **error); -static void parser_text (GMarkupParseContext *context, - const gchar *text, - gsize text_len, - gpointer user_data, - GError **error); -static void parser_start_unknown (BParser *parser); -static void parser_end_unknown (BParser *parser); - - -static const GMarkupParser markup_parser = -{ - parser_start_element, - parser_end_element, - parser_text, - NULL, /* passthrough */ - NULL, /* error */ -}; - - -/** - * b_parser_new: - * @start_element: the function to call when an element is started - * @end_element: the function to call when an element is closed - * @user_data: data to pass to the functions above - * - * Creates a new #BParser suited to parse XML files. The #BParser - * should later be freed using b_parser_free(). - * - * Return value: a newly allocated #BParser - **/ -BParser * -b_parser_new (BParserStartFunc start_element, - BParserEndFunc end_element, - gpointer user_data) -{ - BParser *parser; - - parser = g_new0 (BParser, 1); - - parser->context = g_markup_parse_context_new (&markup_parser, - 0, parser, NULL); - - parser->state = B_PARSER_STATE_TOPLEVEL; - parser->cdata = g_string_new (NULL); - parser->user_data = user_data; - - parser->start_element = start_element; - parser->end_element = end_element; - - return parser; -} - -/** - * b_parser_parse: - * @parser: a #BParser - * @text: pointer to a text buffer to parse - * @text_len: the number of bytes to parse from @text - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Let the @parser process a chunk of @text. You need to call - * b_parser_end_parse() after you passed the last chunk to the @parser. - * - * Return value: %TRUE if parsing was successful, %FALSE if an error occured - **/ -gboolean -b_parser_parse (BParser *parser, - const gchar *text, - gssize text_len, - GError **error) -{ - g_return_val_if_fail (parser != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - return g_markup_parse_context_parse (parser->context, text, text_len, error); -} - -/** - * b_parser_end_parse: - * @parser: a #BParser - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Finishes the @parser. After calling this function, you must not - * call b_parser_parse() on the parser again. - * - * Return value: %TRUE if @parser was successfully finished, %FALSE - * otherwise - **/ -gboolean -b_parser_end_parse (BParser *parser, - GError **error) -{ - g_return_val_if_fail (parser != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - return g_markup_parse_context_end_parse (parser->context, error); -} - -/** - * b_parser_parse_io_channel: - * @parser: a #BParser - * @io: a #GIOChannel to read the text to parse from - * @recode: %TRUE if you want the parser to do automatic encoding conversion - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Reads data from the #GIOChannel @io and passes it to @parser. If - * @recode is TRUE, the data should start with an XML header so this - * function can determine the encoding of the XML data and convert it - * to UTF-8 for you. - * - * Return value: %TRUE if parsing was successful, %FALSE otherwise - **/ -gboolean -b_parser_parse_io_channel (BParser *parser, - GIOChannel *io, - gboolean recode, - GError **error) -{ - GIOStatus status; - guchar buffer[8192]; - gsize len = 0; - gsize bytes; - - g_return_val_if_fail (parser != NULL, FALSE); - g_return_val_if_fail (io != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (recode) - { - const gchar *io_encoding = g_io_channel_get_encoding (io); - gchar *encoding = NULL; - - if (io_encoding && strcmp (io_encoding, "UTF-8")) - { - g_warning ("b_parser_parse_io_channel(): " - "The encoding has already been set on this IOChannel!"); - return FALSE; - } - - /* try to determine the encoding */ - - g_io_channel_set_encoding (io, NULL, NULL); - - while (len < sizeof (buffer) && !encoding) - { - status = g_io_channel_read_chars (io, - buffer + len, 1, &bytes, error); - len += bytes; - - if (status == G_IO_STATUS_ERROR) - return FALSE; - if (status == G_IO_STATUS_EOF) - break; - - encoding = b_parse_encoding (buffer, len); - } - - if (encoding) - { - if (!g_io_channel_set_encoding (io, encoding, error)) - return FALSE; - - g_free (encoding); - } - else - { - g_io_channel_set_encoding (io, "UTF-8", NULL); - } - } - - while (TRUE) - { - if (!b_parser_parse (parser, buffer, len, error)) - return FALSE; - - status = g_io_channel_read_chars (io, - buffer, sizeof(buffer), &len, error); - - switch (status) - { - case G_IO_STATUS_ERROR: - return FALSE; - case G_IO_STATUS_EOF: - return b_parser_end_parse (parser, error); - case G_IO_STATUS_NORMAL: - case G_IO_STATUS_AGAIN: - break; - } - } -} - -/** - * b_parser_free: - * @parser: a #BParser - * - * Frees the resources allocated for @parser. You must not access - * @parser after calling this function. - **/ -void -b_parser_free (BParser *parser) -{ - g_return_if_fail (parser != NULL); - - g_markup_parse_context_free (parser->context); - - g_string_free (parser->cdata, TRUE); - g_free (parser); -} - -/** - * b_parser_get_state: - * @parser: a #BParser - * - * Retrieves the current state of @parser. - * - * Return value: the state of @parser - **/ -BParserState -b_parser_get_state (BParser *parser) -{ - g_return_val_if_fail (parser != NULL, B_PARSER_STATE_UNKNOWN); - - return parser->state; -} - -static void -parser_start_element (GMarkupParseContext *context, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error) -{ - BParserState new_state; - BParser *parser = (BParser *) user_data; - - switch (parser->state) - { - case B_PARSER_STATE_TOPLEVEL: - default: - if (parser->start_element && - (new_state = parser->start_element (parser->state, - element_name, - attribute_names, - attribute_values, - parser->user_data, - error))) - { - parser->last_state = parser->state; - parser->state = new_state; - break; - } - /* else fallthru */ - case B_PARSER_STATE_UNKNOWN: - parser_start_unknown (parser); - break; - } - - g_string_truncate (parser->cdata, 0); -} - -static void -parser_end_element (GMarkupParseContext *context, - const gchar *element_name, - gpointer user_data, - GError **error) -{ - BParser *parser = (BParser *) user_data; - - switch (parser->state) - { - case B_PARSER_STATE_TOPLEVEL: - g_assert_not_reached (); - break; - - default: - if (parser->end_element) - { - gint len; - - /* strip trailing spaces */ - for (len = parser->cdata->len; - len > 0 && g_ascii_isspace (parser->cdata->str[len-1]); - len--) - ; /* do nothing */ - - g_string_truncate (parser->cdata, len); - - parser->state = parser->end_element (parser->state, - element_name, - parser->cdata->str, - parser->cdata->len, - parser->user_data, - error); - break; - } - /* else fallthru */ - case B_PARSER_STATE_UNKNOWN: - parser_end_unknown (parser); - break; - } - - g_string_truncate (parser->cdata, 0); -} - -static void -parser_text (GMarkupParseContext *context, - const gchar *text, - gsize text_len, - gpointer user_data, - GError **error) -{ - BParser *parser = (BParser *) user_data; - gboolean space; - gint i; - - space = (parser->cdata->len == 0 || - g_ascii_isspace (parser->cdata->str[parser->cdata->len])); - - for (i = 0; i < text_len; i++) - { - if (g_ascii_isspace (text[i])) - { - if (space) - continue; - space = TRUE; - } - else - { - space = FALSE; - } - - g_string_append_c (parser->cdata, text[i]); - } -} - -static void -parser_start_unknown (BParser *parser) -{ - if (parser->unknown_depth == 0) - { - parser->last_state = parser->state; - parser->state = B_PARSER_STATE_UNKNOWN; - } - - parser->unknown_depth++; -} - -static void -parser_end_unknown (BParser *parser) -{ - parser->unknown_depth--; - - if (parser->unknown_depth == 0) - parser->state = parser->last_state; -} - -/** - * b_parse_encoding: - * @text: a string to parse, must be at least 20 bytes - * @text_len: the maximum number of bytes to parse from @text - * - * Scans the @text for an XML header with encoding specification. - * - * Return value: a copy of the encoding string or %NULL if none was - * found - **/ -gchar * -b_parse_encoding (const gchar *text, - gint text_len) -{ - const gchar *start; - const gchar *end; - gint i; - - g_return_val_if_fail (text, NULL); - - if (text_len < 20) - return NULL; - - start = g_strstr_len (text, text_len, ""); - if (!end) - return NULL; - - text_len = end - start; - if (text_len < 12) - return NULL; - - start = g_strstr_len (start + 1, text_len - 1, "encoding="); - if (!start) - return NULL; - - start += 9; - if (*start != '\"' && *start != '\'') - return NULL; - - text_len = end - start; - if (text_len < 1) - return NULL; - - for (i = 1; i < text_len; i++) - if (start[i] == start[0]) - break; - - if (i == text_len || i < 3) - return NULL; - - return g_strndup (start + 1, i - 1); -} diff --git a/blib-1.1.7/blib/bparser.h b/blib-1.1.7/blib/bparser.h deleted file mode 100644 index 6afc35b..0000000 --- a/blib-1.1.7/blib/bparser.h +++ /dev/null @@ -1,79 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_PARSER_H__ -#define __B_PARSER_H__ - -G_BEGIN_DECLS - -typedef enum -{ - B_PARSER_STATE_UNKNOWN, - B_PARSER_STATE_TOPLEVEL, - B_PARSER_STATE_USER = 0x10 /* first user state, use as many as you need */ -} BParserState; - - -/* Called for open tags , returns the new state or - B_PARSER_STATE_UNKNOWN if it couldn't handle the tag. */ -typedef BParserState (* BParserStartFunc) (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); - /* Called for close tags , returns the new state. */ -typedef BParserState (* BParserEndFunc) (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); - - - -BParser *b_parser_new (BParserStartFunc start_element, - BParserEndFunc end_element, - gpointer user_data); -void b_parser_free (BParser *parser); - -/* chunk parsing API */ -gboolean b_parser_parse (BParser *parser, - const gchar *text, - gssize text_len, - GError **error); -gboolean b_parser_end_parse (BParser *parser, - GError **error); - -/* convenience function for IO channels */ -gboolean b_parser_parse_io_channel (BParser *parser, - GIOChannel *io, - gboolean recode, - GError **error); - -BParserState b_parser_get_state (BParser *parser); - -/* parses an XML header */ -gchar * b_parse_encoding (const gchar *text, - gint text_len); - -G_END_DECLS - -#endif /* __B_PARSER_H__ */ diff --git a/blib-1.1.7/blib/bprotocol.h b/blib-1.1.7/blib/bprotocol.h deleted file mode 100644 index b6d45b3..0000000 --- a/blib-1.1.7/blib/bprotocol.h +++ /dev/null @@ -1,151 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2003 The Blinkenlights Crew - * Tim Pritlove - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - -#ifndef __B_PROTOCOL_H__ -#define __B_PROTOCOL_H__ - -#define MAGIC_MCU_SETUP 0x2342FEED /* MCU Configuration packet */ -#define MAGIC_MCU_FRAME 0x23542666 /* MCU Frame packet */ -#define MAGIC_MCU_DEVCTRL 0x23542667 /* MCU Device Control packet */ - -#define MAGIC_BLFRAME 0xDEADBEEF /* Original BL Frame Packet */ -#define MAGIC_BLFRAME_256 0xFEEDBEEF /* Extendend BL Frame Packet (Greyscale) */ - -#define MAGIC_HEARTBEAT 0x42424242 /* Heartbeat packet */ - -#define MCU_LISTENER_PORT 2323 -#define MCU_ID_ANY -1 - -#define B_HEARTBEAT_PORT 4242 -#define B_HEARTBEAT_INTERVAL 5000 /* Heartbeat interval in ms */ - -/***********************************************************/ - -/* - * Legacy Blinkenlights bl_frame format - */ - -typedef struct bl_frame_header bl_frame_header_t; - -struct bl_frame_header -{ - guint32 frame_magic; /* == MAGIC_BLFRAME */ - guint32 frame_count; - guint16 frame_width; - guint16 frame_height; - /* - * followed by - * unsigned char data[rows][columns]; - */ -}; - -/***********************************************************/ - -/* - * MCU Frame packet - */ - -typedef struct mcu_frame_header mcu_frame_header_t; - -struct mcu_frame_header -{ - guint32 magic; /* == MAGIC_MCU_FRAME */ - guint16 height; /* rows */ - guint16 width; /* columns */ - guint16 channels; /* Number of channels (mono/grey: 1, rgb: 3) */ - guint16 maxval; /* maximum pixel value (only 8 bits used) */ - /* - * followed by - * unsigned char data[rows][columns][channels]; - */ -}; - - -/* - * MCU Setup packet - */ - -typedef struct mcu_setup_pixel mcu_setup_pixel_t; - -struct mcu_setup_pixel -{ - unsigned char row; - unsigned char column; -}; - - -typedef struct mcu_setup_header mcu_setup_header_t; - -struct mcu_setup_header -{ - guint32 magic; /* == MAGIC_MCU_SETUP */ - - char mcu_id; /* target MCU id ( -1 = any) */ - unsigned char _reserved[3]; /* padding */ - - guint16 height; - guint16 width; - guint16 channels; - - guint16 pixels; /* number of ports used (starting from 0) */ - /* - * followed by - * mcu_setup_pixel_t pixel[pixels]; - */ -}; - - -/* - * MCU Device Control packet - */ - -#define MCU_DEVCTRL_OFF 0 /* switch device off */ -#define MCU_DEVCTRL_ON 1 /* switch device on */ - -typedef struct mcu_devctrl_header mcu_devctrl_header_t; - -struct mcu_devctrl_header -{ - guint32 magic; /* == MAGIC_MCU_DEVCTRL */ - guint16 pixels; /* number of pixels used (starting from 0) */ - guint16 _reserved; /* 32 bit padding */ - /* - * followed by - * unsigned char control[pixels]; - */ -}; - -/* - * Heartbeat Packet - */ - -typedef struct heartbeat_header heartbeat_header_t; - -struct heartbeat_header -{ - guint32 magic; /* == MAGIC_HEARTBEAT */ - guint16 version; /* hearbeat protocol version number (0) */ -}; - - -#endif /* __B_PROTOCOL_H__ */ diff --git a/blib-1.1.7/blib/bproxyclient.c b/blib-1.1.7/blib/bproxyclient.c deleted file mode 100644 index cd3348f..0000000 --- a/blib-1.1.7/blib/bproxyclient.c +++ /dev/null @@ -1,233 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2003 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include - -#ifdef G_OS_WIN32 -#include -#else -#include -#include -#include -#include -#endif - -#include "btypes.h" -#include "bpacket.h" -#include "bproxyclient.h" -#include "breceiver.h" -#include "bsocket.h" - - -static void b_proxy_client_class_init (BProxyClientClass *class); -static void b_proxy_client_init (BProxyClient *client); -static void b_proxy_client_finalize (GObject *object); - - -static GObjectClass *parent_class = NULL; - - -GType -b_proxy_client_get_type (void) -{ - static GType client_type = 0; - - if (!client_type) - { - static const GTypeInfo client_info = - { - sizeof (BProxyClientClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_proxy_client_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BProxyClient), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_proxy_client_init, - }; - - client_type = g_type_register_static (B_TYPE_RECEIVER, - "BProxyClient", &client_info, 0); - } - - return client_type; -} - -static void -b_proxy_client_class_init (BProxyClientClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = b_proxy_client_finalize; -} - -static void -b_proxy_client_init (BProxyClient *client) -{ - client->fd = -1; -} - -static void -b_proxy_client_finalize (GObject *object) -{ - BProxyClient *client = B_PROXY_CLIENT (object); - - if (client->fd != -1) - { - close (client->fd); - client->fd = -1; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -/** - * b_proxy_client_new: - * @proxy_host: the blinkenproxy host - * @proxy_port: the blinkenproxy port - * @listen_port: the local port to listen to for Blinkenlights packages - * or -1 to bind to an arbitrary free local port - * @callback: the function to call when a new frame arrives - * @callback_data: data to pass to the @callback - * @error: return location for a possible error - * - * Creates a new #BProxyClient object, ready to use. - * - * Return value: a newly allocate #BProxyClient object - **/ -BProxyClient * -b_proxy_client_new (const gchar *proxy_host, - gint proxy_port, - gint listen_port, - BReceiverCallback callback, - gpointer callback_data, - GError **error) -{ - BProxyClient *client; - struct hostent *dest; - struct sockaddr_in sock; - gint fd; - - g_return_val_if_fail (proxy_host != NULL && proxy_host != '\0', NULL); - g_return_val_if_fail (proxy_port > 0, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (! b_socket_init (error)) - return NULL; - - dest = gethostbyname (proxy_host); - if (dest == NULL) - { - g_set_error (error, 0, 0, "Unable to resolve host '%s'", proxy_host); - return NULL; - } - - fd = b_socket_udp_new (B_SO_REUSEADDR, error); - if (fd < 0) - return NULL; - - if (listen_port > 0) - { - sock.sin_addr.s_addr = INADDR_ANY; - sock.sin_family = AF_INET; - sock.sin_port = g_htons (listen_port); - - if (bind (fd, (struct sockaddr *) &sock, sizeof (sock)) < 0) - { - g_set_error (error, 0, 0, - "Can't bind socket for %s to local port %d: %s\n", - proxy_host, listen_port, g_strerror (errno)); - close (fd); - return NULL; - } - } - - sock.sin_family = AF_INET; - sock.sin_port = g_htons (proxy_port); - memcpy (&sock.sin_addr.s_addr, dest->h_addr_list[0], dest->h_length); - - if (connect (fd, (struct sockaddr *) &sock, sizeof (sock)) < 0) - { - g_set_error (error, 0, 0, "Can't connect socket to %s:%d: %s\n", - proxy_host, proxy_port, g_strerror (errno)); - close (fd); - return NULL; - } - - client = g_object_new (B_TYPE_PROXY_CLIENT, - "callback", callback, - "callback_data", callback_data, - NULL); - - client->fd = fd; - - b_receiver_listen_fd (B_RECEIVER (client), fd); - - return client; -} - -/** - * b_proxy_client_send_heartbeat: - * @client: a #BProxyClient - * - * Make the @client send a heartbeat packet. This function should - * be called periodically with the suggested interval of - * %B_HEARTBEAT_INTERVAL. To achieve, use this function with - * g_timeout_add(). - * - * Return value: always %TRUE - **/ -gboolean -b_proxy_client_send_heartbeat (BProxyClient *client) -{ - BPacket packet; - - g_return_val_if_fail (B_IS_PROXY_CLIENT (client), FALSE); - - if (client->fd == -1) - return TRUE; - - memset (&packet, 0, sizeof (BPacket)); - - packet.header.heartbeat_h.magic = MAGIC_HEARTBEAT; - - b_packet_hton (&packet); - - send (client->fd, &packet, sizeof (BPacket), 0); - - return TRUE; -} diff --git a/blib-1.1.7/blib/bproxyclient.h b/blib-1.1.7/blib/bproxyclient.h deleted file mode 100644 index ee00a42..0000000 --- a/blib-1.1.7/blib/bproxyclient.h +++ /dev/null @@ -1,64 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2003 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - - -#ifndef __B_PROXY_CLIENT_H__ -#define __B_PROXY_CLIENT_H__ - -G_BEGIN_DECLS - -#include - -#define B_TYPE_PROXY_CLIENT (b_proxy_client_get_type ()) -#define B_PROXY_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_PROXY_CLIENT, BProxyClient)) -#define B_PROXY_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_PROXY_CLIENT, BProxyClientClass)) -#define B_IS_PROXY_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_PROXY_CLIENT)) -#define B_IS_PROXY_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_PROXY_CLIENT)) -#define B_PROXY_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_PROXY_CLIENT, BProxyClientClass)) - - -typedef struct _BProxyClientClass BProxyClientClass; - -struct _BProxyClientClass -{ - BReceiverClass parent_class; -}; - -struct _BProxyClient -{ - BReceiver parent_instance; - - gint fd; -}; - -GType b_proxy_client_get_type (void) G_GNUC_CONST; -BProxyClient * b_proxy_client_new (const gchar *proxy_host, - gint proxy_port, - gint listen_port, - BReceiverCallback callback, - gpointer callback_data, - GError **error); -gboolean b_proxy_client_send_heartbeat (BProxyClient *client); - -G_END_DECLS - -#endif /* __B_PROXY_CLIENT_H__ */ diff --git a/blib-1.1.7/blib/bproxyserver.c b/blib-1.1.7/blib/bproxyserver.c deleted file mode 100644 index cbda688..0000000 --- a/blib-1.1.7/blib/bproxyserver.c +++ /dev/null @@ -1,370 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include - -#ifdef G_OS_WIN32 -#include -#else -#include -#include -#include -#include -#endif - -#include "btypes.h" -#include "bmarshal.h" -#include "bpacket.h" -#include "bproxyserver.h" -#include "breceiver.h" -#include "bsocket.h" - - -#define HEARTBEAT_TIMEOUT (B_HEARTBEAT_INTERVAL * 12) - -enum -{ - CLIENT_ADDED, - CLIENT_REMOVED, - LAST_SIGNAL -}; - -typedef struct -{ - BProxyServer *server; - gulong addr; - gushort port; - GSource *timeout; -} BClient; - - -static void b_proxy_server_class_init (BProxyServerClass *klass); -static void b_proxy_server_init (BProxyServer *server); -static void b_proxy_server_finalize (GObject *object); - -static gboolean b_proxy_server_heartbeat_callback (BProxyServer *server, - BPacket *packet, - gpointer data); - -static guint b_client_hash (const BClient *client); -static gboolean b_client_equal (const BClient *a, - const BClient *b); -static void b_client_add (const BClient *template); -static gboolean b_client_remove (BClient *client); - -static void b_client_send_packet (gpointer key, - BClient *client, - BPacket *packet); - - -static guint server_signals[LAST_SIGNAL] = { 0 }; -static GObjectClass *parent_class = NULL; - - -GType -b_proxy_server_get_type (void) -{ - static GType server_type = 0; - - if (!server_type) - { - static const GTypeInfo server_info = - { - sizeof (BProxyServerClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_proxy_server_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BProxyServer), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_proxy_server_init, - }; - - server_type = g_type_register_static (B_TYPE_RECEIVER, - "BProxyServer", &server_info, 0); - } - - return server_type; -} - -static void -b_proxy_server_class_init (BProxyServerClass *klass) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (klass); - object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = b_proxy_server_finalize; - - server_signals[CLIENT_ADDED] = - g_signal_new ("client_added", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BProxyServerClass, client_added), - NULL, NULL, - b_marshal_VOID__STRING_INT, - G_TYPE_NONE, - 2, G_TYPE_STRING, G_TYPE_INT); - server_signals[CLIENT_REMOVED] = - g_signal_new ("client_removed", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (BProxyServerClass, client_removed), - NULL, NULL, - b_marshal_VOID__STRING_INT, - G_TYPE_NONE, - 2, G_TYPE_STRING, G_TYPE_INT); -} - -static void -b_proxy_server_init (BProxyServer *server) -{ - server->fd = -1; -} - -static void -b_proxy_server_finalize (GObject *object) -{ - BProxyServer *server = B_PROXY_SERVER (object); - - if (server->fd != -1) - { - close (server->fd); - server->fd = -1; - } - - if (server->clients) - { - g_hash_table_destroy (server->clients); - server->clients = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -/** - * b_proxy_server_new: - * @port: the local port to listen to for heartbeat packages - * @error: return location for a possible error - * - * Creates a new #BProxyServer object, ready to use. - * - * Return value: a newly allocate #BProxyServer object - **/ -BProxyServer * -b_proxy_server_new (gint port, - GError **error) -{ - BProxyServer *server; - struct sockaddr_in sock; - gint fd; - - g_return_val_if_fail (port > 0, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (! b_socket_init (error)) - return NULL; - - fd = b_socket_udp_new (B_SO_REUSEADDR, error); - if (fd < 0) - return NULL; - - sock.sin_addr.s_addr = INADDR_ANY; - sock.sin_family = AF_INET; - sock.sin_port = g_htons (port); - - if (bind (fd, (struct sockaddr *) &sock, sizeof (sock)) < 0) - { - g_set_error (error, 0, 0, - "Can't bind socket to local port %d: %s\n", - port, g_strerror (errno)); - close (fd); - return NULL; - } - - server = g_object_new (B_TYPE_PROXY_SERVER, - "callback", b_proxy_server_heartbeat_callback, - NULL); - - server->fd = fd; - - server->clients = g_hash_table_new_full ((GHashFunc) b_client_hash, - (GEqualFunc) b_client_equal, - (GDestroyNotify) NULL, - (GDestroyNotify) g_free); - - b_receiver_listen_fd (B_RECEIVER (server), fd); - - return server; -} - -gboolean -b_proxy_server_send_packet (BProxyServer *server, - BPacket *packet) -{ - g_return_val_if_fail (B_IS_PROXY_SERVER (server), FALSE); - g_return_val_if_fail (packet != NULL, FALSE); - - if (server->clients) - g_hash_table_foreach (server->clients, - (GHFunc) b_client_send_packet, packet); - - return TRUE; -} - -gint -b_proxy_server_num_clients (BProxyServer *server) -{ - g_return_val_if_fail (B_IS_PROXY_SERVER (server), 0); - - return (server->clients ? g_hash_table_size (server->clients) : 0); -} - -static gboolean -b_proxy_server_heartbeat_callback (BProxyServer *server, - BPacket *packet, - gpointer data) -{ - BClient lookup; - BClient *client; - - if (packet->header.heartbeat_h.magic != MAGIC_HEARTBEAT || - packet->header.heartbeat_h.version != 0) - return TRUE; - - lookup.server = server; - lookup.addr = B_RECEIVER (server)->addr; - lookup.port = B_RECEIVER (server)->port; - - client = g_hash_table_lookup (server->clients, &lookup); - - if (client) - { - g_source_destroy (client->timeout); - - client->timeout = g_timeout_source_new (HEARTBEAT_TIMEOUT); - g_source_set_callback (client->timeout, - (GSourceFunc) b_client_remove, client, NULL); - g_source_attach (client->timeout, NULL); - } - else - { - b_client_add (&lookup); - } - - return TRUE; -} - -static guint -b_client_hash (const BClient *client) -{ - return (guint) client->addr; -} - -static gboolean -b_client_equal (const BClient *a, - const BClient *b) -{ - return (a->addr == b->addr && a->port == b->port); -} - -static void -b_client_add (const BClient *template) -{ - BClient *client = g_memdup (template, sizeof (BClient)); - struct in_addr addr; - const gchar *host; - gint port; - - client->timeout = g_timeout_source_new (HEARTBEAT_TIMEOUT); - g_source_set_callback (client->timeout, - (GSourceFunc) b_client_remove, client, NULL); - g_source_attach (client->timeout, NULL); - - g_hash_table_insert (client->server->clients, client, client); - - addr.s_addr = client->addr; - - host = inet_ntoa (addr); - port = g_ntohs (client->port); - - g_signal_emit (client->server, - server_signals[CLIENT_ADDED], 0, - host, port); -} - -static gboolean -b_client_remove (BClient *client) -{ - BProxyServer *server = client->server; - struct in_addr addr; - const gchar *host; - gint port; - - addr.s_addr = client->addr; - - host = inet_ntoa (addr); - port = g_ntohs (client->port); - - g_hash_table_remove (server->clients, client); - - g_signal_emit (server, - server_signals[CLIENT_REMOVED], 0, - host, port); - - return FALSE; -} - -static void -b_client_send_packet (gpointer key, - BClient *client, - BPacket *packet) -{ - struct sockaddr_in addr; - gsize size = b_packet_size (packet); - BPacket *copy = g_memdup (packet, size); - - b_packet_hton (copy); - - addr.sin_family = AF_INET; - addr.sin_port = client->port; - addr.sin_addr.s_addr = client->addr; - - sendto (client->server->fd, copy, size, 0, - (struct sockaddr *) &addr, sizeof (addr)); - - g_free (copy); -} - diff --git a/blib-1.1.7/blib/bproxyserver.h b/blib-1.1.7/blib/bproxyserver.h deleted file mode 100644 index a240fcc..0000000 --- a/blib-1.1.7/blib/bproxyserver.h +++ /dev/null @@ -1,72 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - - -#ifndef __B_PROXY_SERVER_H__ -#define __B_PROXY_SERVER_H__ - -G_BEGIN_DECLS - -#include - -#define B_TYPE_PROXY_SERVER (b_proxy_server_get_type ()) -#define B_PROXY_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_PROXY_SERVER, BProxyServer)) -#define B_PROXY_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_PROXY_SERVER, BProxyServerClass)) -#define B_IS_PROXY_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_PROXY_SERVER)) -#define B_IS_PROXY_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_PROXY_SERVER)) -#define B_PROXY_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_PROXY_SERVER, BProxyServerClass)) - - -typedef struct _BProxyServerClass BProxyServerClass; - -struct _BProxyServerClass -{ - BReceiverClass parent_class; - - void (* client_added) (BProxyServer *server, - const gchar *host, - gint port); - void (* client_removed) (BProxyServer *server, - const gchar *host, - gint port); -}; - -struct _BProxyServer -{ - BReceiver parent_instance; - - gint fd; - GHashTable *clients; -}; - - -GType b_proxy_server_get_type (void) G_GNUC_CONST; -BProxyServer * b_proxy_server_new (gint port, - GError **error); - -gboolean b_proxy_server_send_packet (BProxyServer *server, - BPacket *packet); -gint b_proxy_server_num_clients (BProxyServer *server); - -G_END_DECLS - -#endif /* __B_PROXY_SERVER_H__ */ diff --git a/blib-1.1.7/blib/breceiver.c b/blib-1.1.7/blib/breceiver.c deleted file mode 100644 index b887a37..0000000 --- a/blib-1.1.7/blib/breceiver.c +++ /dev/null @@ -1,385 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2003 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include - -#ifdef G_OS_WIN32 -#include -#ifndef socklen_t -#define socklen_t unsigned int -#endif -#else -#include -#include -#include -#include -#endif - -#include "btypes.h" -#include "bpacket.h" -#include "breceiver.h" -#include "bsocket.h" - - -enum -{ - PROP_0, - PROP_CALLBACK, - PROP_CALLBACK_DATA -}; - - -static void b_receiver_class_init (BReceiverClass *class); -static void b_receiver_init (BReceiver *receiver); -static void b_receiver_finalize (GObject *object); -static void b_receiver_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static gboolean b_receiver_io_func (GIOChannel *io, - GIOCondition cond, - gpointer data); - - -static GObjectClass *parent_class = NULL; - - -GType -b_receiver_get_type (void) -{ - static GType receiver_type = 0; - - if (!receiver_type) - { - static const GTypeInfo receiver_info = - { - sizeof (BReceiverClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_receiver_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BReceiver), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_receiver_init, - }; - - receiver_type = g_type_register_static (G_TYPE_OBJECT, - "BReceiver", &receiver_info, 0); - } - - return receiver_type; -} - -static void -b_receiver_class_init (BReceiverClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = b_receiver_finalize; - object_class->set_property = b_receiver_set_property; - - g_object_class_install_property (object_class, PROP_CALLBACK, - g_param_spec_pointer ("callback", - NULL, NULL, - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_WRITABLE)); - g_object_class_install_property (object_class, PROP_CALLBACK_DATA, - g_param_spec_pointer ("callback_data", - NULL, NULL, - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_WRITABLE)); -} - -static void -b_receiver_init (BReceiver *receiver) -{ - receiver->io_channel = NULL; - receiver->watch_source = 0; - receiver->callback = NULL; - receiver->callback_data = NULL; -} - -static void -b_receiver_finalize (GObject *object) -{ - BReceiver *receiver = B_RECEIVER (object); - - if (receiver->io_channel) - g_io_channel_unref (receiver->io_channel); - - receiver->callback = NULL; - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_receiver_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BReceiver *receiver = B_RECEIVER (object); - - switch (property_id) - { - case PROP_CALLBACK: - receiver->callback = g_value_get_pointer (value); - break; - case PROP_CALLBACK_DATA: - receiver->callback_data = g_value_get_pointer (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -/** - * b_receiver_new: - * @callback: the function to call when a new frame arrives - * @callback_data: data to pass to the @callback - * - * Creates a new #BReceiver object. - * - * Return value: a newly allocate #BReceiver object - **/ -BReceiver * -b_receiver_new (BReceiverCallback callback, - gpointer callback_data) -{ - return B_RECEIVER (g_object_new (B_TYPE_RECEIVER, - "callback", callback, - "callback_data", callback_data, - NULL)); -} - -/** - * b_receiver_listen: - * @receiver: a #BReceiver object - * @port: the UDP port to listen to - * - * Causes the @receiver to start to listen to the specified UDP - * port. For each successfully received Blinkenlights packet, the - * packet will be converted to host byteorder and the callback that - * was specified on b_receiver_new() will be called. - * - * Return value: %TRUE if the receiver listens to @port, %FALSE otherwise - **/ -gboolean -b_receiver_listen (BReceiver *receiver, - gint port) -{ - struct sockaddr_in local_address; - gint status; - gint listen_fd; - GError *error = NULL; - - g_return_val_if_fail (B_IS_RECEIVER (receiver), FALSE); - g_return_val_if_fail (receiver->io_channel == NULL, FALSE); - - listen_fd = b_socket_udp_new (B_SO_REUSEADDR, &error); - if (listen_fd == -1) - { - g_printerr ("%s\n", error->message); - g_error_free (error); - return FALSE; - } - - local_address.sin_family = PF_INET; - local_address.sin_port = g_htons (port); - local_address.sin_addr.s_addr = INADDR_ANY; - - status = bind (listen_fd, - (struct sockaddr *) &local_address, sizeof (local_address)); - if (status == -1) - { - g_printerr ("BReceiver: Can't bind local address"); - close (listen_fd); - return FALSE; - } - -#ifndef G_OS_WIN32 - status = fcntl (listen_fd, F_SETFL, O_NONBLOCK); - if (status == -1) - { - g_printerr ("BReceiver: Can't set non-blocking mode on socket"); - close (listen_fd); - return FALSE; - } -#endif - - b_receiver_listen_fd (receiver, listen_fd); - - g_io_channel_set_close_on_unref (receiver->io_channel, TRUE); - - return TRUE; -} - -/** - * b_receiver_listen_fd: - * @receiver: a #BReceiver object - * @fd: a file descriptor - * - * Causes the @receiver to start to listen to the given file descriptor. - * This function is rarely useful, it is used internally by #BProxyClient. - * - * Return value: %TRUE on success - **/ -gboolean -b_receiver_listen_fd (BReceiver *receiver, - gint fd) -{ - g_return_val_if_fail (B_IS_RECEIVER (receiver), FALSE); - g_return_val_if_fail (receiver->io_channel == NULL, FALSE); - - receiver->io_channel = g_io_channel_unix_new (fd); - - g_io_channel_set_encoding (receiver->io_channel, NULL, NULL); - - receiver->watch_source = g_io_add_watch (receiver->io_channel, - G_IO_IN | G_IO_PRI, - b_receiver_io_func, receiver); - - return TRUE; -} - -/** - * b_receiver_stop: - * @receiver: a #BReceiver object - * - * Makes the @receiver stop listening. - **/ -void -b_receiver_stop (BReceiver *receiver) -{ - g_return_if_fail (B_IS_RECEIVER (receiver)); - - if (!receiver->io_channel) - return; - - if (receiver->watch_source) - { - g_source_remove (receiver->watch_source); - receiver->watch_source = 0; - } - - g_io_channel_unref (receiver->io_channel); - receiver->io_channel = NULL; -} - -static gboolean -b_receiver_io_func (GIOChannel *io, - GIOCondition cond, - gpointer data) -{ - BReceiver *receiver; - mcu_frame_header_t *header; - guchar buf[0xfff]; - BPacket *packet = NULL; - BPacket *fake = NULL; - BPacket *new = NULL; - gssize buf_read; - gboolean success = TRUE; - - gint req_fd; - struct sockaddr_in req_addr; - socklen_t req_addr_length = sizeof (req_addr); - - receiver = B_RECEIVER (data); - - if (! receiver->callback) - return TRUE; - - req_fd = g_io_channel_unix_get_fd (io); - - buf_read = recvfrom (req_fd, buf, sizeof (buf), 0, - (struct sockaddr *) &req_addr, &req_addr_length); - - if (buf_read < sizeof (BPacket)) - return TRUE; - - new = (BPacket *) buf; - - b_packet_ntoh (new); - - header = &new->header.mcu_frame_h; - - switch (header->magic) - { - case MAGIC_MCU_FRAME: - if (buf_read < (sizeof (BPacket) + - header->width * header->height * header->channels)) - return TRUE; - /* else fallthru */ - - case MAGIC_HEARTBEAT: - packet = new; - break; - - case MAGIC_BLFRAME: - { - gint size; - - fake = b_packet_new (18, 8, 1, 1, &size); - - memcpy (fake->data, (guchar *) new + sizeof (BPacket), size); - - packet = fake; - } - break; - - default: - g_printerr ("BReceiver: Unknown magic: %08x, dropping packet!", - new->header.mcu_frame_h.magic); - return TRUE; - } - - receiver->addr = req_addr.sin_addr.s_addr; - receiver->port = req_addr.sin_port; - - success = receiver->callback (receiver, packet, receiver->callback_data); - - receiver->addr = 0; - receiver->port = 0; - - if (fake) - g_free (fake); - - return success; -} diff --git a/blib-1.1.7/blib/breceiver.h b/blib-1.1.7/blib/breceiver.h deleted file mode 100644 index 14d6250..0000000 --- a/blib-1.1.7/blib/breceiver.h +++ /dev/null @@ -1,73 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - - -#ifndef __B_RECEIVER_H__ -#define __B_RECEIVER_H__ - -G_BEGIN_DECLS - -#define B_TYPE_RECEIVER (b_receiver_get_type ()) -#define B_RECEIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_RECEIVER, BReceiver)) -#define B_RECEIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_RECEIVER, BReceiverClass)) -#define B_IS_RECEIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_RECEIVER)) -#define B_IS_RECEIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_RECEIVER)) -#define B_RECEIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_RECEIVER, BReceiverClass)) - - -typedef struct _BReceiverClass BReceiverClass; - -typedef gboolean (* BReceiverCallback) (BReceiver *receiver, - BPacket *packet, - gpointer callback_data); - -struct _BReceiverClass -{ - GObjectClass parent_class; -}; - -struct _BReceiver -{ - GObject parent_instance; - - GIOChannel *io_channel; - guint watch_source; - - BReceiverCallback callback; - gpointer callback_data; - - gulong addr; /* in network byte order */ - gushort port; /* in network byte order */ -}; - -GType b_receiver_get_type (void) G_GNUC_CONST; -BReceiver * b_receiver_new (BReceiverCallback callback, - gpointer callback_data); -gboolean b_receiver_listen (BReceiver *receiver, - gint port); -gboolean b_receiver_listen_fd (BReceiver *receiver, - gint fd); -void b_receiver_stop (BReceiver *receiver); - -G_END_DECLS - -#endif /* __B_RECEIVER_H__ */ diff --git a/blib-1.1.7/blib/bsender.c b/blib-1.1.7/blib/bsender.c deleted file mode 100644 index aa3bfd1..0000000 --- a/blib-1.1.7/blib/bsender.c +++ /dev/null @@ -1,479 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2003 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include - -#ifdef G_OS_WIN32 -#include -#else -#include -#include -#include -#include -#endif - -#include "btypes.h" -#include "bobject.h" -#include "bpacket.h" -#include "bsender.h" -#include "bsocket.h" - - -typedef struct _BRecipient -{ - gint fd; - struct sockaddr_in addr; - gchar *hostname; - gint port; -} BRecipient; - - -static void b_sender_class_init (BSenderClass *class); -static void b_sender_init (BSender *sender); -static void b_sender_finalize (GObject *object); - -static BObjectClass *parent_class = NULL; - - -GType -b_sender_get_type (void) -{ - static GType sender_type = 0; - - if (!sender_type) - { - static const GTypeInfo sender_info = - { - sizeof (BSenderClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_sender_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BSender), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_sender_init, - }; - - sender_type = g_type_register_static (G_TYPE_OBJECT, - "BSender", &sender_info, 0); - } - - return sender_type; -} - -static void -b_sender_class_init (BSenderClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = b_sender_finalize; -} - -static void -b_sender_init (BSender *sender) -{ - sender->recipients = NULL; - sender->packet = NULL; - sender->size = 0; - sender->verbose = FALSE; -} - -static void -b_sender_finalize (GObject *object) -{ - BSender *sender; - GList *item; - - sender = B_SENDER (object); - - for (item = sender->recipients; item; item = item->next) - { - BRecipient *rec = item->data; - - if (!rec) - continue; - - if (rec->fd > -1) - close (rec->fd); - - g_free (rec); - } - - g_list_free (sender->recipients); - - if (sender->packet) - g_free (sender->packet); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -/** - * b_sender_new: - * - * Creates a new #BSender object. - * - * Return value: a newly allocated #BSender object - **/ -BSender * -b_sender_new (void) -{ - return B_SENDER (g_object_new (B_TYPE_SENDER, NULL)); -} - -/** - * b_sender_configure: - * @sender: a #BSender object - * @width: number of pixels per row - * @height: number of pixels per column - * @channels: number of channels per pixel - * @maxval: the maximum value - * - * Prepares @sender to send Blinkenlights UDP packets with the given - * parameters. - * - * Return value: %TRUE if @sender was successfully reconfigured, - * %FALSE otherwise - **/ -gboolean -b_sender_configure (BSender *sender, - gint width, - gint height, - gint channels, - gint maxval) -{ - g_return_val_if_fail (B_IS_SENDER (sender), FALSE); - g_return_val_if_fail (width > 0 && height > 0, FALSE); - - /* prepare packet */ - if (sender->packet) - g_free (sender->packet); - - sender->packet = b_packet_new (width, height, channels, maxval, - &sender->size); - - b_packet_hton (sender->packet); - - return TRUE; -} - -/** - * b_sender_add_recipient: - * @sender: a #BSender object - * @src_port: originating UDP port (-1 to leave unspecified) - * @dest_host: destination hostname or IP address - * @dest_port: destination UDP port - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Tries to resolve @host and adds it to the @sender's list of recipients. - * - * Return value: %TRUE if the recipient was successfully added, %FALSE - * otherwise - **/ -gboolean -b_sender_add_recipient (BSender *sender, - gint src_port, - const gchar *dest_host, - gint dest_port, - GError **error) -{ - BRecipient *rec; - struct hostent *dest; - struct sockaddr_in sock; - - g_return_val_if_fail (B_IS_SENDER (sender), FALSE); - g_return_val_if_fail (dest_host != NULL && *dest_host != '\0', FALSE); - g_return_val_if_fail (dest_port > 0, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (! b_socket_init (error)) - return FALSE; - - dest = gethostbyname (dest_host); - if (dest == NULL) - { - g_set_error (error, 0, 0, "Unable to resolve host '%s'", dest_host); - return FALSE; - } - - rec = g_new0 (BRecipient, 1); - rec->fd = -1; - - rec->addr.sin_family = AF_INET; - rec->addr.sin_port = g_htons (dest_port); - - memcpy (&rec->addr.sin_addr.s_addr, dest->h_addr_list[0], dest->h_length); - - rec->fd = b_socket_udp_new (B_SO_BROADCAST | B_SO_REUSEADDR, error); - if (rec->fd < 0) - return FALSE; - - if (src_port > 0) - { - sock.sin_addr.s_addr = INADDR_ANY; - sock.sin_family = AF_INET; - sock.sin_port = g_htons (src_port); - - if (bind (rec->fd, (struct sockaddr *) &sock, sizeof (sock)) < 0) - { - g_set_error (error, 0, 0, - "Couldn't bind socket for %s to local port %d: %s\n", - dest_host, src_port, g_strerror (errno)); - close (rec->fd); - g_free (rec); - return FALSE; - } - } - - if (connect (rec->fd, - (struct sockaddr *) &rec->addr, sizeof (rec->addr)) < 0) - { - g_set_error (error, 0, 0, - "Couldn't connect socket for %s: %s\n", - dest_host, g_strerror (errno)); - close (rec->fd); - g_free (rec); - return FALSE; - } - - rec->hostname = g_strdup (dest_host); - rec->port = dest_port; - - /* To avoid duplicate entries, first remove all recipients with - same hostname and same port. */ - b_sender_remove_recipient (sender, rec->hostname, rec->port, NULL); - - sender->recipients = g_list_append (sender->recipients, rec); - - return TRUE; -} - -/** - * b_sender_remove_recipient: - * @sender: a #BSender object - * @dest_host: destination hostname or IP address - * @dest_port: destination UDP port - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Removes all recipients with matching host and port from the - * @sender's list of recipients. - * - * Return value: %TRUE if at least one matching recipient was found - * and removed, %FALSE otherwise - **/ -gboolean -b_sender_remove_recipient (BSender *sender, - const gchar *dest_host, - gint dest_port, - GError **error) -{ - GList *item; - gboolean done = FALSE; - - g_return_val_if_fail (B_IS_SENDER (sender), FALSE); - g_return_val_if_fail (dest_host != NULL && *dest_host != '\0', FALSE); - g_return_val_if_fail (dest_port > 0, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - for (item = sender->recipients; item; item = item->next) - { - BRecipient *rec = item->data; - - if (!rec) - continue; - - if (rec->port == dest_port && - g_ascii_strcasecmp (rec->hostname, dest_host) == 0) - { - if (rec->fd > -1) - close (rec->fd); - - g_free (rec->hostname); - g_free (rec); - - item->data = NULL; - done = TRUE; - } - } - - if (done) - sender->recipients = g_list_remove_all (sender->recipients, NULL); - else - g_set_error (error, 0, 0, - "No such host in recipient list: %s, port %d\n", - dest_host, dest_port); - - return done; -} - -/** - * b_sender_list_recipients: - * @sender: a #BSender object - * - * Creates a list of strings that describe the @senders - * recipients. You should free the strings as well as the list when - * it is no longer needed. - * - * Return value: a newly allocated #GList of newly allocated strings - **/ -GList * -b_sender_list_recipients (BSender *sender) -{ - GList *item, *list = NULL; - - for (item = sender->recipients; item; item = item->next) - { - BRecipient *rec = item->data; - - if (!rec) - continue; - - list = g_list_append (list, - g_strdup_printf ("%s:%d", - rec->hostname, rec->port)); - } - - return list; -} - -/** - * b_sender_send_frame: - * @sender: a #Bsender object - * @data: the frame data to send - * - * Sends Blinkenlights packets to all recipients registered with - * @sender. The @data should match the values of the last call to - * b_sender_configure() for @sender. - * - * Return value: %FALSE in case of a fatal error, %TRUE otherwise - **/ -gboolean -b_sender_send_frame (BSender *sender, - const guchar *data) -{ - GList *item; - gssize packet_size = sender->size + sizeof (BPacket); - - g_return_val_if_fail (B_IS_SENDER (sender), FALSE); - - if (sender->packet == NULL) - { - g_warning ("Call b_sender_configure() before sending packages!"); - return FALSE; - } - - if (data) - memcpy (sender->packet->data, data, sender->size); - else - memset (sender->packet->data, 0, sender->size); - - /* ...send it. */ - for (item = sender->recipients; item; item = item->next) - { - BRecipient *rec = (BRecipient *) item->data; - - if (rec == NULL) - continue; - - if (send (rec->fd, sender->packet, packet_size, 0) != packet_size) - { - if (sender->verbose) - g_printerr ("Unable to send to %s: %s\n", - rec->hostname, g_strerror (errno)); - } - } - - return TRUE; -} - -/** - * b_sender_send_heartbeat: - * @sender: a #Bsender object - * - * This function is deprecated and might be removed in the future. - * If you need the heartbeat functionality, use #BProxyClient instead. - * - * Return value: %TRUE always - **/ -gboolean -b_sender_send_heartbeat (BSender *sender) -{ - GList *item; - BPacket packet; - - g_return_val_if_fail (B_IS_SENDER (sender), FALSE); - - memset (&packet, 0, sizeof (BPacket)); - - packet.header.heartbeat_h.magic = MAGIC_HEARTBEAT; - - b_packet_hton (&packet); - - for (item = sender->recipients; item; item = item->next) - { - BRecipient *rec = (BRecipient *) item->data; - - if (rec == NULL) - continue; - - if (send (rec->fd, &packet, sizeof (BPacket), 0) != sizeof (BPacket)) - { - if (sender->verbose) - g_printerr ("Unable to send heartbeat to %s: %s\n", - rec->hostname, g_strerror (errno)); - } - } - - return TRUE; -} - -/** - * b_sender_set_verbose: - * @sender: a #Bsender object - * @verbose: whether the @sender should do verbose error reporting or not - * - * In earlier BLib versions #BSender used to print a message to stderr - * when send() failed. This message is now suppressed by default, but - * you can get the old behaviour back using this function. - **/ -void -b_sender_set_verbose (BSender *sender, - gboolean verbose) -{ - g_return_if_fail (B_IS_SENDER (sender)); - - sender->verbose = (verbose != FALSE); -} diff --git a/blib-1.1.7/blib/bsender.h b/blib-1.1.7/blib/bsender.h deleted file mode 100644 index 5714782..0000000 --- a/blib-1.1.7/blib/bsender.h +++ /dev/null @@ -1,87 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * Michael Natterer - * Daniel Mack - * - * 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. - */ - -#ifndef __B_SENDER_H__ -#define __B_SENDER_H__ - -#include - -G_BEGIN_DECLS - -#define B_TYPE_SENDER (b_sender_get_type ()) -#define B_SENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_SENDER, BSender)) -#define B_SENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_SENDER, BSenderClass)) -#define B_IS_SENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_SENDER)) -#define B_IS_SENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_SENDER)) -#define B_SENDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_SENDER, BSenderClass)) - - -typedef struct _BSenderClass BSenderClass; - -struct _BSenderClass -{ - GObjectClass parent_class; -}; - -struct _BSender -{ - GObject parent_instance; - - GList *recipients; - - BPacket *packet; - gsize size; - - gboolean verbose; -}; - -GType b_sender_get_type (void) G_GNUC_CONST; -BSender * b_sender_new (void); - -gboolean b_sender_add_recipient (BSender *sender, - gint src_port, - const gchar *dest_host, - gint dest_port, - GError **error); -gboolean b_sender_remove_recipient (BSender *sender, - const gchar *dest_host, - gint dest_port, - GError **error); -GList * b_sender_list_recipients (BSender *sender); - -gboolean b_sender_configure (BSender *sender, - gint width, - gint height, - gint channels, - gint maxval); -gboolean b_sender_send_frame (BSender *sender, - const guchar *data); -void b_sender_set_verbose (BSender *sender, - gboolean verbose); - -#ifndef B_DISABLE_DEPRECATED -gboolean b_sender_send_heartbeat (BSender *sender); -#endif - -G_END_DECLS - -#endif /* __B_SENDER_H__ */ diff --git a/blib-1.1.7/blib/bsocket.c b/blib-1.1.7/blib/bsocket.c deleted file mode 100644 index ca52bd0..0000000 --- a/blib-1.1.7/blib/bsocket.c +++ /dev/null @@ -1,156 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * Daniel Mack - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include - -#ifdef G_OS_WIN32 -#include -#else -#include -#include -#include -#include -#endif - -#include "bsocket.h" - - -/** - * b_socket_init: - * @error: return location for possible errors. - * - * Initialize network sockets. This function does nothing on - * UNIXes. On Win32 it initializes the Winsock DLL. You may call this - * function any number of times, the initialization is only done once. - * - * Return value: %TRUE on success, %FALSE in case of an error - **/ -gboolean -b_socket_init (GError **error) -{ -#ifdef G_OS_WIN32 - static gboolean winsock_initialized = FALSE; - - if (! winsock_initialized) - { - WORD wVersionRequested; - WSADATA wsaData; - - wVersionRequested = MAKEWORD (2, 2); - - if (WSAStartup (wVersionRequested, &wsaData) == 0) - { - winsock_initialized = TRUE; - } - else - { - g_set_error (error, 0, 0, "Can't initialize the Winsock DLL"); - return FALSE; - } - } - -#endif - return TRUE; -} - -/** - * b_socket_udp_new: - * @options: #BSocketOptions to set on the socket. - * @error: return location for possible errors. - * - * Creates an UDP socket and configures it according to @options. - * - * Return value: a socket descriptor or -1 in case of an error - **/ -gint -b_socket_udp_new (BSocketOptions options, - GError **error) -{ - gint fd; - gint value; - - g_return_val_if_fail (error == NULL || *error == NULL, -1); - - if (! b_socket_init (error)) - return FALSE; - - fd = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP); - if (fd == -1) - { - g_set_error (error, 0, 0, - "Can't create socket: %s", g_strerror (errno)); - return -1; - } - - if (options & B_SO_BROADCAST) - { - value = 1; - if (setsockopt (fd, - SOL_SOCKET, SO_BROADCAST, &value, sizeof (value)) < 0) - { - g_set_error (error, 0, 0, - "Can't set socket option (SO_BROADCAST): %s", - g_strerror (errno)); - close (fd); - return -1; - } - } - - if (options & B_SO_REUSEADDR) - { - value = 1; - if (setsockopt (fd, - SOL_SOCKET, SO_REUSEADDR, &value, sizeof (value)) < 0) - { - g_set_error (error, 0, 0, - "Can't set socket option (SO_REUSEADDR): %s", - g_strerror (errno)); - close (fd); - return -1; - } - -#ifdef SO_REUSEPORT - value = 1; - if (setsockopt (fd, - SOL_SOCKET, SO_REUSEPORT, &value, sizeof (value)) < 0) - { - g_set_error (error, 0, 0, - "Can't set socket option (SO_REUSEPORT): %s", - g_strerror (errno)); - close (fd); - return -1; - } -#endif - } - - return fd; -} diff --git a/blib-1.1.7/blib/bsocket.h b/blib-1.1.7/blib/bsocket.h deleted file mode 100644 index eb6c5f6..0000000 --- a/blib-1.1.7/blib/bsocket.h +++ /dev/null @@ -1,42 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * Daniel Mack - * - * 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. - */ - -#ifndef __B_SOCKET_H__ -#define __B_SOCKET_H__ - -G_BEGIN_DECLS - - -typedef enum -{ - B_SO_NONE = 0, - B_SO_BROADCAST = 1 << 0, - B_SO_REUSEADDR = 1 << 1 -} BSocketOptions; - -gboolean b_socket_init (GError **error); -gint b_socket_udp_new (BSocketOptions options, - GError **error); - - -G_END_DECLS - -#endif /* __B_SOCKET_H__ */ diff --git a/blib-1.1.7/blib/btheme-parser.c b/blib-1.1.7/blib/btheme-parser.c deleted file mode 100644 index 9f51806..0000000 --- a/blib-1.1.7/blib/btheme-parser.c +++ /dev/null @@ -1,536 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "btypes.h" -#include "bobject.h" -#include "bparser.h" -#include "btheme.h" -#include "btheme-parser.h" -#include "butils.h" - - -enum -{ - THEME = B_PARSER_STATE_USER, - BACKGROUND, - OVERLAY, - GRID, - GRID_WINDOW, - SPAN, - SPAN_WINDOW, - WINDOW, - FINISH -}; - -typedef struct -{ - BTheme *theme; - gchar *dirname; - gboolean lazy; - BOverlay *overlay; - gint dx, dy; - gint sx, sy; - GList *windows; -} ParserData; - - -static BParserState b_theme_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); -static BParserState b_theme_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); -static void b_theme_parse_header (BTheme *theme, - const gchar **attribute_names, - const gchar **attribute_values); -static void b_theme_parse_image (ParserData *data, - BOverlay *overlay, - const gchar **attribute_names, - const gchar **attribute_values); -static void b_theme_parse_grid (ParserData *data, - const gchar **attribute_names, - const gchar **attribute_values); -static void b_theme_parse_window (BWindow *window, - const gchar **attribute_names, - const gchar **attribute_values); -static void b_theme_overlay_add_window (BTheme *theme, - BOverlay *overlay, - const BWindow *window); -static gboolean b_theme_window_validate (BTheme *theme, - const BWindow *window); - - -gboolean -b_theme_parser_parse (BTheme *theme, - gboolean lazy, - GError **error) -{ - BParser *parser; - ParserData data = { NULL }; - GIOChannel *io; - const gchar *filename; - gboolean retval; - - g_return_val_if_fail (theme != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - filename = b_object_get_filename (B_OBJECT (theme)); - g_return_val_if_fail (filename != NULL, FALSE); - - io = g_io_channel_new_file (filename, "r", error); - if (!io) - return FALSE; - - data.theme = theme; - data.dirname = g_path_get_dirname (filename); - data.lazy = lazy; - - parser = b_parser_new (b_theme_start_element, b_theme_end_element, &data); - - retval = b_parser_parse_io_channel (parser, io, TRUE, error); - - if (retval && b_parser_get_state (parser) != FINISH) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "This does not look like a Blinkenlights Theme"); - retval = FALSE; - } - - g_io_channel_unref (io); - - b_parser_free (parser); - - g_free (data.dirname); - - if (retval && - (theme->rows < 1 || theme->columns < 1 || - theme->channels < 1 || - theme->maxval < 1 || theme->maxval > 256 || - theme->width < 1 || theme->height < 1)) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "Incorrect theme header"); - retval = FALSE; - } - - return retval; -} - -static BParserState -b_theme_start_element (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error) -{ - ParserData *data = (ParserData *) user_data; - - switch (state) - { - case B_PARSER_STATE_TOPLEVEL: - if (strcmp (element_name, "blinkentheme") == 0) - { - b_theme_parse_header (data->theme, - attribute_names, attribute_values); - return THEME; - } - break; - - case THEME: - if (data->lazy) - return B_PARSER_STATE_UNKNOWN; - - if (strcmp (element_name, "background") == 0) - { - b_theme_parse_image (data, NULL, - attribute_names, attribute_values); - b_parse_coordinates (attribute_names, attribute_values, - &data->theme->bg_image_x, - &data->theme->bg_image_y); - return BACKGROUND; - } - else if (strcmp (element_name, "overlay") == 0) - { - BOverlay *overlay = g_new0 (BOverlay, 1); - - b_theme_parse_image (data, overlay, - attribute_names, attribute_values); - - data->overlay = overlay; - return OVERLAY; - } - break; - - case OVERLAY: - if (strcmp (element_name, "grid") == 0) - { - b_theme_parse_grid (data, attribute_names, attribute_values); - return GRID; - } - else if (strcmp (element_name, "span") == 0) - { - b_theme_parse_grid (data, attribute_names, attribute_values); - return SPAN; - } - else if (strcmp (element_name, "window") == 0) - { - BWindow window; - - b_theme_parse_window (&window, attribute_names, attribute_values); - - if (b_theme_window_validate (data->theme, &window)) - b_theme_overlay_add_window (data->theme, data->overlay, &window); - - return WINDOW; - } - - break; - - case GRID: - case SPAN: - if (strcmp (element_name, "window") == 0) - { - BWindow window; - - b_theme_parse_window (&window, attribute_names, attribute_values); - if (b_theme_window_validate (data->theme, &window)) - data->windows = g_list_append (data->windows, - g_memdup (&window, - sizeof (BWindow))); - - return state == GRID ? GRID_WINDOW : SPAN_WINDOW; - } - break; - - case GRID_WINDOW: - case SPAN_WINDOW: - case WINDOW: - g_printerr ("window element should be empty"); - break; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static BParserState -b_theme_end_element (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error) -{ - ParserData *data = (ParserData *) user_data; - GList *list; - - switch (state) - { - case THEME: - data->theme->overlays = g_list_reverse (data->theme->overlays); - return FINISH; - - case BACKGROUND: - return THEME; - - case OVERLAY: - g_return_val_if_fail (data->overlay != NULL, THEME); - - if (data->overlay->windows) - { - data->overlay->windows = g_list_reverse (data->overlay->windows); - data->theme->overlays = g_list_prepend (data->theme->overlays, - data->overlay); - } - else - { - g_printerr ("no windows defined in overlay, skipping"); - - g_free (data->overlay->image); - g_free (data->overlay); - } - data->overlay = NULL; - return THEME; - - case GRID: - case SPAN: - for (list = data->windows; list; list = list->next) - { - BWindow *template = list->data; - gint row, col; - - template->column = 0; - if (state == GRID) - template->row = 0; - - for (row = template->row; row < data->theme->rows; row++) - { - for (col = 0; col < data->theme->columns; col++) - { - BWindow window = *template; - - window.row = row; - window.column = col; - window.src_x += col * data->sx; - window.rect.x += col * data->dx; - -#if 0 - g_print ("window %d,%d (%d) is %dx%d @ %d,%d src=%d,%d\n", - window.column, window.row, window.value, - window.rect.w, window.rect.h, - window.rect.x, window.rect.y, - window.src_x, window.src_y); -#endif - - b_theme_overlay_add_window (data->theme, data->overlay, - &window); - } - - if (state == SPAN) - break; - - template->src_y += data->sy; - template->rect.y += data->dy; - } - - g_free (template); - } - - g_list_free (data->windows); - data->windows = NULL; - return OVERLAY; - - case GRID_WINDOW: - return GRID; - - case SPAN_WINDOW: - return SPAN; - - case WINDOW: - return OVERLAY; - - default: - break; - } - - return B_PARSER_STATE_UNKNOWN; -} - -static void -b_theme_parse_header (BTheme *theme, - const gchar **attribute_names, - const gchar **attribute_values) -{ - const gchar **name; - const gchar **value; - - if (theme->type) - { - g_free (theme->type); - theme->type = NULL; - } - - theme->rows = 0; - theme->columns = 0; - theme->channels = 1; - theme->maxval = 1; - theme->width = 0; - theme->height = 0; - - for (name = attribute_names, value = attribute_values; - *name && *value; - name++, value++) - { - if (strcmp (*name, "title") == 0) - b_object_set_name (B_OBJECT (theme), *value); - if (strcmp (*name, "type") == 0) - theme->type = g_strdup (*value); - if (strcmp (*name, "rows") == 0) - b_parse_int (*value, &theme->rows); - if (strcmp (*name, "columns") == 0) - b_parse_int (*value, &theme->columns); - if (strcmp (*name, "channels") == 0) - b_parse_int (*value, &theme->channels); - if (strcmp (*name, "maxval") == 0) - b_parse_int (*value, &theme->maxval); - if (strcmp (*name, "width") == 0) - b_parse_int (*value, &theme->width); - if (strcmp (*name, "height") == 0) - b_parse_int (*value, &theme->height); - } -} - -static void -b_theme_parse_image (ParserData *data, - BOverlay *overlay, - const gchar **attribute_names, - const gchar **attribute_values) -{ - const gchar **name; - const gchar **value; - gchar **image; - BColor *color; - - image = overlay ? &overlay->image : &data->theme->bg_image; - - for (name = attribute_names, value = attribute_values; - *name && *value; - name++, value++) - { - if (!*image && strcmp (*name, "image") == 0) - *image = g_build_filename (data->dirname, *value, NULL); - } - - color = overlay ? &overlay->color : &data->theme->bg_color; - - if (overlay) - color->r = color->g = color->b = 0xFF; - else - color->r = color->g = color->b = 0x00; - - color->a = 0xFF; - - b_parse_color (attribute_names, attribute_values, color); -} - -static void -b_theme_parse_grid (ParserData *data, - const gchar **attribute_names, - const gchar **attribute_values) -{ - const gchar **name; - const gchar **value; - - data->dx = data->dy = data->sx = data->sy = 0; - - for (name = attribute_names, value = attribute_values; - *name && *value; - name++, value++) - { - if (strcmp (*name, "dx") == 0) - b_parse_int (*value, &data->dx); - if (strcmp (*name, "dy") == 0) - b_parse_int (*value, &data->dy); - if (strcmp (*name, "sx") == 0) - b_parse_int (*value, &data->sx); - if (strcmp (*name, "sy") == 0) - b_parse_int (*value, &data->sy); - } -} - -static void -b_theme_parse_window (BWindow *window, - const gchar **attribute_names, - const gchar **attribute_values) -{ - const gchar **name; - const gchar **value; - - window->value = B_WINDOW_VALUE_ALL; - window->row = window->column = 0; - window->src_x = window->src_y = 0; - window->rect.x = window->rect.y = window->rect.w = window->rect.h = 0; - - for (name = attribute_names, value = attribute_values; - *name && *value; - name++, value++) - { - if (strcmp (*name, "value") == 0 && strcmp (*value, "all")) - b_parse_int (*value, &window->value); - if (strcmp (*name, "row") == 0) - b_parse_int (*value, &window->row); - if (strcmp (*name, "column") == 0) - b_parse_int (*value, &window->column); - if (strcmp (*name, "src-x") == 0) - b_parse_int (*value, &window->src_x); - if (strcmp (*name, "src-y") == 0) - b_parse_int (*value, &window->src_y); - } - - b_parse_rectangle (attribute_names, attribute_values, &window->rect); -} - -static void -b_theme_overlay_add_window (BTheme *theme, - BOverlay *overlay, - const BWindow *window) -{ - BWindow *windows; - GList *list; - gint i; - - for (list = overlay->windows; list; list = list->next) - { - windows = list->data; - - if (windows->row == window->row && windows->column == window->column) - break; - } - - if (!list) - { - windows = g_new (BWindow, theme->maxval); - for (i = 0; i < theme->maxval; i++) - { - windows[i] = *window; - windows[i].value = B_WINDOW_VALUE_ALL; - } - overlay->windows = g_list_prepend (overlay->windows, windows); - } - - if (window->value != B_WINDOW_VALUE_ALL) - { - windows[window->value - 1] = *window; - } -} - -static gboolean -b_theme_window_validate (BTheme *theme, - const BWindow *window) -{ - if (window - && - (window->value != B_WINDOW_VALUE_ALL && - (window->value < 1 || window->value > theme->maxval)) - && - (window->row < 0 || window->row >= theme->rows || - window->column < 0 || window->column >= theme->columns)) - { - g_printerr ("Invalid window, skipping"); - return FALSE; - } - - return TRUE; -} diff --git a/blib-1.1.7/blib/btheme-parser.h b/blib-1.1.7/blib/btheme-parser.h deleted file mode 100644 index 1aaf0da..0000000 --- a/blib-1.1.7/blib/btheme-parser.h +++ /dev/null @@ -1,32 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_THEME_PARSER_H__ -#define __B_THEME_PARSER_H__ - -G_BEGIN_DECLS - -gboolean b_theme_parser_parse (BTheme *theme, - gboolean lazy, - GError **error); - -G_END_DECLS - -#endif /* __B_THEME_PARSER_H__ */ diff --git a/blib-1.1.7/blib/btheme.c b/blib-1.1.7/blib/btheme.c deleted file mode 100644 index 3f5a6b7..0000000 --- a/blib-1.1.7/blib/btheme.c +++ /dev/null @@ -1,426 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" -#include "bobject.h" -#include "btheme.h" -#include "btheme-parser.h" -#include "butils.h" - - -static void b_theme_class_init (BThemeClass *class); -static void b_theme_init (BTheme *theme); -static void b_theme_finalize (GObject *object); - - -static BObjectClass *parent_class = NULL; - -GType -b_theme_get_type (void) -{ - static GType theme_type = 0; - - if (!theme_type) - { - static const GTypeInfo theme_info = - { - sizeof (BThemeClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_theme_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BTheme), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_theme_init - }; - - theme_type = g_type_register_static (B_TYPE_OBJECT, - "BTheme", &theme_info, 0); - } - - return theme_type; -} - -static void -b_theme_class_init (BThemeClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = b_theme_finalize; -} - - -static void -b_theme_init (BTheme *theme) -{ - theme->bg_color.a = 0xFF; - theme->bg_image_x = 0; - theme->bg_image_y = 0; - theme->needs_blending = FALSE; -} - -static void -b_theme_finalize (GObject *object) -{ - BTheme *theme; - - theme = B_THEME (object); - - if (theme->type) - { - g_free (theme->type); - theme->type = NULL; - } - - b_theme_unload (theme); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static gboolean -b_theme_needs_blending (BTheme *theme) -{ - GList *list; - - if (theme->maxval == 1) - return FALSE; - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - GList *windows; - - for (windows = overlay->windows; windows; windows = windows->next) - { - BWindow *window = windows->data; - - if (window->value == B_WINDOW_VALUE_ALL) - return TRUE; - } - } - - return FALSE; -} - - -/** - * b_theme_new_from_file: - * @filename: the name of the file to load the theme from - * @lazy_load: whether to do lazy-loading - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Tries to load a #BTheme from the file pointed to by @filename. If - * @lazy_load is %TRUE, only the header is loaded. - * - * Return value: a newly allocated #BTheme object or %NULL if the load - * failed - **/ -BTheme * -b_theme_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error) -{ - BTheme *theme; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (g_path_is_absolute (filename)) - { - theme = g_object_new (B_TYPE_THEME, "filename", filename, NULL); - } - else - { - gchar *cwd = g_get_current_dir (); - gchar *abs = g_build_filename (cwd, filename, NULL); - - theme = g_object_new (B_TYPE_THEME, "filename", abs, NULL); - - g_free (abs); - g_free (cwd); - } - - if (! b_theme_parser_parse (theme, lazy_load, error)) - { - g_object_unref (theme); - return NULL; - } - - theme->needs_blending = b_theme_needs_blending (theme); - - return theme; -} - -/** - * b_theme_new_from_scratch: - * @title: a descriptive title - * @type: the theme type or %NULL - * @rows: the number of rows of windows - * @columns: the number of columns of windows - * @channels: the number of channels per window (must be 1) - * @maxval: the maximum value - * @width: screen width in pixels - * @height: screen height in pixels - * - * Creates a new #BTheme object from scratch. This may be useful if - * you want to quickly test a movie for a layout you don't have a - * theme for. You need to call b_theme_load() before you can use the - * new theme. - * - * Return value: a newly allocated, lazy-loaded, #BTheme object - **/ -BTheme * -b_theme_new_from_scratch (const gchar *title, - const gchar *type, - gint rows, - gint columns, - gint channels, - gint maxval, - gint width, - gint height) -{ - BTheme *theme; - - g_return_val_if_fail (title != NULL, NULL); - g_return_val_if_fail (rows > 0 && columns > 0, NULL); - g_return_val_if_fail (channels == 1, NULL); - g_return_val_if_fail (maxval > 0 && maxval < 256, NULL); - g_return_val_if_fail (width > 0 && height > 0, NULL); - - theme = g_object_new (B_TYPE_THEME, "name", title, NULL); - - theme->type = g_strdup (type); - theme->rows = rows; - theme->columns = columns; - theme->channels = channels; - theme->maxval = maxval; - theme->width = width; - theme->height = height; - - theme->needs_blending = b_theme_needs_blending (theme); - - return theme; -} - -static void -b_theme_load_from_scratch (BTheme *theme) -{ - BOverlay *overlay; - gint row; - gint column; - gint i; - - overlay = g_new0 (BOverlay, 1); - - overlay->color.a = 0xFF; - overlay->color.r = 0xFF; - overlay->color.g = 0xFF; - overlay->color.b = 0xFF; - - for (row = 0; row < theme->rows; row++) - for (column = 0; column < theme->columns; column++) - { - BWindow *windows; - BWindow template; - - template.value = B_WINDOW_VALUE_ALL; - template.row = row; - template.column = column; - template.src_x = template.src_y = 0; - template.rect.w = theme->width / theme->columns; - template.rect.h = theme->height / theme->rows; - template.rect.x = column * template.rect.w; - template.rect.y = row * template.rect.h; - - windows = g_new0 (BWindow, theme->maxval); - - for (i = 0; i < theme->maxval; i++) - windows[i] = template; - - overlay->windows = g_list_prepend (overlay->windows, windows); - } - - overlay->windows = g_list_reverse (overlay->windows); - - theme->overlays = g_list_prepend (NULL, overlay); -} - -/** - * b_theme_load: - * @theme: a #BTheme object - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Loads all data into the @theme. You only need to call this if you - * lazy-loaded the theme or called b_theme_unload() before. - * - * Return value: %TRUE on success, FALSE otherwise - **/ -gboolean -b_theme_load (BTheme *theme, - GError **error) -{ - gboolean retval; - - g_return_val_if_fail (B_IS_THEME (theme), FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - b_theme_unload (theme); - - if (b_object_get_filename (B_OBJECT (theme))) - { - retval = b_theme_parser_parse (theme, FALSE, error); - } - else - { - b_theme_load_from_scratch (theme); - retval = TRUE; - } - - theme->needs_blending = b_theme_needs_blending (theme); - - return retval; -} - -/** - * b_theme_unload: - * @theme: a #BTheme object - * - * Frees all data of a BTheme except the meta information stored in - * the header. - **/ -void -b_theme_unload (BTheme *theme) -{ - GList *list; - - g_return_if_fail (B_IS_THEME (theme)); - - g_free (theme->bg_image); - theme->bg_image = NULL; - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - GList *window; - - g_free (overlay->image); - overlay->image = NULL; - - for (window = overlay->windows; window; window = window->next) - g_free (window->data); - - g_list_free (overlay->windows); - g_free (overlay); - } - - g_list_free (theme->overlays); - theme->overlays = NULL; - - theme->needs_blending = FALSE; -} - -static void -b_theme_frame_boundary (BTheme *theme, - BWindow *window, - guchar data, - BRectangle *bbox) -{ - if (! data) - return; - - window += (data * theme->maxval) / 256; - - b_rectangle_union (&window->rect, bbox, bbox); -} - -/** - * b_theme_frame_diff_boundary - * @theme: a #BTheme - * @prev_data: data of the previous frame - * @frame_data: data of the current frame - * @bbox: returns bounding box - * - * Computes the bounding box of the difference image between two frames. - * - * Return value: %TRUE if the bounding box is not empty. - **/ -gboolean -b_theme_frame_diff_boundary (BTheme *theme, - const guchar *prev_data, - const guchar *frame_data, - BRectangle *bbox) -{ - GList *list; - - g_return_val_if_fail (B_IS_THEME (theme), FALSE); - g_return_val_if_fail (bbox != NULL, FALSE); - - bbox->x = 0; - bbox->y = 0; - bbox->w = 0; - bbox->h = 0; - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - - if (overlay->image) - { - GList *iter; - - for (iter = overlay->windows; iter; iter = iter->next) - { - BWindow *window = iter->data; - guint index = window->column + window->row * theme->columns; - - if (prev_data && frame_data) - { - if (frame_data[index] != prev_data[index]) - { - b_theme_frame_boundary (theme, - window, frame_data[index], bbox); - b_theme_frame_boundary (theme, - window, prev_data[index], bbox); - } - } - else if (prev_data) - { - b_theme_frame_boundary (theme, - window, prev_data[index], bbox); - } - else if (frame_data) - { - b_theme_frame_boundary (theme, - window, frame_data[index], bbox); - } - } - } - } - - return (bbox->w > 0 && bbox->h > 0); -} diff --git a/blib-1.1.7/blib/btheme.h b/blib-1.1.7/blib/btheme.h deleted file mode 100644 index 7f73f77..0000000 --- a/blib-1.1.7/blib/btheme.h +++ /dev/null @@ -1,116 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_THEME_H__ -#define __B_THEME_H__ - -#define B_WINDOW_VALUE_ALL 0 - -G_BEGIN_DECLS - -typedef struct _BWindow BWindow; -typedef struct _BOverlay BOverlay; - -struct _BWindow -{ - gint value; - gint row; - gint column; - gint src_x; - gint src_y; - BRectangle rect; -}; - -struct _BOverlay -{ - gchar *image; - BColor color; - - GList *windows; -}; - - -#define B_TYPE_THEME (b_theme_get_type ()) -#define B_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_THEME, BTheme)) -#define B_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_THEME, BThemeClass)) -#define B_IS_THEME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_THEME)) -#define B_IS_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_THEME)) -#define B_THEME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_THEME, BThemeClass)) - - -typedef struct _BThemeClass BThemeClass; - -struct _BThemeClass -{ - BObjectClass parent_class; -}; - -struct _BTheme -{ - BObjectClass parent_class; - - gchar *type; - - gint rows; - gint columns; - gint channels; - gint maxval; - - gint width; - gint height; - - BColor bg_color; - gchar *bg_image; - gint bg_image_x; - gint bg_image_y; - - GList *overlays; - - gboolean needs_blending; /* for optimizations */ -}; - - -GType b_theme_get_type (void) G_GNUC_CONST; - -BTheme * b_theme_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error); -BTheme * b_theme_new_from_scratch (const gchar *title, - const gchar *type, - gint rows, - gint columns, - gint channels, - gint maxval, - gint width, - gint height); - -gboolean b_theme_load (BTheme *theme, - GError **error); -void b_theme_unload (BTheme *theme); - -gboolean b_theme_frame_diff_boundary (BTheme *theme, - const guchar *prev_data, - const guchar *frame_data, - BRectangle *bbox); - - -G_END_DECLS - -#endif /* __B_THEME_H__ */ diff --git a/blib-1.1.7/blib/bthemes.c b/blib-1.1.7/blib/bthemes.c deleted file mode 100644 index 7816ad6..0000000 --- a/blib-1.1.7/blib/bthemes.c +++ /dev/null @@ -1,306 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "btypes.h" -#include "bobject.h" -#include "btheme.h" -#include "bthemes.h" - - -typedef struct -{ - BThemesQuery *query; - GList *list; -} BThemesQueryData; - - -static const gchar * -b_themes_get_path (void) -{ - const gchar *env = g_getenv ("B_THEME_PATH"); - - if (env) - return env; - - return THEMEPATH; -} - -static gboolean -b_themes_match_query (BTheme *theme, - gpointer callback_data) -{ - BThemesQueryData *data = callback_data; - BThemesQuery *query = data->query; - - if ((query->flags & B_THEMES_QUERY_ROWS) && - (query->rows != theme->rows)) - return TRUE; - if ((query->flags & B_THEMES_QUERY_COLUMNS) && - (query->columns != theme->columns)) - return TRUE; - if ((query->flags & B_THEMES_QUERY_WIDTH) && - (query->width != theme->width)) - return TRUE; - if ((query->flags & B_THEMES_QUERY_HEIGHT) && - (query->height != theme->height)) - return TRUE; - - if ((query->flags & B_THEMES_QUERY_TYPE)) - { - if (query->type) - { - if (theme->type == NULL || strcmp (query->type, theme->type)) - return TRUE; - } - else if (theme->type) - return TRUE; - } - - if ((query->flags & B_THEMES_QUERY_NAME)) - { - const gchar *name = b_object_get_name (B_OBJECT (theme)); - - if (query->name) - { - if (name == NULL || strcmp (query->name, name)) - return TRUE; - } - else if (name) - return TRUE; - } - - g_object_ref (G_OBJECT (theme)); - data->list = g_list_prepend (data->list, theme); - - return TRUE; -} - -/** - * b_themes_query: - * @themepath: a colon-separated list of directories to search or %NULL to - * use the default path - * @query: pointer to a #BThemesQuery - * - * Looks for themes as defined by @query. If @themepath is not - * specified the default path is used. The default path can be overridden - * by setting the environment variable B_THEME_PATH. - * - * Each theme that matches the @query is lazy-loaded. - * - * Return value: a #GList of newly allocated, lazy-loaded #BTheme objects - * or %NULL if no matching theme was found - **/ -GList * -b_themes_query (const gchar *themepath, - BThemesQuery *query) -{ - BThemesQueryData query_data; - - g_return_val_if_fail (query != NULL, FALSE); - - query_data.query = query; - query_data.list = NULL; - - b_themes_foreach (themepath, b_themes_match_query, &query_data); - - return g_list_reverse (query_data.list); -} - -/** - * b_themes_foreach - * @themepath: a colon-separated list of directories to search or %NULL to - * use the default path - * @callback: a function to call for each theme - * @callback_data: data to pass to the @callback - * - * This function iterates over all themes in the @themepath, lazy-loads them, - * runs @callback on the theme and unrefs it again. The iteration is stopped - * if a @callback returns %FALSE. - * - * If @themepath is not specified, the default path is used. The - * default path can be overridden by setting the environment variable - * B_THEME_PATH. - **/ -void -b_themes_foreach (const gchar *themepath, - BThemesForeachFunc callback, - gpointer callback_data) -{ - BTheme *theme; - gchar **dirs; - gint i; - gboolean cont = TRUE; - - g_return_if_fail (callback != NULL); - - if (!themepath) - themepath = b_themes_get_path (); - - dirs = g_strsplit (themepath, G_SEARCHPATH_SEPARATOR_S, 12); - - for (i = 0; cont && dirs[i]; i++) - { - const gchar *dirname = dirs[i]; - const gchar *name; - GDir *dir; - - dir = g_dir_open (dirname, 0, NULL); - if (!dir) - continue; - - while (cont && (name = g_dir_read_name (dir))) - { - gchar *filename = g_build_filename (dirname, name, NULL); - - if (g_file_test (filename, G_FILE_TEST_IS_REGULAR)) - { - theme = b_theme_new_from_file (filename, TRUE, NULL); - if (theme) - { - cont = callback (theme, callback_data); - g_object_unref (theme); - } - } - - g_free (filename); - } - - g_dir_close (dir); - } - - g_strfreev (dirs); -} - - -/* some wrappers that provide the old (pre 1.0) API, don't use */ - -typedef struct -{ - GHFunc callback; - gpointer data; -} WrapperData; - -static gboolean -wrapper (BTheme *theme, - gpointer callback_data) -{ - WrapperData *wrapper_data = callback_data; - gchar *basename; - gchar *suffix; - - basename = g_path_get_basename (b_object_get_filename (B_OBJECT (theme))); - - if ((suffix = g_strrstr (basename, ".xml")) != NULL) - suffix[0] = '\0'; - - wrapper_data->callback (basename, theme, wrapper_data->data); - - g_free (basename); - - return TRUE; -} - -/** - * b_themes_foreach_theme: - * @themepath: - * @callback: - * @callback_data: - * - * Shouldn't be used in new code, use b_themes_foreach() instead. - **/ -void -b_themes_foreach_theme (const gchar *themepath, - GHFunc callback, - gpointer callback_data) -{ - WrapperData wrapper_data = { callback, callback_data }; - - g_return_if_fail (callback != NULL); - - b_themes_foreach (themepath, wrapper, &wrapper_data); -} - -/** - * b_themes_lookup_theme: - * @name: - * @themepath: - * @error: - * - * Shouldn't be used in new code, use b_themes_query() instead. - * - * Return value: - **/ -BTheme * -b_themes_lookup_theme (const gchar *name, - const gchar *themepath, - GError **error) -{ - BTheme *theme = NULL; - gchar **dirs; - gchar *filename; - gint i; - - g_return_val_if_fail (name != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (!themepath) - themepath = b_themes_get_path (); - - filename = g_strconcat (name, ".xml", NULL); - - dirs = g_strsplit (themepath, G_SEARCHPATH_SEPARATOR_S, 12); - - for (i = 0; !theme && dirs[i]; i++) - { - const gchar *dirname = dirs[i]; - gchar *fullname = g_build_filename (dirname, filename, NULL); - - if (g_file_test (fullname, G_FILE_TEST_IS_REGULAR)) - { - theme = b_theme_new_from_file (fullname, TRUE, NULL); - } - else /* try w/o the suffix */ - { - g_free (fullname); - fullname = g_build_filename (dirname, name, NULL); - - if (g_file_test (fullname, G_FILE_TEST_IS_REGULAR)) - theme = b_theme_new_from_file (fullname, TRUE, NULL); - } - - g_free (fullname); - } - - g_strfreev (dirs); - - g_free (filename); - - if (!theme) - g_set_error (error, 0, 0, - "No theme of this name found in '%s'", themepath); - - return theme; -} diff --git a/blib-1.1.7/blib/bthemes.h b/blib-1.1.7/blib/bthemes.h deleted file mode 100644 index 95d38a5..0000000 --- a/blib-1.1.7/blib/bthemes.h +++ /dev/null @@ -1,78 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_THEMES_H__ -#define __B_THEMES_H__ - -G_BEGIN_DECLS - -typedef enum -{ - B_THEMES_QUERY_NONE = 0, - B_THEMES_QUERY_NAME = 1 << 0, - B_THEMES_QUERY_TYPE = 1 << 1, - B_THEMES_QUERY_ROWS = 1 << 2, - B_THEMES_QUERY_COLUMNS = 1 << 3, - B_THEMES_QUERY_WIDTH = 1 << 4, - B_THEMES_QUERY_HEIGHT = 1 << 5 -} BThemesQueryFlags; - -struct _BThemesQuery -{ - BThemesQueryFlags flags; - - const gchar *name; - const gchar *type; - gint rows; - gint columns; - gint width; - gint height; -}; - -typedef gboolean (* BThemesForeachFunc) (BTheme *theme, - gpointer callback_data); - - -/* searches a theme in the theme path */ -GList * b_themes_query (const gchar *themepath, - BThemesQuery *query); /* may be NULL */ - -/* calls callback for each theme with the short name and the theme */ -void b_themes_foreach (const gchar *themepath, /* may be NULL */ - BThemesForeachFunc callback, - gpointer callback_data); - - -#ifndef B_DISABLE_DEPRECATED - -/* some wrappers that provide the old (pre 1.0) API, don't use */ -void b_themes_foreach_theme (const gchar *themepath, /* may be NULL */ - GHFunc callback, - gpointer callback_data); -BTheme * b_themes_lookup_theme (const gchar *name, - const gchar *themepath, /* may be NULL */ - GError **error); - -#endif /* B_DISABLE_DEPRECATED */ - - -G_END_DECLS - -#endif /* __B_THEMES_H__ */ diff --git a/blib-1.1.7/blib/btypes.c b/blib-1.1.7/blib/btypes.c deleted file mode 100644 index 29c4439..0000000 --- a/blib-1.1.7/blib/btypes.c +++ /dev/null @@ -1,41 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include "btypes.h" - -GType -b_filename_get_type (void) -{ - static GType filename_type = 0; - - if (!filename_type) - { - static const GTypeInfo type_info = { 0, }; - - filename_type = g_type_register_static (G_TYPE_STRING, "BFilename", - &type_info, 0); - } - - return filename_type; -} diff --git a/blib-1.1.7/blib/btypes.h b/blib-1.1.7/blib/btypes.h deleted file mode 100644 index bba2fe1..0000000 --- a/blib-1.1.7/blib/btypes.h +++ /dev/null @@ -1,93 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __B_TYPES_H__ -#define __B_TYPES_H__ - -G_BEGIN_DECLS - -typedef enum -{ - B_KEY_0, - B_KEY_1, - B_KEY_2, - B_KEY_3, - B_KEY_4, - B_KEY_5, - B_KEY_6, - B_KEY_7, - B_KEY_8, - B_KEY_9, - B_KEY_HASH, - B_KEY_ASTERISK -} BModuleKey; - -typedef enum -{ - B_EVENT_TYPE_UNKNOWN = 0, - B_EVENT_TYPE_KEY, - B_EVENT_TYPE_PLAYER_ENTERED, - B_EVENT_TYPE_PLAYER_LEFT -} BModuleEventType; - -struct _BColor -{ - guchar a; - guchar r; - guchar g; - guchar b; -}; - -struct _BRectangle -{ - gint x; - gint y; - gint w; - gint h; -}; - -typedef struct _BColor BColor; -typedef struct _BEffects BEffects; -typedef struct _BModule BModule; -typedef struct _BModuleEvent BModuleEvent; -typedef struct _BModuleInfo BModuleInfo; -typedef struct _BMovie BMovie; -typedef struct _BMoviePlayer BMoviePlayer; -typedef struct _BObject BObject; -typedef struct _BPacket BPacket; -typedef struct _BParser BParser; -typedef struct _BProxyClient BProxyClient; -typedef struct _BProxyServer BProxyServer; -typedef struct _BReceiver BReceiver; -typedef struct _BRectangle BRectangle; -typedef struct _BSender BSender; -typedef struct _BTheme BTheme; -typedef struct _BThemesQuery BThemesQuery; -typedef struct _BWriter BWriter; - - -#define B_TYPE_FILENAME (b_filename_get_type ()) -#define B_VALUE_HOLDS_FILENAME(value) (G_TYPE_CHECK_VALUE_TYPE ((value), B_TYPE_FILENAME)) - -GType b_filename_get_type (void) G_GNUC_CONST; - - -G_END_DECLS - -#endif /* __B_TYPES_H__ */ diff --git a/blib-1.1.7/blib/butils.c b/blib-1.1.7/blib/butils.c deleted file mode 100644 index c3106ad..0000000 --- a/blib-1.1.7/blib/butils.c +++ /dev/null @@ -1,496 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include - -#include "btypes.h" -#include "bparams.h" -#include "butils.h" - - -/** - * b_filename_from_utf8: - * @name: the filename in UTF-8 encoding - * @root: an optional path to use - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Convert @name in UTF-8 encoding to a filename in the filesystem's - * encoding. If @root is non-%NULL and @name is not an absolute - * filename, the returned filename is built using @root as a prefix. - * - * Return value: a pointer to the newly allocated filename or %NULL in - * case of an error. This value must be freed with g_free(). - **/ -gchar * -b_filename_from_utf8 (const gchar *name, - const gchar *root, - GError **error) -{ - gchar *filename; - GError *conv_error = NULL; - - g_return_val_if_fail (name != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - filename = g_filename_from_utf8 (name, -1, NULL, NULL, &conv_error); - - if (!filename) - { - const gchar *charset; - - g_get_charset (&charset); - - g_set_error (error, 0, 0, - "Couldn't convert filename '%s' to " - "your filesystem encoding (%s): %s", - name, charset, conv_error->message); - g_error_free (conv_error); - - return NULL; - } - - if (root && !g_path_is_absolute (filename)) - { - gchar *tmp = g_build_filename (root, filename, NULL); - g_free (filename); - filename = tmp; - } - - return filename; -} - -/** - * b_parse_int: - * @str: the string to parse - * @value: location to store the integer value - * - * Parse an integer value from a string. - * - * Return value: %TRUE if the string could be parsed, %FALSE otherwise - **/ -gboolean -b_parse_int (const gchar *str, - gint *value) -{ - gchar *err; - glong l; - - g_return_val_if_fail (str != NULL, FALSE); - - l = strtol (str, &err, 0); - - if (*str && *err) - return FALSE; - - if (value) - *value = l; - - return TRUE; -} - -/** - * b_parse_boolean: - * @str: the string to parse - * @value: location to store the boolean value - * - * Parse a boolean value from a string. - * - * Return value: %TRUE if the string could be parsed, %FALSE otherwise - **/ -gboolean -b_parse_boolean (const gchar *str, - gboolean *value) -{ - g_return_val_if_fail (str != NULL, FALSE); - - if (g_ascii_strcasecmp (str, "yes") == 0) - *value = TRUE; - else if (g_ascii_strcasecmp (str, "no") == 0) - *value = FALSE; - else if (g_ascii_strcasecmp (str, "oui") == 0) - *value = TRUE; - else if (g_ascii_strcasecmp (str, "non") == 0) - *value = FALSE; - else - return FALSE; - - return TRUE; -} - -/** - * b_parse_double: - * @str: the string to parse - * @value: location to store the double value - * - * Parse a double (floating-point) value from a string. - * - * Return value: %TRUE if the string could be parsed, %FALSE otherwise - **/ -gboolean -b_parse_double (const gchar *str, - gdouble *value) -{ - gchar *end; - gdouble d; - - g_return_val_if_fail (str != NULL, FALSE); - - d = g_ascii_strtod (str, &end); - - if (end && *end) - return FALSE; - - if (value) - *value = d; - - return TRUE; -} - -/** - * b_parse_coordinates: - * @names: a %NULL-terminated array of names - * @values: a %NULL-terminated array of values - * @x: location to store the value of the x coordinate - * @y: location to store the value of the y coordinate - * - * Parses a pair of name/value arrays looking for the names "x" and "y" - * and tries to parse the associated values into integer values. - * - * Return value: %TRUE if both coordinates could be parsed, %FALSE otherwise - **/ -gboolean -b_parse_coordinates (const gchar **names, - const gchar **values, - gint *x, - gint *y) -{ - const gchar **name; - const gchar **value; - guint f = 0; - - g_return_val_if_fail (names != NULL && values != NULL, FALSE); - - for (name = names, value = values; *name && *value; name++, value++) - { - if (!(f&1) && strcmp (*name, "x") == 0 && b_parse_int (*value, x)) - f |= 1; - if (!(f&2) && strcmp (*name, "y") == 0 && b_parse_int (*value, y)) - f |= 2; - } - - return (f == (1 | 2)); -} - -/** - * b_parse_rectangle: - * @names: a %NULL-terminated array of names - * @values: a %NULL-terminated array of values - * @rect: pointer to a #BRectangle to store the result - * - * Parses a pair of name/value arrays looking for the names "x", "y", - * "width" and "heigth" and tries to parse the associated values into - * a #BRectangle. - * - * Return value: %TRUE if the rectangle could be parsed, %FALSE otherwise - **/ -gboolean -b_parse_rectangle (const gchar **names, - const gchar **values, - BRectangle *rect) -{ - const gchar **name; - const gchar **value; - guint f = 0; - - g_return_val_if_fail (names != NULL && values != NULL, FALSE); - g_return_val_if_fail (rect != NULL, FALSE); - - for (name = names, value = values; *name && *value; name++, value++) - { - if (!(f&1) && strcmp (*name, "x") == 0 && - b_parse_int (*value, &rect->x)) - f |= 1; - - if (!(f&2) && strcmp (*name, "y") == 0 && - b_parse_int (*value, &rect->y)) - f |= 2; - - if (!(f&4) && strcmp (*name, "width") == 0 && - b_parse_int (*value, &rect->w)) - f |= 4; - - if (!(f&8) && strcmp (*name, "height") == 0 && - b_parse_int (*value, &rect->h)) - f |= 8; - } - - return (f == (1 | 2 | 4 | 8)); -} - -/** - * b_parse_color: - * @names: a %NULL-terminated array of names - * @values: a %NULL-terminated array of values - * @color: pointer to a #BColor to store the result - * - * Parses a pair of name/value arrays looking for the name "color" and - * tries to convert the associated value to a #BColor. The color value - * is expected to be in hexadecimal notation as in HTML. - * - * Return value: %TRUE if the color could be parsed, %FALSE otherwise - **/ -gboolean -b_parse_color (const gchar **names, - const gchar **values, - BColor *color) -{ - const gchar **name; - const gchar **value; - - g_return_val_if_fail (names != NULL && values != NULL, FALSE); - g_return_val_if_fail (color != NULL, FALSE); - - for (name = names, value = values; *name && *value; name++, value++) - { - if (strcmp (*name, "color") == 0 && **value == '#') - { - gchar *err; - guint32 argb = strtoul (*value + 1, &err, 16); - - if (*err) - continue; - - color->b = argb & 0xFF; argb >>= 8; - color->g = argb & 0xFF; argb >>= 8; - color->r = argb & 0xFF; argb >>= 8; - - if (strlen (*value + 1) > 6) - color->a = argb & 0xFF; - else - color->a = 0xFF; - - return TRUE; - } - } - - return FALSE; -} - -/** - * b_parse_param: - * @object: a #GObject - * @root: an optional string to use as root if a filename is set - * @names: a %NULL-terminated array of names - * @values: a %NULL-terminated array of values - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Parses a pair of name/value arrays looking for the names "key" and - * "value". The key/value pair is then used to set the respective object - * property by calling b_object_set_property(). - * - * Return value: %TRUE if parsing was successful, %FALSE otherwise - **/ -gboolean -b_parse_param (GObject *object, - const gchar *root, - const gchar **names, - const gchar **values, - GError **error) -{ - const gchar *key = NULL; - const gchar *val = NULL; - gint i; - - g_return_val_if_fail (G_IS_OBJECT (object), FALSE); - g_return_val_if_fail (names != NULL && values != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - for (i = 0; names[i] && values[i]; i++) - { - if (! strcmp (names[i], "key")) - { - key = values[i]; - val = NULL; - } - else if (! strcmp (names[i], "value")) - { - if (key) - val = values[i]; - } - } - - if (!key) - { - g_set_error (error, 0, 0, - "key attribute is missing for param element"); - return FALSE; - } - if (!val) - { - g_set_error (error, 0, 0, - "value attribute is missing for param element"); - return FALSE; - } - - return b_object_set_property (object, key, val, root, error); -} - -/** - * b_object_set_property: - * @object: a #GObject - * @key: the name of the property - * @value: the property value as a string - * @root: an optional string to use as root if a filename property is set - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Sets the object property %key by interpreting the string - * @value. This function takes care of converting the string to the - * proper type. If the property is a %B_TYPE_FILENAME the filename is - * build using the @root parameter. - * - * Return value: %TRUE on success, %FALSE otherwise - **/ -gboolean -b_object_set_property (GObject *object, - const gchar *key, - const gchar *value, - const gchar *root, - GError **error) -{ - GObjectClass *class; - GParamSpec *spec; - GValue gvalue = { 0 }; - - g_return_val_if_fail (G_IS_OBJECT (object), FALSE); - g_return_val_if_fail (key != NULL, FALSE); - g_return_val_if_fail (value != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - class = G_OBJECT_GET_CLASS (object); - spec = g_object_class_find_property (class, key); - - if (!spec) - { - g_set_error (error, 0, 0, - "%s doesn't have a property named '%s'", - G_OBJECT_CLASS_NAME (class), key); - return FALSE; - } - - if (B_IS_PARAM_SPEC_FILENAME (spec)) - { - gchar *filename = b_filename_from_utf8 (value, root, error); - - if (!filename) - return FALSE; - - g_value_init (&gvalue, G_TYPE_STRING); - g_value_set_string_take_ownership (&gvalue, filename); - } - else - { - g_value_init (&gvalue, G_TYPE_STRING); - g_value_set_static_string (&gvalue, value); - } - - g_object_set_property (object, key, &gvalue); - - g_value_unset (&gvalue); - - return TRUE; -} - - -void -b_rectangle_union (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest) -{ - gint dest_x, dest_y; - - g_return_if_fail (src1 != NULL); - g_return_if_fail (src2 != NULL); - g_return_if_fail (dest != NULL); - - if (src1->w > 0 && src1->h > 0 && src2->w > 0 && src2->h > 0) - { - dest_x = MIN (src1->x, src2->x); - dest_y = MIN (src1->y, src2->y); - - dest->w = MAX (src1->x + src1->w, src2->x + src2->w) - dest_x; - dest->h = MAX (src1->y + src1->h, src2->y + src2->h) - dest_y; - dest->x = dest_x; - dest->y = dest_y; - } - else if (src1->w > 0 && src1->h > 0) - { - *dest = *src1; - } - else if (src2->w > 0 && src2->h > 0) - { - *dest = *src2; - } - else - { - dest->x = dest->y = dest->w = dest->h = 0; - } -} - -gboolean -b_rectangle_intersect (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest) -{ - gint dest_x, dest_y; - gint dest_w, dest_h; - - g_return_val_if_fail (src1 != NULL, FALSE); - g_return_val_if_fail (src2 != NULL, FALSE); - - dest_x = MAX (src1->x, src2->x); - dest_y = MAX (src1->y, src2->y); - dest_w = MIN (src1->x + src1->w, src2->x + src2->w) - dest_x; - dest_h = MIN (src1->y + src1->h, src2->y + src2->h) - dest_y; - - if (dest_w > 0 && dest_h > 0) - { - if (dest) - { - dest->x = dest_x; - dest->y = dest_y; - dest->w = dest_w; - dest->h = dest_h; - } - - return TRUE; - } - else if (dest) - { - dest->w = 0; - dest->h = 0; - } - - return FALSE; -} diff --git a/blib-1.1.7/blib/butils.h b/blib-1.1.7/blib/butils.h deleted file mode 100644 index 38b06a8..0000000 --- a/blib-1.1.7/blib/butils.h +++ /dev/null @@ -1,63 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2001-2003 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_UTILS_H__ -#define __B_UTILS_H__ - -gchar * b_filename_from_utf8 (const gchar *name, - const gchar *root, - GError **error); - -gboolean b_parse_int (const gchar *str, - gint *value); -gboolean b_parse_boolean (const gchar *str, - gboolean *value); -gboolean b_parse_double (const gchar *str, - gdouble *value); -gboolean b_parse_coordinates (const gchar **names, - const gchar **values, - gint *x, - gint *y); -gboolean b_parse_rectangle (const gchar **names, - const gchar **values, - BRectangle *rect); -gboolean b_parse_color (const gchar **names, - const gchar **values, - BColor *color); -gboolean b_parse_param (GObject *object, - const gchar *root, - const gchar **names, - const gchar **values, - GError **error); - -gboolean b_object_set_property (GObject *object, - const gchar *key, - const gchar *value, - const gchar *root, - GError **error); - -void b_rectangle_union (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest); -gboolean b_rectangle_intersect (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest); - -#endif /* __B_UTILS_H__ */ diff --git a/blib-1.1.7/blib/bwriter.c b/blib-1.1.7/blib/bwriter.c deleted file mode 100644 index 5e35863..0000000 --- a/blib-1.1.7/blib/bwriter.c +++ /dev/null @@ -1,241 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * Based on code written 2001 for convergence integrated media GmbH. - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "btypes.h" -#include "bwriter.h" - -struct _BWriter -{ - FILE *stream; - gint indent; - gint indent_level; -}; - - -static void b_write_attributes (BWriter *writer, - va_list attributes); -static void inline b_write_indent (BWriter *writer); - - -/** - * b_writer_new: - * @stream: a FILE stream prepared for writing - * @indent: how many characters to indent per nesting level - * - * Creates a new #BWriter which gives a convenient interface to write - * XML data to @stream. The writer should later be freed using - * b_writer_free(). - * - * Return value: a newly allocate #BWriter - **/ -BWriter * -b_writer_new (FILE *stream, - gint indent) -{ - BWriter *writer; - - g_return_val_if_fail (stream != NULL, NULL); - g_return_val_if_fail (indent >= 0, NULL); - - writer = g_new0 (BWriter, 1); - - writer->stream = stream; - writer->indent = indent; - - return writer; -} - -/** - * b_writer_free: - * @writer: a #BWriter - * - * Frees the resources allocated for @writer. You must not access - * @writer after calling this function. - **/ -void -b_writer_free (BWriter *writer) -{ - g_return_if_fail (writer != NULL); - - g_free (writer); -} - -/** - * b_write_header: - * @writer: a #BWriter - * @encoding: an optional encoding string or %NULL - * - * Writes an XML header to the stream associated with @writer. - **/ -void -b_write_header (BWriter *writer, - const gchar *encoding) -{ - g_return_if_fail (writer != NULL); - - if (encoding && *encoding) - fprintf (writer->stream, - "\n", encoding); - else - fprintf (writer->stream, "\n"); -} - -/** - * b_write_open_tag: - * @writer: a #BWriter - * @tag: the name of the element to open - * @Varargs: an optional key/value pairs interpreted as attributes - * - * Writes an opening XML tag with the element name @tag to the stream - * associated with @writer. You can pass a %NULL-terminated list of - * key/value pairs that are written out as attributes. - **/ -void -b_write_open_tag (BWriter *writer, - const gchar *tag, - ...) -{ - va_list attributes; - - g_return_if_fail (writer != NULL); - g_return_if_fail (tag != NULL); - - va_start (attributes, tag); - - b_write_indent (writer); - - fprintf (writer->stream, "<%s", tag); - b_write_attributes (writer, attributes); - fprintf (writer->stream, ">\n"); - - writer->indent_level++; - - va_end (attributes); -} - -/** - * b_write_close_tag: - * @writer: a #BWriter - * @tag: the name of the element to close - * - * Writes a closing XML tag with the element name @tag to the stream - * associated with @writer. - **/ -void -b_write_close_tag (BWriter *writer, - const gchar *tag) -{ - g_return_if_fail (writer != NULL); - g_return_if_fail (tag != NULL); - - writer->indent_level--; - b_write_indent (writer); - - fprintf (writer->stream, "\n", tag); -} - -/** - * b_write_element: - * @writer: a #BWriter - * @tag: the element name - * @value: the element value - * @Varargs: an optional key/value pairs interpreted as attributes - * - * Writes an XML element with the name @tag and the value @value to - * the stream associated with @writer. If @value is %NULL, an empty - * element is written. You can pass a %NULL-terminated list of - * key/value pairs that are written out as attributes. - **/ -void -b_write_element (BWriter *writer, - const gchar *tag, - const gchar *value, - ...) -{ - va_list attributes; - - g_return_if_fail (writer != NULL); - g_return_if_fail (tag != NULL); - - va_start (attributes, value); - - b_write_indent (writer); - - fprintf (writer->stream, "<%s", tag); - b_write_attributes (writer, attributes); - - if (value) - { - gchar *escaped = g_markup_escape_text (value, strlen (value)); - fprintf (writer->stream, ">%s\n", escaped, tag); - g_free (escaped); - } - else - { - fprintf (writer->stream, "/>\n"); - } - - va_end (attributes); -} - - -/* private functions */ - -static void -b_write_attributes (BWriter *writer, - va_list attributes) -{ - const gchar *name; - const gchar *attribute; - - name = va_arg (attributes, const gchar *); - - while (name) - { - attribute = va_arg (attributes, const gchar *); - - fprintf (writer->stream, " %s=\"%s\"", name, attribute); - - name = va_arg (attributes, const gchar *); - } -} - -static const gchar *spaces = " "; /* 16 spaces */ - -static inline void -b_write_indent (BWriter *writer) -{ - gint indent = writer->indent * writer->indent_level; - - while (indent > 16) - { - fprintf (writer->stream, spaces); - indent -= 16; - } - fprintf (writer->stream, spaces + 16 - indent); -} diff --git a/blib-1.1.7/blib/bwriter.h b/blib-1.1.7/blib/bwriter.h deleted file mode 100644 index ecd161d..0000000 --- a/blib-1.1.7/blib/bwriter.h +++ /dev/null @@ -1,47 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_WRITER_H__ -#define __B_WRITER_H__ - -#include - -G_BEGIN_DECLS - - -BWriter * b_writer_new (FILE *stream, - gint indent); -void b_writer_free (BWriter *writer); - -void b_write_header (BWriter *writer, - const gchar *encoding); -void b_write_open_tag (BWriter *writer, - const gchar *tag, - ...); -void b_write_close_tag (BWriter *writer, - const gchar *tag); -void b_write_element (BWriter *writer, - const gchar *tag, - const gchar *value, - ...); - -G_END_DECLS - -#endif /* __B_WRITER_H__ */ diff --git a/blib-1.1.7/blib/gif-load.c b/blib-1.1.7/blib/gif-load.c deleted file mode 100644 index 68b040b..0000000 --- a/blib-1.1.7/blib/gif-load.c +++ /dev/null @@ -1,643 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -/* GIF loading routines stripped out of the GIF loading filter for The GIMP. - * - * Modified for blinkentools in 2001 by Sven Neumann . - * Included into blib in 2002 by Sven Neumann . - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for GIF code from which this plugin was long ago * - * derived (David Koblas has granted permission to relicense): * - * +-------------------------------------------------------------------+ * - * | Copyright 1990, 1991, 1993, David Koblas. (koblas@extra.com) | * - * +-------------------------------------------------------------------+ */ - - -#include -#include - -#include - -#include "gif-load.h" - - -#define MAX_LZW_BITS 12 - -#define INTERLACE 0x40 -#define LOCALCOLORMAP 0x80 -#define BitSet(byte, bit) (((byte) & (bit)) == (bit)) - -#define LM_to_uint(a,b) (((b)<<8)|(a)) - - -static int ReadColorMap (GIOChannel *io, - int number, - unsigned char *buffer); -static int GetDataBlock (GIOChannel *io, - unsigned char *buf); -static int GetCode (GIOChannel *io, - int code_size, - int flag); -static int LZWReadByte (GIOChannel *io, - int flag, - int input_code_size); - - -static gboolean -ReadOK (GIOChannel *io, - gchar *buffer, - gsize len) -{ - while (len > 0) - { - GIOStatus status; - gsize bytes; - - status = g_io_channel_read_chars (io, buffer, len, &bytes, NULL); - - if (status == G_IO_STATUS_ERROR || status == G_IO_STATUS_EOF) - break; - - len -= bytes; - } - - return (len == 0); -} - -int -GIFDecodeHeader (GIOChannel *io, - gboolean skip_magic, - int *Width, - int *Height, - int *Background, - int *colors, - unsigned char **cmap) -{ - int AspectRatio; - unsigned char buf[16]; - char version[4]; - - if (!skip_magic) - { - if (!ReadOK (io, buf, 6)) - { - fprintf (stderr, "GIF: error reading magic number\n"); - return 0; - } - - if (strncmp ((char *) buf, "GIF", 3) != 0) - { - fprintf (stderr, "GIF: not a GIF file\n"); - return 0; - } - - strncpy (version, (char *) buf + 3, 3); - version[3] = '\0'; - - if ((strcmp (version, "87a") != 0) && (strcmp (version, "89a") != 0)) - { - fprintf (stderr, "GIF: bad version number, not '87a' or '89a'\n"); - return 0; - } - } - - if (!ReadOK (io, buf, 7)) - { - fprintf (stderr, "GIF: failed to read screen descriptor\n"); - return 0; - } - - *Width = LM_to_uint (buf[0], buf[1]); - *Height = LM_to_uint (buf[2], buf[3]); - *colors = 2 << (buf[4] & 0x07); - if (Background) - *Background = buf[5]; - - AspectRatio = buf[6]; - if (AspectRatio != 0 && AspectRatio != 49) - fprintf (stderr, "GIF: warning - non-square pixels\n"); - - *cmap = NULL; - - if (BitSet (buf[4], LOCALCOLORMAP)) - { - guchar *colormap; - - colormap = g_new0 (guchar, 3 * *colors); - - /* Global Colormap */ - if (!ReadColorMap (io, *colors, colormap)) - { - fprintf (stderr, "GIF: error reading global colormap\n"); - g_free (colormap); - return 0; - } - - *cmap = colormap; - } - - return 1; -} - -int -GIFDecodeRecordType (GIOChannel *io, - GIFRecordType *type) -{ - unsigned char c; - - if (!ReadOK (io, &c, 1)) - { - fprintf (stderr, "GIF: EOF / read error on image data\n"); - return 0; - } - - switch (c) - { - case ',': - *type = IMAGE; - return 1; - - case '!': - if (!ReadOK (io, &c, 1)) - { - fprintf (stderr, "GIF: EOF / read error on extension function code\n"); - return 0; - } - - switch (c) - { - case 0xf9: - *type = GRAPHIC_CONTROL_EXTENSION; - break; - case 0xfe: - *type = COMMENT_EXTENSION; - break; - case 0x01: /* PLAINTEXT_EXTENSION */ - case 0xff: /* APPLICATION_EXTENSION */ - *type = UNKNOWN_EXTENSION; - break; - default: - return 0; - } - - return 1; - - case ';': - *type = TERMINATOR; - return 1; - - default: - fprintf (stderr, "GIF: bogus character 0x%02x, ignoring\n", c); - return GIFDecodeRecordType (io, type); - } - - return 0; -} - -int -GIFDecodeImage (GIOChannel *io, - int *Width, - int *Height, - int *offx, - int *offy, - int *colors, - unsigned char **cmap, - unsigned char *data) -{ - unsigned char buf[16]; - unsigned char c; - unsigned char *dest; - int local_cmap; - int interlace; - int v; - int width, height; - int xpos = 0, ypos = 0, pass = 0; - - if (!ReadOK (io, buf, 9)) - { - fprintf (stderr, "GIF: couldn't read image data\n"); - return 0; - } - - *colors = 0; - *cmap = NULL; - - local_cmap = BitSet (buf[8], LOCALCOLORMAP); - - if (local_cmap) - { - guchar *colormap; - - *colors = 2 << (buf[8] & 0x07); - colormap = g_new0 (guchar, 3 * *colors); - - if (!ReadColorMap (io, *colors, colormap)) - { - g_free (colormap); - fprintf (stderr, "GIF: error reading local colormap\n"); - return 0; - } - - *cmap = colormap; - } - - *Width = width = LM_to_uint (buf[4], buf[5]); - *Height = height = LM_to_uint (buf[6], buf[7]); - *offx = LM_to_uint (buf[0], buf[1]); - *offy = LM_to_uint (buf[2], buf[3]); - - interlace = BitSet (buf[8], INTERLACE); - - if (!ReadOK (io, &c, 1)) - { - fprintf (stderr, "GIF: EOF / read error on image data\n"); - goto error; - } - - if (LZWReadByte (io, 1, c) < 0) - { - fprintf (stderr, "GIF: error while reading\n"); - goto error; - } - - while ((v = LZWReadByte (io, 0, c)) >= 0) - { - dest = data + (ypos * width) + xpos; - *dest = (unsigned char) v; - - xpos++; - if (xpos == width) - { - xpos = 0; - if (interlace) - { - switch (pass) - { - case 0: - case 1: - ypos += 8; - break; - case 2: - ypos += 4; - break; - case 3: - ypos += 2; - break; - } - - if (ypos >= height) - { - pass++; - switch (pass) - { - case 1: - ypos = 4; - break; - case 2: - ypos = 2; - break; - case 3: - ypos = 1; - break; - default: - goto fini; - } - } - } - else - { - ypos++; - } - } - if (ypos >= height) - break; - } - - fini: - if (LZWReadByte (io, 0, c) >= 0) - fprintf (stderr, "GIF: too much input data, ignoring extra...\n"); - - return 1; - - error: - g_free (*cmap); - *cmap = NULL; - return 0; -} - -int -GIFDecodeGraphicControlExt (GIOChannel *io, - GIFDisposeType *Disposal, - int *Delay, - int *Transparent) -{ - unsigned char buf[256]; - - if (GetDataBlock (io, buf) < 4) - return 0; - - *Disposal = (buf[0] >> 2) & 0x7; - *Delay = LM_to_uint (buf[1], buf[2]) * 10; /* the external API is ms */ - - if ((buf[0] & 0x1) != 0) - *Transparent = buf[3]; - else - *Transparent = -1; - - while (GetDataBlock (io, buf) > 0) - ; - - return 1; -} - -int -GIFDecodeCommentExt (GIOChannel *io, - char **comment) -{ - gchar buf[256]; - gint comment_len; - gint len; - - *comment = NULL; - comment_len = 0; - - while ((len = GetDataBlock (io, (unsigned char *) buf)) > 0) - { - *comment = g_realloc (*comment, comment_len + len + 1); - strncpy (*comment + comment_len, buf, len); - comment_len += len; - } - - return 1; -} - -void -GIFDecodeUnknownExt (GIOChannel *io) -{ - char buf[256]; - - while (GetDataBlock (io, buf) > 0) - ; -} - -static int -ReadColorMap (GIOChannel *io, - int number, - unsigned char *cmap) -{ - int i; - unsigned char rgb[3]; - - for (i = 0; i < number; ++i) - { - if (!ReadOK (io, rgb, sizeof (rgb))) - { - fprintf (stderr, "GIF: bad colormap\n"); - return 0; - } - - *cmap++ = rgb[0]; - *cmap++ = rgb[1]; - *cmap++ = rgb[2]; - } - - return 1; -} - - -int ZeroDataBlock = 0; - -static int -GetDataBlock (GIOChannel *io, - unsigned char *buf) -{ - unsigned char count; - - if (!ReadOK (io, &count, 1)) - { - fprintf (stderr, "GIF: error in getting DataBlock size\n"); - return -1; - } - - ZeroDataBlock = count == 0; - - if ((count != 0) && (!ReadOK (io, buf, count))) - { - fprintf (stderr, "GIF: error in reading DataBlock\n"); - return -1; - } - - return count; -} - -static int -GetCode (GIOChannel *io, - int code_size, - int flag) -{ - static unsigned char buf[280]; - static int curbit, lastbit, done, last_byte; - int i, j, ret; - unsigned char count; - - if (flag) - { - curbit = 0; - lastbit = 0; - done = 0; - last_byte = 2; - return 0; - } - - if ((curbit + code_size) >= lastbit) - { - if (done) - { - if (curbit >= lastbit) - fprintf (stderr, "GIF: ran off the end of my bits\n"); - - return -1; - } - - buf[0] = buf[last_byte - 2]; - buf[1] = buf[last_byte - 1]; - - if ((count = GetDataBlock (io, &buf[2])) <= 0) - done = 1; - - last_byte = 2 + count; - curbit = (curbit - lastbit) + 16; - lastbit = (2 + count) * 8; - } - - ret = 0; - for (i = curbit, j = 0; j < code_size; ++i, ++j) - ret |= ((buf[i / 8] & (1 << (i % 8))) != 0) << j; - - curbit += code_size; - - return ret; -} - -static int -LZWReadByte (GIOChannel *io, - int flag, - int input_code_size) -{ - static int fresh = 0; - int code, incode; - static int code_size, set_code_size; - static int max_code, max_code_size; - static int firstcode, oldcode; - static int clear_code, end_code; - static int table[2][(1 << MAX_LZW_BITS)]; - static int stack[(1 << (MAX_LZW_BITS)) * 2], *sp; - register int i; - - if (flag) - { - set_code_size = input_code_size; - code_size = set_code_size + 1; - clear_code = 1 << set_code_size; - end_code = clear_code + 1; - max_code_size = 2 * clear_code; - max_code = clear_code + 2; - - GetCode (io, 0, 1); - - fresh = 1; - - for (i = 0; i < clear_code; ++i) - { - table[0][i] = 0; - table[1][i] = i; - } - for (; i < (1 << MAX_LZW_BITS); ++i) - table[0][i] = table[1][0] = 0; - - sp = stack; - - return 0; - } - else if (fresh) - { - fresh = 0; - do - { - firstcode = oldcode = - GetCode (io, code_size, 0); - } - while (firstcode == clear_code); - return firstcode; - } - - if (sp > stack) - return *--sp; - - while ((code = GetCode (io, code_size, 0)) >= 0) - { - if (code == clear_code) - { - for (i = 0; i < clear_code; ++i) - { - table[0][i] = 0; - table[1][i] = i; - } - for (; i < (1 << MAX_LZW_BITS); ++i) - table[0][i] = table[1][i] = 0; - code_size = set_code_size + 1; - max_code_size = 2 * clear_code; - max_code = clear_code + 2; - sp = stack; - firstcode = oldcode = - GetCode (io, code_size, 0); - return firstcode; - } - else if (code == end_code) - { - int count; - unsigned char buf[260]; - - if (ZeroDataBlock) - return -2; - - while ((count = GetDataBlock (io, buf)) > 0) - ; - - if (count != 0) - fprintf (stderr, - "GIF: missing EOD in data stream (common occurence)"); - return -2; - } - - incode = code; - - if (code >= max_code) - { - *sp++ = firstcode; - code = oldcode; - } - - while (code >= clear_code) - { - *sp++ = table[1][code]; - if (code == table[0][code]) - { - fprintf (stderr, "GIF: circular table entry BIG ERROR\n"); - return -2; - } - code = table[0][code]; - } - - *sp++ = firstcode = table[1][code]; - - if ((code = max_code) < (1 << MAX_LZW_BITS)) - { - table[0][code] = oldcode; - table[1][code] = firstcode; - ++max_code; - if ((max_code >= max_code_size) && - (max_code_size < (1 << MAX_LZW_BITS))) - { - max_code_size *= 2; - ++code_size; - } - } - - oldcode = incode; - - if (sp > stack) - return *--sp; - } - return code; -} diff --git a/blib-1.1.7/blib/gif-load.h b/blib-1.1.7/blib/gif-load.h deleted file mode 100644 index 761400b..0000000 --- a/blib-1.1.7/blib/gif-load.h +++ /dev/null @@ -1,81 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -/* GIF loading routines stripped out of the GIF loading filter for The GIMP. - * - * Modified for blinkentools in 2001 by Sven Neumann . - * Included into blib in 2002 by Sven Neumann . - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for GIF code from which this plugin was long ago * - * derived (David Koblas has granted permission to relicense): * - * +-------------------------------------------------------------------+ * - * | Copyright 1990, 1991, 1993, David Koblas. (koblas@extra.com) | * - * +-------------------------------------------------------------------+ */ - - -#ifndef __GIF_LOAD_H__ -#define __GIF_LOAD_H__ - -#include - -G_BEGIN_DECLS - -int GIFDecodeHeader (GIOChannel *io, - gboolean skip_magic, - int *Width, - int *Height, - int *Background, - int *colors, - unsigned char **cmap); -int GIFDecodeRecordType (GIOChannel *io, - GIFRecordType *type); -int GIFDecodeImage (GIOChannel *io, - int *Width, - int *Height, - int *offx, - int *offy, - int *colors, - unsigned char **cmap, - unsigned char *data); -int GIFDecodeGraphicControlExt (GIOChannel *io, - GIFDisposeType *Disposal, - int *Delay, - int *Transparent); -int GIFDecodeCommentExt (GIOChannel *io, - char **comment); -void GIFDecodeUnknownExt (GIOChannel *io); - -#ifdef __cplusplus -} -#endif - -#endif /* __GIF_LOAD_H__ */ diff --git a/blib-1.1.7/blib/gif-save.c b/blib-1.1.7/blib/gif-save.c deleted file mode 100644 index ec92854..0000000 --- a/blib-1.1.7/blib/gif-save.c +++ /dev/null @@ -1,736 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -/* GIF savinging routines stripped out of the GIF saving filter for The GIMP. - * - * Modified for blinkentools in 2001 by Sven Neumann . - * Included into blib in 2002 by Sven Neumann . - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for GIF code from which this plugin was long ago * - * derived (David Koblas has granted permission to relicense): * - * +-------------------------------------------------------------------+ * - * | Copyright 1990, 1991, 1993, David Koblas. (koblas@extra.com) | * - * +-------------------------------------------------------------------+ */ - - -#include -#include - -#include "gif-save.h" - - -static int GIFNextPixel (void); - -/* - * a code_int must be able to hold 2**BITS values of type int, and also -1 - */ -typedef int code_int; -typedef long int count_int; - - -unsigned char *pixels; - -static void Putword (int, FILE *); -static void compress (int, FILE *); -static void output (code_int); -static void cl_block (void); -static void cl_hash (count_int); -static void writeerr (void); -static void char_init (void); -static void char_out (int); -static void flush_char (void); - - -static long CountDown; - -/* - * Return the next pixel from the image - */ -int -GIFNextPixel (void) -{ - if (CountDown == 0) - return EOF; - - --CountDown; - - return *pixels++; -} - -/* public */ - -void -GIFEncodeHeader (FILE *fp, - int gif89, - int Width, - int Height, - int Background, - int BitsPerPixel, - char *cmap) -{ - int B; - int Resolution; - int ColorMapSize; - int i; - - ColorMapSize = 1 << BitsPerPixel; - - Resolution = BitsPerPixel; - - /* - * Write the Magic header - */ - fwrite (gif89 ? "GIF89a" : "GIF87a", 1, 6, fp); - - /* - * Write out the screen width and height - */ - Putword (Width, fp); - Putword (Height, fp); - - /* - * Indicate that there is a global colour map - */ - B = 0x80; /* Yes, there is a color map */ - - /* - * OR in the resolution - */ - B |= (Resolution - 1) << 5; - - /* - * OR in the Bits per Pixel - */ - B |= (BitsPerPixel - 1); - - /* - * Write it out - */ - fputc (B, fp); - - /* - * Write out the Background colour - */ - fputc (Background, fp); - - /* - * Byte of 0's (future expansion) - */ - fputc (0, fp); - - /* - * Write out the Global Colour Map - */ - for (i = 0; i < 3 * ColorMapSize; i++) - fputc (cmap[i], fp); -} - -void -GIFEncodeGraphicControlExt (FILE *fp, - GIFDisposeType Disposal, - int Delay, - int Animation, - int Transparent) -{ - Delay /= 10; /* the external API is ms */ - - /* - * Write out extension for transparent colour index, if necessary. - */ - if ( (Transparent >= 0) || (Animation) ) - { - /* Extension Introducer - fixed. */ - fputc ('!', fp); - /* Graphic Control Label - fixed. */ - fputc (0xf9, fp); - /* Block Size - fixed. */ - fputc (4, fp); - - /* Packed Fields - XXXdddut (d=disposal, u=userInput, t=transFlag) */ - /* s8421 */ - fputc ( ((Transparent >= 0) ? 0x01 : 0x00) /* TRANSPARENCY */ - - /* DISPOSAL */ - | (Animation ? (Disposal << 2) : 0x00), - /* 0x03 or 0x01 build frames cumulatively */ - /* 0x02 clears frame before drawing */ - /* 0x00 'don't care' */ - - fp); - - fputc (Delay & 255, fp); - fputc ((Delay>>8) & 255, fp); - - fputc (Transparent, fp); - fputc (0, fp); - } -} - -void -GIFEncodeImageData (FILE *fp, - int Width, - int Height, - int BitsPerPixel, - int offset_x, - int offset_y, - char *data) -{ - int Resolution; - int ColorMapSize; - int InitCodeSize; - - ColorMapSize = 1 << BitsPerPixel; - - Resolution = BitsPerPixel; - - /* - * Calculate number of bits we are expecting - */ - CountDown = (long) Width * (long) Height; - pixels = data; - - /* - * The initial code size - */ - if (BitsPerPixel <= 1) - InitCodeSize = 2; - else - InitCodeSize = BitsPerPixel; - - /* - * Write an Image separator - */ - fputc (',', fp); - - /* - * Write the Image header - */ - Putword (offset_x, fp); - Putword (offset_y, fp); - Putword (Width, fp); - Putword (Height, fp); - - /* no interlacing */ - fputc (0x0, fp); - - /* - * Write out the initial code size - */ - fputc (InitCodeSize, fp); - - /* - * Go and actually compress the data - */ - compress (InitCodeSize + 1, fp); - - /* - * Write out a Zero-length packet (to end the series) - */ - fputc (0x0, fp); -} - -void -GIFEncodeClose (FILE *fp) -{ - /* - * Write the GIF file terminator - */ - fputc (';', fp); - - /* - * And close the file - */ - fclose (fp); -} - -void -GIFEncodeLoopExt (FILE *fp, - int num_loops) -{ - fputc(0x21,fp); - fputc(0xff,fp); - fputc(0x0b,fp); - fputs("NETSCAPE2.0",fp); - fputc(0x03,fp); - fputc(0x01,fp); - Putword(num_loops,fp); - fputc(0x00,fp); - - /* NOTE: num_loops==0 means 'loop infinitely' */ -} - - -void -GIFEncodeCommentExt (FILE *fp, - char *comment) -{ - if (!comment || !*comment) - return; - - if (strlen(comment)>240) - { - fprintf (stderr, - "GIF: warning: comment too large - comment block not written.\n"); - return; - } - - fputc(0x21,fp); - fputc(0xfe,fp); - fputc(strlen(comment),fp); - fputs((const char *)comment,fp); - fputc(0x00,fp); -} - - - -/* - * Write out a word to the GIF file - */ -static void -Putword (int w, - FILE *fp) -{ - fputc (w & 0xff, fp); - fputc ((w / 256) & 0xff, fp); -} - - -/*************************************************************************** - * - * GIFCOMPR.C - GIF Image compression routines - * - * Lempel-Ziv compression based on 'compress'. GIF modifications by - * David Rowley (mgardi@watdcsu.waterloo.edu) - * - ***************************************************************************/ - -/* - * General DEFINEs - */ - -#define GIF_BITS 12 - -#define HSIZE 5003 /* 80% occupancy */ - -#ifdef NO_UCHAR -typedef char char_type; -#else /*NO_UCHAR */ -typedef unsigned char char_type; -#endif /*NO_UCHAR */ - -/* - - * GIF Image compression - modified 'compress' - * - * Based on: compress.c - File compression ala IEEE Computer, June 1984. - * - * By Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas) - * Jim McKie (decvax!mcvax!jim) - * Steve Davies (decvax!vax135!petsd!peora!srd) - * Ken Turkowski (decvax!decwrl!turtlevax!ken) - * James A. Woods (decvax!ihnp4!ames!jaw) - * Joe Orost (decvax!vax135!petsd!joe) - * - */ -#include - -#define ARGVAL() (*++(*argv) || (--argc && *++argv)) - -static int n_bits; /* number of bits/code */ -static int maxbits = GIF_BITS; /* user settable max # bits/code */ -static code_int maxcode; /* maximum code, given n_bits */ -static code_int maxmaxcode = (code_int) 1 << GIF_BITS; /* should NEVER generate this code */ -#ifdef COMPATIBLE /* But wrong! */ -#define MAXCODE(Mn_bits) ((code_int) 1 << (Mn_bits) - 1) -#else /*COMPATIBLE */ -#define MAXCODE(Mn_bits) (((code_int) 1 << (Mn_bits)) - 1) -#endif /*COMPATIBLE */ - -static count_int htab[HSIZE]; -static unsigned short codetab[HSIZE]; -#define HashTabOf(i) htab[i] -#define CodeTabOf(i) codetab[i] - -const code_int hsize = HSIZE; /* the original reason for this being - variable was "for dynamic table sizing", - but since it was never actually changed - I made it const --Adam. */ - -/* - * To save much memory, we overlay the table used by compress() with those - * used by decompress(). The tab_prefix table is the same size and type - * as the codetab. The tab_suffix table needs 2**GIF_BITS characters. We - * get this from the beginning of htab. The output stack uses the rest - * of htab, and contains characters. There is plenty of room for any - * possible stack (stack used to be 8000 characters). - */ - -#define tab_prefixof(i) CodeTabOf(i) -#define tab_suffixof(i) ((char_type*)(htab))[i] -#define de_stack ((char_type*)&tab_suffixof((code_int)1< 0) - goto probe; - nomatch: - output ((code_int) ent); - ++out_count; - ent = c; - - if (free_ent < maxmaxcode) - { - CodeTabOf (i) = free_ent++; /* code -> hashtable */ - HashTabOf (i) = fcode; - } - else - cl_block (); - } - /* - * Put out the final code. - */ - output ((code_int) ent); - ++out_count; - output ((code_int) EOFCode); -} - -/***************************************************************** - * TAG( output ) - * - * Output the given code. - * Inputs: - * code: A n_bits-bit integer. If == -1, then EOF. This assumes - * that n_bits =< (long)wordsize - 1. - * Outputs: - * Outputs code to the file. - * Assumptions: - * Chars are 8 bits long. - * Algorithm: - * Maintain a GIF_BITS character long buffer (so that 8 codes will - * fit in it exactly). Use the VAX insv instruction to insert each - * code in turn. When the buffer fills up empty it and start over. - */ - -static void -output (code_int code) -{ - cur_accum &= masks[cur_bits]; - - if (cur_bits > 0) - cur_accum |= ((long) code << cur_bits); - else - cur_accum = code; - - cur_bits += n_bits; - - while (cur_bits >= 8) - { - char_out ((unsigned int) (cur_accum & 0xff)); - cur_accum >>= 8; - cur_bits -= 8; - } - - /* - * If the next entry is going to be too big for the code size, - * then increase it, if possible. - */ - if (free_ent > maxcode || clear_flg) - { - if (clear_flg) - { - - maxcode = MAXCODE (n_bits = g_init_bits); - clear_flg = 0; - - } - else - { - - ++n_bits; - if (n_bits == maxbits) - maxcode = maxmaxcode; - else - maxcode = MAXCODE (n_bits); - } - } - - if (code == EOFCode) - { - /* - * At EOF, write the rest of the buffer. - */ - while (cur_bits > 0) - { - char_out ((unsigned int) (cur_accum & 0xff)); - cur_accum >>= 8; - cur_bits -= 8; - } - - flush_char (); - - fflush (g_outfile); - - if (ferror (g_outfile)) - writeerr (); - } -} - -/* - * Clear out the hash table - */ -static void -cl_block () /* table clear for block compress */ -{ - - cl_hash ((count_int) hsize); - free_ent = ClearCode + 2; - clear_flg = 1; - - output ((code_int) ClearCode); -} - -static void -cl_hash (register count_int hsize) /* reset code table */ -{ - - register count_int *htab_p = htab + hsize; - - register long i; - register long m1 = -1; - - i = hsize - 16; - do - { /* might use Sys V memset(3) here */ - *(htab_p - 16) = m1; - *(htab_p - 15) = m1; - *(htab_p - 14) = m1; - *(htab_p - 13) = m1; - *(htab_p - 12) = m1; - *(htab_p - 11) = m1; - *(htab_p - 10) = m1; - *(htab_p - 9) = m1; - *(htab_p - 8) = m1; - *(htab_p - 7) = m1; - *(htab_p - 6) = m1; - *(htab_p - 5) = m1; - *(htab_p - 4) = m1; - *(htab_p - 3) = m1; - *(htab_p - 2) = m1; - *(htab_p - 1) = m1; - htab_p -= 16; - } - while ((i -= 16) >= 0); - - for (i += 16; i > 0; --i) - *--htab_p = m1; -} - -static void -writeerr () -{ - fprintf (stderr, "GIF: error writing output file\n"); - return; -} - -/****************************************************************************** - * - * GIF Specific routines - * - ******************************************************************************/ - -/* - * Number of characters so far in this 'packet' - */ -static int a_count; - -/* - * Set up the 'byte output' routine - */ -static void -char_init () -{ - a_count = 0; -} - -/* - * Define the storage for the packet accumulator - */ -static char accum[256]; - -/* - * Add a character to the end of the current packet, and if it is 254 - * characters, flush the packet to disk. - */ -static void -char_out (int c) -{ - accum[a_count++] = c; - if (a_count >= 254) - flush_char (); -} - -/* - * Flush the packet to disk, and reset the accumulator - */ -static void -flush_char (void) -{ - if (a_count > 0) - { - fputc (a_count, g_outfile); - fwrite (accum, 1, a_count, g_outfile); - a_count = 0; - } -} diff --git a/blib-1.1.7/blib/gif-save.h b/blib-1.1.7/blib/gif-save.h deleted file mode 100644 index 401065c..0000000 --- a/blib-1.1.7/blib/gif-save.h +++ /dev/null @@ -1,83 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -/* GIF savinging routines stripped out of the GIF saving filter for The GIMP. - * - * Modified for blinkentools in 2001 by Sven Neumann . - * Included into blib in 2002 by Sven Neumann . - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for GIF code from which this plugin was long ago * - * derived (David Koblas has granted permission to relicense): * - * +-------------------------------------------------------------------+ * - * | Copyright 1990, 1991, 1993, David Koblas. (koblas@extra.com) | * - * +-------------------------------------------------------------------+ */ - - -#ifndef __GIF_SAVE_H__ -#define __GIF_SAVE_H__ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -void GIFEncodeHeader (FILE *fp, - int gif89, - int Width, - int Height, - int Background, - int BitsPerPixel, - char *cmap); -void GIFEncodeGraphicControlExt (FILE *fp, - GIFDisposeType Disposal, - int Delay, - int Animation, - int Transparent); -void GIFEncodeImageData (FILE *fp, - int Width, - int Height, - int BitsPerPixel, - int offset_x, - int offset_y, - char *data); -void GIFEncodeClose (FILE *fp); -void GIFEncodeCommentExt (FILE *fp, - char *comment); -void GIFEncodeLoopExt (FILE *fp, - int num_loops); - -#ifdef __cplusplus -} -#endif - -#endif /* __GIF_SAVE_H__ */ diff --git a/blib-1.1.7/blib/gif-types.h b/blib-1.1.7/blib/gif-types.h deleted file mode 100644 index 792df39..0000000 --- a/blib-1.1.7/blib/gif-types.h +++ /dev/null @@ -1,76 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -/* GIF loading routines stripped out of the GIF loading filter for The GIMP. - * - * Modified for blinkentools in 2001 by Sven Neumann. - * Included into blib in 2002 by Sven Neumann. - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for code which this plugin was long ago derived from */ -/* +-------------------------------------------------------------------+ */ -/* | Copyright 1990, 1991, 1993, David Koblas. (koblas@netcom.com) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +-------------------------------------------------------------------+ */ - -#ifndef __GIF_TYPES_H__ -#define __GIF_TYPES_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum -{ - DISPOSE_UNSPECIFIED, - DISPOSE_COMBINE, - DISPOSE_REPLACE -} GIFDisposeType; - -typedef enum -{ - IMAGE, - GRAPHIC_CONTROL_EXTENSION, - COMMENT_EXTENSION, - UNKNOWN_EXTENSION, - TERMINATOR -} GIFRecordType; - -#ifdef __cplusplus -} -#endif - -#endif /* __GIF_TYPES_H__ */ diff --git a/blib-1.1.7/config.guess b/blib-1.1.7/config.guess deleted file mode 100755 index e8c6fc0..0000000 --- a/blib-1.1.7/config.guess +++ /dev/null @@ -1,1432 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2004-01-05' - -# 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 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. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -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 ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -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 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # 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 - -trap 'exit 1' 1 2 15 - -# 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. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; 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) >/dev/null 2>&1 ; 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 - -# 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 tupples: *-*-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". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-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. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - 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 - # 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/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pegasos:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # 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 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. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - 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. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - 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'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - 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) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # 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:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* 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 \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - 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 [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 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 [ -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 [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - 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 [ ${HP_ARCH} = "hppa2.0w" ] - then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - 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 && $dummy && exit 0 - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - 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 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - 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/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - 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/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` 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 ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - 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. - echo i386-sequent-sysv4 - exit 0 ;; - 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. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /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 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - 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 i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 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) - 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 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *: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 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; - *:DRAGONFLY:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#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 - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#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 -# 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 - printf ("vax-dec-ultrix\n"); exit (0); -# 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 && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -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 - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/blib-1.1.7/config.h.in b/blib-1.1.7/config.h.in deleted file mode 100644 index 3b7e181..0000000 --- a/blib-1.1.7/config.h.in +++ /dev/null @@ -1,61 +0,0 @@ -/* config.h.in. Generated from configure.in by autoheader. */ - -/* The Blib version */ -#undef BLIB_VERSION - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* 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 header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_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_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* 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 - -/* 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 version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const diff --git a/blib-1.1.7/config.sub b/blib-1.1.7/config.sub deleted file mode 100755 index 463186d..0000000 --- a/blib-1.1.7/config.sub +++ /dev/null @@ -1,1537 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2004-01-05' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# 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 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. - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# 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. - -# 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. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -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 ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -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 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - 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 - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -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) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | msp430 \ - | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # 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) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32r-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - or32 | or32-*) - basic_machine=or32-unknown - os=-coff - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# 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) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -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. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -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 - ;; - -nsk*) - os=-nsk - ;; - # 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 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -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. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - 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 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - 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 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-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 - ;; - *-next) - os=-nextstep3 - ;; - *-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 - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -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 - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - 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 - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/blib-1.1.7/configure b/blib-1.1.7/configure deleted file mode 100755 index 3c7bf94..0000000 --- a/blib-1.1.7/configure +++ /dev/null @@ -1,22617 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59. -# -# Copyright (C) 2003 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 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+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# 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'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -echo=${ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -tagnames=${tagnames+${tagnames},}CXX - -tagnames=${tagnames+${tagnames},}F77 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="blib/blib.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS BLIB_MAJOR_VERSION BLIB_MINOR_VERSION BLIB_MICRO_VERSION BLIB_INTERFACE_AGE BLIB_BINARY_AGE BLIB_VERSION LT_RELEASE LT_CURRENT LT_REVISION LT_AGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL OS_WIN32_TRUE OS_WIN32_FALSE WIN32_LIBS WIN32_CFLAGS DATADIR INCLUDEDIR THEMEPATH MODULEPATH PKG_CONFIG GLIB_CFLAGS GLIB_LIBS GLIB_GENMARSHAL GOBJECT_QUERY GLIB_MKENUMS DIRECTFB_CFLAGS DIRECTFB_LIBS DIRECTFB_VIEW_TYPE HAVE_DIRECTFB_TRUE HAVE_DIRECTFB_FALSE GDK_PIXBUF_CFLAGS GDK_PIXBUF_LIBS PIXBUF_VIEW_TYPE HAVE_PIXBUF_TRUE HAVE_PIXBUF_FALSE GTK_CFLAGS GTK_LIBS GTK_VIEW_TYPE HAVE_GTK_TRUE HAVE_GTK_FALSE AA_LIBS AA_VIEW_TYPE HAVE_AA_TRUE HAVE_AA_FALSE BUILD_MODULES_TRUE BUILD_MODULES_FALSE HTML_DIR GTKDOC HAVE_GTK_DOC_TRUE HAVE_GTK_DOC_FALSE HAVE_GTK_DOC DB2HTML HAVE_DOCBOOK_TRUE HAVE_DOCBOOK_FALSE ENABLE_GTK_DOC_TRUE ENABLE_GTK_DOC_FALSE LIBOBJS LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# 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. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -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 - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -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 | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$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 ;; - - -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 ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - 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 ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=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 ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - 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'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -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 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - 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 - - -# 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 its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - 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 - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP -ac_env_CXX_set=${CXX+set} -ac_env_CXX_value=$CXX -ac_cv_env_CXX_set=${CXX+set} -ac_cv_env_CXX_value=$CXX -ac_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_env_CXXFLAGS_value=$CXXFLAGS -ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_cv_env_CXXFLAGS_value=$CXXFLAGS -ac_env_CXXCPP_set=${CXXCPP+set} -ac_env_CXXCPP_value=$CXXCPP -ac_cv_env_CXXCPP_set=${CXXCPP+set} -ac_cv_env_CXXCPP_value=$CXXCPP -ac_env_F77_set=${F77+set} -ac_env_F77_value=$F77 -ac_cv_env_F77_set=${F77+set} -ac_cv_env_F77_value=$F77 -ac_env_FFLAGS_set=${FFLAGS+set} -ac_env_FFLAGS_value=$FFLAGS -ac_cv_env_FFLAGS_set=${FFLAGS+set} -ac_cv_env_FFLAGS_value=$FFLAGS - -# -# 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 this package 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 \`..'] - -_ACEOF - - cat <<_ACEOF -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] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --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] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_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 - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --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-dependency-tracking Speeds up one-time builds - --enable-dependency-tracking Do not reject slow dependency extractors - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-glibtest do not try to compile and run a test GLIB program - --disable-directfb disable support for DirectFB default=auto - --disable-gdk-pixbuf disable support for gdk-pixbuf default=auto - --disable-gtk disable support for GTK+-2.0 default=auto - --disable-aa disable support for AA-lib default=auto - --disable-modules disable the build of modules - --enable-gtk-doc use gtk-doc to build documentation default=auto - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-tags[=TAGS] - include additional configurations [automatic] - --with-html-dir=PATH path to installed docs - -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 - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style 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 - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd "$ac_popdir" - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright (C) 2003 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 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -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` -hostinfo = `(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=. - echo "PATH: $as_dir" -done - -} >&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_sep= -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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$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 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >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 - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - 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. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -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 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`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. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -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 - - - - - - - - - - - - - - - - - - - - -# Save this values here, since automake will set cflags later -cflags_set="${CFLAGS}set" - -# Making releases: -# BLIB_MICRO_VERSION += 1; -# BLIB_INTERFACE_AGE += 1; -# BLIB_BINARY_AGE += 1; -# if any functions have been added, set BLIB_INTERFACE_AGE to 0. -# if backwards compatibility has been broken, -# set BLIB_BINARY_AGE and BLIB_INTERFACE_AGE to 0. -# -BLIB_MAJOR_VERSION=1 -BLIB_MINOR_VERSION=1 -BLIB_MICRO_VERSION=7 -BLIB_INTERFACE_AGE=0 -BLIB_BINARY_AGE=0 -BLIB_API_VERSION=$BLIB_MAJOR_VERSION.$BLIB_MINOR_VERSION -BLIB_VERSION=$BLIB_MAJOR_VERSION.$BLIB_MINOR_VERSION.$BLIB_MICRO_VERSION - - - - - - - - - -cat >>confdefs.h <<_ACEOF -#define BLIB_VERSION "$BLIB_VERSION" -_ACEOF - - -# libtool versioning -LT_RELEASE=$BLIB_MAJOR_VERSION.$BLIB_MINOR_VERSION -LT_CURRENT=`expr $BLIB_MICRO_VERSION - $BLIB_INTERFACE_AGE` -LT_REVISION=$BLIB_INTERFACE_AGE -LT_AGE=`expr $BLIB_BINARY_AGE - $BLIB_INTERFACE_AGE` - - - - - - -VERSION=$BLIB_VERSION -PACKAGE=blib - -am__api_version="1.7" -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# 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. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_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 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -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. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$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' - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftest.file -# 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 ( - 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 - rm -f conftest.file - 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". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -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 $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 - - # test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -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=$PACKAGE - VERSION=$VERSION - - -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"} - - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. - - - - - ac_config_headers="$ac_config_headers config.h" - - -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi; - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -# Check whether --enable-shared or --disable-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 or --disable-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 --enable-fast-install or --disable-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; - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -DEPDIR="${am__leading_dot}deps" - - ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -# Check whether --enable-dependency-tracking or --disable-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='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_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 -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -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 - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out 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. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; 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 | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$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 -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* 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 -std1 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 -std1. */ -int osf4_cc_array ['\x00' == 0 ? 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 -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f 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 - -depcc="$CC" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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'. - 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 - 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 - : > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - 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 - ;; - none) break ;; - esac - # 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. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} 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 - # (even with -Werror). So we grep stderr for any message - # that says an option was ignored. - if grep 'ignoring option' 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 -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$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 - - -echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 -if test "${lt_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # 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 -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 && break - 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 $lt_ac_count -gt 10 && 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 - -fi - -echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6 - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - - -# Check whether --with-gnu-ld or --without-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; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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 "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 GNU ld's 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 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld - - -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 -if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_ld_reload_flag='-r' -fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$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' - -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 -if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/${ac_tool_prefix}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 - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - 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" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi -fi -echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6 -NM="$lt_cv_path_NM" - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - -echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 -echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 -# which 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 -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi4*) - 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'. - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | kfreebsd*-gnu) - 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)/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 - ;; - -gnu*) - 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]) 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 - ;; - -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 Linux ELF. -linux*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | knetbsd*-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=unknown - ;; - -openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' - else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - 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 - ;; - esac - ;; - -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 -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 no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && 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 which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; 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 which ABI we are using. - echo '#line 3674 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" = yes; 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* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|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-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - 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" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 -if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -lt_cv_cc_needs_belf=no -fi -rm -f 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 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - -esac - -need_locks="$enable_libtool_lock" - - -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 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f 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 -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -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 - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#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)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_header in dlfcn.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC - 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CXX" && break -done -test -n "$ac_ct_CXX" || ac_ct_CXX="g++" - - CXX=$ac_ct_CXX -fi - - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C++ compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 -GXX=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -CXXFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cxx_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cxx_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cxx_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -depcc="$CXX" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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'. - 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_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - 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 - : > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - 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 - ;; - none) break ;; - esac - # 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. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} 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 - # (even with -Werror). So we grep stderr for any message - # that says an option was ignored. - if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6 -ac_preproc_ok=false -for ac_cxx_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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran - 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -echo "${ECHO_T}$ac_ct_F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_F77" && break -done - - F77=$ac_ct_F77 -fi - - -# Provide some information about the compiler. -echo "$as_me:5231:" \ - "checking for Fortran 77 compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 -if test "${ac_cv_f77_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} -ac_save_FFLAGS=$FFLAGS -FFLAGS= -echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_f77_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_f77_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_f77_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 -if test "$ac_test_FFLAGS" = set; then - FFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g = yes; then - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -G77=`test $ac_compiler_gnu = yes && echo yes` -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 - - - -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! - -# find the maximum length of command line arguments -echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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*) - # 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; - ;; - - 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; - ;; - - *) - # 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"`$CONFIG_SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - 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` - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 -else - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 -fi - - - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris* | sysv5*) - symcode='[BDRT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# 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 - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && 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 < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_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 -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; 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 - echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6 -else - echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6 -fi - -echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6 -if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 -echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6 -objdir=$lt_cv_objdir - - - - - -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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -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 avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - AR=$ac_ct_AR -else - AR="$ac_cv_prog_AR" -fi - -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 <&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 - -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 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 <&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 - -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 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -enable_dlopen=no -enable_win32_dll=no - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - - -# Check whether --with-pic or --without-pic was given. -if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" -else - pic_mode=default -fi; -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -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;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}\n' - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# -# Check for any special shared library compilation flags. -# -lt_prog_cc_shlib= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - lt_prog_cc_shlib='-belf' - ;; - esac -fi -if test -n "$lt_prog_cc_shlib"; then - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 -echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} - if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : - else - { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 -echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} - lt_cv_prog_cc_can_build_shared=no - fi -fi - - -# -# Check to make sure the static flag actually works. -# -echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6 -if test "${lt_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_prog_compiler_static" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler 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 - else - lt_prog_compiler_static_works=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 - -if test x"$lt_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # 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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6263: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:6267: \$? = $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 - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; 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= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - # 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' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # 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' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - 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 - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - hpux*) - # 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='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - 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 "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # 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' - ;; - - 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' - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic='-Kpic' - lt_prog_compiler_static='-dn' - ;; - - solaris*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - 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 - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # 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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6496: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:6500: \$? = $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 - if test ! -s conftest.err; then - lt_prog_compiler_pic_works=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 - -if test x"$lt_prog_compiler_pic_works" = xyes; 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 -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6556: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:6560: \$? = $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 - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . - $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 .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -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 - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag= - enable_shared_with_static_runtimes=no - archive_cmds= - archive_expsym_cmds= - old_archive_From_new_cmds= - old_archive_from_expsyms_cmds= - export_dynamic_flag_spec= - whole_archive_flag_spec= - thread_safe_flag_spec= - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - link_all_deplibs=unknown - hardcode_automatic=no - module_cmds= - module_expsym_cmds= - always_export_symbols=no - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # 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_" - # 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. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # 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 - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - 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 - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs=no - ;; - - 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*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - 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 '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd* | knetbsd*-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 $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' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&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. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - 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 - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 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 - if test $supports_anon_versioning = yes; 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 -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds="$tmp_archive_cmds" - fi - link_all_deplibs=no - else - ld_shlibs=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - 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 - - if test "$ld_shlibs" = yes; then - 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 - 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 "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4* | aix5*) - 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 - 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 AIX nm, but means don't demangle with GNU 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")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | 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 - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - 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 - - 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_libdir_separator=':' - link_all_deplibs=yes - - if test "$GCC" = yes; 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 - hardcode_direct=yes - 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' - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # 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_use_runtimelinking" = yes; 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. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; 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 $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec=' ' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - 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 - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - bsdi4*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # 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=' ' - 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 `echo "$deplibs" | $SED -e '\''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' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds='$CC -r ${wl}-bind_at_load -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' - fi - module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='-all_load $convenience' - link_all_deplibs=yes - 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 - ;; - - freebsd1*) - ld_shlibs=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* | kfreebsd*-gnu) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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 $output_objdir/$soname = $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* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_libdir_separator=: - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - ia64*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_shlibpath_var=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - *) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=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 "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld='-rpath $libdir' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd* | knetbsd*-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 - ;; - - openbsd*) - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; 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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${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='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -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; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag=' -z text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${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 ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - 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' - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; 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.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - 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' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - 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 - fi - -echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6 -test "$ld_shlibs" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# 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 "$enable_shared" = yes && test "$GCC" = yes; 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. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - 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:$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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -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" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # 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. - 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 -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -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 - 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' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; 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 - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}' - else - # 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' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - 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*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - 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' - 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="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - 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 - ;; - 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 - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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}${versuffix}$shared_ext ${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)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - 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 - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-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='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - 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 - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -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 - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - 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' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - 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 - ;; - -# This must be Linux ELF. -linux*) - 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' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # 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 - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | 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' - ;; - -knetbsd*-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='GNU ld.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 - 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=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=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - 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 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -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" - ;; - -sco3.2v5*) - version_type=osf - 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 - ;; - -solaris*) - 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=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 "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - 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 - export_dynamic_flag_spec='${wl}-Blargedynsym' - 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 - 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 - ;; - -uts4*) - version_type=linux - 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 -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var " || \ - test "X$hardcode_automatic"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; 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 -echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6 - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; 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*) - 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 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; 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 - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* 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_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* 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_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$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 - - -# Report which librarie types wil actually be built -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 -test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - darwin* | rhapsody*) - if test "$GCC" = yes; then - archive_cmds_need_lc=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - output_verbose_link_cmd='echo' - archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='-all_load $convenience' - link_all_deplibs=yes - else - ld_shlibs=no - fi - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler \ - CC \ - LD \ - lt_prog_compiler_wl \ - lt_prog_compiler_pic \ - lt_prog_compiler_static \ - lt_prog_compiler_no_builtin_flag \ - export_dynamic_flag_spec \ - thread_safe_flag_spec \ - whole_archive_flag_spec \ - enable_shared_with_static_runtimes \ - old_archive_cmds \ - old_archive_from_new_cmds \ - predep_objects \ - postdep_objects \ - predeps \ - postdeps \ - compiler_lib_search_path \ - archive_cmds \ - archive_expsym_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - old_archive_from_expsyms_cmds \ - allow_undefined_flag \ - no_undefined_flag \ - export_symbols_cmds \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ - hardcode_automatic \ - module_cmds \ - module_expsym_cmds \ - lt_cv_prog_compiler_c_o \ - exclude_expsyms \ - include_expsyms; do - - case $var in - old_archive_cmds | \ - old_archive_from_new_cmds | \ - archive_cmds | \ - archive_expsym_cmds | \ - module_cmds | \ - module_expsym_cmds | \ - old_archive_from_expsyms_cmds | \ - export_symbols_cmds | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - { echo "$as_me:$LINENO: creating $ofile" >&5 -echo "$as_me: creating $ofile" >&6;} - - cat <<__EOF__ >> "$cfgfile" -#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 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 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. - -# 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 s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# 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 - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU C compiler? -with_gcc=$GCC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# 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 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# 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 and install a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# 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 in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# 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 - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# 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 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 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" - -# 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 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_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 - -# ### END LIBTOOL CONFIG - -__EOF__ - - - case $host_os in - aix3*) - cat <<\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 "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # 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" - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - 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 - -CC="$lt_save_CC" - - -# Check whether --with-tags or --without-tags was given. -if test "${with_tags+set}" = set; then - withval="$with_tags" - tagnames="$withval" -fi; - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} - else - { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} - fi - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in - "") ;; - *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 -echo "$as_me: error: invalid tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 -echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} - { (exit 1); exit 1; }; } - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && test "X$CXX" != "Xno"; then - ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - - -archive_cmds_need_lc_CXX=no -allow_undefined_flag_CXX= -always_export_symbols_CXX=no -archive_expsym_cmds_CXX= -export_dynamic_flag_spec_CXX= -hardcode_direct_CXX=no -hardcode_libdir_flag_spec_CXX= -hardcode_libdir_flag_spec_ld_CXX= -hardcode_libdir_separator_CXX= -hardcode_minus_L_CXX=no -hardcode_automatic_CXX=no -module_cmds_CXX= -module_expsym_cmds_CXX= -link_all_deplibs_CXX=unknown -old_archive_cmds_CXX=$old_archive_cmds -no_undefined_flag_CXX= -whole_archive_flag_spec_CXX= -enable_shared_with_static_runtimes_CXX=no - -# Dependencies to place before and after the object being linked: -predep_objects_CXX= -postdep_objects_CXX= -predeps_CXX= -postdeps_CXX= -compiler_lib_search_path_CXX= - -# Source file extension for C++ test sources. -ac_ext=cc - -# Object file extension for compiled C++ test sources. -objext=o -objext_CXX=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *) { return(0); }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -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 - 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 - unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -compiler_CXX=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' -else - lt_prog_compiler_no_builtin_flag_CXX= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - -# Check whether --with-gnu-ld or --without-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; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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 "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 GNU ld's 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 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_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 "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${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 - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_CXX= - 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. - archive_cmds_CXX='$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 "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -fi - -# PORTME: fill in a description of your system's C++ link characteristics -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 -ld_shlibs_CXX=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aix4* | aix5*) - 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 - 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 - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - 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_CXX='' - hardcode_direct_CXX=yes - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes; 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 - hardcode_direct_CXX=yes - else - # We have old collect2 - hardcode_direct_CXX=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_CXX=yes - hardcode_libdir_flag_spec_CXX='-L$libdir' - hardcode_libdir_separator_CXX= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # 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_CXX=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - - archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_CXX="-z nodefs" - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${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_CXX=' ${wl}-bernotok' - allow_undefined_flag_CXX=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_CXX=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX=' ' - archive_cmds_need_lc_CXX=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX='-L$libdir' - allow_undefined_flag_CXX=unsupported - always_export_symbols_CXX=no - enable_shared_with_static_runtimes_CXX=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs_CXX=no - fi - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes; then - archive_cmds_need_lc_CXX=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_CXX='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_CXX='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_CXX='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag_CXX='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_CXX='$CC -r ${wl}-bind_at_load -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' - fi - module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct_CXX=no - hardcode_automatic_CXX=yes - hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='-all_load $convenience' - link_all_deplibs_CXX=yes - else - ld_shlibs_CXX=no - fi - ;; - - dgux*) - case $cc_basename in - ec++) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - ghcx) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - freebsd12*) - # C++ shared libraries reported to be fairly broken before switch to ELF - ld_shlibs_CXX=no - ;; - freebsd-elf*) - archive_cmds_need_lc_CXX=no - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - ld_shlibs_CXX=yes - ;; - gnu*) - ;; - hpux9*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=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 - ld_shlibs_CXX=no - ;; - aCC) - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $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) | grep "-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_CXX='+b $libdir' - hardcode_libdir_separator_CXX=: - ;; - ia64*) - hardcode_libdir_flag_spec_CXX='-L$libdir' - ;; - *) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - ;; - esac - fi - case "$host_cpu" in - hppa*64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - ;; - ia64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - *) - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=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 - ld_shlibs_CXX=no - ;; - aCC) - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - archive_cmds_CXX='$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; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${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 - ld_shlibs_CXX=no - fi - ;; - esac - ;; - irix5* | irix6*) - case $cc_basename in - CC) - # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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. - old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - link_all_deplibs_CXX=yes - ;; - esac - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - ;; - linux*) - 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. - archive_cmds_CXX='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' - archive_expsym_cmds_CXX='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; echo $list' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc) - # Intel C++ - with_gnu_ld=yes - archive_cmds_need_lc_CXX=no - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - cxx) - # Compaq C++ - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$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 - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # 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=`echo $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; echo $list' - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - m88k*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - mvs*) - case $cc_basename in - cxx) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=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::"' - ;; - osf3*) - 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. - archive_cmds_CXX='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' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx) - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # 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=`echo $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; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # 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 "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - 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. - archive_cmds_CXX='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' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx) - allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - archive_expsym_cmds_CXX='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 $objdir/so_locations -o $lib~ - $rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # 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=`echo $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; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # 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 "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - sco*) - archive_cmds_need_lc_CXX=no - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - lcc) - # Lucid - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_shlibpath_var_CXX=no - case $host_os in - solaris2.0-5 | solaris2.0-5.*) ;; - *) - # The C++ compiler is used as linker so we must use $wl - # flag to pass the commands to the underlying system - # linker. - # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - link_all_deplibs_CXX=yes - - # 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 -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - # 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. - old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' - ;; - gcx) - # Green Hills C++ Compiler - archive_cmds_CXX='$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. - old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -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 \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$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 -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 \"\-L\"" - fi - - hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' - fi - ;; - esac - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - archive_cmds_need_lc_CXX=no - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; -esac -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" = no && can_build_shared=no - -GCC_CXX="$GXX" -LD_CXX="$LD" - - -cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; 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 - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" \ - || test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p 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 "$compiler_lib_search_path_CXX"; then - compiler_lib_search_path_CXX="${prev}${p}" - else - compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${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 "$postdeps_CXX"; then - postdeps_CXX="${prev}${p}" - else - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi - ;; - - *.$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 "$pre_test_object_deps_done" = no; then - if test -z "$predep_objects_CXX"; then - predep_objects_CXX="$p" - else - predep_objects_CXX="$predep_objects_CXX $p" - fi - else - if test -z "$postdep_objects_CXX"; then - postdep_objects_CXX="$p" - else - postdep_objects_CXX="$postdep_objects_CXX $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling CXX test program" -fi - -$rm -f confest.$objext - -case " $postdeps_CXX " in -*" -lc "*) archive_cmds_need_lc_CXX=no ;; -esac - -lt_prog_compiler_wl_CXX= -lt_prog_compiler_pic_CXX= -lt_prog_compiler_static_CXX= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - fi - ;; - amigaos*) - # 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_CXX='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # 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_CXX='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_CXX='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - lt_prog_compiler_pic_CXX= - ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_CXX=-Kconform_pic - fi - ;; - hpux*) - # 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*) - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - else - lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--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 - ;; - dgux*) - case $cc_basename in - ec++) - lt_prog_compiler_pic_CXX='-KPIC' - ;; - ghcx) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - if test "$host_cpu" != ia64; then - lt_prog_compiler_pic_CXX='+Z' - fi - ;; - aCC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_CXX='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux*) - case $cc_basename in - KCC) - # KAI C++ Compiler - lt_prog_compiler_wl_CXX='--backend -Wl,' - lt_prog_compiler_pic_CXX='-fPIC' - ;; - icpc) - # Intel C++ - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-static' - ;; - cxx) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx) - lt_prog_compiler_pic_CXX='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd* | knetbsd*-gnu) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC) - lt_prog_compiler_wl_CXX='--backend -Wl,' - ;; - RCC) - # Rational C++ 2.4.1 - lt_prog_compiler_pic_CXX='-pic' - ;; - cxx) - # Digital/Compaq C++ - lt_prog_compiler_wl_CXX='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - sco*) - case $cc_basename in - CC) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - *) - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - gcx) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - lt_prog_compiler_pic_CXX='-pic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - lcc) - # Lucid - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - lt_prog_compiler_pic_CXX='-KPIC' - ;; - *) - ;; - esac - ;; - unixware*) - ;; - vxworks*) - ;; - *) - lt_prog_compiler_can_build_shared_CXX=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_CXX"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_CXX=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" - # 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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11007: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:11011: \$? = $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 - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_CXX=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 - -if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then - case $lt_prog_compiler_pic_CXX in - "" | " "*) ;; - *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; - esac -else - lt_prog_compiler_pic_CXX= - lt_prog_compiler_can_build_shared_CXX=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_CXX= - ;; - *) - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_CXX=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11067: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:11071: \$? = $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 - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_CXX=yes - fi - fi - chmod u+w . - $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 .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -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 - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" - ;; - cygwin* | mingw*) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - linux*) - link_all_deplibs_CXX=no - ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_CXX" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_CXX=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_CXX 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. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_CXX - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_CXX - allow_undefined_flag_CXX= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_CXX=no - else - archive_cmds_need_lc_CXX=yes - fi - allow_undefined_flag_CXX=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -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" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # 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. - 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 -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -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 - 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' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; 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 - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}' - else - # 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' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - 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*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - 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' - 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="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - 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 - ;; - 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 - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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}${versuffix}$shared_ext ${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)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - 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 - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-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='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - 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 - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -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 - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - 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' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - 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 - ;; - -# This must be Linux ELF. -linux*) - 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' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # 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 - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | 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' - ;; - -knetbsd*-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='GNU ld.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 - 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=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=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - 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 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -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" - ;; - -sco3.2v5*) - version_type=osf - 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 - ;; - -solaris*) - 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=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 "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - 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 - export_dynamic_flag_spec='${wl}-Blargedynsym' - 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 - 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 - ;; - -uts4*) - version_type=linux - 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 -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_CXX= -if test -n "$hardcode_libdir_flag_spec_CXX" || \ - test -n "$runpath_var CXX" || \ - test "X$hardcode_automatic_CXX"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_CXX" != no && - # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && - test "$hardcode_minus_L_CXX" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_CXX=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_CXX=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_CXX=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -echo "${ECHO_T}$hardcode_action_CXX" >&6 - -if test "$hardcode_action_CXX" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; 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*) - 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 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; 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 - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* 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_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* 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_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$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 - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_CXX \ - CC_CXX \ - LD_CXX \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ - lt_prog_compiler_static_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ - export_dynamic_flag_spec_CXX \ - thread_safe_flag_spec_CXX \ - whole_archive_flag_spec_CXX \ - enable_shared_with_static_runtimes_CXX \ - old_archive_cmds_CXX \ - old_archive_from_new_cmds_CXX \ - predep_objects_CXX \ - postdep_objects_CXX \ - predeps_CXX \ - postdeps_CXX \ - compiler_lib_search_path_CXX \ - archive_cmds_CXX \ - archive_expsym_cmds_CXX \ - postinstall_cmds_CXX \ - postuninstall_cmds_CXX \ - old_archive_from_expsyms_cmds_CXX \ - allow_undefined_flag_CXX \ - no_undefined_flag_CXX \ - export_symbols_cmds_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ - hardcode_automatic_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX; do - - case $var in - old_archive_cmds_CXX | \ - old_archive_from_new_cmds_CXX | \ - archive_cmds_CXX | \ - archive_expsym_cmds_CXX | \ - module_cmds_CXX | \ - module_expsym_cmds_CXX | \ - old_archive_from_expsyms_cmds_CXX | \ - export_symbols_cmds_CXX | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_CXX - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_CXX - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_CXX - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_CXX - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_CXX -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_CXX - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_CXX -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_CXX -archive_expsym_cmds=$lt_archive_expsym_cmds_CXX -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_CXX -module_expsym_cmds=$lt_module_expsym_cmds_CXX - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_CXX - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_CXX - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_CXX - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_CXX - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_CXX - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# 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 in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_CXX - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# 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_CXX - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_CXX - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_CXX - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX - -# 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_CXX - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_CXX - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_CXX" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_CXX - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_CXX - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_CXX - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_CXX - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - 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 - -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -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 - - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu - - -archive_cmds_need_lc_F77=no -allow_undefined_flag_F77= -always_export_symbols_F77=no -archive_expsym_cmds_F77= -export_dynamic_flag_spec_F77= -hardcode_direct_F77=no -hardcode_libdir_flag_spec_F77= -hardcode_libdir_flag_spec_ld_F77= -hardcode_libdir_separator_F77= -hardcode_minus_L_F77=no -hardcode_automatic_F77=no -module_cmds_F77= -module_expsym_cmds_F77= -link_all_deplibs_F77=unknown -old_archive_cmds_F77=$old_archive_cmds -no_undefined_flag_F77= -whole_archive_flag_spec_F77= -enable_shared_with_static_runtimes_F77=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -objext_F77=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=" subroutine t\n return\n end\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=" program t\n end\n" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -compiler_F77=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 -test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -aix4* | aix5*) - test "$enable_shared" = yes && enable_static=no - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -test "$ld_shlibs_F77" = no && can_build_shared=no - -GCC_F77="$G77" -LD_F77="$LD" - -lt_prog_compiler_wl_F77= -lt_prog_compiler_pic_F77= -lt_prog_compiler_static_F77= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_static_F77='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - amigaos*) - # 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_F77='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # 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_F77='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_F77='-fno-common' - ;; - - 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_F77=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_F77=-Kconform_pic - fi - ;; - - hpux*) - # 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_F77='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_F77='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - else - lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # 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_F77='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_F77='-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_F77='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_F77='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_F77='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-static' - ;; - ccc*) - lt_prog_compiler_wl_F77='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_F77='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_F77='-Kpic' - lt_prog_compiler_static_F77='-dn' - ;; - - solaris*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_F77='-Qoption ld ' - lt_prog_compiler_pic_F77='-PIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_F77='-Kconform_pic' - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_F77='-pic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_F77=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_F77"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_F77=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_F77" - # 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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13349: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:13353: \$? = $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 - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_F77=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 - -if test x"$lt_prog_compiler_pic_works_F77" = xyes; then - case $lt_prog_compiler_pic_F77 in - "" | " "*) ;; - *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; - esac -else - lt_prog_compiler_pic_F77= - lt_prog_compiler_can_build_shared_F77=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_F77= - ;; - *) - lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_F77=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13409: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:13413: \$? = $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 - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_F77=yes - fi - fi - chmod u+w . - $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 .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -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 - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag_F77= - enable_shared_with_static_runtimes_F77=no - archive_cmds_F77= - archive_expsym_cmds_F77= - old_archive_From_new_cmds_F77= - old_archive_from_expsyms_cmds_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - thread_safe_flag_spec_F77= - hardcode_libdir_flag_spec_F77= - hardcode_libdir_flag_spec_ld_F77= - hardcode_libdir_separator_F77= - hardcode_direct_F77=no - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=unsupported - link_all_deplibs_F77=unknown - hardcode_automatic_F77=no - module_cmds_F77= - module_expsym_cmds_F77= - always_export_symbols_F77=no - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_F77= - # 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_F77="_GLOBAL_OFFSET_TABLE_" - # 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. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # 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 - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_F77=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_F77=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_F77='$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_F77='-L$libdir' - hardcode_minus_L_F77=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_F77=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_F77=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_F77='-L$libdir' - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=no - enable_shared_with_static_runtimes_F77=yes - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_F77=no - cat <&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. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - sunos4*) - archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds_F77="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 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 - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_F77="$tmp_archive_cmds" - fi - link_all_deplibs_F77=no - else - ld_shlibs_F77=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - - if test "$ld_shlibs_F77" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_F77='${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_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_F77= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=yes - archive_expsym_cmds_F77='$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_F77=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_F77=unsupported - fi - ;; - - aix4* | aix5*) - 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 - 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 AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | 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 - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - 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 - - 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_F77='' - hardcode_direct_F77=yes - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - - if test "$GCC" = yes; 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 - hardcode_direct_F77=yes - else - # We have old collect2 - hardcode_direct_F77=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_F77=yes - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_libdir_separator_F77= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # 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_F77=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_F77='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_F77="-z nodefs" - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${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_F77=' ${wl}-bernotok' - allow_undefined_flag_F77=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_F77=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_F77=' ' - archive_cmds_need_lc_F77=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_F77='$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_F77='-L$libdir' - hardcode_minus_L_F77=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_F77=no - ;; - - bsdi4*) - export_dynamic_flag_spec_F77=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # 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_F77=' ' - allow_undefined_flag_F77=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_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_F77='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_F77=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc_F77=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_F77='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_F77='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_F77='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag_F77='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_F77='$CC -r ${wl}-bind_at_load -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' - fi - module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct_F77=no - hardcode_automatic_F77=yes - hardcode_shlibpath_var_F77=unsupported - whole_archive_flag_spec_F77='-all_load $convenience' - link_all_deplibs_F77=yes - else - ld_shlibs_F77=no - fi - ;; - - dgux*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - freebsd1*) - ld_shlibs_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_F77='+b $libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - ;; - ia64*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - *) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - link_all_deplibs_F77=yes - ;; - - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - newsos6) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_shlibpath_var_F77=no - ;; - - openbsd*) - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - ;; - *) - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - allow_undefined_flag_F77=unsupported - archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_F77='-rpath $libdir' - fi - hardcode_libdir_separator_F77=: - ;; - - sco3.2v5*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag_F77=' -z text' - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$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' - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_shlibpath_var_F77=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs_F77=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_F77='$CC -r -o $output$reload_objs' - hardcode_direct_F77=no - ;; - motorola) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv4.3*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_F77=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_F77='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv5*) - no_undefined_flag_F77=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$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' - hardcode_libdir_flag_spec_F77= - hardcode_shlibpath_var_F77=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - *) - ld_shlibs_F77=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -echo "${ECHO_T}$ld_shlibs_F77" >&6 -test "$ld_shlibs_F77" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_F77" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_F77=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_F77 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. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_F77 - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_F77 - allow_undefined_flag_F77= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_F77=no - else - archive_cmds_need_lc_F77=yes - fi - allow_undefined_flag_F77=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -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" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # 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. - 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 -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -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 - 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' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; 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 - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}' - else - # 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' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - 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*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - 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' - 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="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - 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 - ;; - 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 - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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}${versuffix}$shared_ext ${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)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - 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 - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-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='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - 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 - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -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 - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - 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' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - 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 - ;; - -# This must be Linux ELF. -linux*) - 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' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # 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 - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | 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' - ;; - -knetbsd*-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='GNU ld.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 - 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=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=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - 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 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -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" - ;; - -sco3.2v5*) - version_type=osf - 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 - ;; - -solaris*) - 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=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 "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - 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 - export_dynamic_flag_spec='${wl}-Blargedynsym' - 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 - 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 - ;; - -uts4*) - version_type=linux - 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 -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_F77= -if test -n "$hardcode_libdir_flag_spec_F77" || \ - test -n "$runpath_var F77" || \ - test "X$hardcode_automatic_F77"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_F77" != no && - # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && - test "$hardcode_minus_L_F77" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_F77=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_F77=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_F77=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -echo "${ECHO_T}$hardcode_action_F77" >&6 - -if test "$hardcode_action_F77" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_F77 \ - CC_F77 \ - LD_F77 \ - lt_prog_compiler_wl_F77 \ - lt_prog_compiler_pic_F77 \ - lt_prog_compiler_static_F77 \ - lt_prog_compiler_no_builtin_flag_F77 \ - export_dynamic_flag_spec_F77 \ - thread_safe_flag_spec_F77 \ - whole_archive_flag_spec_F77 \ - enable_shared_with_static_runtimes_F77 \ - old_archive_cmds_F77 \ - old_archive_from_new_cmds_F77 \ - predep_objects_F77 \ - postdep_objects_F77 \ - predeps_F77 \ - postdeps_F77 \ - compiler_lib_search_path_F77 \ - archive_cmds_F77 \ - archive_expsym_cmds_F77 \ - postinstall_cmds_F77 \ - postuninstall_cmds_F77 \ - old_archive_from_expsyms_cmds_F77 \ - allow_undefined_flag_F77 \ - no_undefined_flag_F77 \ - export_symbols_cmds_F77 \ - hardcode_libdir_flag_spec_F77 \ - hardcode_libdir_flag_spec_ld_F77 \ - hardcode_libdir_separator_F77 \ - hardcode_automatic_F77 \ - module_cmds_F77 \ - module_expsym_cmds_F77 \ - lt_cv_prog_compiler_c_o_F77 \ - exclude_expsyms_F77 \ - include_expsyms_F77; do - - case $var in - old_archive_cmds_F77 | \ - old_archive_from_new_cmds_F77 | \ - archive_cmds_F77 | \ - archive_expsym_cmds_F77 | \ - module_cmds_F77 | \ - module_expsym_cmds_F77 | \ - old_archive_from_expsyms_cmds_F77 | \ - export_symbols_cmds_F77 | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_F77 - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_F77 - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_F77 - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_F77 - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_F77 - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_F77 -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_F77 - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_F77 -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_F77 -archive_expsym_cmds=$lt_archive_expsym_cmds_F77 -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_F77 -module_expsym_cmds=$lt_module_expsym_cmds_F77 - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_F77 - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_F77 - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_F77 - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_F77 - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_F77 - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# 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 in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_F77 - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# 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_F77 - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_F77 - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_F77 - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 - -# 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_F77 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_F77 - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_F77" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_F77 - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_F77 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_F77 - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_F77 - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - 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 - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - - - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -objext_GCJ=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -compiler_GCJ=$CC - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -archive_cmds_need_lc_GCJ=no - - -lt_prog_compiler_no_builtin_flag_GCJ= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # 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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15442: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:15446: \$? = $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 - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl_GCJ= -lt_prog_compiler_pic_GCJ= -lt_prog_compiler_static_GCJ= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_static_GCJ='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - amigaos*) - # 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_GCJ='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # 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_GCJ='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_GCJ='-fno-common' - ;; - - 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_GCJ=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_GCJ=-Kconform_pic - fi - ;; - - hpux*) - # 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_GCJ='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_GCJ='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - else - lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # 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_GCJ='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_GCJ='-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_GCJ='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-static' - ;; - ccc*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_GCJ='-Kpic' - lt_prog_compiler_static_GCJ='-dn' - ;; - - solaris*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_GCJ='-Qoption ld ' - lt_prog_compiler_pic_GCJ='-PIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_GCJ='-Kconform_pic' - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_GCJ='-pic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_GCJ=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_GCJ"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_GCJ=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_GCJ" - # 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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15675: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:15679: \$? = $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 - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_GCJ=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 - -if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then - case $lt_prog_compiler_pic_GCJ in - "" | " "*) ;; - *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; - esac -else - lt_prog_compiler_pic_GCJ= - lt_prog_compiler_can_build_shared_GCJ=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_GCJ= - ;; - *) - lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_GCJ=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$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}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15735: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:15739: \$? = $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 - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_GCJ=yes - fi - fi - chmod u+w . - $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 .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -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 - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag_GCJ= - enable_shared_with_static_runtimes_GCJ=no - archive_cmds_GCJ= - archive_expsym_cmds_GCJ= - old_archive_From_new_cmds_GCJ= - old_archive_from_expsyms_cmds_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - thread_safe_flag_spec_GCJ= - hardcode_libdir_flag_spec_GCJ= - hardcode_libdir_flag_spec_ld_GCJ= - hardcode_libdir_separator_GCJ= - hardcode_direct_GCJ=no - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=unsupported - link_all_deplibs_GCJ=unknown - hardcode_automatic_GCJ=no - module_cmds_GCJ= - module_expsym_cmds_GCJ= - always_export_symbols_GCJ=no - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_GCJ= - # 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_GCJ="_GLOBAL_OFFSET_TABLE_" - # 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. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # 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 - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_GCJ=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_GCJ=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_GCJ='$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_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_GCJ=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_GCJ=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_GCJ='-L$libdir' - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=no - enable_shared_with_static_runtimes_GCJ=yes - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_GCJ=no - cat <&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. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - sunos4*) - archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds_GCJ="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 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 - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_GCJ="$tmp_archive_cmds" - fi - link_all_deplibs_GCJ=no - else - ld_shlibs_GCJ=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - - if test "$ld_shlibs_GCJ" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_GCJ='${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_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_GCJ= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=yes - archive_expsym_cmds_GCJ='$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_GCJ=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_GCJ=unsupported - fi - ;; - - aix4* | aix5*) - 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 - 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 AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | 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 - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - 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 - - 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_GCJ='' - hardcode_direct_GCJ=yes - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - - if test "$GCC" = yes; 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 - hardcode_direct_GCJ=yes - else - # We have old collect2 - hardcode_direct_GCJ=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_GCJ=yes - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_libdir_separator_GCJ= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # 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_GCJ=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_GCJ='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_GCJ="-z nodefs" - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${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_GCJ=' ${wl}-bernotok' - allow_undefined_flag_GCJ=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_GCJ=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_GCJ=' ' - archive_cmds_need_lc_GCJ=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_GCJ='$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_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_GCJ=no - ;; - - bsdi4*) - export_dynamic_flag_spec_GCJ=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # 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_GCJ=' ' - allow_undefined_flag_GCJ=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_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_GCJ='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_GCJ=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc_GCJ=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_GCJ='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag_GCJ='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -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' - fi - module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct_GCJ=no - hardcode_automatic_GCJ=yes - hardcode_shlibpath_var_GCJ=unsupported - whole_archive_flag_spec_GCJ='-all_load $convenience' - link_all_deplibs_GCJ=yes - else - ld_shlibs_GCJ=no - fi - ;; - - dgux*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - freebsd1*) - ld_shlibs_GCJ=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_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - ;; - ia64*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - *) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - link_all_deplibs_GCJ=yes - ;; - - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - newsos6) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_shlibpath_var_GCJ=no - ;; - - openbsd*) - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - ;; - *) - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - allow_undefined_flag_GCJ=unsupported - archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_GCJ='-rpath $libdir' - fi - hardcode_libdir_separator_GCJ=: - ;; - - sco3.2v5*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag_GCJ=' -z text' - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$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' - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_shlibpath_var_GCJ=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs_GCJ=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_GCJ='$CC -r -o $output$reload_objs' - hardcode_direct_GCJ=no - ;; - motorola) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4.3*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_GCJ=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_GCJ='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv5*) - no_undefined_flag_GCJ=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$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' - hardcode_libdir_flag_spec_GCJ= - hardcode_shlibpath_var_GCJ=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - *) - ld_shlibs_GCJ=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -echo "${ECHO_T}$ld_shlibs_GCJ" >&6 -test "$ld_shlibs_GCJ" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_GCJ" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_GCJ=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_GCJ 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. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_GCJ - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ - allow_undefined_flag_GCJ= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_GCJ=no - else - archive_cmds_need_lc_GCJ=yes - fi - allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -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" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # 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. - 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 -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -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 - 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' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; 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 - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # 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}' - else - # 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' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - 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*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - 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' - 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="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - 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 - ;; - 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 - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # 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}${versuffix}$shared_ext ${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)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - 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 - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-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='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - 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 - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -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 - 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 "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - 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' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - 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 - ;; - -# This must be Linux ELF. -linux*) - 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' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # 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 - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | 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' - ;; - -knetbsd*-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='GNU ld.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 - 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=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=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - 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 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -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" - ;; - -sco3.2v5*) - version_type=osf - 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 - ;; - -solaris*) - 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=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 "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - 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 - export_dynamic_flag_spec='${wl}-Blargedynsym' - 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 - 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 - ;; - -uts4*) - version_type=linux - 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 -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_GCJ= -if test -n "$hardcode_libdir_flag_spec_GCJ" || \ - test -n "$runpath_var GCJ" || \ - test "X$hardcode_automatic_GCJ"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" != no && - # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && - test "$hardcode_minus_L_GCJ" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_GCJ=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_GCJ=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6 - -if test "$hardcode_action_GCJ" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}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" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; 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*) - 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 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; 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 - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* 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_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* 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_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; 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 < -#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 - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=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; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 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_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$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 - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_GCJ \ - CC_GCJ \ - LD_GCJ \ - lt_prog_compiler_wl_GCJ \ - lt_prog_compiler_pic_GCJ \ - lt_prog_compiler_static_GCJ \ - lt_prog_compiler_no_builtin_flag_GCJ \ - export_dynamic_flag_spec_GCJ \ - thread_safe_flag_spec_GCJ \ - whole_archive_flag_spec_GCJ \ - enable_shared_with_static_runtimes_GCJ \ - old_archive_cmds_GCJ \ - old_archive_from_new_cmds_GCJ \ - predep_objects_GCJ \ - postdep_objects_GCJ \ - predeps_GCJ \ - postdeps_GCJ \ - compiler_lib_search_path_GCJ \ - archive_cmds_GCJ \ - archive_expsym_cmds_GCJ \ - postinstall_cmds_GCJ \ - postuninstall_cmds_GCJ \ - old_archive_from_expsyms_cmds_GCJ \ - allow_undefined_flag_GCJ \ - no_undefined_flag_GCJ \ - export_symbols_cmds_GCJ \ - hardcode_libdir_flag_spec_GCJ \ - hardcode_libdir_flag_spec_ld_GCJ \ - hardcode_libdir_separator_GCJ \ - hardcode_automatic_GCJ \ - module_cmds_GCJ \ - module_expsym_cmds_GCJ \ - lt_cv_prog_compiler_c_o_GCJ \ - exclude_expsyms_GCJ \ - include_expsyms_GCJ; do - - case $var in - old_archive_cmds_GCJ | \ - old_archive_from_new_cmds_GCJ | \ - archive_cmds_GCJ | \ - archive_expsym_cmds_GCJ | \ - module_cmds_GCJ | \ - module_expsym_cmds_GCJ | \ - old_archive_from_expsyms_cmds_GCJ | \ - export_symbols_cmds_GCJ | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_GCJ - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_GCJ - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_GCJ - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_GCJ - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_GCJ - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_GCJ -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_GCJ - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_GCJ -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_GCJ -archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_GCJ -module_expsym_cmds=$lt_module_expsym_cmds_GCJ - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_GCJ - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_GCJ - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_GCJ - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_GCJ - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# 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 in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_GCJ - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# 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_GCJ - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_GCJ - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_GCJ - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ - -# 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_GCJ - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_GCJ - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_GCJ" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_GCJ - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_GCJ - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_GCJ - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_GCJ - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - 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 - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - RC) - - - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -objext_RC=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' - -# 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. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -compiler_RC=$CC -lt_cv_prog_compiler_c_o_RC=yes - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_RC \ - CC_RC \ - LD_RC \ - lt_prog_compiler_wl_RC \ - lt_prog_compiler_pic_RC \ - lt_prog_compiler_static_RC \ - lt_prog_compiler_no_builtin_flag_RC \ - export_dynamic_flag_spec_RC \ - thread_safe_flag_spec_RC \ - whole_archive_flag_spec_RC \ - enable_shared_with_static_runtimes_RC \ - old_archive_cmds_RC \ - old_archive_from_new_cmds_RC \ - predep_objects_RC \ - postdep_objects_RC \ - predeps_RC \ - postdeps_RC \ - compiler_lib_search_path_RC \ - archive_cmds_RC \ - archive_expsym_cmds_RC \ - postinstall_cmds_RC \ - postuninstall_cmds_RC \ - old_archive_from_expsyms_cmds_RC \ - allow_undefined_flag_RC \ - no_undefined_flag_RC \ - export_symbols_cmds_RC \ - hardcode_libdir_flag_spec_RC \ - hardcode_libdir_flag_spec_ld_RC \ - hardcode_libdir_separator_RC \ - hardcode_automatic_RC \ - module_cmds_RC \ - module_expsym_cmds_RC \ - lt_cv_prog_compiler_c_o_RC \ - exclude_expsyms_RC \ - include_expsyms_RC; do - - case $var in - old_archive_cmds_RC | \ - old_archive_from_new_cmds_RC | \ - archive_cmds_RC | \ - archive_expsym_cmds_RC | \ - module_cmds_RC | \ - module_expsym_cmds_RC | \ - old_archive_from_expsyms_cmds_RC | \ - export_symbols_cmds_RC | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_RC - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_RC - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_RC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_RC - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_RC - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_RC -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# 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 - -# 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 - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_RC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC - -# Library versioning type. -version_type=$version_type - -# 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 - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_RC -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_RC -archive_expsym_cmds=$lt_archive_expsym_cmds_RC -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_RC -module_expsym_cmds=$lt_module_expsym_cmds_RC - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_RC - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_RC - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_RC - -# 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 - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_RC - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_RC - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# 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 in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_RC - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# 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_RC - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_RC - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_RC - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_RC - -# 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_RC - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_RC - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_RC" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_RC - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_RC - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_RC - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_RC - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - 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 - -CC="$lt_save_CC" - - ;; - - *) - { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 -echo "$as_me: error: Unsupported tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 -echo "$as_me: error: unable to update list of available tagged configurations." >&2;} - { (exit 1); exit 1; }; } - fi -fi - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -# Prevent multiple expansion - - - - - - - - - - - - - - - - - - - - - - - echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 -echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 -if test "${ac_cv_lib_cposix_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror (); -int -main () -{ -strerror (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_cposix_strerror=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_cposix_strerror=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 -echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 -if test $ac_cv_lib_cposix_strerror = yes; then - LIBS="$LIBS -lcposix" -fi - - - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftest.file -# 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 ( - 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 - rm -f conftest.file - 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". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - - - -echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5 -echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6 -if test "${am_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* 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; -} -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 -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_prog_cc_stdc="$ac_arg"; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -CC="$ac_save_CC" - -fi - -if test -z "$am_cv_prog_cc_stdc"; then - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 -else - echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6 -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac - -# 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. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_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 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -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. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$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' - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#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)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset x; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - ccp = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - } -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_const=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - - - -for ac_header in unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -echo "$as_me:$LINENO: checking for target architecture" >&5 -echo $ECHO_N "checking for target architecture... $ECHO_C" >&6 -case x"$target" in - xNONE | x) - target_or_host="$host" ;; - *) - target_or_host="$target" ;; -esac -echo "$as_me:$LINENO: result: $target_or_host" >&5 -echo "${ECHO_T}$target_or_host" >&6 - - -echo "$as_me:$LINENO: checking for native Win32" >&5 -echo $ECHO_N "checking for native Win32... $ECHO_C" >&6 -case "$target_or_host" in - *-*-mingw*) - os_win32=yes - ;; - *) - os_win32=no - ;; -esac -echo "$as_me:$LINENO: result: $os_win32" >&5 -echo "${ECHO_T}$os_win32" >&6 - - -if test "$os_win32" = "yes"; then - OS_WIN32_TRUE= - OS_WIN32_FALSE='#' -else - OS_WIN32_TRUE='#' - OS_WIN32_FALSE= -fi - - - -if test x"$os_win32" = xyes; then -WIN32_LIBS=-lwsock32 -fi - - - -# Ensure MSVC-compatible struct packing convention is used when -# compiling for Win32 with gcc. -# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while -# gcc2 uses "-fnative-struct". -if test x"$os_win32" = xyes; then - if test x"$GCC" = xyes; then - msnative_struct='' - echo "$as_me:$LINENO: checking how to get MSVC-compatible struct packing" >&5 -echo $ECHO_N "checking how to get MSVC-compatible struct packing... $ECHO_C" >&6 - if test -z "$ac_cv_prog_CC"; then - our_gcc="$CC" - else - our_gcc="$ac_cv_prog_CC" - fi - case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in - 2.) - if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then - msnative_struct='-fnative-struct' - fi - ;; - *) - if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then - msnative_struct='-mms-bitfields' - fi - ;; - esac - if test x"$msnative_struct" = x ; then - echo "$as_me:$LINENO: result: no way" >&5 -echo "${ECHO_T}no way" >&6 - { echo "$as_me:$LINENO: WARNING: build will be incompatible with GTK+ DLLs" >&5 -echo "$as_me: WARNING: build will be incompatible with GTK+ DLLs" >&2;} - else - WIN32_CFLAGS=$msnative_struct - echo "$as_me:$LINENO: result: $WIN32_CFLAGS" >&5 -echo "${ECHO_T}$WIN32_CFLAGS" >&6 - fi - fi -fi - - - - -if test "x$GCC" = xyes; then - CFLAGS="$CFLAGS -Wall $WIN32_CFLAGS" -fi - - - - -DATADIR=$datadir/blib-$BLIB_API_VERSION -INCLUDEDIR=$includedir/blib-$BLIB_API_VERSION -THEMEPATH=$datadir/blib-$BLIB_API_VERSION/themes -MODULEPATH=$libdir/blib-$BLIB_API_VERSION/modules - - - - - - -# Check whether --enable-glibtest or --disable-glibtest was given. -if test "${enable_glibtest+set}" = set; then - enableval="$enable_glibtest" - -else - enable_glibtest=yes -fi; - - pkg_config_args=glib-2.0 - for module in . gobject gmodule - do - case "$module" in - gmodule) - pkg_config_args="$pkg_config_args gmodule-2.0" - ;; - gobject) - pkg_config_args="$pkg_config_args gobject-2.0" - ;; - gthread) - pkg_config_args="$pkg_config_args gthread-2.0" - ;; - esac - done - - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - - no_glib="" - - if test x$PKG_CONFIG != xno ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - : - else - echo *** pkg-config too old; version 0.7 or better required. - no_glib=yes - PKG_CONFIG=no - fi - else - no_glib=yes - fi - - min_glib_version=2.0.1 - echo "$as_me:$LINENO: checking for GLIB - version >= $min_glib_version" >&5 -echo $ECHO_N "checking for GLIB - version >= $min_glib_version... $ECHO_C" >&6 - - if test x$PKG_CONFIG != xno ; then - ## don't try to run the test against uninstalled libtool libs - if $PKG_CONFIG --uninstalled $pkg_config_args; then - echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" - enable_glibtest=no - fi - - if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then - : - else - no_glib=yes - fi - fi - - if test x"$no_glib" = x ; then - GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` - GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` - GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` - - GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` - GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` - glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` - glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` - glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` - if test "x$enable_glibtest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$GLIB_LIBS $LIBS" - rm -f conf.glibtest - if test "$cross_compiling" = yes; then - echo $ac_n "cross compiling; assumed OK... $ac_c" -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include - -int -main () -{ - int major, minor, micro; - char *tmp_version; - - system ("touch conf.glibtest"); - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = g_strdup("$min_glib_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_glib_version"); - exit(1); - } - - if ((glib_major_version != $glib_config_major_version) || - (glib_minor_version != $glib_config_minor_version) || - (glib_micro_version != $glib_config_micro_version)) - { - printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", - $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, - glib_major_version, glib_minor_version, glib_micro_version); - printf ("*** was found! If pkg-config was correct, then it is best\n"); - printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); - printf("*** to point to the correct configuration files\n"); - } - else if ((glib_major_version != GLIB_MAJOR_VERSION) || - (glib_minor_version != GLIB_MINOR_VERSION) || - (glib_micro_version != GLIB_MICRO_VERSION)) - { - printf("*** GLIB header files (version %d.%d.%d) do not match\n", - GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); - printf("*** library (version %d.%d.%d)\n", - glib_major_version, glib_minor_version, glib_micro_version); - } - else - { - if ((glib_major_version > major) || - ((glib_major_version == major) && (glib_minor_version > minor)) || - ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", - glib_major_version, glib_minor_version, glib_micro_version); - printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); - printf("*** correct copy of pkg-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -no_glib=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_glib" = x ; then - echo "$as_me:$LINENO: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5 -echo "${ECHO_T}yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6 - : - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - if test "$PKG_CONFIG" = "no" ; then - echo "*** A new enough version of pkg-config was not found." - echo "*** See http://www.freedesktop.org/software/pkgconfig/" - else - if test -f conf.glibtest ; then - : - else - echo "*** Could not run GLIB test program, checking why..." - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GLIB_CFLAGS" - LIBS="$LIBS $GLIB_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding GLIB or finding the wrong" - echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means GLIB is incorrectly installed." -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - GLIB_CFLAGS="" - GLIB_LIBS="" - GLIB_GENMARSHAL="" - GOBJECT_QUERY="" - GLIB_MKENUMS="" - { { echo "$as_me:$LINENO: error: -*** blib depends on glib-2.0 which doesn't seem to be available." >&5 -echo "$as_me: error: -*** blib depends on glib-2.0 which doesn't seem to be available." >&2;} - { (exit 1); exit 1; }; } - fi - - - - - - rm -f conf.glibtest - - - -# Check whether --enable-directfb or --disable-directfb was given. -if test "${enable_directfb+set}" = set; then - enableval="$enable_directfb" - -else - enable_directfb=yes -fi; - -if test "x$enable_directfb" = "xyes"; then - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for directfb >= 0.9.11" >&5 -echo $ECHO_N "checking for directfb >= 0.9.11... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "directfb >= 0.9.11" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking DIRECTFB_CFLAGS" >&5 -echo $ECHO_N "checking DIRECTFB_CFLAGS... $ECHO_C" >&6 - DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags "directfb >= 0.9.11"` - echo "$as_me:$LINENO: result: $DIRECTFB_CFLAGS" >&5 -echo "${ECHO_T}$DIRECTFB_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking DIRECTFB_LIBS" >&5 -echo $ECHO_N "checking DIRECTFB_LIBS... $ECHO_C" >&6 - DIRECTFB_LIBS=`$PKG_CONFIG --libs "directfb >= 0.9.11"` - echo "$as_me:$LINENO: result: $DIRECTFB_LIBS" >&5 -echo "${ECHO_T}$DIRECTFB_LIBS" >&6 - else - DIRECTFB_CFLAGS="" - DIRECTFB_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.11"` - - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - have_directfb=yes - else - have_directfb=no - fi - -else - have_directfb=no -fi - -if test $have_directfb = yes; then - DIRECTFB_VIEW_TYPE=b_view_directfb_get_type -fi - - - - - -if test $have_directfb = yes; then - HAVE_DIRECTFB_TRUE= - HAVE_DIRECTFB_FALSE='#' -else - HAVE_DIRECTFB_TRUE='#' - HAVE_DIRECTFB_FALSE= -fi - - - -# Check whether --enable-gdk_pixbuf or --disable-gdk_pixbuf was given. -if test "${enable_gdk_pixbuf+set}" = set; then - enableval="$enable_gdk_pixbuf" - -else - enable_gdk_pixbuf=yes -fi; - -if test "x$enable_gdk_pixbuf" = "xyes"; then - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for gdk-pixbuf-2.0 >= 2.0.0" >&5 -echo $ECHO_N "checking for gdk-pixbuf-2.0 >= 2.0.0... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "gdk-pixbuf-2.0 >= 2.0.0" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking GDK_PIXBUF_CFLAGS" >&5 -echo $ECHO_N "checking GDK_PIXBUF_CFLAGS... $ECHO_C" >&6 - GDK_PIXBUF_CFLAGS=`$PKG_CONFIG --cflags "gdk-pixbuf-2.0 >= 2.0.0"` - echo "$as_me:$LINENO: result: $GDK_PIXBUF_CFLAGS" >&5 -echo "${ECHO_T}$GDK_PIXBUF_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking GDK_PIXBUF_LIBS" >&5 -echo $ECHO_N "checking GDK_PIXBUF_LIBS... $ECHO_C" >&6 - GDK_PIXBUF_LIBS=`$PKG_CONFIG --libs "gdk-pixbuf-2.0 >= 2.0.0"` - echo "$as_me:$LINENO: result: $GDK_PIXBUF_LIBS" >&5 -echo "${ECHO_T}$GDK_PIXBUF_LIBS" >&6 - else - GDK_PIXBUF_CFLAGS="" - GDK_PIXBUF_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - GDK_PIXBUF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gdk-pixbuf-2.0 >= 2.0.0"` - - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - have_pixbuf=yes - else - have_pixbuf=no - fi - -else - have_pixbuf=no -fi - -if test $have_pixbuf = yes; then - PIXBUF_VIEW_TYPE=b_view_pixbuf_get_type -fi - - - - - -if test $have_pixbuf = yes; then - HAVE_PIXBUF_TRUE= - HAVE_PIXBUF_FALSE='#' -else - HAVE_PIXBUF_TRUE='#' - HAVE_PIXBUF_FALSE= -fi - - - -# Check whether --enable-gtk or --disable-gtk was given. -if test "${enable_gtk+set}" = set; then - enableval="$enable_gtk" - -else - enable_gtk=yes -fi; - -if test "x$enable_gtk" = "xyes"; then - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for gtk+-2.0 >= 2.0.3" >&5 -echo $ECHO_N "checking for gtk+-2.0 >= 2.0.3... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "gtk+-2.0 >= 2.0.3" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5 -echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6 - GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.0.3"` - echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5 -echo "${ECHO_T}$GTK_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking GTK_LIBS" >&5 -echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6 - GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.0.3"` - echo "$as_me:$LINENO: result: $GTK_LIBS" >&5 -echo "${ECHO_T}$GTK_LIBS" >&6 - else - GTK_CFLAGS="" - GTK_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.0.3"` - - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - have_gtk=yes - else - have_gtk=no - fi - -else - have_gtk=no -fi - -if test $have_gtk = yes; then - GTK_VIEW_TYPE=b_view_gtk_get_type -fi - - - - - -if test $have_gtk = yes; then - HAVE_GTK_TRUE= - HAVE_GTK_FALSE='#' -else - HAVE_GTK_TRUE='#' - HAVE_GTK_FALSE= -fi - - - -# Check whether --enable-aa or --disable-aa was given. -if test "${enable_aa+set}" = set; then - enableval="$enable_aa" - -else - enable_aa=yes -fi; - -have_aa=no -if test "x$enable_aa" = "xyes"; then - echo "$as_me:$LINENO: checking for aa_fastrender in -laa" >&5 -echo $ECHO_N "checking for aa_fastrender in -laa... $ECHO_C" >&6 -if test "${ac_cv_lib_aa_aa_fastrender+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-laa $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char aa_fastrender (); -int -main () -{ -aa_fastrender (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_aa_aa_fastrender=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_aa_aa_fastrender=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_aa_aa_fastrender" >&5 -echo "${ECHO_T}$ac_cv_lib_aa_aa_fastrender" >&6 -if test $ac_cv_lib_aa_aa_fastrender = yes; then - if test "${ac_cv_header_aalib_h+set}" = set; then - echo "$as_me:$LINENO: checking for aalib.h" >&5 -echo $ECHO_N "checking for aalib.h... $ECHO_C" >&6 -if test "${ac_cv_header_aalib_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_aalib_h" >&5 -echo "${ECHO_T}$ac_cv_header_aalib_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking aalib.h usability" >&5 -echo $ECHO_N "checking aalib.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking aalib.h presence" >&5 -echo $ECHO_N "checking aalib.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: aalib.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: aalib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: aalib.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: aalib.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: aalib.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: aalib.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: aalib.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: aalib.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: aalib.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: aalib.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: aalib.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: aalib.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: aalib.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: aalib.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: aalib.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: aalib.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for aalib.h" >&5 -echo $ECHO_N "checking for aalib.h... $ECHO_C" >&6 -if test "${ac_cv_header_aalib_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_aalib_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_aalib_h" >&5 -echo "${ECHO_T}$ac_cv_header_aalib_h" >&6 - -fi -if test $ac_cv_header_aalib_h = yes; then - have_aa=yes - AA_LIBS='-laa' -fi - - -fi - -fi - - - -if test $have_aa = yes; then - AA_VIEW_TYPE=b_view_aa_get_type -fi - - - - - -if test $have_aa = "yes"; then - HAVE_AA_TRUE= - HAVE_AA_FALSE='#' -else - HAVE_AA_TRUE='#' - HAVE_AA_FALSE= -fi - - - -# Check whether --enable-modules or --disable-modules was given. -if test "${enable_modules+set}" = set; then - enableval="$enable_modules" - -else - enable_modules=yes -fi; - - - -if test $enable_modules = yes; then - BUILD_MODULES_TRUE= - BUILD_MODULES_FALSE='#' -else - BUILD_MODULES_TRUE='#' - BUILD_MODULES_FALSE= -fi - - - - - -# Check whether --with-html-dir or --without-html-dir was given. -if test "${with_html_dir+set}" = set; then - withval="$with_html_dir" - -fi; - -if test "x$with_html_dir" = "x" ; then - HTML_DIR='${datadir}/gtk-doc/html' -else - HTML_DIR=$with_html_dir -fi - - - -# Extract the first word of "gtkdoc-mkdb", so it can be a program name with args. -set dummy gtkdoc-mkdb; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_GTKDOC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$GTKDOC"; then - ac_cv_prog_GTKDOC="$GTKDOC" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_GTKDOC="true" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_GTKDOC" && ac_cv_prog_GTKDOC="false" -fi -fi -GTKDOC=$ac_cv_prog_GTKDOC -if test -n "$GTKDOC"; then - echo "$as_me:$LINENO: result: $GTKDOC" >&5 -echo "${ECHO_T}$GTKDOC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - -gtk_doc_min_version=0.10 -if $GTKDOC ; then - gtk_doc_version=`gtkdoc-mkdb --version` - echo "$as_me:$LINENO: checking gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version" >&5 -echo $ECHO_N "checking gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version... $ECHO_C" >&6 - - IFS="${IFS= }"; blib_save_IFS="$IFS"; IFS="." - set $gtk_doc_version - for min in $gtk_doc_min_version ; do - cur=$1; shift - if test -z $min ; then break; fi - if test -z $cur ; then GTKDOC=false; break; fi - if test $cur -gt $min ; then break ; fi - if test $cur -lt $min ; then GTKDOC=false; break ; fi - done - IFS="$blib_save_IFS" - - if $GTKDOC ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - fi -fi - - - -if $GTKDOC; then - HAVE_GTK_DOC_TRUE= - HAVE_GTK_DOC_FALSE='#' -else - HAVE_GTK_DOC_TRUE='#' - HAVE_GTK_DOC_FALSE= -fi - - - -# Extract the first word of "db2html", so it can be a program name with args. -set dummy db2html; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_DB2HTML+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$DB2HTML"; then - ac_cv_prog_DB2HTML="$DB2HTML" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DB2HTML="true" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_DB2HTML" && ac_cv_prog_DB2HTML="false" -fi -fi -DB2HTML=$ac_cv_prog_DB2HTML -if test -n "$DB2HTML"; then - echo "$as_me:$LINENO: result: $DB2HTML" >&5 -echo "${ECHO_T}$DB2HTML" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - - -if $DB2HTML; then - HAVE_DOCBOOK_TRUE= - HAVE_DOCBOOK_FALSE='#' -else - HAVE_DOCBOOK_TRUE='#' - HAVE_DOCBOOK_FALSE= -fi - - -# Check whether --enable-gtk-doc or --disable-gtk-doc was given. -if test "${enable_gtk_doc+set}" = set; then - enableval="$enable_gtk_doc" - enable_gtk_doc="$enableval" -else - enable_gtk_doc=no -fi; - -if test x$enable_gtk_doc = xyes ; then - if test x$GTKDOC = xtrue ; then - enable_gtk_doc=yes - else - enable_gtk_doc=no - fi -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 - - - - ac_config_files="$ac_config_files blib.pc blib-aa.pc blib-directfb.pc blib-gtk.pc blib-pixbuf.pc Makefile blib/Makefile data/Makefile docs/Makefile docs/reference/Makefile docs/reference/blib.types docs/reference/version gfx/Makefile modules/Makefile test/Makefile test/movies/Makefile test/modules/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, don't put newlines in cache variables' values. -# 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. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *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 \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - 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}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ 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[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"OS_WIN32\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"OS_WIN32\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_DIRECTFB_TRUE}" && test -z "${HAVE_DIRECTFB_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_DIRECTFB\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_DIRECTFB\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_PIXBUF_TRUE}" && test -z "${HAVE_PIXBUF_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_PIXBUF\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_PIXBUF\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_GTK_TRUE}" && test -z "${HAVE_GTK_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_GTK\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_GTK\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_AA_TRUE}" && test -z "${HAVE_AA_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_AA\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_AA\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${BUILD_MODULES_TRUE}" && test -z "${BUILD_MODULES_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"BUILD_MODULES\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"BUILD_MODULES\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_GTK_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_GTK_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_DOCBOOK_TRUE}" && test -z "${HAVE_DOCBOOK_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_DOCBOOK\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_DOCBOOK\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"ENABLE_GTK_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"ENABLE_GTK_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $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} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# 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+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# 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'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -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 - --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 commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -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=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - 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 -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "blib.pc" ) CONFIG_FILES="$CONFIG_FILES blib.pc" ;; - "blib-aa.pc" ) CONFIG_FILES="$CONFIG_FILES blib-aa.pc" ;; - "blib-directfb.pc" ) CONFIG_FILES="$CONFIG_FILES blib-directfb.pc" ;; - "blib-gtk.pc" ) CONFIG_FILES="$CONFIG_FILES blib-gtk.pc" ;; - "blib-pixbuf.pc" ) CONFIG_FILES="$CONFIG_FILES blib-pixbuf.pc" ;; - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "blib/Makefile" ) CONFIG_FILES="$CONFIG_FILES blib/Makefile" ;; - "data/Makefile" ) CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; - "docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; - "docs/reference/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/reference/Makefile" ;; - "docs/reference/blib.types" ) CONFIG_FILES="$CONFIG_FILES docs/reference/blib.types" ;; - "docs/reference/version" ) CONFIG_FILES="$CONFIG_FILES docs/reference/version" ;; - "gfx/Makefile" ) CONFIG_FILES="$CONFIG_FILES gfx/Makefile" ;; - "modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; - "test/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; - "test/movies/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/movies/Makefile" ;; - "test/modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/modules/Makefile" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - 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_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 to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@BLIB_MAJOR_VERSION@,$BLIB_MAJOR_VERSION,;t t -s,@BLIB_MINOR_VERSION@,$BLIB_MINOR_VERSION,;t t -s,@BLIB_MICRO_VERSION@,$BLIB_MICRO_VERSION,;t t -s,@BLIB_INTERFACE_AGE@,$BLIB_INTERFACE_AGE,;t t -s,@BLIB_BINARY_AGE@,$BLIB_BINARY_AGE,;t t -s,@BLIB_VERSION@,$BLIB_VERSION,;t t -s,@LT_RELEASE@,$LT_RELEASE,;t t -s,@LT_CURRENT@,$LT_CURRENT,;t t -s,@LT_REVISION@,$LT_REVISION,;t t -s,@LT_AGE@,$LT_AGE,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t -s,@MAINT@,$MAINT,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -s,@EGREP@,$EGREP,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@CPP@,$CPP,;t t -s,@CXX@,$CXX,;t t -s,@CXXFLAGS@,$CXXFLAGS,;t t -s,@ac_ct_CXX@,$ac_ct_CXX,;t t -s,@CXXDEPMODE@,$CXXDEPMODE,;t t -s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t -s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t -s,@CXXCPP@,$CXXCPP,;t t -s,@F77@,$F77,;t t -s,@FFLAGS@,$FFLAGS,;t t -s,@ac_ct_F77@,$ac_ct_F77,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@OS_WIN32_TRUE@,$OS_WIN32_TRUE,;t t -s,@OS_WIN32_FALSE@,$OS_WIN32_FALSE,;t t -s,@WIN32_LIBS@,$WIN32_LIBS,;t t -s,@WIN32_CFLAGS@,$WIN32_CFLAGS,;t t -s,@DATADIR@,$DATADIR,;t t -s,@INCLUDEDIR@,$INCLUDEDIR,;t t -s,@THEMEPATH@,$THEMEPATH,;t t -s,@MODULEPATH@,$MODULEPATH,;t t -s,@PKG_CONFIG@,$PKG_CONFIG,;t t -s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t -s,@GLIB_LIBS@,$GLIB_LIBS,;t t -s,@GLIB_GENMARSHAL@,$GLIB_GENMARSHAL,;t t -s,@GOBJECT_QUERY@,$GOBJECT_QUERY,;t t -s,@GLIB_MKENUMS@,$GLIB_MKENUMS,;t t -s,@DIRECTFB_CFLAGS@,$DIRECTFB_CFLAGS,;t t -s,@DIRECTFB_LIBS@,$DIRECTFB_LIBS,;t t -s,@DIRECTFB_VIEW_TYPE@,$DIRECTFB_VIEW_TYPE,;t t -s,@HAVE_DIRECTFB_TRUE@,$HAVE_DIRECTFB_TRUE,;t t -s,@HAVE_DIRECTFB_FALSE@,$HAVE_DIRECTFB_FALSE,;t t -s,@GDK_PIXBUF_CFLAGS@,$GDK_PIXBUF_CFLAGS,;t t -s,@GDK_PIXBUF_LIBS@,$GDK_PIXBUF_LIBS,;t t -s,@PIXBUF_VIEW_TYPE@,$PIXBUF_VIEW_TYPE,;t t -s,@HAVE_PIXBUF_TRUE@,$HAVE_PIXBUF_TRUE,;t t -s,@HAVE_PIXBUF_FALSE@,$HAVE_PIXBUF_FALSE,;t t -s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t -s,@GTK_LIBS@,$GTK_LIBS,;t t -s,@GTK_VIEW_TYPE@,$GTK_VIEW_TYPE,;t t -s,@HAVE_GTK_TRUE@,$HAVE_GTK_TRUE,;t t -s,@HAVE_GTK_FALSE@,$HAVE_GTK_FALSE,;t t -s,@AA_LIBS@,$AA_LIBS,;t t -s,@AA_VIEW_TYPE@,$AA_VIEW_TYPE,;t t -s,@HAVE_AA_TRUE@,$HAVE_AA_TRUE,;t t -s,@HAVE_AA_FALSE@,$HAVE_AA_FALSE,;t t -s,@BUILD_MODULES_TRUE@,$BUILD_MODULES_TRUE,;t t -s,@BUILD_MODULES_FALSE@,$BUILD_MODULES_FALSE,;t t -s,@HTML_DIR@,$HTML_DIR,;t t -s,@GTKDOC@,$GTKDOC,;t t -s,@HAVE_GTK_DOC_TRUE@,$HAVE_GTK_DOC_TRUE,;t t -s,@HAVE_GTK_DOC_FALSE@,$HAVE_GTK_DOC_FALSE,;t t -s,@HAVE_GTK_DOC@,$HAVE_GTK_DOC,;t t -s,@DB2HTML@,$DB2HTML,;t t -s,@HAVE_DOCBOOK_TRUE@,$HAVE_DOCBOOK_TRUE,;t t -s,@HAVE_DOCBOOK_FALSE@,$HAVE_DOCBOOK_FALSE,;t t -s,@ENABLE_GTK_DOC_TRUE@,$ENABLE_GTK_DOC_TRUE,;t t -s,@ENABLE_GTK_DOC_FALSE@,$ENABLE_GTK_DOC_FALSE,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - # 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. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #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. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # 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. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -# Compute $ac_file's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $ac_file | $ac_file:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X$ac_file | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'`/stamp-h$_am_stamp_count -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`(dirname "$mf") 2>/dev/null || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - else - continue - fi - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} - { (exit 1); exit 1; }; }; } - - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# 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 || { (exit 1); exit 1; } -fi - - -echo "$as_me:$LINENO: result: -Build options: - Version $VERSION - Install prefix $prefix - Include dir $INCLUDEDIR - Data dir $DATADIR - Theme path $THEMEPATH - Module path $MODULEPATH - -Views: - DirectFB $have_directfb - GdkPixbuf $have_pixbuf - GTK+-2.0 $have_gtk - AA-lib $have_aa -" >&5 -echo "${ECHO_T} -Build options: - Version $VERSION - Install prefix $prefix - Include dir $INCLUDEDIR - Data dir $DATADIR - Theme path $THEMEPATH - Module path $MODULEPATH - -Views: - DirectFB $have_directfb - GdkPixbuf $have_pixbuf - GTK+-2.0 $have_gtk - AA-lib $have_aa -" >&6; diff --git a/blib-1.1.7/configure.in b/blib-1.1.7/configure.in deleted file mode 100644 index a4f1315..0000000 --- a/blib-1.1.7/configure.in +++ /dev/null @@ -1,340 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(blib/blib.h) - -# Save this values here, since automake will set cflags later -cflags_set="${CFLAGS}set" - -# Making releases: -# BLIB_MICRO_VERSION += 1; -# BLIB_INTERFACE_AGE += 1; -# BLIB_BINARY_AGE += 1; -# if any functions have been added, set BLIB_INTERFACE_AGE to 0. -# if backwards compatibility has been broken, -# set BLIB_BINARY_AGE and BLIB_INTERFACE_AGE to 0. -# -BLIB_MAJOR_VERSION=1 -BLIB_MINOR_VERSION=1 -BLIB_MICRO_VERSION=7 -BLIB_INTERFACE_AGE=0 -BLIB_BINARY_AGE=0 -BLIB_API_VERSION=$BLIB_MAJOR_VERSION.$BLIB_MINOR_VERSION -BLIB_VERSION=$BLIB_MAJOR_VERSION.$BLIB_MINOR_VERSION.$BLIB_MICRO_VERSION - -AC_SUBST(BLIB_MAJOR_VERSION) -AC_SUBST(BLIB_MINOR_VERSION) -AC_SUBST(BLIB_MICRO_VERSION) -AC_SUBST(BLIB_INTERFACE_AGE) -AC_SUBST(BLIB_BINARY_AGE) -AC_SUBST(BLIB_VERSION) - -AC_DEFINE_UNQUOTED(BLIB_VERSION,"$BLIB_VERSION",[The Blib version]) - -# libtool versioning -LT_RELEASE=$BLIB_MAJOR_VERSION.$BLIB_MINOR_VERSION -LT_CURRENT=`expr $BLIB_MICRO_VERSION - $BLIB_INTERFACE_AGE` -LT_REVISION=$BLIB_INTERFACE_AGE -LT_AGE=`expr $BLIB_BINARY_AGE - $BLIB_INTERFACE_AGE` - -AC_SUBST(LT_RELEASE) -AC_SUBST(LT_CURRENT) -AC_SUBST(LT_REVISION) -AC_SUBST(LT_AGE) - -VERSION=$BLIB_VERSION -PACKAGE=blib - -AM_INIT_AUTOMAKE($PACKAGE, $VERSION) - -AM_CONFIG_HEADER(config.h) - -AM_MAINTAINER_MODE - -AM_PROG_LIBTOOL - -AC_ISC_POSIX -AM_SANITY_CHECK -AM_PROG_CC_STDC -AC_PROG_INSTALL -AC_PROG_MAKE_SET -AC_HEADER_STDC -AC_C_CONST - -AC_CHECK_HEADERS(unistd.h) - - -AC_MSG_CHECKING([for target architecture]) -case x"$target" in - xNONE | x) - target_or_host="$host" ;; - *) - target_or_host="$target" ;; -esac -AC_MSG_RESULT([$target_or_host]) - - -AC_MSG_CHECKING([for native Win32]) -case "$target_or_host" in - *-*-mingw*) - os_win32=yes - ;; - *) - os_win32=no - ;; -esac -AC_MSG_RESULT([$os_win32]) -AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") - - -if test x"$os_win32" = xyes; then -WIN32_LIBS=-lwsock32 -fi -AC_SUBST(WIN32_LIBS) - - -# Ensure MSVC-compatible struct packing convention is used when -# compiling for Win32 with gcc. -# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while -# gcc2 uses "-fnative-struct". -if test x"$os_win32" = xyes; then - if test x"$GCC" = xyes; then - msnative_struct='' - AC_MSG_CHECKING([how to get MSVC-compatible struct packing]) - if test -z "$ac_cv_prog_CC"; then - our_gcc="$CC" - else - our_gcc="$ac_cv_prog_CC" - fi - case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in - 2.) - if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then - msnative_struct='-fnative-struct' - fi - ;; - *) - if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then - msnative_struct='-mms-bitfields' - fi - ;; - esac - if test x"$msnative_struct" = x ; then - AC_MSG_RESULT([no way]) - AC_MSG_WARN([build will be incompatible with GTK+ DLLs]) - else - WIN32_CFLAGS=$msnative_struct - AC_MSG_RESULT([$WIN32_CFLAGS]) - fi - fi -fi - -AC_SUBST(WIN32_CFLAGS) - - -if test "x$GCC" = xyes; then - CFLAGS="$CFLAGS -Wall $WIN32_CFLAGS" -fi - -AC_SUBST(CFLAGS) - - -DATADIR=$datadir/blib-$BLIB_API_VERSION -INCLUDEDIR=$includedir/blib-$BLIB_API_VERSION -THEMEPATH=$datadir/blib-$BLIB_API_VERSION/themes -MODULEPATH=$libdir/blib-$BLIB_API_VERSION/modules - -AC_SUBST(DATADIR) -AC_SUBST(INCLUDEDIR) -AC_SUBST(THEMEPATH) -AC_SUBST(MODULEPATH) - -AM_PATH_GLIB_2_0(2.0.1,, - AC_MSG_ERROR([ -*** blib depends on glib-2.0 which doesn't seem to be available.]), - gobject gmodule) - - -AC_ARG_ENABLE(directfb, - [ --disable-directfb disable support for DirectFB [default=auto]], , - enable_directfb=yes) - -if test "x$enable_directfb" = "xyes"; then - PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.11, - have_directfb=yes, have_directfb=no) -else - have_directfb=no -fi - -if test $have_directfb = yes; then - DIRECTFB_VIEW_TYPE=b_view_directfb_get_type -fi - -AC_SUBST(DIRECTFB_VIEW_TYPE) - -AM_CONDITIONAL(HAVE_DIRECTFB, test $have_directfb = yes) - - -AC_ARG_ENABLE(gdk_pixbuf, - [ --disable-gdk-pixbuf disable support for gdk-pixbuf [default=auto]], , - enable_gdk_pixbuf=yes) - -if test "x$enable_gdk_pixbuf" = "xyes"; then - PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= 2.0.0, -have_pixbuf=yes, have_pixbuf=no) -else - have_pixbuf=no -fi - -if test $have_pixbuf = yes; then - PIXBUF_VIEW_TYPE=b_view_pixbuf_get_type -fi - -AC_SUBST(PIXBUF_VIEW_TYPE) - -AM_CONDITIONAL(HAVE_PIXBUF, test $have_pixbuf = yes) - - -AC_ARG_ENABLE(gtk, - [ --disable-gtk disable support for GTK+-2.0 [default=auto]], , - enable_gtk=yes) - -if test "x$enable_gtk" = "xyes"; then - PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.0.3, - have_gtk=yes, have_gtk=no) -else - have_gtk=no -fi - -if test $have_gtk = yes; then - GTK_VIEW_TYPE=b_view_gtk_get_type -fi - -AC_SUBST(GTK_VIEW_TYPE) - -AM_CONDITIONAL(HAVE_GTK, test $have_gtk = yes) - - -AC_ARG_ENABLE(aa, - [ --disable-aa disable support for AA-lib [default=auto]], , - enable_aa=yes) - -have_aa=no -if test "x$enable_aa" = "xyes"; then - AC_CHECK_LIB(aa, aa_fastrender, - [AC_CHECK_HEADER(aalib.h, - have_aa=yes - AA_LIBS='-laa')]) -fi - -AC_SUBST(AA_LIBS) - -if test $have_aa = yes; then - AA_VIEW_TYPE=b_view_aa_get_type -fi - -AC_SUBST(AA_VIEW_TYPE) - -AM_CONDITIONAL(HAVE_AA, test $have_aa = "yes") - - -AC_ARG_ENABLE(modules, - [ --disable-modules disable the build of modules], , - enable_modules=yes) - -AM_CONDITIONAL(BUILD_MODULES, test $enable_modules = yes) - - -dnl ************************** -dnl *** Checks for gtk-doc *** -dnl ************************** - -AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs]) - -if test "x$with_html_dir" = "x" ; then - HTML_DIR='${datadir}/gtk-doc/html' -else - HTML_DIR=$with_html_dir -fi - -AC_SUBST(HTML_DIR) - -AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false) - -gtk_doc_min_version=0.10 -if $GTKDOC ; then - gtk_doc_version=`gtkdoc-mkdb --version` - AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version]) - - IFS="${IFS= }"; blib_save_IFS="$IFS"; IFS="." - set $gtk_doc_version - for min in $gtk_doc_min_version ; do - cur=$1; shift - if test -z $min ; then break; fi - if test -z $cur ; then GTKDOC=false; break; fi - if test $cur -gt $min ; then break ; fi - if test $cur -lt $min ; then GTKDOC=false; break ; fi - done - IFS="$blib_save_IFS" - - if $GTKDOC ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi -fi - -AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC) -AC_SUBST(HAVE_GTK_DOC) - -AC_CHECK_PROG(DB2HTML, db2html, true, false) -AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML) - -dnl Let people disable the gtk-doc stuff. -AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=no) - -if test x$enable_gtk_doc = xyes ; then - if test x$GTKDOC = xtrue ; then - enable_gtk_doc=yes - else - enable_gtk_doc=no - fi -fi - -dnl NOTE: We need to use a separate automake conditional for this -dnl to make this work with the tarballs. -AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) - - -AC_OUTPUT([ -blib.pc -blib-aa.pc -blib-directfb.pc -blib-gtk.pc -blib-pixbuf.pc -Makefile -blib/Makefile -data/Makefile -docs/Makefile -docs/reference/Makefile -docs/reference/blib.types -docs/reference/version -gfx/Makefile -modules/Makefile -test/Makefile -test/movies/Makefile -test/modules/Makefile -]) - -AC_MSG_RESULT([ -Build options: - Version $VERSION - Install prefix $prefix - Include dir $INCLUDEDIR - Data dir $DATADIR - Theme path $THEMEPATH - Module path $MODULEPATH - -Views: - DirectFB $have_directfb - GdkPixbuf $have_pixbuf - GTK+-2.0 $have_gtk - AA-lib $have_aa -]); diff --git a/blib-1.1.7/data/Makefile.am b/blib-1.1.7/data/Makefile.am deleted file mode 100644 index 2a53979..0000000 --- a/blib-1.1.7/data/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -## Makefile.am for blib/data -## Process this file with automake to produce Makefile.in - -blibdatadir = $(DATADIR) - -blibdata_DATA = \ - bml.dtd \ - blinkentheme.dtd - -EXTRA_DIST = $(blibdata_DATA) diff --git a/blib-1.1.7/data/Makefile.in b/blib-1.1.7/data/Makefile.in deleted file mode 100644 index 93e7b4e..0000000 --- a/blib-1.1.7/data/Makefile.in +++ /dev/null @@ -1,368 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -blibdatadir = $(DATADIR) - -blibdata_DATA = \ - bml.dtd \ - blinkentheme.dtd - - -EXTRA_DIST = $(blibdata_DATA) -subdir = data -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DATA = $(blibdata_DATA) - -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu data/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -blibdataDATA_INSTALL = $(INSTALL_DATA) -install-blibdataDATA: $(blibdata_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(blibdatadir) - @list='$(blibdata_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(blibdataDATA_INSTALL) $$d$$p $(DESTDIR)$(blibdatadir)/$$f"; \ - $(blibdataDATA_INSTALL) $$d$$p $(DESTDIR)$(blibdatadir)/$$f; \ - done - -uninstall-blibdataDATA: - @$(NORMAL_UNINSTALL) - @list='$(blibdata_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " rm -f $(DESTDIR)$(blibdatadir)/$$f"; \ - rm -f $(DESTDIR)$(blibdatadir)/$$f; \ - done -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(DATA) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(blibdatadir) -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-libtool - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: install-blibdataDATA - -install-exec-am: - -install-info: install-info-am - -install-man: - -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-blibdataDATA uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am info info-am install install-am install-blibdataDATA \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-blibdataDATA uninstall-info-am - -# 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: diff --git a/blib-1.1.7/data/blinkentheme.dtd b/blib-1.1.7/data/blinkentheme.dtd deleted file mode 100644 index 75b9551..0000000 --- a/blib-1.1.7/data/blinkentheme.dtd +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blib-1.1.7/data/bml.dtd b/blib-1.1.7/data/bml.dtd deleted file mode 100644 index b3c5b52..0000000 --- a/blib-1.1.7/data/bml.dtd +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blib-1.1.7/debian/changelog b/blib-1.1.7/debian/changelog deleted file mode 100644 index a8972c9..0000000 --- a/blib-1.1.7/debian/changelog +++ /dev/null @@ -1,5 +0,0 @@ -blib (1.1.0) unstable; urgency=low - - * unofficial debian packages - - -- Sven Neumann Mon, 22 Dec 2003 20:20:22 +0100 diff --git a/blib-1.1.7/debian/control b/blib-1.1.7/debian/control deleted file mode 100644 index e166de4..0000000 --- a/blib-1.1.7/debian/control +++ /dev/null @@ -1,70 +0,0 @@ -Source: blib -Priority: optional -Maintainer: Sven Neumann -Build-Depends: debhelper (>> 3.0.0), autoconf -Standards-Version: 3.5.6 - -Package: libblib -Section: libs -Architecture: any -Depends: libglib2.0-0 -Description: a library of useful things to hack the Blinkenlights - blib contains some code that you will find useful if you want to - create any kind of software related to Blinkenlights, - -Package: libblib-dev -Section: libs -Architecture: any -Depends: libblib (= ${Source-Version}), libc6-dev, libglib2.0-dev -Section: devel -Description: Blinkenlights library, development files - blib contains some code that you will find useful if you want to - create any kind of software related to Blinkenlights, - . - This package contains the files needed to compile and link - programs which use blib. - -Package: libblib-directfb -Section: libs -Architecture: any -Depends: libblib (= ${Source-Version}), libdirectfb-0.9-19 -Description: Blinkenlights display library using DirectFB - blib contains some code that you will find useful if you want to - create any kind of software related to Blinkenlights, - . - This packages contains the DirectFB backend of the Blinkenlights - display widget. - -Package: libblib-directfb-dev -Section: libs -Architecture: any -Depends: libblib-dev (= ${Source-Version}), libdirectfb-dev -Description: Blinkenlights display library using DirectFB - blib contains some code that you will find useful if you want to - create any kind of software related to Blinkenlights, - . - This packages contains the files needed to compile and link programs - that use the DirectFB backend of the Blinkenlights display widget. - -Package: libblib-gtk -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, libblib (= ${Source-Version}), libgtk2.0-0 -Description: Blinkenlights display library using GTK+ - blib contains some code that you will find useful if you want to - create any kind of software related to Blinkenlights, - . - This packages contains the DirectFB backend of the Blinkenlights - display widget. - -Package: libblib-gtk-dev -Section: libs -Architecture: any -Depends: libblib-dev (= ${Source-Version}), libgtk2.0-dev -Description: Blinkenlights display library using GTK+ - blib contains some code that you will find useful if you want to - create any kind of software related to Blinkenlights, - . - This packages contains the files needed to compile and link programs - that use the GTK+ backend of the Blinkenlights display widget. - diff --git a/blib-1.1.7/debian/copyright b/blib-1.1.7/debian/copyright deleted file mode 100644 index 2d02824..0000000 --- a/blib-1.1.7/debian/copyright +++ /dev/null @@ -1,29 +0,0 @@ -This package was debianized by Sven Neumann -Mon Dec 22 20:22:42 CET 2003 - -It was downloaded from http://sven.gimp.org/blinkenlights - -Upstream Authors: - - Sven Neumann - Michael Natterer - Daniel Mack - -Copyright: - - 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. - -On Debian GNU/Linux systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. diff --git a/blib-1.1.7/debian/dirs b/blib-1.1.7/debian/dirs deleted file mode 100644 index 73752c9..0000000 --- a/blib-1.1.7/debian/dirs +++ /dev/null @@ -1 +0,0 @@ -usr diff --git a/blib-1.1.7/debian/docs b/blib-1.1.7/debian/docs deleted file mode 100644 index ba8894c..0000000 --- a/blib-1.1.7/debian/docs +++ /dev/null @@ -1,2 +0,0 @@ -README - diff --git a/blib-1.1.7/debian/files b/blib-1.1.7/debian/files deleted file mode 100644 index 9ca0f06..0000000 --- a/blib-1.1.7/debian/files +++ /dev/null @@ -1,6 +0,0 @@ -libblib_1.1.0_i386.deb libs optional -libblib-dev_1.1.0_i386.deb devel optional -libblib-directfb_1.1.0_i386.deb libs optional -libblib-directfb-dev_1.1.0_i386.deb libs optional -libblib-gtk_1.1.0_i386.deb libs optional -libblib-gtk-dev_1.1.0_i386.deb libs optional diff --git a/blib-1.1.7/debian/libblib-dev.files b/blib-1.1.7/debian/libblib-dev.files deleted file mode 100644 index f390f00..0000000 --- a/blib-1.1.7/debian/libblib-dev.files +++ /dev/null @@ -1,4 +0,0 @@ -usr/include/* -usr/lib/libb.a -usr/lib/libb.la -usr/lib/pkgconfig/blib.pc diff --git a/blib-1.1.7/debian/libblib-directfb-dev.files b/blib-1.1.7/debian/libblib-directfb-dev.files deleted file mode 100644 index 070b9d4..0000000 --- a/blib-1.1.7/debian/libblib-directfb-dev.files +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib/libb-directfb.a -usr/lib/libb-directfb.la -usr/lib/pkgconfig/blib-directfb.pc diff --git a/blib-1.1.7/debian/libblib-directfb.files b/blib-1.1.7/debian/libblib-directfb.files deleted file mode 100644 index 3e4c12c..0000000 --- a/blib-1.1.7/debian/libblib-directfb.files +++ /dev/null @@ -1,2 +0,0 @@ -usr/lib/libb-directfb*.so.* - diff --git a/blib-1.1.7/debian/libblib-gtk-dev.files b/blib-1.1.7/debian/libblib-gtk-dev.files deleted file mode 100644 index 1d3d8fa..0000000 --- a/blib-1.1.7/debian/libblib-gtk-dev.files +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib/libb-gtk.a -usr/lib/libb-gtk.la -usr/lib/pkgconfig/blib-gtk.pc diff --git a/blib-1.1.7/debian/libblib-gtk.files b/blib-1.1.7/debian/libblib-gtk.files deleted file mode 100644 index 2b0b7dd..0000000 --- a/blib-1.1.7/debian/libblib-gtk.files +++ /dev/null @@ -1 +0,0 @@ -usr/lib/libb-gtk*.so.* diff --git a/blib-1.1.7/debian/libblib.files b/blib-1.1.7/debian/libblib.files deleted file mode 100644 index cdaa983..0000000 --- a/blib-1.1.7/debian/libblib.files +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib/libb-${Source-Version}.so.* -usr/lib/blib/module/*.so -usr/share/blib* diff --git a/blib-1.1.7/debian/rules b/blib-1.1.7/debian/rules deleted file mode 100755 index 95f77f4..0000000 --- a/blib-1.1.7/debian/rules +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/make -f - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -# This is the debhelper compatability version to use. -export DH_COMPAT=3 - -DEVPACKAGE=$(shell dh_listpackages | grep -- -udeb.*dev$$) -VERSION=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2) -ARCH=$(shell dpkg --print-architecture) - - -configure: configure-dist - -configure-dist: $(BUILD_DIST)/configure-stamp - - -$(BUILD_DIST)/configure-stamp: - dh_testdir - - mkdir -p $(BUILD_DIST) - - cd $(BUILD_DIST) && \ - ../configure --prefix=/usr --disable-gtk-doc - - touch $@ - -build: build-dist - -build-dist: configure-dist $(BUILD_DIST)/build-stamp - -$(BUILD_DIST)/build-stamp: - dh_testdir - - $(MAKE) -C $(BUILD_DIST) - - touch $@ - -clean: - dh_testdir - dh_testroot - - -$(MAKE) distclean - -rm -f install-test-stamp - -rm -rf $(BUILD_DIST) - - dh_clean - -install: install-dist - -install-test: install-test-stamp -install-test-stamp: - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - touch $@ - -install-dist: build-dist install-test - - $(MAKE) -C $(BUILD_DIST) install prefix=$(CURDIR)/debian/tmp/usr - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - - dh_movefiles - dh_installdocs - dh_installchangelogs ChangeLog - dh_link - dh_strip - dh_compress - dh_fixperms - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/blib-1.1.7/depcomp b/blib-1.1.7/depcomp deleted file mode 100755 index edb5d38..0000000 --- a/blib-1.1.7/depcomp +++ /dev/null @@ -1,479 +0,0 @@ -#! /bin/sh - -# depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 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. - -# Originally written by Alexandre Oliva . - -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 -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -fi - -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# 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 - -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. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## 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). -## - 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 -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## 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. - tr ' ' ' -' < "$tmpdepfile" | -## 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. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -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 -eq 0; then : - else - 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 ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -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. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=$? - - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname="$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - 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" - ;; - -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. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - tmpdepfile1="$dir.libs/$base.lo.d" - tmpdepfile2="$dir.libs/$base.d" - "$@" -Wc,-MD - else - tmpdepfile1="$dir$base.o.d" - tmpdepfile2="$dir$base.d" - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - if test -f "$tmpdepfile1"; then - tmpdepfile="$tmpdepfile1" - else - tmpdepfile="$tmpdepfile2" - fi - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#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 $1 != '--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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - 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 $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - 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. - -*|$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" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - 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 $1 != '--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 '/^# [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, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 diff --git a/blib-1.1.7/docs/Makefile.am b/blib-1.1.7/docs/Makefile.am deleted file mode 100644 index e539c08..0000000 --- a/blib-1.1.7/docs/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -## Process this file with automake to produce Makefile.in - -SUBDIRS = reference diff --git a/blib-1.1.7/docs/Makefile.in b/blib-1.1.7/docs/Makefile.in deleted file mode 100644 index 7288979..0000000 --- a/blib-1.1.7/docs/Makefile.in +++ /dev/null @@ -1,489 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -SUBDIRS = reference -subdir = docs -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = - -RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ - ps-recursive install-info-recursive uninstall-info-recursive \ - all-recursive install-data-recursive install-exec-recursive \ - installdirs-recursive install-recursive uninstall-recursive \ - check-recursive installcheck-recursive -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am -DIST_SUBDIRS = $(SUBDIRS) -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -# 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. -$(RECURSIVE_TARGETS): - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if (etags --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - else \ - include_option=--include; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - 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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -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-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ - clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am \ - dvi-recursive info info-am info-recursive install install-am \ - install-data install-data-am install-data-recursive \ - install-exec install-exec-am install-exec-recursive \ - install-info install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am \ - pdf-recursive ps ps-am ps-recursive tags tags-recursive \ - uninstall uninstall-am uninstall-info-am \ - uninstall-info-recursive uninstall-recursive - -# 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: diff --git a/blib-1.1.7/docs/reference/Makefile.am b/blib-1.1.7/docs/reference/Makefile.am deleted file mode 100644 index 351ec34..0000000 --- a/blib-1.1.7/docs/reference/Makefile.am +++ /dev/null @@ -1,220 +0,0 @@ -## Process this file with automake to produce Makefile.in - -# The name of the module. -DOC_MODULE = blib - -# The top-level SGML file. -DOC_MAIN_SGML_FILE = blib-docs.sgml - -# The directory containing the source code. Relative to $(srcdir) -DOC_SOURCE_DIR = ../.. - -# Extra options to supply to gtkdoc-scan -SCAN_OPTIONS = --deprecated-guards="B_DISABLE_DEPRECATED" - -# Extra options to supply to gtkdoc-mkdb -MKDB_OPTIONS = --sgml-mode --output-format=xml - -# Extra options to supply to gtkdoc-fixref -FIXXREF_OPTIONS = - -# Used for dependencies -HFILE_GLOB = $(top_srcdir)/blib/*.h $(top_srcdir)/gfx/*.h -CFILE_GLOB = $(top_srcdir)/blib/*.c $(top_srcdir)/gfx/*.c - -# Headers to ignore -IGNORE_HFILES = \ - config.h \ - blib-directfb.h \ - blib-gtk.h \ - bmarshal.h \ - bmovie-bml-parser.h \ - bmovie-gif-parser.h \ - btheme-parser.h \ - gif-load.h \ - gif-save.h \ - gif-types.h \ - digits.h - -# Extra files to add when scanning -EXTRA_HFILES = - -# Images to copy into HTML directory -HTML_IMAGES = - -# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE) -content_files = - -# Other files to distribute -extra_files = - -# CFLAGS and LDFLAGS for compiling scan program. Only needed -# if $(DOC_MODULE).types is non-empty. -GTKDOC_CFLAGS = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ \ - @GDK_PIXBUF_CFLAGS@ \ - @GTK_CFLAGS@ \ - @DIRECTFB_CFLAGS@ - -if HAVE_AA -LIBB_AA=$(top_builddir)/gfx/libb-aa.la @AA_LIBS@ -endif - -if HAVE_DIRECTFB -LIBB_DIRECTFB=$(top_builddir)/gfx/libb-directfb.la @DIRECTFB_LIBS@ -endif - -if HAVE_GTK -LIBB_GTK=$(top_builddir)/gfx/libb-gtk.la @GTK_LIBS@ -endif - -if HAVE_PIXBUF -LIBB_PIXBUF=$(top_builddir)/gfx/libb-pixbuf.la @GDK_PIXBUF_LIBS@ -endif - -GTKDOC_LIBS = \ - $(top_builddir)/blib/libb.la \ - $(LIBB_AA) \ - $(LIBB_DIRECTFB) \ - $(LIBB_PIXBUF) \ - $(LIBB_GTK) \ - @GLIB_LIBS@ - -# Commands for compiling and linking -GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) -GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) - - -#################################### -# Everything below here is generic # -#################################### - -# 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) - -EXTRA_DIST = \ - $(content_files) \ - $(extra_files) \ - $(HTML_IMAGES) \ - $(DOC_MAIN_SGML_FILE) \ - $(DOC_MODULE).types.in \ - $(DOC_MODULE)-sections.txt \ - $(DOC_MODULE)-overrides.txt - -DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ - $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp - -SCANOBJ_FILES = \ - $(DOC_MODULE).args \ - $(DOC_MODULE).hierarchy \ - $(DOC_MODULE).interfaces \ - $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).signals - -if ENABLE_GTK_DOC -all-local: html-build.stamp - -#### scan #### - -scan-build.stamp: $(HFILE_GLOB) $(DOC_MODULE).types - @echo '*** Scanning header files ***' - if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ - else \ - cd $(srcdir) ; \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ - fi - cd $(srcdir) && \ - gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) - touch scan-build.stamp - -$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp - @true - -#### templates #### - -tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt - @echo '*** Rebuilding template files ***' - cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) - touch tmpl-build.stamp - -tmpl.stamp: tmpl-build.stamp - @true - -#### sgml #### - -sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml - @echo '*** Building SGML ***' - cd $(srcdir) && \ - gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS) - touch sgml-build.stamp - -sgml.stamp: sgml-build.stamp - @true - -#### html #### - -html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo '*** Building HTML ***' - rm -rf $(srcdir)/html - mkdir $(srcdir)/html - cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) - @echo '-- Fixing Crossreferences' - cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - touch html-build.stamp -endif - -############## - -clean-local: - rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) - -maintainer-clean-local: clean - cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) - (installfiles=`echo $(srcdir)/html/*`; \ - if test "$$installfiles" = '$(srcdir)/html/*'; \ - then echo '-- Nothing to install' ; \ - else \ - for i in $$installfiles; do \ - echo '-- Installing '$$i ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ - done; \ - echo '-- Installing $(srcdir)/html/index.sgml' ; \ - $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ - fi) - -# -# Require gtk-doc when making dist -# -if ENABLE_GTK_DOC -dist-check-gtkdoc: -else -dist-check-gtkdoc: - @echo "*** gtk-doc must be installed and enabled in order to make dist" - @false -endif - -dist-hook: dist-check-gtkdoc dist-hook-local - mkdir $(distdir)/tmpl - mkdir $(distdir)/xml - mkdir $(distdir)/html - -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl - -cp $(srcdir)/xml/*.xml $(distdir)/xml - -cp $(srcdir)/html/* $(distdir)/html - -.PHONY : dist-hook-local - - diff --git a/blib-1.1.7/docs/reference/Makefile.in b/blib-1.1.7/docs/reference/Makefile.in deleted file mode 100644 index 2481c36..0000000 --- a/blib-1.1.7/docs/reference/Makefile.in +++ /dev/null @@ -1,557 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -# The name of the module. -DOC_MODULE = blib - -# The top-level SGML file. -DOC_MAIN_SGML_FILE = blib-docs.sgml - -# The directory containing the source code. Relative to $(srcdir) -DOC_SOURCE_DIR = ../.. - -# Extra options to supply to gtkdoc-scan -SCAN_OPTIONS = --deprecated-guards="B_DISABLE_DEPRECATED" - -# Extra options to supply to gtkdoc-mkdb -MKDB_OPTIONS = --sgml-mode --output-format=xml - -# Extra options to supply to gtkdoc-fixref -FIXXREF_OPTIONS = - -# Used for dependencies -HFILE_GLOB = $(top_srcdir)/blib/*.h $(top_srcdir)/gfx/*.h -CFILE_GLOB = $(top_srcdir)/blib/*.c $(top_srcdir)/gfx/*.c - -# Headers to ignore -IGNORE_HFILES = \ - config.h \ - blib-directfb.h \ - blib-gtk.h \ - bmarshal.h \ - bmovie-bml-parser.h \ - bmovie-gif-parser.h \ - btheme-parser.h \ - gif-load.h \ - gif-save.h \ - gif-types.h \ - digits.h - - -# Extra files to add when scanning -EXTRA_HFILES = - -# Images to copy into HTML directory -HTML_IMAGES = - -# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE) -content_files = - -# Other files to distribute -extra_files = - -# CFLAGS and LDFLAGS for compiling scan program. Only needed -# if $(DOC_MODULE).types is non-empty. -GTKDOC_CFLAGS = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ \ - @GDK_PIXBUF_CFLAGS@ \ - @GTK_CFLAGS@ \ - @DIRECTFB_CFLAGS@ - - -@HAVE_AA_TRUE@LIBB_AA = $(top_builddir)/gfx/libb-aa.la @AA_LIBS@ - -@HAVE_DIRECTFB_TRUE@LIBB_DIRECTFB = $(top_builddir)/gfx/libb-directfb.la @DIRECTFB_LIBS@ - -@HAVE_GTK_TRUE@LIBB_GTK = $(top_builddir)/gfx/libb-gtk.la @GTK_LIBS@ - -@HAVE_PIXBUF_TRUE@LIBB_PIXBUF = $(top_builddir)/gfx/libb-pixbuf.la @GDK_PIXBUF_LIBS@ - -GTKDOC_LIBS = \ - $(top_builddir)/blib/libb.la \ - $(LIBB_AA) \ - $(LIBB_DIRECTFB) \ - $(LIBB_PIXBUF) \ - $(LIBB_GTK) \ - @GLIB_LIBS@ - - -# Commands for compiling and linking -GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) -GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) - -#################################### -# Everything below here is generic # -#################################### - -# 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) - -EXTRA_DIST = \ - $(content_files) \ - $(extra_files) \ - $(HTML_IMAGES) \ - $(DOC_MAIN_SGML_FILE) \ - $(DOC_MODULE).types.in \ - $(DOC_MODULE)-sections.txt \ - $(DOC_MODULE)-overrides.txt - - -DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ - $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp - - -SCANOBJ_FILES = \ - $(DOC_MODULE).args \ - $(DOC_MODULE).hierarchy \ - $(DOC_MODULE).interfaces \ - $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).signals - -subdir = docs/reference -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = blib.types version -DIST_SOURCES = -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am blib.types.in \ - version.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/reference/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -blib.types: $(top_builddir)/config.status blib.types.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -version: $(top_builddir)/config.status version.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 -check: check-am -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-libtool - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: install-data-local - -install-exec-am: - -install-info: install-info-am - -install-man: - -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-info-am - -.PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-local distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-data-local \ - install-exec install-exec-am install-info install-info-am \ - install-man 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 uninstall uninstall-am \ - uninstall-info-am - - -@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp - -#### scan #### - -@ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(DOC_MODULE).types -@ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning header files ***' -@ENABLE_GTK_DOC_TRUE@ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \ -@ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ -@ENABLE_GTK_DOC_TRUE@ else \ -@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) ; \ -@ENABLE_GTK_DOC_TRUE@ for i in $(SCANOBJ_FILES) ; do \ -@ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \ -@ENABLE_GTK_DOC_TRUE@ done \ -@ENABLE_GTK_DOC_TRUE@ fi -@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ -@ENABLE_GTK_DOC_TRUE@ gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) -@ENABLE_GTK_DOC_TRUE@ touch scan-build.stamp - -@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp -@ENABLE_GTK_DOC_TRUE@ @true - -#### templates #### - -@ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt -@ENABLE_GTK_DOC_TRUE@ @echo '*** Rebuilding template files ***' -@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) -@ENABLE_GTK_DOC_TRUE@ touch tmpl-build.stamp - -@ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp -@ENABLE_GTK_DOC_TRUE@ @true - -#### sgml #### - -@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml -@ENABLE_GTK_DOC_TRUE@ @echo '*** Building SGML ***' -@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ -@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) $(MKDB_OPTIONS) -@ENABLE_GTK_DOC_TRUE@ touch sgml-build.stamp - -@ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp -@ENABLE_GTK_DOC_TRUE@ @true - -#### html #### - -@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) -@ENABLE_GTK_DOC_TRUE@ @echo '*** Building HTML ***' -@ENABLE_GTK_DOC_TRUE@ rm -rf $(srcdir)/html -@ENABLE_GTK_DOC_TRUE@ mkdir $(srcdir)/html -@ENABLE_GTK_DOC_TRUE@ cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) -@ENABLE_GTK_DOC_TRUE@ @echo '-- Fixing Crossreferences' -@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) -@ENABLE_GTK_DOC_TRUE@ touch html-build.stamp - -############## - -clean-local: - rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) - -maintainer-clean-local: clean - cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) - (installfiles=`echo $(srcdir)/html/*`; \ - if test "$$installfiles" = '$(srcdir)/html/*'; \ - then echo '-- Nothing to install' ; \ - else \ - for i in $$installfiles; do \ - echo '-- Installing '$$i ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ - done; \ - echo '-- Installing $(srcdir)/html/index.sgml' ; \ - $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ - fi) - -# -# Require gtk-doc when making dist -# -@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: -@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: -@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" -@ENABLE_GTK_DOC_FALSE@ @false - -dist-hook: dist-check-gtkdoc dist-hook-local - mkdir $(distdir)/tmpl - mkdir $(distdir)/xml - mkdir $(distdir)/html - -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl - -cp $(srcdir)/xml/*.xml $(distdir)/xml - -cp $(srcdir)/html/* $(distdir)/html - -.PHONY : dist-hook-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: diff --git a/blib-1.1.7/docs/reference/blib-docs.sgml b/blib-1.1.7/docs/reference/blib-docs.sgml deleted file mode 100644 index ca442a2..0000000 --- a/blib-1.1.7/docs/reference/blib-docs.sgml +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - BLib Reference Manual - - for BLib - - - Sven - Neumann - - - - - - This room is fullfilled mit special electronische equippment. - Fingergrabbing and pressing the cnoeppkes from the computers is - allowed for die experts only! So all the "lefthanders" stay away - and do not disturben the brainstorming von here working - intelligencies. Otherwise you will be out thrown and kicked - anderswhere! Also: please keep still and only watchen astaunished - the blinkenlights. - - - - - BLib Overview - - BLib is a library of useful things to hack the Blinkenlights. The - software used for the original Blinkenlights installation in - Berlin didn't fit our needs when we planned the installation in - Paris, dubbed Arcade. We - decided we need something more generic and developed BLib. - - - - BLib was written by Daniel Mack, Michael Natterer and Sven - Neumann with modules contributed by 1stein (BPacman, BBreakout) - and Simon Budig (BMatrix). - - - - There are a couple of software packages that use BLib: - - - blinkentools - - - A set of command-line utilities related to Blinkenlights. - It includes b2b, a converter for Blinkenmovies that can - apply some simple effects, b2mng, which creates MNG - animations from Blinkenmovies, and bsend, which sends movies - over the net using the Blinkenlights Network Protocol. - - - - - blinkensim - - - A graphical Blinkenlights simulator that displays the UDP - packets it receives according to the Blinkenlights Network - Protocol. It supports themes and comes with DirectFB and GTK+ backends. - - - - - blccc - - - The Blinkenlights Chaos Control center is the heart of - every Blinkenlights installation. This is the master - process that controls the lights. It makes heavy use of - BLib. - - - - - - - - BLib depends on GLib - version 2.0 (or newer). For the optional DirectFB view you need - DirectFB version - 0.9.11 (or newer) and the GTK+ view requires at least GTK+ version 2.0.3. - - - - BLib is released under the GNU General Public License (GPL). - - - - - Blinkenlights Utilities - - A collection of utilities that aren't that useful in itself but - are used from all over the Blinkenlights library. - - - - - - - - - - - - Blinkenlights Movies - - Support for loading and saving the various Blinkenlights Movie - formats. Some simple effects and a movie player module. - - - - - - - - - - Blinkenlights Network Protocol - - Support for speaking the Blinkenlights Network Protocol, a - simple UDP protocol layer. - - - - - - - - - - - - - Blinkenlights Modules - - Loadable modules that define our Game API. - - - - - - - - - Blinkenlights Simulation - - Themeable visualization of Blinkenlights Movies. - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/blib-overrides.txt b/blib-1.1.7/docs/reference/blib-overrides.txt deleted file mode 100644 index e69de29..0000000 diff --git a/blib-1.1.7/docs/reference/blib-sections.txt b/blib-1.1.7/docs/reference/blib-sections.txt deleted file mode 100644 index fd90de0..0000000 --- a/blib-1.1.7/docs/reference/blib-sections.txt +++ /dev/null @@ -1,443 +0,0 @@ -
-beffects -BEffects -BEffects -BEffectScope -BEffects -b_effects_new -b_effects_apply - -BEffectsClass -B_EFFECTS -B_IS_EFFECTS -B_TYPE_EFFECTS -b_effects_get_type -B_EFFECTS_CLASS -B_IS_EFFECTS_CLASS -
- -
-bmodule -BModule -BModule -BModuleEvent -BModuleEventType -BModuleKey -BModulePaintCallback -BModule -b_module_ticker_start -b_module_ticker_stop -b_module_request_stop -b_module_paint - -BModuleClass -B_MODULE -B_IS_MODULE -B_TYPE_MODULE -b_module_get_type -B_MODULE_CLASS -B_IS_MODULE_CLASS -B_MODULE_GET_CLASS -
- -
-bmoduleinfo -BModuleInfo -BModuleInfo -b_module_info_new -b_module_infos_scan_dir - -BModuleInfoClass -B_MODULE_INFO -B_IS_MODULE_INFO -B_TYPE_MODULE_INFO -b_module_info_get_type -B_MODULE_INFO_CLASS -B_IS_MODULE_INFO_CLASS -B_MODULE_INFO_GET_CLASS -
- -
-bmovie -B_MOVIE_MIN_DELAY -B_MOVIE_DEFAULT_DELAY -BMovie -BMovie -BMovieFrame -B_TYPE_MOVIE_BML -B_TYPE_MOVIE_BLM -B_TYPE_MOVIE_GIF -b_movie_new_from_file -b_movie_new_from_fd -b_movie_load -b_movie_unload -b_movie_save -b_movie_save_as -b_movie_get_frame_at_time -b_movie_prepend_frame - -BMovieClass -B_MOVIE -B_IS_MOVIE -B_TYPE_MOVIE -b_movie_get_type -B_MOVIE_CLASS -B_IS_MOVIE_CLASS -B_MOVIE_GET_CLASS -B_MOVIE_BML -B_IS_MOVIE_BML -B_MOVIE_BML_CLASS -B_IS_MOVIE_BML_CLASS -b_movie_bml_get_type -B_MOVIE_BLM -B_IS_MOVIE_BLM -B_MOVIE_BLM_CLASS -B_IS_MOVIE_BLM_CLASS -b_movie_blm_get_type -B_MOVIE_GIF -B_IS_MOVIE_GIF -B_MOVIE_GIF_CLASS -B_IS_MOVIE_GIF_CLASS -b_movie_gif_get_type -
- -
-bmovie-effects -BMovieEffects -b_movie_normalize -b_movie_apply_colormap -b_movie_apply_effects -
- -
-bmovieplayer -BMoviePlayer -BMoviePlayer - -BMoviePlayerClass -B_MOVIE_PLAYER -B_IS_MOVIE_PLAYER -B_TYPE_MOVIE_PLAYER -b_movie_player_get_type -B_MOVIE_PLAYER_CLASS -B_IS_MOVIE_PLAYER_CLASS -B_MOVIE_PLAYER_GET_CLASS -
- -
-bobject -BObject -BObject -b_object_set_filename -b_object_set_name -b_object_get_filename -b_object_get_name - -BObjectClass -B_OBJECT -B_IS_OBJECT -B_TYPE_OBJECT -b_object_get_type -B_OBJECT_CLASS -B_IS_OBJECT_CLASS -B_OBJECT_GET_CLASS -
- -
-bparams -BParams -B_TYPE_PARAM_FILENAME -b_param_spec_filename - -B_IS_PARAM_SPEC_FILENAME -b_param_filename_get_type -
- -
-bproxyclient -BProxyClient -BProxyClient -b_proxy_client_new -b_proxy_client_send_heartbeat - -BProxyClientClass -B_PROXY_CLIENT -B_IS_PROXY_CLIENT -B_TYPE_PROXY_CLIENT -b_proxy_client_get_type -B_PROXY_CLIENT_CLASS -B_IS_PROXY_CLIENT_CLASS -B_PROXY_CLIENT_GET_CLASS -
- -
-bproxyserver -BProxyServer -BProxyServer -b_proxy_server_new -b_proxy_server_send_packet -b_proxy_server_num_clients - -BProxyServerClass -B_PROXY_SERVER -B_IS_PROXY_SERVER -B_TYPE_PROXY_SERVER -b_proxy_server_get_type -B_PROXY_SERVER_CLASS -B_IS_PROXY_SERVER_CLASS -B_PROXY_SERVER_GET_CLASS -
- -
-breceiver -BReceiver -BReceiverCallback -BReceiver -b_receiver_new -b_receiver_listen -b_receiver_listen_fd -b_receiver_stop - -BReceiverClass -B_RECEIVER -B_IS_RECEIVER -B_TYPE_RECEIVER -b_receiver_get_type -B_RECEIVER_CLASS -B_IS_RECEIVER_CLASS -B_RECEIVER_GET_CLASS -
- -
-bsender -BSender -BSender -b_sender_new -b_sender_add_recipient -b_sender_remove_recipient -b_sender_list_recipients -b_sender_configure -b_sender_send_frame -b_sender_send_heartbeat -b_sender_set_verbose - -BSenderClass -B_SENDER -B_IS_SENDER -B_TYPE_SENDER -b_sender_get_type -B_SENDER_CLASS -B_IS_SENDER_CLASS -B_SENDER_GET_CLASS -
- -
-bsocket -BSocketOptions -b_socket_init -b_socket_udp_new -
- -
-btheme -BTheme -BColor -BRectangle -BWindow -B_WINDOW_VALUE_ALL -BOverlay -BTheme -b_theme_new_from_file -b_theme_new_from_scratch -b_theme_load -b_theme_unload -BThemesQuery -BThemesQueryFlags -b_themes_query -BThemesForeachFunc -b_themes_foreach -b_themes_foreach_theme -b_themes_lookup_theme -b_theme_frame_diff_boundary - -BThemeClass -B_THEME -B_IS_THEME -B_TYPE_THEME -b_theme_get_type -B_THEME_CLASS -B_IS_THEME_CLASS -B_THEME_GET_CLASS -
- - -
-bview-aa -BViewAA -BViewAA -b_view_aa_new -b_view_aa_update - -BViewAAClass -B_VIEW_AA -B_IS_VIEW_AA -B_TYPE_VIEW_AA -b_view_aa_get_type -B_VIEW_AA_CLASS -
- -
-bview-directfb -BViewDirectFB -BViewDirectFB -b_view_directfb_new -b_view_directfb_update - -BViewDirectFBClass -B_VIEW_DIRECTFB -B_IS_VIEW_DIRECTFB -B_TYPE_VIEW_DIRECTFB -b_view_directfb_get_type -B_VIEW_DIRECTFB_CLASS -
- -
-bview-gtk -BViewGtk -BViewGtk -b_view_gtk_new -b_view_gtk_update - -BViewGtkClass -B_VIEW_GTK -B_IS_VIEW_GTK -B_TYPE_VIEW_GTK -b_view_gtk_get_type -B_VIEW_GTK_CLASS -
- -
-bview-pixbuf -BViewPixbuf -BViewPixbuf -b_view_pixbuf_new -b_view_pixbuf_new_theme -b_view_pixbuf_load_image -b_view_pixbuf_render - -BViewPixbufClass -B_VIEW_PIXBUF -B_IS_VIEW_PIXBUF -B_TYPE_VIEW_PIXBUF -b_view_pixbuf_get_type -B_VIEW_PIXBUF_CLASS -
- -
-blib -BLib -b_init -
- -
-bmodule-internal -BModule Internal API -b_module_new -b_module_set_aspect -b_module_prepare -b_module_relax -b_module_start -b_module_stop -b_module_event -b_module_tick -b_module_describe -
- -
-bmodule-utils -BModule Utilities -b_module_draw_point -b_module_draw_line -b_module_fill -
- -
-bpacket -BPacket -BPacket -BPacketHeader -b_packet_new -b_packet_size -b_packet_hton -b_packet_ntoh -
- -
-bparser -BParser -BParser -BParserState -BParserStartFunc -BParserEndFunc -b_parser_new -b_parser_free -b_parser_parse -b_parser_end_parse -b_parser_parse_io_channel -b_parser_get_state -b_parse_encoding -
- -
-bprotocol -BProtocol -MAGIC_MCU_SETUP -MAGIC_MCU_FRAME -MAGIC_MCU_DEVCTRL -MAGIC_BLFRAME -MAGIC_BLFRAME_256 -MAGIC_HEARTBEAT -MCU_LISTENER_PORT -MCU_ID_ANY -MCU_DEVCTRL_OFF -MCU_DEVCTRL_ON -B_HEARTBEAT_PORT -B_HEARTBEAT_INTERVAL -
- -
-btypes -BTypes -B_TYPE_FILENAME -B_VALUE_HOLDS_FILENAME - -b_filename_get_type -
- -
-butils -BUtils -b_filename_from_utf8 -b_parse_int -b_parse_boolean -b_parse_double -b_parse_coordinates -b_parse_rectangle -b_parse_color -b_parse_param -b_object_set_property -b_rectangle_union -b_rectangle_intersect -
- -
-bwriter -BWriter -BWriter -b_writer_new -b_writer_free -b_write_header -b_write_open_tag -b_write_close_tag -b_write_element -
diff --git a/blib-1.1.7/docs/reference/blib.types.in b/blib-1.1.7/docs/reference/blib.types.in deleted file mode 100644 index fe609fb..0000000 --- a/blib-1.1.7/docs/reference/blib.types.in +++ /dev/null @@ -1,20 +0,0 @@ -#include "blib/blib.h" - -b_effects_get_type -b_module_get_type -b_module_info_get_type -b_movie_get_type -b_movie_bml_get_type -b_movie_blm_get_type -b_movie_gif_get_type -b_movie_player_get_type -b_object_get_type -b_proxy_client_get_type -b_receiver_get_type -b_sender_get_type -b_theme_get_type - -@DIRECTFB_VIEW_TYPE@ -@PIXBUF_VIEW_TYPE@ -@GTK_VIEW_TYPE@ -@AA_VIEW_TYPE@ diff --git a/blib-1.1.7/docs/reference/html/BEffects.html b/blib-1.1.7/docs/reference/html/BEffects.html deleted file mode 100644 index dc1f8ee..0000000 --- a/blib-1.1.7/docs/reference/html/BEffects.html +++ /dev/null @@ -1,81 +0,0 @@ -BEffects

BEffects

BEffects — simple effects on a single movie frame

Synopsis

-
-
-
-struct      BEffects;
-enum        BEffectScope;
-BEffects*   b_effects_new                   (void);
-void        b_effects_apply                 (BEffects *effects,
-                                             guchar *frame_data,
-                                             gint width,
-                                             gint height,
-                                             gint channels,
-                                             gint maxval);
-
-

Object Hierarchy

-
-  GObject
-   +----BEffects
-

Description

- -

Details

struct BEffects

struct BEffects;

- -


enum BEffectScope

typedef enum
-{
-  B_EFFECT_SCOPE_NONE  = 0,
-  B_EFFECT_SCOPE_LEFT  = 1 << 0,
-  B_EFFECT_SCOPE_RIGHT = 1 << 1,
-  B_EFFECT_SCOPE_ALL   = B_EFFECT_SCOPE_LEFT | B_EFFECT_SCOPE_RIGHT
-} BEffectScope;
-

- -


b_effects_new ()

BEffects*   b_effects_new                   (void);

-Creates a new BEffects object with default values.

- -

Returns : the newly allocate BEffects object. -

b_effects_apply ()

void        b_effects_apply                 (BEffects *effects,
-                                             guchar *frame_data,
-                                             gint width,
-                                             gint height,
-                                             gint channels,
-                                             gint maxval);

-This function applies the effects described in the effects object -to a single frame.

- -

effects : a BEffects object -
frame_data : data to apply the effects on -
width : width of the frame_data buffer -
height : height of the frame_data buffer -
channels : number of channels in the frame_data buffer -
maxval : the maximum value for the frame_data buffer -
diff --git a/blib-1.1.7/docs/reference/html/BModule.html b/blib-1.1.7/docs/reference/html/BModule.html deleted file mode 100644 index af09c03..0000000 --- a/blib-1.1.7/docs/reference/html/BModule.html +++ /dev/null @@ -1,177 +0,0 @@ -BModule

BModule

BModule — definition of the Blinkenlights Game API

Synopsis

-
-
-
-struct      BModule;
-struct      BModuleEvent;
-enum        BModuleEventType;
-enum        BModuleKey;
-gboolean    (*BModulePaintCallback)         (BModule *bmodule,
-                                             guchar *buffer,
-                                             gpointer data);
-void        b_module_ticker_start           (BModule *module,
-                                             gint timeout);
-void        b_module_ticker_stop            (BModule *module);
-void        b_module_request_stop           (BModule *module);
-void        b_module_paint                  (BModule *module);
-
-

Object Hierarchy

-
-  GObject
-   +----BModule
-

Properties

-
-  "lifetime"             gint                 : Write / Construct
-  "speed"                gdouble              : Write / Construct
-

Signal Prototypes

-
-"start"     void        user_function      (BModule *bmodule,
-                                            gpointer user_data);
-"stop"      void        user_function      (BModule *bmodule,
-                                            gpointer user_data);
-

Description

- -

Details

struct BModule

struct BModule;

-The BModule struct has a couple of fields that may be read directly -from a BModule implementation. You must however not change any -members directly. Usually a BModule uses the -width, height, -channels, -maxval, aspect -and num_players fields. -

-The buffer variable is the only one a -BModule may write to. It does so when it needs to update the frame -buffer. It is however recommened to use utility functions like -b_module_fill() instead of writing into the -buffer. All other fields of BModule are -considered private. -


struct BModuleEvent

struct BModuleEvent {
-
-  gint             device_id;
-  BModuleEventType type;
-  BModuleKey       key;
-};
-

-The BModuleEvent struct defines an event delivered to a BModule. -The key field is only valid if the type -is B_EVENT_TYPE_KEY. More field may be added when new event types -are added. -

gint device_idthe event source -
BModuleEventType typethe type of event -
BModuleKey keythe key - -

enum BModuleEventType

typedef enum
-{
-  B_EVENT_TYPE_UNKNOWN = 0,
-  B_EVENT_TYPE_KEY,
-  B_EVENT_TYPE_PLAYER_ENTERED,
-  B_EVENT_TYPE_PLAYER_LEFT
-} BModuleEventType;
-

-This enumeration classifies an event into a number of types. -


enum BModuleKey

typedef enum
-{
-  B_KEY_0,
-  B_KEY_1,
-  B_KEY_2,
-  B_KEY_3,
-  B_KEY_4,
-  B_KEY_5,
-  B_KEY_6,
-  B_KEY_7,
-  B_KEY_8,
-  B_KEY_9,
-  B_KEY_HASH,
-  B_KEY_ASTERISK
-} BModuleKey;
-

-Enumeration of the possible key values in an event of type -B_EVENT_TYPE_KEY. -


BModulePaintCallback ()

gboolean    (*BModulePaintCallback)         (BModule *bmodule,
-                                             guchar *buffer,
-                                             gpointer data);

-A callback that is registered when a BModule is created using -b_module_new(). It is called from b_module_paint() and typically -causes a Blinkenlights frame packet to be emitted. You don't need -to care about this if you are implementing a BModule. -

bmodule : -
buffer : -
data : -
Returns : - - -

b_module_ticker_start ()

void        b_module_ticker_start           (BModule *module,
-                                             gint timeout);

-Starts a timeout for module that will call cause its tick() method -to be called in timeout milliseconds. The return value of the -tick() method is then used to install a new timeout for module. -This proceeds until the tick() method returns -1, -b_module_ticker_stop() is called or the module is stopped. -

-You may only call this function for a BModule that is currently -running.

- -

module : a BModule object -
timeout : the timeout interval in milliseconds -

b_module_ticker_stop ()

void        b_module_ticker_stop            (BModule *module);

-Stops the ticker for module. If there is a pending timeout for -module, it is removed. -

-You may only call this function for a BModule that is currently -running.

- -

module : a BModule object -

b_module_request_stop ()

void        b_module_request_stop           (BModule *module);

-This function causes the module to be stopped. This is for example -used when a game module decides that the game is over. -

-You may only call this function for a BModule that is currently -running.

- -

module : a BModule object -

b_module_paint ()

void        b_module_paint                  (BModule *module);

-This function causes a repaint of the screen.

- -

module : a BModule object -

Properties

"lifetime" (gint : Write / Construct)

Maximum time a module is allowed to run (in milliseconds).

"speed" (gdouble : Write / Construct)

Allows to tune the playback speed.

Signals

The "start" signal

void        user_function                  (BModule *bmodule,
-                                            gpointer user_data);

- -

bmodule :the object which received the signal. - -
user_data :user data set when the signal handler was connected.

The "stop" signal

void        user_function                  (BModule *bmodule,
-                                            gpointer user_data);

- -

bmodule :the object which received the signal. - -
user_data :user data set when the signal handler was connected.
diff --git a/blib-1.1.7/docs/reference/html/BModuleInfo.html b/blib-1.1.7/docs/reference/html/BModuleInfo.html deleted file mode 100644 index 115e018..0000000 --- a/blib-1.1.7/docs/reference/html/BModuleInfo.html +++ /dev/null @@ -1,62 +0,0 @@ -BModuleInfo

BModuleInfo

BModuleInfo — handling of loadable modules

Synopsis

-
-
-
-struct      BModuleInfo;
-BModuleInfo* b_module_info_new              (const gchar *filename);
-gint        b_module_infos_scan_dir         (const gchar *dirname);
-
-

Object Hierarchy

-
-  GObject
-   +----GTypeModule
-         +----BModuleInfo
-

Implemented Interfaces

-BModuleInfo implements GTypePlugin. -

Description

- -

Details

struct BModuleInfo

struct BModuleInfo;

-The BModuleInfo struct is considered private. -


b_module_info_new ()

BModuleInfo* b_module_info_new              (const gchar *filename);

-Creates a new BModuleInfo object a loadable module.

- -

filename : the filename of the loadable module -
Returns : a newly allocated BModuleInfo object -

b_module_infos_scan_dir ()

gint        b_module_infos_scan_dir         (const gchar *dirname);

-Scans the given directory for loadable modules and registers the -types implemented by the found modules.

- -

dirname : the name of the directory to scan or NULL to use the -default directory -
Returns : the number of successfully registered modules -
diff --git a/blib-1.1.7/docs/reference/html/BMovie.html b/blib-1.1.7/docs/reference/html/BMovie.html deleted file mode 100644 index b359d33..0000000 --- a/blib-1.1.7/docs/reference/html/BMovie.html +++ /dev/null @@ -1,194 +0,0 @@ -BMovie

BMovie

BMovie — base class for Blinkenlights movies

Synopsis

-
-
-
-#define     B_MOVIE_MIN_DELAY
-#define     B_MOVIE_DEFAULT_DELAY
-struct      BMovie;
-struct      BMovieFrame;
-#define     B_TYPE_MOVIE_BML
-#define     B_TYPE_MOVIE_BLM
-#define     B_TYPE_MOVIE_GIF
-BMovie*     b_movie_new_from_file           (const gchar *filename,
-                                             gboolean lazy_load,
-                                             GError **error);
-BMovie*     b_movie_new_from_fd             (gint fd,
-                                             GError **error);
-gboolean    b_movie_load                    (BMovie *movie,
-                                             GError **error);
-void        b_movie_unload                  (BMovie *movie);
-gboolean    b_movie_save                    (BMovie *movie,
-                                             FILE *stream,
-                                             GError **error);
-gboolean    b_movie_save_as                 (BMovie *movie,
-                                             GType movie_type,
-                                             FILE *stream,
-                                             GError **error);
-GList*      b_movie_get_frame_at_time       (BMovie *movie,
-                                             GList *seed,
-                                             gint time);
-void        b_movie_prepend_frame           (BMovie *movie,
-                                             gint duration,
-                                             const guchar *data);
-
-

Object Hierarchy

-
-  GObject
-   +----BObject
-         +----BMovie
-

Description

-The BMovie class defines a common interface to a Blinkenlights -movie. BLib comes with a couple of implementations that correspond to -the different file formats. They are referred to by their GType: -B_TYPE_MOVIE_BML, B_TYPE_MOVIE_BLM and B_TYPE_MOVIE_GIF. -

Details

B_MOVIE_MIN_DELAY

#define B_MOVIE_MIN_DELAY      20
-

-The minimum time for a frame in milliseconds. Shorter frame delays -will be set to this value. -


B_MOVIE_DEFAULT_DELAY

#define B_MOVIE_DEFAULT_DELAY  100
-

-The default time for a frame in milliseconds. Frames with no specified -delay will be set to this value. -


struct BMovie

struct BMovie;

-The BMovie struct has various members that may be read directly since -not all of them has accessor functions. You must however not change -any of the fields. -


struct BMovieFrame

struct BMovieFrame {
-
-  gint          start;
-  gint          duration;
-  guchar       *data;
-};
-

-The BMovieFrame struct defines a single movie frame. -

gint startthe start time of the frame in milliseconds -
gint durationthe duration of the frame in milliseconds -
guchar *dataframe data according to the values in the BMovie that owns this frame - -

B_TYPE_MOVIE_BML

#define B_TYPE_MOVIE_BML            (b_movie_bml_get_type ())
-

-Type derived from BMovie that handles movies in the Blinkenlights Markup -Language (BML). -


B_TYPE_MOVIE_BLM

#define B_TYPE_MOVIE_BLM            (b_movie_blm_get_type ())
-

-Type derived from BMovie that handles movies in old-fashioned BLM format. -


B_TYPE_MOVIE_GIF

#define B_TYPE_MOVIE_GIF            (b_movie_gif_get_type ())
-

-Type derived from BMovie that handles movies in the GIF format. -


b_movie_new_from_file ()

BMovie*     b_movie_new_from_file           (const gchar *filename,
-                                             gboolean lazy_load,
-                                             GError **error);

-Tries to load a BMovie from the file pointed to by filename. If -lazy_load is TRUE, only the header is loaded and no frames are stored.

- -

filename : the name of the file to load -
lazy_load : whether to do lazy-loading, i.e. only load the header -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a newly allocated BMovie object or NULL if the load -failed -

b_movie_new_from_fd ()

BMovie*     b_movie_new_from_fd             (gint fd,
-                                             GError **error);

-Tries to load a BMovie from the UNIX file descriptor fd. Lazy -loading from file descriptors is not implemented since it doesn't -seem to make much sense.

- -

fd : a UNIX file descriptor -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a newly allocated BMovie object or NULL if the load -failed -

b_movie_load ()

gboolean    b_movie_load                    (BMovie *movie,
-                                             GError **error);

-Assures that the frames of the movie are loaded.

- -

movie : a BMovie object -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE if the movie was loaded successfully. -

b_movie_unload ()

void        b_movie_unload                  (BMovie *movie);

-Unloads the frames of a movie. -

-The movie object counts how many times you call b_movie_load() and -b_movie_unload() and only really unloads the frames if -b_movie_unload() was called as often as b_movie_load(). Note that -b_movie_new_from_file() and b_movie_new_from_fd() call -b_movie_load() unless lazy-loading was requested.

- -

movie : a BMovie object -

b_movie_save ()

gboolean    b_movie_save                    (BMovie *movie,
-                                             FILE *stream,
-                                             GError **error);

-Saves a BMovie object to a stream.

- -

movie : a BMovie object -
stream : a FILE stream ready for writing -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE on success or FALSE otherwise -

b_movie_save_as ()

gboolean    b_movie_save_as                 (BMovie *movie,
-                                             GType movie_type,
-                                             FILE *stream,
-                                             GError **error);

-Saves a BMovie object to a stream and allows to specify the file -format to use. -

-The format is specified by passing a type derived from -B_TYPE_MOVIE as movie_type. At the moment B_TYPE_MOVIE_BML, -B_TYPE_MOVIE_BLM and B_TYPE_MOVIE_GIF are supported types.

- -

movie : a BMovie object -
movie_type : the movie type to use for saving -
stream : a FILE stream ready for writing -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE on success or FALSE otherwise -

b_movie_get_frame_at_time ()

GList*      b_movie_get_frame_at_time       (BMovie *movie,
-                                             GList *seed,
-                                             gint time);

-Looks for the frame active after time milliseconds. -

-If you are calling this function subsequentially with increasing -time values, you can speed up the search by passing the last return -value as the seed parameter.

- -

movie : a loaded BMovie object -
seed : an optional GList pointer that can speed up the search -
time : the time in milliseconds -
Returns : a GList pointer that has the frame as data or NULL -if the time was out of the movie's range. -

b_movie_prepend_frame ()

void        b_movie_prepend_frame           (BMovie *movie,
-                                             gint duration,
-                                             const guchar *data);

-This is an internal function used by the movie loaders. It should -never be called from anywhere else.

- -

movie : -
duration : -
data : -
diff --git a/blib-1.1.7/docs/reference/html/BMoviePlayer.html b/blib-1.1.7/docs/reference/html/BMoviePlayer.html deleted file mode 100644 index 2b598ef..0000000 --- a/blib-1.1.7/docs/reference/html/BMoviePlayer.html +++ /dev/null @@ -1,53 +0,0 @@ -BMoviePlayer

BMoviePlayer

BMoviePlayer — a BModule that implements a BMovie player

Synopsis

-
-
-
-struct      BMoviePlayer;
-
-

Object Hierarchy

-
-  GObject
-   +----BModule
-         +----BMoviePlayer
-

Properties

-
-  "clear"                gboolean             : Write / Construct
-  "h-align"              gdouble              : Write / Construct
-  "movie"                BFilename            : Write / Construct
-  "reverse"              gboolean             : Write / Construct
-  "v-align"              gdouble              : Write / Construct
-

Description

- -

Details

struct BMoviePlayer

struct BMoviePlayer;

-The BMoviePlayer struct is considered private. -

Properties

"clear" (gboolean : Write / Construct)

Clear the screen before starting.

"h-align" (gdouble : Write / Construct)

Horizontal alignment on the screen.

"movie" (BFilename : Write / Construct)

The filename of the movie to play.

"reverse" (gboolean : Write / Construct)

Allows to play the movie backwards.

"v-align" (gdouble : Write / Construct)

Vertical alignment on the screen.

diff --git a/blib-1.1.7/docs/reference/html/BObject.html b/blib-1.1.7/docs/reference/html/BObject.html deleted file mode 100644 index ed994da..0000000 --- a/blib-1.1.7/docs/reference/html/BObject.html +++ /dev/null @@ -1,84 +0,0 @@ -BObject

BObject

BObject — an abstract base class derived from GObject

Synopsis

-
-
-
-struct      BObject;
-void        b_object_set_filename           (BObject *object,
-                                             const gchar *filename);
-void        b_object_set_name               (BObject *object,
-                                             const gchar *name);
-const gchar* b_object_get_filename          (BObject *object);
-const gchar* b_object_get_name              (BObject *object);
-
-

Object Hierarchy

-
-  GObject
-   +----BObject
-

Properties

-
-  "filename"             gchararray           : Read / Write
-  "name"                 gchararray           : Read / Write
-

Description

-BObject is directly derived from GObject and adds name and filename - properties. -

Details

struct BObject

struct BObject;

-The BObject struct shouldn't be accessed directly. Its members are -considered private. -


b_object_set_filename ()

void        b_object_set_filename           (BObject *object,
-                                             const gchar *filename);

-Sets the filename associated with object.

- -

object : a BObject. -
filename : the new filename, a nul-terminated string in the filesystem's -encoding. -

b_object_set_name ()

void        b_object_set_name               (BObject *object,
-                                             const gchar *name);

-Sets the name associated with object.

- -

object : a BObject. -
name : the new name, a nul-terminated string in UTF-8 encoding. -

b_object_get_filename ()

const gchar* b_object_get_filename          (BObject *object);

-This functions retrieves the filename associated with object. The -returned value must not be freed.

- -

object : a BObject. -
Returns : the fileanme or NULL if no filename was set for object. -

b_object_get_name ()

const gchar* b_object_get_name              (BObject *object);

-This functions retrieves the name associated with object. If no -name has been set for object, the name is generated from the -object's filename. The returned value must not be freed.

- -

object : a BObject. -
Returns : the name or NULL if no name and no filename was set -for object. -

Properties

"filename" (gchararray : Read / Write)

The filename associated with the object. This is a string in the filesystems's encoding.

"name" (gchararray : Read / Write)

The name associated with the object. This is a string in UTF-8 encoding.

diff --git a/blib-1.1.7/docs/reference/html/BProxyClient.html b/blib-1.1.7/docs/reference/html/BProxyClient.html deleted file mode 100644 index 7c83ddc..0000000 --- a/blib-1.1.7/docs/reference/html/BProxyClient.html +++ /dev/null @@ -1,77 +0,0 @@ -BProxyClient

BProxyClient

BProxyClient —

Synopsis

-
-
-
-struct      BProxyClient;
-BProxyClient* b_proxy_client_new            (const gchar *proxy_host,
-                                             gint proxy_port,
-                                             gint listen_port,
-                                             BReceiverCallback callback,
-                                             gpointer callback_data,
-                                             GError **error);
-gboolean    b_proxy_client_send_heartbeat   (BProxyClient *client);
-
-

Object Hierarchy

-
-  GObject
-   +----BReceiver
-         +----BProxyClient
-

Description

- -

Details

struct BProxyClient

struct BProxyClient;

- -


b_proxy_client_new ()

BProxyClient* b_proxy_client_new            (const gchar *proxy_host,
-                                             gint proxy_port,
-                                             gint listen_port,
-                                             BReceiverCallback callback,
-                                             gpointer callback_data,
-                                             GError **error);

-Creates a new BProxyClient object, ready to use.

- -

proxy_host : the blinkenproxy host -
proxy_port : the blinkenproxy port -
listen_port : the local port to listen to for Blinkenlights packages - or -1 to bind to an arbitrary free local port -
callback : the function to call when a new frame arrives -
callback_data : data to pass to the callback -
error : return location for a possible error -
Returns : a newly allocate BProxyClient object -

b_proxy_client_send_heartbeat ()

gboolean    b_proxy_client_send_heartbeat   (BProxyClient *client);

-Make the client send a heartbeat packet. This function should -be called periodically with the suggested interval of -B_HEARTBEAT_INTERVAL. To achieve, use this function with -g_timeout_add().

- -

client : a BProxyClient -
Returns : always TRUE -
diff --git a/blib-1.1.7/docs/reference/html/BProxyServer.html b/blib-1.1.7/docs/reference/html/BProxyServer.html deleted file mode 100644 index c6e8285..0000000 --- a/blib-1.1.7/docs/reference/html/BProxyServer.html +++ /dev/null @@ -1,102 +0,0 @@ -BProxyServer

BProxyServer

BProxyServer —

Synopsis

-
-
-
-struct      BProxyServer;
-BProxyServer* b_proxy_server_new            (gint port,
-                                             GError **error);
-gboolean    b_proxy_server_send_packet      (BProxyServer *server,
-                                             BPacket *packet);
-gint        b_proxy_server_num_clients      (BProxyServer *server);
-
-

Object Hierarchy

-
-  GObject
-   +----BReceiver
-         +----BProxyServer
-

Signal Prototypes

-
-"client-added"
-            void        user_function      (BProxyServer *bproxyserver,
-                                            gchar *arg1,
-                                            gint arg2,
-                                            gpointer user_data);
-"client-removed"
-            void        user_function      (BProxyServer *bproxyserver,
-                                            gchar *arg1,
-                                            gint arg2,
-                                            gpointer user_data);
-

Description

- -

Details

struct BProxyServer

struct BProxyServer;

- -


b_proxy_server_new ()

BProxyServer* b_proxy_server_new            (gint port,
-                                             GError **error);

-Creates a new BProxyServer object, ready to use.

- -

port : the local port to listen to for heartbeat packages -
error : return location for a possible error -
Returns : a newly allocate BProxyServer object -

b_proxy_server_send_packet ()

gboolean    b_proxy_server_send_packet      (BProxyServer *server,
-                                             BPacket *packet);

- -

server : -
packet : -
Returns : - - -

b_proxy_server_num_clients ()

gint        b_proxy_server_num_clients      (BProxyServer *server);

- -

server : -
Returns : - - -

Signals

The "client-added" signal

void        user_function                  (BProxyServer *bproxyserver,
-                                            gchar *arg1,
-                                            gint arg2,
-                                            gpointer user_data);

- -

bproxyserver :the object which received the signal. -
arg1 : -
arg2 : - -
user_data :user data set when the signal handler was connected.

The "client-removed" signal

void        user_function                  (BProxyServer *bproxyserver,
-                                            gchar *arg1,
-                                            gint arg2,
-                                            gpointer user_data);

- -

bproxyserver :the object which received the signal. -
arg1 : -
arg2 : - -
user_data :user data set when the signal handler was connected.
diff --git a/blib-1.1.7/docs/reference/html/BReceiver.html b/blib-1.1.7/docs/reference/html/BReceiver.html deleted file mode 100644 index 161e85b..0000000 --- a/blib-1.1.7/docs/reference/html/BReceiver.html +++ /dev/null @@ -1,102 +0,0 @@ -BReceiver

BReceiver

BReceiver — receives Blinkenlights packets

Synopsis

-
-
-
-struct      BReceiver;
-gboolean    (*BReceiverCallback)            (BReceiver *receiver,
-                                             BPacket *packet,
-                                             gpointer callback_data);
-BReceiver*  b_receiver_new                  (BReceiverCallback callback,
-                                             gpointer callback_data);
-gboolean    b_receiver_listen               (BReceiver *receiver,
-                                             gint port);
-gboolean    b_receiver_listen_fd            (BReceiver *receiver,
-                                             gint fd);
-void        b_receiver_stop                 (BReceiver *receiver);
-
-

Object Hierarchy

-
-  GObject
-   +----BReceiver
-

Properties

-
-  "callback"             gpointer             : Write / Construct Only
-  "callback-data"        gpointer             : Write / Construct Only
-

Description

-The BReceiver object listens for Blinkenlights UDP packets. For each -frame that matches the receiver configuration, a user-defined callback -is called with the received packet. -

Details

struct BReceiver

struct BReceiver;

-The BReceiver struct is considered private. -


BReceiverCallback ()

gboolean    (*BReceiverCallback)            (BReceiver *receiver,
-                                             BPacket *packet,
-                                             gpointer callback_data);

-The function that gets called to dispatch incoming packets. -

receiver :the BReceiver object that received the packet -
packet :the received BPacket converted to host byteorder -
callback_data :the data that was passed to b_receiver_new() -
Returns :TRUE if you want to be called again - - -

b_receiver_new ()

BReceiver*  b_receiver_new                  (BReceiverCallback callback,
-                                             gpointer callback_data);

-Creates a new BReceiver object.

- -

callback : the function to call when a new frame arrives -
callback_data : data to pass to the callback -
Returns : a newly allocate BReceiver object -

b_receiver_listen ()

gboolean    b_receiver_listen               (BReceiver *receiver,
-                                             gint port);

-Causes the receiver to start to listen to the specified UDP -port. For each successfully received Blinkenlights packet, the -packet will be converted to host byteorder and the callback that -was specified on b_receiver_new() will be called.

- -

receiver : a BReceiver object -
port : the UDP port to listen to -
Returns : TRUE if the receiver listens to port, FALSE otherwise -

b_receiver_listen_fd ()

gboolean    b_receiver_listen_fd            (BReceiver *receiver,
-                                             gint fd);

-Causes the receiver to start to listen to the given file descriptor. -This function is rarely useful, it is used internally by BProxyClient.

- -

receiver : a BReceiver object -
fd : a file descriptor -
Returns : TRUE on success -

b_receiver_stop ()

void        b_receiver_stop                 (BReceiver *receiver);

-Makes the receiver stop listening.

- -

receiver : a BReceiver object -

Properties

"callback" (gpointer : Write / Construct Only)

"callback-data" (gpointer : Write / Construct Only)

See Also

-BSender, BPacket -

diff --git a/blib-1.1.7/docs/reference/html/BSender.html b/blib-1.1.7/docs/reference/html/BSender.html deleted file mode 100644 index 94e4c0f..0000000 --- a/blib-1.1.7/docs/reference/html/BSender.html +++ /dev/null @@ -1,145 +0,0 @@ -BSender

BSender

BSender — sends Blinkenlights packets

Synopsis

-
-
-
-struct      BSender;
-BSender*    b_sender_new                    (void);
-gboolean    b_sender_add_recipient          (BSender *sender,
-                                             gint src_port,
-                                             const gchar *dest_host,
-                                             gint dest_port,
-                                             GError **error);
-gboolean    b_sender_remove_recipient       (BSender *sender,
-                                             const gchar *dest_host,
-                                             gint dest_port,
-                                             GError **error);
-GList*      b_sender_list_recipients        (BSender *sender);
-gboolean    b_sender_configure              (BSender *sender,
-                                             gint width,
-                                             gint height,
-                                             gint channels,
-                                             gint maxval);
-gboolean    b_sender_send_frame             (BSender *sender,
-                                             const guchar *data);
-gboolean    b_sender_send_heartbeat         (BSender *sender);
-void        b_sender_set_verbose            (BSender *sender,
-                                             gboolean verbose);
-
-

Object Hierarchy

-
-  GObject
-   +----BSender
-

Description

-The BSender object sends Blinkenlights UDP packets to a number of -recipients. Recipients can be added and removed at run-time. -

Details

struct BSender

struct BSender;

-The BSender struct is considered private. -


b_sender_new ()

BSender*    b_sender_new                    (void);

-Creates a new BSender object.

- -

Returns : a newly allocated BSender object -

b_sender_add_recipient ()

gboolean    b_sender_add_recipient          (BSender *sender,
-                                             gint src_port,
-                                             const gchar *dest_host,
-                                             gint dest_port,
-                                             GError **error);

-Tries to resolve host and adds it to the sender's list of recipients.

- -

sender : a BSender object -
src_port : originating UDP port (-1 to leave unspecified) -
dest_host : destination hostname or IP address -
dest_port : destination UDP port -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE if the recipient was successfully added, FALSE -otherwise -

b_sender_remove_recipient ()

gboolean    b_sender_remove_recipient       (BSender *sender,
-                                             const gchar *dest_host,
-                                             gint dest_port,
-                                             GError **error);

-Removes all recipients with matching host and port from the -sender's list of recipients.

- -

sender : a BSender object -
dest_host : destination hostname or IP address -
dest_port : destination UDP port -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE if at least one matching recipient was found -and removed, FALSE otherwise -

b_sender_list_recipients ()

GList*      b_sender_list_recipients        (BSender *sender);

-Creates a list of strings that describe the senders -recipients. You should free the strings as well as the list when -it is no longer needed.

- -

sender : a BSender object -
Returns : a newly allocated GList of newly allocated strings -

b_sender_configure ()

gboolean    b_sender_configure              (BSender *sender,
-                                             gint width,
-                                             gint height,
-                                             gint channels,
-                                             gint maxval);

-Prepares sender to send Blinkenlights UDP packets with the given -parameters.

- -

sender : a BSender object -
width : number of pixels per row -
height : number of pixels per column -
channels : number of channels per pixel -
maxval : the maximum value -
Returns : TRUE if sender was successfully reconfigured, -FALSE otherwise -

b_sender_send_frame ()

gboolean    b_sender_send_frame             (BSender *sender,
-                                             const guchar *data);

-Sends Blinkenlights packets to all recipients registered with -sender. The data should match the values of the last call to -b_sender_configure() for sender.

- -

sender : a Bsender object -
data : the frame data to send -
Returns : FALSE in case of a fatal error, TRUE otherwise -

b_sender_send_heartbeat ()

gboolean    b_sender_send_heartbeat         (BSender *sender);

Warning

b_sender_send_heartbeat is deprecated and should not be used in newly-written code.

-This function is deprecated and might be removed in the future. -If you need the heartbeat functionality, use BProxyClient instead.

- -

sender : a Bsender object -
Returns : TRUE always -

b_sender_set_verbose ()

void        b_sender_set_verbose            (BSender *sender,
-                                             gboolean verbose);

-In earlier BLib versions BSender used to print a message to stderr -when send() failed. This message is now suppressed by default, but -you can get the old behaviour back using this function.

- -

sender : a Bsender object -
verbose : whether the sender should do verbose error reporting or not -

See Also

-BReceiver, BPacket -

diff --git a/blib-1.1.7/docs/reference/html/BTheme.html b/blib-1.1.7/docs/reference/html/BTheme.html deleted file mode 100644 index e19e779..0000000 --- a/blib-1.1.7/docs/reference/html/BTheme.html +++ /dev/null @@ -1,292 +0,0 @@ -BTheme

BTheme

BTheme — theme support to visualize Blinkenlights

Synopsis

-
-
-
-struct      BColor;
-struct      BRectangle;
-struct      BWindow;
-#define     B_WINDOW_VALUE_ALL
-struct      BOverlay;
-struct      BTheme;
-BTheme*     b_theme_new_from_file           (const gchar *filename,
-                                             gboolean lazy_load,
-                                             GError **error);
-BTheme*     b_theme_new_from_scratch        (const gchar *title,
-                                             const gchar *type,
-                                             gint rows,
-                                             gint columns,
-                                             gint channels,
-                                             gint maxval,
-                                             gint width,
-                                             gint height);
-gboolean    b_theme_load                    (BTheme *theme,
-                                             GError **error);
-void        b_theme_unload                  (BTheme *theme);
-struct      BThemesQuery;
-enum        BThemesQueryFlags;
-GList*      b_themes_query                  (const gchar *themepath,
-                                             BThemesQuery *query);
-gboolean    (*BThemesForeachFunc)           (BTheme *theme,
-                                             gpointer callback_data);
-void        b_themes_foreach                (const gchar *themepath,
-                                             BThemesForeachFunc callback,
-                                             gpointer callback_data);
-void        b_themes_foreach_theme          (const gchar *themepath,
-                                             GHFunc callback,
-                                             gpointer callback_data);
-BTheme*     b_themes_lookup_theme           (const gchar *name,
-                                             const gchar *themepath,
-                                             GError **error);
-gboolean    b_theme_frame_diff_boundary     (BTheme *theme,
-                                             const guchar *prev_data,
-                                             const guchar *frame_data,
-                                             BRectangle *bbox);
-
-

Object Hierarchy

-
-  GObject
-   +----BObject
-         +----BTheme
-

Description

-A BTheme object defines the dimensions, features and the look of a -Blinkenlights installation. It allows to implement a graphical -simulation. BLib comes with two widgets, BViewGtk and BViewDirectFB -that hide the ugly details of BTheme. -

Details

struct BColor

struct BColor {
-
-  guchar  a;
-  guchar  r;
-  guchar  g;
-  guchar  b;
-};
-

-The BColor struct is used to store a single color. The color channels -have values in the range from 0 to 255. -

guchar aalpha channel value (opacity) -
guchar rred channel value -
guchar ggreen channel value -
guchar bblue channel value - -

struct BRectangle

struct BRectangle {
-
-  gint    x;
-  gint    y;
-  gint    w;
-  gint    h;
-};
-

-The BRectangle struct is used to store a rectangle. The coordinates -are pixel values. The x coordinate advances from left to right, the -y coordinate from top to bottom. -

gint xhorizontal offset from origin -
gint yvertical offset from origin -
gint wwidth -
gint hheight - -

struct BWindow

struct BWindow {
-
-  gint        value;
-  gint        row;
-  gint        column;
-  gint        src_x;
-  gint        src_y;
-  BRectangle  rect;
-};
-

-The BWindow struct defines a single overlay window used in a BTheme. -

gint valuethe value this window definition applies to -
gint rowthe row index -
gint columnthe column index -
gint src_xx coordinate in the upper left corner in the source image -
gint src_yy coordinate of the upper left corner in the source image -
BRectangle rectthe destination rectangle - -

B_WINDOW_VALUE_ALL

#define B_WINDOW_VALUE_ALL 0
-

-A special value used to indicate that the window definition is valid -for all possible values. -


struct BOverlay

struct BOverlay {
-
-  gchar       *image;
-  BColor       color;
-
-  GList       *windows;
-};
-

-The BOverlay struct defines a set of overlay windows used in a BTheme. -

gchar *imagean optional image to blend over the background -
BColor colorthe color is only used when no image is specified -
GList *windowsa GList of BWindow structs - -

struct BTheme

struct BTheme;

-The BTheme object defines the dimensions and the look of a -Blinkenlights installation. -


b_theme_new_from_file ()

BTheme*     b_theme_new_from_file           (const gchar *filename,
-                                             gboolean lazy_load,
-                                             GError **error);

-Tries to load a BTheme from the file pointed to by filename. If -lazy_load is TRUE, only the header is loaded.

- -

filename : the name of the file to load the theme from -
lazy_load : whether to do lazy-loading -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a newly allocated BTheme object or NULL if the load -failed -

b_theme_new_from_scratch ()

BTheme*     b_theme_new_from_scratch        (const gchar *title,
-                                             const gchar *type,
-                                             gint rows,
-                                             gint columns,
-                                             gint channels,
-                                             gint maxval,
-                                             gint width,
-                                             gint height);

-Creates a new BTheme object from scratch. This may be useful if -you want to quickly test a movie for a layout you don't have a -theme for. You need to call b_theme_load() before you can use the -new theme.

- -

title : a descriptive title -
type : the theme type or NULL -
rows : the number of rows of windows -
columns : the number of columns of windows -
channels : the number of channels per window (must be 1) -
maxval : the maximum value -
width : screen width in pixels -
height : screen height in pixels -
Returns : a newly allocated, lazy-loaded, BTheme object -

b_theme_load ()

gboolean    b_theme_load                    (BTheme *theme,
-                                             GError **error);

-Loads all data into the theme. You only need to call this if you -lazy-loaded the theme or called b_theme_unload() before.

- -

theme : a BTheme object -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE on success, FALSE otherwise -

b_theme_unload ()

void        b_theme_unload                  (BTheme *theme);

-Frees all data of a BTheme except the meta information stored in -the header.

- -

theme : a BTheme object -

struct BThemesQuery

struct BThemesQuery {
-
-  BThemesQueryFlags  flags;
-
-  const gchar       *name;
-  const gchar       *type;
-  gint               rows;
-  gint               columns;
-  gint               width;
-  gint               height;
-};
-

-A structure that defines a query on the installed themes. Used by -b_themes_query(). -


enum BThemesQueryFlags

typedef enum
-{
-  B_THEMES_QUERY_NONE    = 0,
-  B_THEMES_QUERY_NAME    = 1 << 0,
-  B_THEMES_QUERY_TYPE    = 1 << 1,
-  B_THEMES_QUERY_ROWS    = 1 << 2,
-  B_THEMES_QUERY_COLUMNS = 1 << 3,
-  B_THEMES_QUERY_WIDTH   = 1 << 4,
-  B_THEMES_QUERY_HEIGHT  = 1 << 5
-} BThemesQueryFlags;
-

-Flags that define which values of a BThemesQuery are valid. -


b_themes_query ()

GList*      b_themes_query                  (const gchar *themepath,
-                                             BThemesQuery *query);

-Looks for themes as defined by query. If themepath is not -specified the default path is used. The default path can be overridden -by setting the environment variable B_THEME_PATH. -

-Each theme that matches the query is lazy-loaded.

- -

themepath : a colon-separated list of directories to search or NULL to -use the default path -
query : pointer to a BThemesQuery -
Returns : a GList of newly allocated, lazy-loaded BTheme objects -or NULL if no matching theme was found -

BThemesForeachFunc ()

gboolean    (*BThemesForeachFunc)           (BTheme *theme,
-                                             gpointer callback_data);

-This function is called for each theme found by b_themes_foreach(). -

theme : -
callback_data : -
Returns : - - -

b_themes_foreach ()

void        b_themes_foreach                (const gchar *themepath,
-                                             BThemesForeachFunc callback,
-                                             gpointer callback_data);

-This function iterates over all themes in the themepath, lazy-loads them, -runs callback on the theme and unrefs it again. The iteration is stopped -if a callback returns FALSE. -

-If themepath is not specified, the default path is used. The -default path can be overridden by setting the environment variable -B_THEME_PATH.

- -

themepath : a colon-separated list of directories to search or NULL to -use the default path -
callback : a function to call for each theme -
callback_data : data to pass to the callback -

b_themes_foreach_theme ()

void        b_themes_foreach_theme          (const gchar *themepath,
-                                             GHFunc callback,
-                                             gpointer callback_data);

Warning

b_themes_foreach_theme is deprecated and should not be used in newly-written code.

-Shouldn't be used in new code, use b_themes_foreach() instead.

- -

themepath : -
callback : -
callback_data : -

b_themes_lookup_theme ()

BTheme*     b_themes_lookup_theme           (const gchar *name,
-                                             const gchar *themepath,
-                                             GError **error);

Warning

b_themes_lookup_theme is deprecated and should not be used in newly-written code.

-Shouldn't be used in new code, use b_themes_query() instead.

- -

name : -
themepath : -
error : -
Returns : -

b_theme_frame_diff_boundary ()

gboolean    b_theme_frame_diff_boundary     (BTheme *theme,
-                                             const guchar *prev_data,
-                                             const guchar *frame_data,
-                                             BRectangle *bbox);

-Computes the bounding box of the difference image between two frames.

- -

theme : a BTheme -
prev_data : data of the previous frame -
frame_data : data of the current frame -
bbox : returns bounding box -
Returns : TRUE if the bounding box is not empty. -

See Also

-BViewDirectFB, BViewGtk -

diff --git a/blib-1.1.7/docs/reference/html/BViewAA.html b/blib-1.1.7/docs/reference/html/BViewAA.html deleted file mode 100644 index 3ea5ebe..0000000 --- a/blib-1.1.7/docs/reference/html/BViewAA.html +++ /dev/null @@ -1,74 +0,0 @@ -BViewAA

BViewAA

BViewAA —

Synopsis

-
-
-
-struct      BViewAA;
-BViewAA*    b_view_aa_new                   (aa_context *aac,
-                                             gint rows,
-                                             gint columns,
-                                             gint channels,
-                                             GError **error);
-void        b_view_aa_update                (BViewAA *view,
-                                             const guchar *frame_data);
-
-

Object Hierarchy

-
-  GObject
-   +----BViewAA
-

Description

- -

Details

struct BViewAA

struct BViewAA;

- -


b_view_aa_new ()

BViewAA*    b_view_aa_new                   (aa_context *aac,
-                                             gint rows,
-                                             gint columns,
-                                             gint channels,
-                                             GError **error);

-Creates a new BViewAA object suitable to display -Blinkenlights movies that fit the theme. Most of the information -from the theme is ignored, except for the placement of the windows.

- -

aac : the AALIB context -
rows : -
columns : -
channels : -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a new BViewAA or NULL in case of an error -

b_view_aa_update ()

void        b_view_aa_update                (BViewAA *view,
-                                             const guchar *frame_data);

-Displays a new frame on the view. The view expects frame_data -in the range of 0 to 255.

- -

view : a BViewAA object -
frame_data : the frame data to display -
diff --git a/blib-1.1.7/docs/reference/html/BViewDirectFB.html b/blib-1.1.7/docs/reference/html/BViewDirectFB.html deleted file mode 100644 index 54a94c8..0000000 --- a/blib-1.1.7/docs/reference/html/BViewDirectFB.html +++ /dev/null @@ -1,76 +0,0 @@ -BViewDirectFB

BViewDirectFB

BViewDirectFB — a DirectFB widget to display Blinkenlights

Synopsis

-
-
-
-struct      BViewDirectFB;
-BViewDirectFB* b_view_directfb_new          (BTheme *theme,
-                                             IDirectFB *dfb,
-                                             IDirectFBSurface *dest,
-                                             GError **error);
-void        b_view_directfb_update          (BViewDirectFB *view,
-                                             const guchar *frame_data);
-
-

Object Hierarchy

-
-  GObject
-   +----BViewDirectFB
-

Description

- -

Details

struct BViewDirectFB

struct BViewDirectFB;

-The BViewDirectFB struct shouldn't be accessed directly. Its members -are considered private. -


b_view_directfb_new ()

BViewDirectFB* b_view_directfb_new          (BTheme *theme,
-                                             IDirectFB *dfb,
-                                             IDirectFBSurface *dest,
-                                             GError **error);

-Creates a new BViewDirectFB object suitable to display -Blinkenlights movies that fit the theme. The view will render to -the dest surface. If its size doesn't fit the screen size -specified in the theme, the view is drawn centered on the dest -surface.

- -

theme : a BTheme object -
dfb : the DirectFB super interface -
dest : the destination surface -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a new BViewDirectFB or NULL in case of an error -

b_view_directfb_update ()

void        b_view_directfb_update          (BViewDirectFB *view,
-                                             const guchar *frame_data);

-Displays a new frame on the view. The view expects frame_data -in the range of 0 to 255.

- -

view : a BViewDirectFB object -
frame_data : the frame data to display -

See Also

-BViewGtk -

diff --git a/blib-1.1.7/docs/reference/html/BViewGtk.html b/blib-1.1.7/docs/reference/html/BViewGtk.html deleted file mode 100644 index 18f306c..0000000 --- a/blib-1.1.7/docs/reference/html/BViewGtk.html +++ /dev/null @@ -1,72 +0,0 @@ -BViewGtk

BViewGtk

BViewGtk — a GTK+ widget to display Blinkenlights

Synopsis

-
-
-
-struct      BViewGtk;
-GtkWidget*  b_view_gtk_new                  (BTheme *theme,
-                                             GError **error);
-void        b_view_gtk_update               (BViewGtk *view,
-                                             const guchar *frame_data);
-
-

Object Hierarchy

-
-  GObject
-   +----GtkObject
-         +----GtkWidget
-               +----GtkDrawingArea
-                     +----BViewGtk
-

Implemented Interfaces

-BViewGtk implements AtkImplementorIface. -

Description

- -

Details

struct BViewGtk

struct BViewGtk;

-The BViewGtk struct shouldn't be accessed directly. Its members are -considered private. -


b_view_gtk_new ()

GtkWidget*  b_view_gtk_new                  (BTheme *theme,
-                                             GError **error);

-Creates a new widget suitable to display Blinkenlights movies that -fit the theme.

- -

theme : a BTheme object -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a new widget or NULL in case of an error -

b_view_gtk_update ()

void        b_view_gtk_update               (BViewGtk *view,
-                                             const guchar *frame_data);

-Displays a new frame on the view. The view expects frame_data -in the range of 0 to 255.

- -

view : a BViewGtk widget -
frame_data : the frame data to display -

See Also

-BViewDirectFB -

diff --git a/blib-1.1.7/docs/reference/html/BViewPixbuf.html b/blib-1.1.7/docs/reference/html/BViewPixbuf.html deleted file mode 100644 index 25ff916..0000000 --- a/blib-1.1.7/docs/reference/html/BViewPixbuf.html +++ /dev/null @@ -1,112 +0,0 @@ -BViewPixbuf

BViewPixbuf

BViewPixbuf —

Synopsis

-
-
-
-struct      BViewPixbuf;
-BViewPixbuf* b_view_pixbuf_new              (gint rows,
-                                             gint columns,
-                                             gint channels,
-                                             GError **error);
-BViewPixbuf* b_view_pixbuf_new_theme        (BTheme *theme,
-                                             gboolean image_preload,
-                                             GError **error);
-const GdkPixbuf* b_view_pixbuf_load_image   (BViewPixbuf *view,
-                                             const gchar *filename,
-                                             GError **error);
-const GdkPixbuf* b_view_pixbuf_render       (BViewPixbuf *view,
-                                             const guchar *frame_data,
-                                             const BRectangle *clip,
-                                             GError **error);
-
-

Object Hierarchy

-
-  GObject
-   +----BViewPixbuf
-

Description

- -

Details

struct BViewPixbuf

struct BViewPixbuf;

- -


b_view_pixbuf_new ()

BViewPixbuf* b_view_pixbuf_new              (gint rows,
-                                             gint columns,
-                                             gint channels,
-                                             GError **error);

-Creates a new BViewPixbuf for the given parameters. This is a -simple version that renders a grayscale pixel for every window.

- -

rows : -
columns : -
channels : -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a new view or NULL in case of an error -

b_view_pixbuf_new_theme ()

BViewPixbuf* b_view_pixbuf_new_theme        (BTheme *theme,
-                                             gboolean image_preload,
-                                             GError **error);

-Creates a pixbuf renderer for Blinkenlights frames using the -theme. When image_preload is enabled, all images refered to by -the theme are loaded. If an error occurs loading the images, -b_view_pixbuf_new() will fail and return NULL. If a view is -created with preloaded images, calling b_view_pixbuf_render() on -it will always succeed so you can skip error checking later.

- -

theme : a BTheme object -
image_preload : whether to preload all images -
error : location to store the error occuring, - or NULL to ignore errors -
Returns : a new view or NULL in case of an error -

b_view_pixbuf_load_image ()

const GdkPixbuf* b_view_pixbuf_load_image   (BViewPixbuf *view,
-                                             const gchar *filename,
-                                             GError **error);

-Renders a frame on the view and returns a pointer to a GdkPixbuf -holding the rendered image. The pixbuf is owned by the view, you -may only read from it. -

-The view expects frame_data in the range of 0 to 255.

- -

view : a BViewPixbuf object -
filename : the filename of the image to load -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a pointer to a GdkPixbuf with the rendered frame -

b_view_pixbuf_render ()

const GdkPixbuf* b_view_pixbuf_render       (BViewPixbuf *view,
-                                             const guchar *frame_data,
-                                             const BRectangle *clip,
-                                             GError **error);

-Renders a frame on the view. The view expects frame_data in the -range of 0 to 255.

- -

view : a BViewPixbuf object -
frame_data : the frame data to display -
clip : clipping rectangle (or NULL) -
error : location to store the error occuring, or NULL to ignore - errors -
Returns : a reference to a GdkPixbuf with the rendered frame. -
diff --git a/blib-1.1.7/docs/reference/html/blib-BLib.html b/blib-1.1.7/docs/reference/html/blib-BLib.html deleted file mode 100644 index b93e52c..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BLib.html +++ /dev/null @@ -1,46 +0,0 @@ -BLib

BLib

BLib — BLib library initialization

Synopsis

-
-
-
-void        b_init                          (void);
-

Description

- -

Details

b_init ()

void        b_init                          (void);

-This function initializes the BLib library. It calls g_type_init() -for you, initializes the random number generator and registers some -transform functions needed for the deserialization routines. -

-It is safe to call this function multiple times but you should at -least call it once before you use any other BLib functions.

- -

diff --git a/blib-1.1.7/docs/reference/html/blib-BModule-Internal-API.html b/blib-1.1.7/docs/reference/html/blib-BModule-Internal-API.html deleted file mode 100644 index 866a780..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BModule-Internal-API.html +++ /dev/null @@ -1,148 +0,0 @@ -BModule Internal API

BModule Internal API

BModule Internal API — the internal API for users of BModules

Synopsis

-
-
-
-BModule*    b_module_new                    (GType module_type,
-                                             gint width,
-                                             gint height,
-                                             guchar *buffer,
-                                             BModulePaintCallback paint_callback,
-                                             gpointer paint_data,
-                                             GError **error);
-void        b_module_set_aspect             (BModule *module,
-                                             gdouble aspect_ratio);
-gboolean    b_module_prepare                (BModule *module,
-                                             GError **error);
-void        b_module_relax                  (BModule *module);
-void        b_module_start                  (BModule *module);
-void        b_module_stop                   (BModule *module);
-void        b_module_event                  (BModule *module,
-                                             BModuleEvent *event);
-gint        b_module_tick                   (BModule *module);
-void        b_module_describe               (BModule *module,
-                                             gchar **title,
-                                             gchar **description,
-                                             gchar **author);
-

Description

- -

Details

b_module_new ()

BModule*    b_module_new                    (GType module_type,
-                                             gint width,
-                                             gint height,
-                                             guchar *buffer,
-                                             BModulePaintCallback paint_callback,
-                                             gpointer paint_data,
-                                             GError **error);

-This function tries to create the class for the module_type and -queries it with the given width and height. Only if the class can -handle the requested size, a BModule instance is created and -initialized with the given values.

- -

module_type : the type of module to create -
width : width of the frame buffer -
height : height of the frame buffer -
buffer : pointer to a preallocated buffer or NULL -
paint_callback : the function to call in b_module_paint() -
paint_data : data to pass to the paint_callback -
error : location to store the error occuring, or NULL to ignore errors -
Returns : the newly allocate BModule object -

b_module_set_aspect ()

void        b_module_set_aspect             (BModule *module,
-                                             gdouble aspect_ratio);

-Sets the pixel (or window) aspect ratio for the module. Most -modules ignore this value but some may adapt their output to take -the shape of pixels into account.

- -

module : a BModule object -
aspect_ratio : the new pixel aspect ratio (x / y) -

b_module_prepare ()

gboolean    b_module_prepare                (BModule *module,
-                                             GError **error);

-This function first queries the module once more to check that it -can handle the current settings. If the query succeeds, the prepare() -method of the module is called. The module should then prepare -itself and will be able to start as soon as b_module_start() is called.

- -

module : a BModule object -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE is the module has successfully prepared itself, -FALSE otherwise -

b_module_relax ()

void        b_module_relax                  (BModule *module);

-Calls the relax() method of the module causing it to release -resources allocated in b_module_prepare().

- -

module : a BModule object -

b_module_start ()

void        b_module_start                  (BModule *module);

-Emits the start signal for module. If module has a lifetime set, -a timer is installed that stops the module when the lifetime expires. -

-You need to prepare module by calling b_module_prepare() before it -can be started.

- -

module : a BModule object -

b_module_stop ()

void        b_module_stop                   (BModule *module);

-Emits the stop signal for module. You may only call this function -for a BModule that is currently running.

- -

module : a BModule object -

b_module_event ()

void        b_module_event                  (BModule *module,
-                                             BModuleEvent *event);

-Dispatches an event to module by calling its event() method with -event. This function has no effect if the module is not currently -running.

- -

module : a BModule object -
event : pointer to a BModuleEvent -

b_module_tick ()

gint        b_module_tick                   (BModule *module);

-Calls the tick() method of module. You may only call this function -for a BModule that is currently running.

- -

module : a BModule object -
Returns : the number of milliseconds until tick() should be -called again or -1 to indicate that no further ticks are requested -

b_module_describe ()

void        b_module_describe               (BModule *module,
-                                             gchar **title,
-                                             gchar **description,
-                                             gchar **author);

-This function queries module for a title, description and the name -of the author. It does so by calling the modules describe() method. -You may pass NULL as return location if you are not interested in -a particular information. The title is guaranteed to be available, -description and author may be NULL if the module doesn't provide -this information. -

-You must free all returned strings using g_free() if you don't need -them any longer.

- -

module : a BModule object -
title : return location for the module title or NULL -
description : return location for the module description or NULL -
author : return location for the name of the module author or NULL -
diff --git a/blib-1.1.7/docs/reference/html/blib-BModule-Utilities.html b/blib-1.1.7/docs/reference/html/blib-BModule-Utilities.html deleted file mode 100644 index 5ec81f1..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BModule-Utilities.html +++ /dev/null @@ -1,82 +0,0 @@ -BModule Utilities

BModule Utilities

BModule Utilities — utility functions for BModule implementations

Synopsis

-
-
-
-void        b_module_draw_point             (BModule *module,
-                                             gint x,
-                                             gint y,
-                                             guchar value);
-void        b_module_draw_line              (BModule *module,
-                                             gint x1,
-                                             gint y1,
-                                             gint x2,
-                                             gint y2,
-                                             guchar value);
-void        b_module_fill                   (BModule *module,
-                                             guchar value);
-

Description

- -

Details

b_module_draw_point ()

void        b_module_draw_point             (BModule *module,
-                                             gint x,
-                                             gint y,
-                                             guchar value);

-Draws a point to the module's frame buffer. It is safe to specify -coordinates outside the buffer.

- -

module : a BModule object -
x : x coordinate -
y : y coordinate -
value : the color to draw with -

b_module_draw_line ()

void        b_module_draw_line              (BModule *module,
-                                             gint x1,
-                                             gint y1,
-                                             gint x2,
-                                             gint y2,
-                                             guchar value);

-Draws a one-pixel wide line between two points to the module's -frame buffer. The endpoints are included in the line. If the line -exceeds the buffer, it is properly clipped.

- -

module : a BModule object -
x1 : x coordinate of the start point -
y1 : y coordinate of the start point -
x2 : x coordinate of the end point -
y2 : y coordinate of the end point -
value : the color to draw with -

b_module_fill ()

void        b_module_fill                   (BModule *module,
-                                             guchar value);

-Fills the module's framebuffer with value.

- -

module : a BModule object -
value : the color to draw with -
diff --git a/blib-1.1.7/docs/reference/html/blib-BMovieEffects.html b/blib-1.1.7/docs/reference/html/blib-BMovieEffects.html deleted file mode 100644 index 71263bd..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BMovieEffects.html +++ /dev/null @@ -1,73 +0,0 @@ -BMovieEffects

BMovieEffects

BMovieEffects — simple effects on a movie

Synopsis

-
-
-
-void        b_movie_normalize               (BMovie *movie,
-                                             gint maxval);
-void        b_movie_apply_colormap          (BMovie *movie,
-                                             guchar *map);
-void        b_movie_apply_effects           (BMovie *movie,
-                                             BEffects *effects,
-                                             gboolean reverse,
-                                             gdouble speed);
-

Description

- -

Details

b_movie_normalize ()

void        b_movie_normalize               (BMovie *movie,
-                                             gint maxval);

-Changes the maximum value for movie, that is the value that will -cause the lamp to glow with full intensity. This function iterates -over all frames of the movie and changes the frame data accordingly.

- -

movie : a BMovie object -
maxval : the new maximum value to apply to movie -

b_movie_apply_colormap ()

void        b_movie_apply_colormap          (BMovie *movie,
-                                             guchar *map);

-Applies a mapping defined by map to all frames of the movie. The -mapping must not exceed the movie's maxval.

- -

movie : a BMovie object -
map : a LUT that remaps each color value -

b_movie_apply_effects ()

void        b_movie_apply_effects           (BMovie *movie,
-                                             BEffects *effects,
-                                             gboolean reverse,
-                                             gdouble speed);

-If effects is non-NULL, the effects described by it are applied -to movie. If reverse is TRUE, the order of frames is reversed. -If speed is different from 1.0, the frame timing is adjusted; for -example a value of 2.0 makes the movie play with double speed.

- -

movie : a BMovie object -
effects : a BEffects object or NULL -
reverse : whether to reverse the order of frames in movie -
speed : an adjustment factor to be applied on the frame timing -
diff --git a/blib-1.1.7/docs/reference/html/blib-BPacket.html b/blib-1.1.7/docs/reference/html/blib-BPacket.html deleted file mode 100644 index 601c956..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BPacket.html +++ /dev/null @@ -1,98 +0,0 @@ -BPacket

BPacket

BPacket — the UDP packet used to transport a single frame

Synopsis

-
-
-
-struct      BPacket;
-union       BPacketHeader;
-BPacket*    b_packet_new                    (gint width,
-                                             gint height,
-                                             gint channels,
-                                             gint maxval,
-                                             gint *data_size);
-gsize       b_packet_size                   (BPacket *packet);
-void        b_packet_hton                   (BPacket *packet);
-void        b_packet_ntoh                   (BPacket *packet);
-

Description

-A BPacket consists of a mcu_frame_header struct followed by the -actual frame data. It corresponds to a single animation frame. -

Details

struct BPacket

struct BPacket {
-
-  BPacketHeader      header;
-  guchar             data[0];
-};
-

-The BPacket struct has a variable size which is determined by the -values passed to b_packet_new(). -

BPacketHeader headerthe Blinkenlights frame header -
guchar data[0]the frame data - -

union BPacketHeader

union BPacketHeader
-{
-  mcu_frame_header_t  mcu_frame_h;
-  heartbeat_header_t  heartbeat_h;
-};
-

- -


b_packet_new ()

BPacket*    b_packet_new                    (gint width,
-                                             gint height,
-                                             gint channels,
-                                             gint maxval,
-                                             gint *data_size);

-Allocates a new BPacket structure and initializes it with the -given values. If data_size is non-NULL the size of the data area -(in bytes) is returned via this variable. -

-The packet should be freed with g_free() when it is not needed any -longer.

- -

width : the number of pixels per row -
height : the number of pixels per column -
channels : the number of channels per pixels -
maxval : the maximum value -
data_size : returns the size of the packet data -
Returns : a newly allocated BPacket. -

b_packet_size ()

gsize       b_packet_size                   (BPacket *packet);

- -

packet : -
Returns : - - -

b_packet_hton ()

void        b_packet_hton                   (BPacket *packet);

-Converts all members of packet from host to network byteorder.

- -

packet : pointer to a BPacket -

b_packet_ntoh ()

void        b_packet_ntoh                   (BPacket *packet);

-Converts all members of packet from network to host byteorder.

- -

packet : pointer to a BPacket -
diff --git a/blib-1.1.7/docs/reference/html/blib-BParams.html b/blib-1.1.7/docs/reference/html/blib-BParams.html deleted file mode 100644 index f20ecac..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BParams.html +++ /dev/null @@ -1,60 +0,0 @@ -BParams

BParams

BParams — Additional Parameter types introduced by BLib

Synopsis

-
-
-
-#define     B_TYPE_PARAM_FILENAME
-GParamSpec* b_param_spec_filename           (const gchar *name,
-                                             const gchar *nick,
-                                             const gchar *blurb,
-                                             gchar *default_value,
-                                             GParamFlags flags);
-
-

Description

- -

Details

B_TYPE_PARAM_FILENAME

#define B_TYPE_PARAM_FILENAME           (b_param_filename_get_type ())
-

-The GType of the param spec for a B_TYPE_FILENAME property. -


b_param_spec_filename ()

GParamSpec* b_param_spec_filename           (const gchar *name,
-                                             const gchar *nick,
-                                             const gchar *blurb,
-                                             gchar *default_value,
-                                             GParamFlags flags);

-Creates a new GParamSpec for a B_TYPE_FILENAME property.

- -

name : the property name -
nick : an optional short version of the name -
blurb : an optional description -
default_value : the default value (may be NULL) -
flags : the GParamFlags for this param_spec -
Returns : the newly allocate GParamSpec. -
diff --git a/blib-1.1.7/docs/reference/html/blib-BParser.html b/blib-1.1.7/docs/reference/html/blib-BParser.html deleted file mode 100644 index 7ab5274..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BParser.html +++ /dev/null @@ -1,182 +0,0 @@ -BParser

BParser

BParser — an XML parser that offers a simplified SAX API

Synopsis

-
-
-
-struct      BParser;
-enum        BParserState;
-BParserState (*BParserStartFunc)            (BParserState state,
-                                             const gchar *element_name,
-                                             const gchar **attribute_names,
-                                             const gchar **attribute_values,
-                                             gpointer user_data,
-                                             GError **error);
-BParserState (*BParserEndFunc)              (BParserState state,
-                                             const gchar *element_name,
-                                             const gchar *cdata,
-                                             gsize cdata_len,
-                                             gpointer user_data,
-                                             GError **error);
-BParser*    b_parser_new                    (BParserStartFunc start_element,
-                                             BParserEndFunc end_element,
-                                             gpointer user_data);
-void        b_parser_free                   (BParser *parser);
-gboolean    b_parser_parse                  (BParser *parser,
-                                             const gchar *text,
-                                             gssize text_len,
-                                             GError **error);
-gboolean    b_parser_end_parse              (BParser *parser,
-                                             GError **error);
-gboolean    b_parser_parse_io_channel       (BParser *parser,
-                                             GIOChannel *io,
-                                             gboolean recode,
-                                             GError **error);
-BParserState b_parser_get_state             (BParser *parser);
-gchar*      b_parse_encoding                (const gchar *text,
-                                             gint text_len);
-

Description

- -

Details

struct BParser

struct BParser;

-The BParser struct is private. -


enum BParserState

typedef enum
-{
-  B_PARSER_STATE_UNKNOWN,
-  B_PARSER_STATE_TOPLEVEL,
-  B_PARSER_STATE_USER = 0x10  /* first user state, use as many as you need */
-} BParserState;
-

-An enumeration used to indicate the state of a BParser. Users of -BParser will want to add their own states; they may use any values -equal or greater than B_PARSER_STATE_USER. -


BParserStartFunc ()

BParserState (*BParserStartFunc)            (BParserState state,
-                                             const gchar *element_name,
-                                             const gchar **attribute_names,
-                                             const gchar **attribute_values,
-                                             gpointer user_data,
-                                             GError **error);

-The function that is called when the parser hits the start of an -element. Return B_PARSER_STATE_UNKNOWN from this function to indicate -an error which should cause the parser to abort. -

state :the current state of the parser -
element_name :the name of the element -
attribute_names :a NULL-terminated list of attribute names -
attribute_values :a NULL-terminated list of attribute values -
user_data :the data that was passed to b_parser_new() -
error :the error pointer that was passed to b_parser_new() -
Returns :the new state of the parser - - -

BParserEndFunc ()

BParserState (*BParserEndFunc)              (BParserState state,
-                                             const gchar *element_name,
-                                             const gchar *cdata,
-                                             gsize cdata_len,
-                                             gpointer user_data,
-                                             GError **error);

-The function that is called when the parser hits the end of an -element. Return B_PARSER_STATE_UNKNOWN from this function to -indicate an error which should cause the parser to abort. -

state :the current state of the parser -
element_name :the name of the element -
cdata :pointer to character data that occured between the opening -and closing tags -
cdata_len :the length of cdata in bytes -
user_data :the data that was passed to b_parser_new() -
error :the error pointer that was passed to b_parser_new() -
Returns :the new state of the parser - - -

b_parser_new ()

BParser*    b_parser_new                    (BParserStartFunc start_element,
-                                             BParserEndFunc end_element,
-                                             gpointer user_data);

-Creates a new BParser suited to parse XML files. The BParser -should later be freed using b_parser_free().

- -

start_element : the function to call when an element is started -
end_element : the function to call when an element is closed -
user_data : data to pass to the functions above -
Returns : a newly allocated BParser -

b_parser_free ()

void        b_parser_free                   (BParser *parser);

-Frees the resources allocated for parser. You must not access -parser after calling this function.

- -

parser : a BParser -

b_parser_parse ()

gboolean    b_parser_parse                  (BParser *parser,
-                                             const gchar *text,
-                                             gssize text_len,
-                                             GError **error);

-Let the parser process a chunk of text. You need to call -b_parser_end_parse() after you passed the last chunk to the parser.

- -

parser : a BParser -
text : pointer to a text buffer to parse -
text_len : the number of bytes to parse from text -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE if parsing was successful, FALSE if an error occured -

b_parser_end_parse ()

gboolean    b_parser_end_parse              (BParser *parser,
-                                             GError **error);

-Finishes the parser. After calling this function, you must not -call b_parser_parse() on the parser again.

- -

parser : a BParser -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE if parser was successfully finished, FALSE -otherwise -

b_parser_parse_io_channel ()

gboolean    b_parser_parse_io_channel       (BParser *parser,
-                                             GIOChannel *io,
-                                             gboolean recode,
-                                             GError **error);

-Reads data from the GIOChannel io and passes it to parser. If -recode is TRUE, the data should start with an XML header so this -function can determine the encoding of the XML data and convert it -to UTF-8 for you.

- -

parser : a BParser -
io : a GIOChannel to read the text to parse from -
recode : TRUE if you want the parser to do automatic encoding conversion -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE if parsing was successful, FALSE otherwise -

b_parser_get_state ()

BParserState b_parser_get_state             (BParser *parser);

-Retrieves the current state of parser.

- -

parser : a BParser -
Returns : the state of parser -

b_parse_encoding ()

gchar*      b_parse_encoding                (const gchar *text,
-                                             gint text_len);

-Scans the text for an XML header with encoding specification.

- -

text : a string to parse, must be at least 20 bytes -
text_len : the maximum number of bytes to parse from text -
Returns : a copy of the encoding string or NULL if none was -found -

See Also

-GMarkupParser -

diff --git a/blib-1.1.7/docs/reference/html/blib-BProtocol.html b/blib-1.1.7/docs/reference/html/blib-BProtocol.html deleted file mode 100644 index ca8ecb1..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BProtocol.html +++ /dev/null @@ -1,98 +0,0 @@ -BProtocol

BProtocol

BProtocol — definiton of the Blinkenlights Network Protocol

Synopsis

-
-
-
-#define     MAGIC_MCU_SETUP
-#define     MAGIC_MCU_FRAME
-#define     MAGIC_MCU_DEVCTRL
-#define     MAGIC_BLFRAME
-#define     MAGIC_BLFRAME_256
-#define     MAGIC_HEARTBEAT
-#define     MCU_LISTENER_PORT
-#define     MCU_ID_ANY
-#define     MCU_DEVCTRL_OFF
-#define     MCU_DEVCTRL_ON
-#define     B_HEARTBEAT_PORT
-#define     B_HEARTBEAT_INTERVAL
-

Description

-The bprotocol.h header file defines the Blinkenlights Network -Protocol. It contains structure definitions for the different network -packets as well as defines for magic numbers. -

-This header file doesn't use any GLib types to make it possible to -include it from applications that can not or don't want to use BLib. -As a user of BLib you don't need to care about the details of the -protocol described here. Use the BSender and BReceiver instead. -

Details

MAGIC_MCU_SETUP

#define MAGIC_MCU_SETUP     0x2342FEED  /* MCU Configuration packet              */
-

-The magic number that identifies a setup packet. -


MAGIC_MCU_FRAME

#define MAGIC_MCU_FRAME     0x23542666  /* MCU Frame packet                      */
-

-The magic number that identifies a frame packet. -


MAGIC_MCU_DEVCTRL

#define MAGIC_MCU_DEVCTRL   0x23542667  /* MCU Device Control packet             */
-

-The magic number that identifies a device control packet. -


MAGIC_BLFRAME

#define MAGIC_BLFRAME       0xDEADBEEF  /* Original BL Frame Packet              */
-

-The magic number that identifies a frame packet in the old -Blinkenlights protocol. BLib doesn't support this old version. -


MAGIC_BLFRAME_256

#define MAGIC_BLFRAME_256   0xFEEDBEEF  /* Extendend BL Frame Packet (Greyscale) */
-

-The magic number that identifies a frame packet in an extension to the -old Blinkenlights protocol. BLib doesn't support this old version. -


MAGIC_HEARTBEAT

#define MAGIC_HEARTBEAT     0x42424242  /* Heartbeat packet                      */
-

-The magic number that identifies a heartbeat package as used with -the BlinkenProxy protocol. -


MCU_LISTENER_PORT

#define MCU_LISTENER_PORT    2323
-

-The default port a matrox control unit listens too. -


MCU_ID_ANY

#define MCU_ID_ANY           -1
-

-Use this value in a setup packet to address all listening matrix -control units. -


MCU_DEVCTRL_OFF

#define MCU_DEVCTRL_OFF  0    /* switch device off */
-

-Use this value in a device control packet to switch a device off. -


MCU_DEVCTRL_ON

#define MCU_DEVCTRL_ON   1    /* switch device on  */
-

-Use this value in a device control packet to switch a device on. -


B_HEARTBEAT_PORT

#define B_HEARTBEAT_PORT       4242
-

-The default port number for BlinkenProxy heartbeat packets. -


B_HEARTBEAT_INTERVAL

#define B_HEARTBEAT_INTERVAL   5000     /* Heartbeat interval in ms    */
-

-The default timeout in milliseconds between BlinkenProxy heartbeat packets. -

See Also

-BPacket, BSender, BReceiver -

diff --git a/blib-1.1.7/docs/reference/html/blib-BTypes.html b/blib-1.1.7/docs/reference/html/blib-BTypes.html deleted file mode 100644 index 9243988..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BTypes.html +++ /dev/null @@ -1,51 +0,0 @@ -BTypes

BTypes

BTypes — Additional GTypes registered by BLib

Synopsis

-
-
-
-#define     B_TYPE_FILENAME
-#define     B_VALUE_HOLDS_FILENAME          (value)
-
-

Description

- -

Details

B_TYPE_FILENAME

#define B_TYPE_FILENAME               (b_filename_get_type ())
-

-The filename type is derived from G_TYPE_STRING and is used to -indicate that a string should be interpreted as a filename. This -macro returns the GType for this type. -


B_VALUE_HOLDS_FILENAME()

#define B_VALUE_HOLDS_FILENAME(value) (G_TYPE_CHECK_VALUE_TYPE ((value), B_TYPE_FILENAME))
-

-Return whether the given GValue can hold values of type B_TYPE_FILENAME. -

value :a GValue - - -
diff --git a/blib-1.1.7/docs/reference/html/blib-BUtils.html b/blib-1.1.7/docs/reference/html/blib-BUtils.html deleted file mode 100644 index a22b214..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BUtils.html +++ /dev/null @@ -1,189 +0,0 @@ -BUtils

BUtils

BUtils — a collection of utility functions, mainly used from parsers

Synopsis

-
-
-
-gchar*      b_filename_from_utf8            (const gchar *name,
-                                             const gchar *root,
-                                             GError **error);
-gboolean    b_parse_int                     (const gchar *str,
-                                             gint *value);
-gboolean    b_parse_boolean                 (const gchar *str,
-                                             gboolean *value);
-gboolean    b_parse_double                  (const gchar *str,
-                                             gdouble *value);
-gboolean    b_parse_coordinates             (const gchar **names,
-                                             const gchar **values,
-                                             gint *x,
-                                             gint *y);
-gboolean    b_parse_rectangle               (const gchar **names,
-                                             const gchar **values,
-                                             BRectangle *rect);
-gboolean    b_parse_color                   (const gchar **names,
-                                             const gchar **values,
-                                             BColor *color);
-gboolean    b_parse_param                   (GObject *object,
-                                             const gchar *root,
-                                             const gchar **names,
-                                             const gchar **values,
-                                             GError **error);
-gboolean    b_object_set_property           (GObject *object,
-                                             const gchar *key,
-                                             const gchar *value,
-                                             const gchar *root,
-                                             GError **error);
-void        b_rectangle_union               (const BRectangle *src1,
-                                             const BRectangle *src2,
-                                             BRectangle *dest);
-gboolean    b_rectangle_intersect           (const BRectangle *src1,
-                                             const BRectangle *src2,
-                                             BRectangle *dest);
-

Description

- -

Details

b_filename_from_utf8 ()

gchar*      b_filename_from_utf8            (const gchar *name,
-                                             const gchar *root,
-                                             GError **error);

-Convert name in UTF-8 encoding to a filename in the filesystem's -encoding. If root is non-NULL and name is not an absolute -filename, the returned filename is built using root as a prefix.

- -

name : the filename in UTF-8 encoding -
root : an optional path to use -
error : location to store the error occuring, or NULL to ignore errors -
Returns : a pointer to the newly allocated filename or NULL in -case of an error. This value must be freed with g_free(). -

b_parse_int ()

gboolean    b_parse_int                     (const gchar *str,
-                                             gint *value);

-Parse an integer value from a string.

- -

str : the string to parse -
value : location to store the integer value -
Returns : TRUE if the string could be parsed, FALSE otherwise -

b_parse_boolean ()

gboolean    b_parse_boolean                 (const gchar *str,
-                                             gboolean *value);

-Parse a boolean value from a string.

- -

str : the string to parse -
value : location to store the boolean value -
Returns : TRUE if the string could be parsed, FALSE otherwise -

b_parse_double ()

gboolean    b_parse_double                  (const gchar *str,
-                                             gdouble *value);

-Parse a double (floating-point) value from a string.

- -

str : the string to parse -
value : location to store the double value -
Returns : TRUE if the string could be parsed, FALSE otherwise -

b_parse_coordinates ()

gboolean    b_parse_coordinates             (const gchar **names,
-                                             const gchar **values,
-                                             gint *x,
-                                             gint *y);

-Parses a pair of name/value arrays looking for the names "x" and "y" -and tries to parse the associated values into integer values.

- -

names : a NULL-terminated array of names -
values : a NULL-terminated array of values -
x : location to store the value of the x coordinate -
y : location to store the value of the y coordinate -
Returns : TRUE if both coordinates could be parsed, FALSE otherwise -

b_parse_rectangle ()

gboolean    b_parse_rectangle               (const gchar **names,
-                                             const gchar **values,
-                                             BRectangle *rect);

-Parses a pair of name/value arrays looking for the names "x", "y", -"width" and "heigth" and tries to parse the associated values into -a BRectangle.

- -

names : a NULL-terminated array of names -
values : a NULL-terminated array of values -
rect : pointer to a BRectangle to store the result -
Returns : TRUE if the rectangle could be parsed, FALSE otherwise -

b_parse_color ()

gboolean    b_parse_color                   (const gchar **names,
-                                             const gchar **values,
-                                             BColor *color);

-Parses a pair of name/value arrays looking for the name "color" and -tries to convert the associated value to a BColor. The color value -is expected to be in hexadecimal notation as in HTML.

- -

names : a NULL-terminated array of names -
values : a NULL-terminated array of values -
color : pointer to a BColor to store the result -
Returns : TRUE if the color could be parsed, FALSE otherwise -

b_parse_param ()

gboolean    b_parse_param                   (GObject *object,
-                                             const gchar *root,
-                                             const gchar **names,
-                                             const gchar **values,
-                                             GError **error);

-Parses a pair of name/value arrays looking for the names "key" and -"value". The key/value pair is then used to set the respective object -property by calling b_object_set_property().

- -

object : a GObject -
root : an optional string to use as root if a filename is set -
names : a NULL-terminated array of names -
values : a NULL-terminated array of values -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE if parsing was successful, FALSE otherwise -

b_object_set_property ()

gboolean    b_object_set_property           (GObject *object,
-                                             const gchar *key,
-                                             const gchar *value,
-                                             const gchar *root,
-                                             GError **error);

-Sets the object property key by interpreting the string -value. This function takes care of converting the string to the -proper type. If the property is a B_TYPE_FILENAME the filename is -build using the root parameter.

- -

object : a GObject -
key : the name of the property -
value : the property value as a string -
root : an optional string to use as root if a filename property is set -
error : location to store the error occuring, or NULL to ignore errors -
Returns : TRUE on success, FALSE otherwise -

b_rectangle_union ()

void        b_rectangle_union               (const BRectangle *src1,
-                                             const BRectangle *src2,
-                                             BRectangle *dest);

- -

src1 : -
src2 : -
dest : - - -

b_rectangle_intersect ()

gboolean    b_rectangle_intersect           (const BRectangle *src1,
-                                             const BRectangle *src2,
-                                             BRectangle *dest);

- -

src1 : -
src2 : -
dest : -
Returns : - - -
diff --git a/blib-1.1.7/docs/reference/html/blib-BWriter.html b/blib-1.1.7/docs/reference/html/blib-BWriter.html deleted file mode 100644 index 2b2f65d..0000000 --- a/blib-1.1.7/docs/reference/html/blib-BWriter.html +++ /dev/null @@ -1,104 +0,0 @@ -BWriter

BWriter

BWriter — writes XML files

Synopsis

-
-
-
-struct      BWriter;
-BWriter*    b_writer_new                    (FILE *stream,
-                                             gint indent);
-void        b_writer_free                   (BWriter *writer);
-void        b_write_header                  (BWriter *writer,
-                                             const gchar *encoding);
-void        b_write_open_tag                (BWriter *writer,
-                                             const gchar *tag,
-                                             ...);
-void        b_write_close_tag               (BWriter *writer,
-                                             const gchar *tag);
-void        b_write_element                 (BWriter *writer,
-                                             const gchar *tag,
-                                             const gchar *value,
-                                             ...);
-

Description

- -

Details

struct BWriter

struct BWriter;

-The BWriter struct is private. -


b_writer_new ()

BWriter*    b_writer_new                    (FILE *stream,
-                                             gint indent);

-Creates a new BWriter which gives a convenient interface to write -XML data to stream. The writer should later be freed using -b_writer_free().

- -

stream : a FILE stream prepared for writing -
indent : how many characters to indent per nesting level -
Returns : a newly allocate BWriter -

b_writer_free ()

void        b_writer_free                   (BWriter *writer);

-Frees the resources allocated for writer. You must not access -writer after calling this function.

- -

writer : a BWriter -

b_write_header ()

void        b_write_header                  (BWriter *writer,
-                                             const gchar *encoding);

-Writes an XML header to the stream associated with writer.

- -

writer : a BWriter -
encoding : an optional encoding string or NULL -

b_write_open_tag ()

void        b_write_open_tag                (BWriter *writer,
-                                             const gchar *tag,
-                                             ...);

-Writes an opening XML tag with the element name tag to the stream -associated with writer. You can pass a NULL-terminated list of -key/value pairs that are written out as attributes.

- -

writer : a BWriter -
tag : the name of the element to open -
... : an optional key/value pairs interpreted as attributes -

b_write_close_tag ()

void        b_write_close_tag               (BWriter *writer,
-                                             const gchar *tag);

-Writes a closing XML tag with the element name tag to the stream -associated with writer.

- -

writer : a BWriter -
tag : the name of the element to close -

b_write_element ()

void        b_write_element                 (BWriter *writer,
-                                             const gchar *tag,
-                                             const gchar *value,
-                                             ...);

-Writes an XML element with the name tag and the value value to -the stream associated with writer. If value is NULL, an empty -element is written. You can pass a NULL-terminated list of -key/value pairs that are written out as attributes.

- -

writer : a BWriter -
tag : the element name -
value : the element value -
... : an optional key/value pairs interpreted as attributes -
diff --git a/blib-1.1.7/docs/reference/html/blib-bsocket.html b/blib-1.1.7/docs/reference/html/blib-bsocket.html deleted file mode 100644 index 6cf6248..0000000 --- a/blib-1.1.7/docs/reference/html/blib-bsocket.html +++ /dev/null @@ -1,67 +0,0 @@ -bsocket

bsocket

bsocket —

Synopsis

-
-
-
-enum        BSocketOptions;
-gboolean    b_socket_init                   (GError **error);
-gint        b_socket_udp_new                (BSocketOptions options,
-                                             GError **error);
-

Description

- -

Details

enum BSocketOptions

typedef enum
-{
-  B_SO_NONE      = 0,
-  B_SO_BROADCAST = 1 << 0,
-  B_SO_REUSEADDR = 1 << 1
-} BSocketOptions;
-

- -

B_SO_NONE no options -
B_SO_BROADCASTsend and receive broadcast packages -
B_SO_REUSEADDRallow the address and port to be reused - -

b_socket_init ()

gboolean    b_socket_init                   (GError **error);

-Initialize network sockets. This function does nothing on -UNIXes. On Win32 it initializes the Winsock DLL. You may call this -function any number of times, the initialization is only done once.

- -

error : return location for possible errors. -
Returns : TRUE on success, FALSE in case of an error -

b_socket_udp_new ()

gint        b_socket_udp_new                (BSocketOptions options,
-                                             GError **error);

-Creates an UDP socket and configures it according to options.

- -

options : BSocketOptions to set on the socket. -
error : return location for possible errors. -
Returns : a socket descriptor or -1 in case of an error -
diff --git a/blib-1.1.7/docs/reference/html/blib-modules.html b/blib-1.1.7/docs/reference/html/blib-modules.html deleted file mode 100644 index f6bcb62..0000000 --- a/blib-1.1.7/docs/reference/html/blib-modules.html +++ /dev/null @@ -1,33 +0,0 @@ -Blinkenlights Modules

Blinkenlights Modules

Table of Contents

BModule - definition of the Blinkenlights Game API
BModule Utilities - utility functions for BModule implementations
BModuleInfo - handling of loadable modules
BModule Internal API - the internal API for users of BModules

- Loadable modules that define our Game API. -

diff --git a/blib-1.1.7/docs/reference/html/blib-movies.html b/blib-1.1.7/docs/reference/html/blib-movies.html deleted file mode 100644 index b6a1b02..0000000 --- a/blib-1.1.7/docs/reference/html/blib-movies.html +++ /dev/null @@ -1,34 +0,0 @@ -Blinkenlights Movies

Blinkenlights Movies

Table of Contents

BMovie - base class for Blinkenlights movies
BMovieEffects - simple effects on a movie
BEffects - simple effects on a single movie frame
BMoviePlayer - a BModule that implements a BMovie player

- Support for loading and saving the various Blinkenlights Movie - formats. Some simple effects and a movie player module. -

diff --git a/blib-1.1.7/docs/reference/html/blib-network.html b/blib-1.1.7/docs/reference/html/blib-network.html deleted file mode 100644 index fa27990..0000000 --- a/blib-1.1.7/docs/reference/html/blib-network.html +++ /dev/null @@ -1,34 +0,0 @@ -Blinkenlights Network Protocol

Blinkenlights Network Protocol

Table of Contents

BProtocol - definiton of the Blinkenlights Network Protocol
BPacket - the UDP packet used to transport a single frame
BProxyClient -
BProxyServer -
BReceiver - receives Blinkenlights packets
BSender - sends Blinkenlights packets
bsocket -

- Support for speaking the Blinkenlights Network Protocol, a - simple UDP protocol layer. -

diff --git a/blib-1.1.7/docs/reference/html/blib-sim.html b/blib-1.1.7/docs/reference/html/blib-sim.html deleted file mode 100644 index 2051249..0000000 --- a/blib-1.1.7/docs/reference/html/blib-sim.html +++ /dev/null @@ -1,33 +0,0 @@ -Blinkenlights Simulation

Blinkenlights Simulation

Table of Contents

BTheme - theme support to visualize Blinkenlights
BViewAA -
BViewDirectFB - a DirectFB widget to display Blinkenlights
BViewPixbuf -
BViewGtk - a GTK+ widget to display Blinkenlights

- Themeable visualization of Blinkenlights Movies. -

diff --git a/blib-1.1.7/docs/reference/html/blib-utils.html b/blib-1.1.7/docs/reference/html/blib-utils.html deleted file mode 100644 index f153511..0000000 --- a/blib-1.1.7/docs/reference/html/blib-utils.html +++ /dev/null @@ -1,34 +0,0 @@ -Blinkenlights Utilities

Blinkenlights Utilities

Table of Contents

BLib - BLib library initialization
BObject - an abstract base class derived from GObject
BTypes - Additional GTypes registered by BLib
BParams - Additional Parameter types introduced by BLib
BUtils - a collection of utility functions, mainly used from parsers
BParser - an XML parser that offers a simplified SAX API
BWriter - writes XML files

- A collection of utilities that aren't that useful in itself but - are used from all over the Blinkenlights library. -

diff --git a/blib-1.1.7/docs/reference/html/blib.devhelp b/blib-1.1.7/docs/reference/html/blib.devhelp deleted file mode 100644 index 60d6362..0000000 --- a/blib-1.1.7/docs/reference/html/blib.devhelp +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/html/blib.html b/blib-1.1.7/docs/reference/html/blib.html deleted file mode 100644 index 02eafef..0000000 --- a/blib-1.1.7/docs/reference/html/blib.html +++ /dev/null @@ -1,66 +0,0 @@ -BLib Overview

BLib Overview

- BLib is a library of useful things to hack the Blinkenlights. The - software used for the original Blinkenlights installation in - Berlin didn't fit our needs when we planned the installation in - Paris, dubbed Arcade. We - decided we need something more generic and developed BLib. -

- BLib was written by Daniel Mack, Michael Natterer and Sven - Neumann with modules contributed by 1stein (BPacman, BBreakout) - and Simon Budig (BMatrix). -

- There are a couple of software packages that use BLib: -

blinkentools

- A set of command-line utilities related to Blinkenlights. - It includes b2b, a converter for Blinkenmovies that can - apply some simple effects, b2mng, which creates MNG - animations from Blinkenmovies, and bsend, which sends movies - over the net using the Blinkenlights Network Protocol. -

blinkensim

- A graphical Blinkenlights simulator that displays the UDP - packets it receives according to the Blinkenlights Network - Protocol. It supports themes and comes with DirectFB and GTK+ backends. -

blccc

- The Blinkenlights Chaos Control center is the heart of - every Blinkenlights installation. This is the master - process that controls the lights. It makes heavy use of - BLib. -

-

- BLib depends on GLib - version 2.0 (or newer). For the optional DirectFB view you need - DirectFB version - 0.9.11 (or newer) and the GTK+ view requires at least GTK+ version 2.0.3. -

- BLib is released under the GNU General Public License (GPL). -

diff --git a/blib-1.1.7/docs/reference/html/home.png b/blib-1.1.7/docs/reference/html/home.png deleted file mode 100644 index 1700361..0000000 Binary files a/blib-1.1.7/docs/reference/html/home.png and /dev/null differ diff --git a/blib-1.1.7/docs/reference/html/index.html b/blib-1.1.7/docs/reference/html/index.html deleted file mode 100644 index cb342c5..0000000 --- a/blib-1.1.7/docs/reference/html/index.html +++ /dev/null @@ -1,42 +0,0 @@ -BLib Reference Manual

Sven Neumann

- for BLib 1.1.7 - -


Warning

- This room is fullfilled mit special electronische equippment. - Fingergrabbing and pressing the cnoeppkes from the computers is - allowed for die experts only! So all the "lefthanders" stay away - and do not disturben the brainstorming von here working - intelligencies. Otherwise you will be out thrown and kicked - anderswhere! Also: please keep still and only watchen astaunished - the blinkenlights. -

diff --git a/blib-1.1.7/docs/reference/html/index.sgml b/blib-1.1.7/docs/reference/html/index.sgml deleted file mode 100644 index 5e62850..0000000 --- a/blib-1.1.7/docs/reference/html/index.sgml +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/html/left.png b/blib-1.1.7/docs/reference/html/left.png deleted file mode 100644 index 2d05b3d..0000000 Binary files a/blib-1.1.7/docs/reference/html/left.png and /dev/null differ diff --git a/blib-1.1.7/docs/reference/html/right.png b/blib-1.1.7/docs/reference/html/right.png deleted file mode 100644 index 92832e3..0000000 Binary files a/blib-1.1.7/docs/reference/html/right.png and /dev/null differ diff --git a/blib-1.1.7/docs/reference/html/up.png b/blib-1.1.7/docs/reference/html/up.png deleted file mode 100644 index 85b3e2a..0000000 Binary files a/blib-1.1.7/docs/reference/html/up.png and /dev/null differ diff --git a/blib-1.1.7/docs/reference/tmpl/beffects.sgml b/blib-1.1.7/docs/reference/tmpl/beffects.sgml deleted file mode 100644 index dfe5250..0000000 --- a/blib-1.1.7/docs/reference/tmpl/beffects.sgml +++ /dev/null @@ -1,53 +0,0 @@ - -BEffects - - -simple effects on a single movie frame - - - - - - - - - - - - - - - - - - - - - - -@B_EFFECT_SCOPE_NONE: -@B_EFFECT_SCOPE_LEFT: -@B_EFFECT_SCOPE_RIGHT: -@B_EFFECT_SCOPE_ALL: - - - - - - -@Returns: - - - - - - - -@effects: -@frame_data: -@width: -@height: -@channels: -@maxval: - - diff --git a/blib-1.1.7/docs/reference/tmpl/blib-unused.sgml b/blib-1.1.7/docs/reference/tmpl/blib-unused.sgml deleted file mode 100644 index e69de29..0000000 diff --git a/blib-1.1.7/docs/reference/tmpl/blib.sgml b/blib-1.1.7/docs/reference/tmpl/blib.sgml deleted file mode 100644 index e8e6633..0000000 --- a/blib-1.1.7/docs/reference/tmpl/blib.sgml +++ /dev/null @@ -1,23 +0,0 @@ - -BLib - - -BLib library initialization - - - - - - - - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/tmpl/bmodule-internal.sgml b/blib-1.1.7/docs/reference/tmpl/bmodule-internal.sgml deleted file mode 100644 index 1ad247d..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bmodule-internal.sgml +++ /dev/null @@ -1,103 +0,0 @@ - -BModule Internal API - - -the internal API for users of #BModules - - - - - - - - - - - - - - - - -@module_type: -@width: -@height: -@buffer: -@paint_callback: -@paint_data: -@error: -@Returns: - - - - - - - -@module: -@aspect_ratio: - - - - - - - -@module: -@error: -@Returns: - - - - - - - -@module: - - - - - - - -@module: - - - - - - - -@module: - - - - - - - -@module: -@event: - - - - - - - -@module: -@Returns: - - - - - - - -@module: -@title: -@description: -@author: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bmodule-utils.sgml b/blib-1.1.7/docs/reference/tmpl/bmodule-utils.sgml deleted file mode 100644 index dce803f..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bmodule-utils.sgml +++ /dev/null @@ -1,49 +0,0 @@ - -BModule Utilities - - -utility functions for #BModule implementations - - - - - - - - - - - - - - - - -@module: -@x: -@y: -@value: - - - - - - - -@module: -@x1: -@y1: -@x2: -@y2: -@value: - - - - - - - -@module: -@value: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bmodule.sgml b/blib-1.1.7/docs/reference/tmpl/bmodule.sgml deleted file mode 100644 index 4559da3..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bmodule.sgml +++ /dev/null @@ -1,148 +0,0 @@ - -BModule - - -definition of the Blinkenlights Game API - - - - - - - - - - - - - -The #BModule struct has a couple of fields that may be read directly -from a #BModule implementation. You must however not change any -members directly. Usually a #BModule uses the -width, height, -channels, -maxval, aspect -and num_players fields. - - -The buffer variable is the only one a -#BModule may write to. It does so when it needs to update the frame -buffer. It is however recommened to use utility functions like -b_module_fill() instead of writing into the -buffer. All other fields of #BModule are -considered private. - - - - - -The #BModuleEvent struct defines an event delivered to a #BModule. -The key field is only valid if the type -is %B_EVENT_TYPE_KEY. More field may be added when new event types -are added. - - -@device_id: the event source -@type: the type of event -@key: the key - - - -This enumeration classifies an event into a number of types. - - -@B_EVENT_TYPE_UNKNOWN: -@B_EVENT_TYPE_KEY: -@B_EVENT_TYPE_PLAYER_ENTERED: -@B_EVENT_TYPE_PLAYER_LEFT: - - - -Enumeration of the possible key values in an event of type -%B_EVENT_TYPE_KEY. - - -@B_KEY_0: -@B_KEY_1: -@B_KEY_2: -@B_KEY_3: -@B_KEY_4: -@B_KEY_5: -@B_KEY_6: -@B_KEY_7: -@B_KEY_8: -@B_KEY_9: -@B_KEY_HASH: -@B_KEY_ASTERISK: - - - -A callback that is registered when a #BModule is created using -b_module_new(). It is called from b_module_paint() and typically -causes a Blinkenlights frame packet to be emitted. You don't need -to care about this if you are implementing a #BModule. - - -@bmodule: -@buffer: -@data: -@Returns: - - - - - - - -@module: -@timeout: - - - - - - - -@module: - - - - - - - -@module: - - - - - - - -@module: - - - - - - - -@bmodule: the object which received the signal. - - - - - - -@bmodule: the object which received the signal. - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/tmpl/bmoduleinfo.sgml b/blib-1.1.7/docs/reference/tmpl/bmoduleinfo.sgml deleted file mode 100644 index df50dfd..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bmoduleinfo.sgml +++ /dev/null @@ -1,40 +0,0 @@ - -BModuleInfo - - -handling of loadable modules - - - - - - - - - - - - - -The #BModuleInfo struct is considered private. - - - - - - - - -@filename: -@Returns: - - - - - - - -@dirname: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bmovie-effects.sgml b/blib-1.1.7/docs/reference/tmpl/bmovie-effects.sgml deleted file mode 100644 index 4f1e164..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bmovie-effects.sgml +++ /dev/null @@ -1,45 +0,0 @@ - -BMovieEffects - - -simple effects on a movie - - - - - - - - - - - - - - - - -@movie: -@maxval: - - - - - - - -@movie: -@map: - - - - - - - -@movie: -@effects: -@reverse: -@speed: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bmovie.sgml b/blib-1.1.7/docs/reference/tmpl/bmovie.sgml deleted file mode 100644 index ea5a7f2..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bmovie.sgml +++ /dev/null @@ -1,157 +0,0 @@ - -BMovie - - -base class for Blinkenlights movies - - - -The #BMovie class defines a common interface to a Blinkenlights -movie. BLib comes with a couple of implementations that correspond to -the different file formats. They are referred to by their #GType: -#B_TYPE_MOVIE_BML, #B_TYPE_MOVIE_BLM and #B_TYPE_MOVIE_GIF. - - - - - - - - - -The minimum time for a frame in milliseconds. Shorter frame delays -will be set to this value. - - - - - - -The default time for a frame in milliseconds. Frames with no specified -delay will be set to this value. - - - - - - -The #BMovie struct has various members that may be read directly since -not all of them has accessor functions. You must however not change -any of the fields. - - - - - -The #BMovieFrame struct defines a single movie frame. - - -@start: the start time of the frame in milliseconds -@duration: the duration of the frame in milliseconds -@data: frame data according to the values in the #BMovie that owns this frame - - - -Type derived from #BMovie that handles movies in the Blinkenlights Markup -Language (BML). - - - - - - -Type derived from #BMovie that handles movies in old-fashioned BLM format. - - - - - - -Type derived from #BMovie that handles movies in the GIF format. - - - - - - - - - -@filename: -@lazy_load: -@error: -@Returns: - - - - - - - -@fd: -@error: -@Returns: - - - - - - - -@movie: -@error: -@Returns: - - - - - - - -@movie: - - - - - - - -@movie: -@stream: -@error: -@Returns: - - - - - - - -@movie: -@movie_type: -@stream: -@error: -@Returns: - - - - - - - -@movie: -@seed: -@time: -@Returns: - - - - - - - -@movie: -@duration: -@data: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bmovieplayer.sgml b/blib-1.1.7/docs/reference/tmpl/bmovieplayer.sgml deleted file mode 100644 index d8cc2d7..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bmovieplayer.sgml +++ /dev/null @@ -1,47 +0,0 @@ - -BMoviePlayer - - -a #BModule that implements a #BMovie player - - - - - - - - - - - - - -The #BMoviePlayer struct is considered private. - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/tmpl/bobject.sgml b/blib-1.1.7/docs/reference/tmpl/bobject.sgml deleted file mode 100644 index ddea6b1..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bobject.sgml +++ /dev/null @@ -1,70 +0,0 @@ - -BObject - - -an abstract base class derived from #GObject - - - -#BObject is directly derived from #GObject and adds name and filename - properties. - - - - - - - - - -The #BObject struct shouldn't be accessed directly. Its members are -considered private. - - - - - - - - -@object: -@filename: - - - - - - - -@object: -@name: - - - - - - - -@object: -@Returns: - - - - - - - -@object: -@Returns: - - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/tmpl/bpacket.sgml b/blib-1.1.7/docs/reference/tmpl/bpacket.sgml deleted file mode 100644 index 7976971..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bpacket.sgml +++ /dev/null @@ -1,70 +0,0 @@ - -BPacket - - -the UDP packet used to transport a single frame - - - -A #BPacket consists of a mcu_frame_header struct followed by the -actual frame data. It corresponds to a single animation frame. - - - - - - - - - -The #BPacket struct has a variable size which is determined by the -values passed to b_packet_new(). - - -@header: the Blinkenlights frame header -@data: the frame data - - - - - - - - - - - - -@width: -@height: -@channels: -@maxval: -@data_size: -@Returns: - - - - - - - -@packet: -@Returns: - - - - - - - -@packet: - - - - - - - -@packet: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bparams.sgml b/blib-1.1.7/docs/reference/tmpl/bparams.sgml deleted file mode 100644 index 87ab474..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bparams.sgml +++ /dev/null @@ -1,36 +0,0 @@ - -BParams - - -Additional Parameter types introduced by BLib - - - - - - - - - - - - - -The #GType of the param spec for a %B_TYPE_FILENAME property. - - - - - - - - - -@name: -@nick: -@blurb: -@default_value: -@flags: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bparser.sgml b/blib-1.1.7/docs/reference/tmpl/bparser.sgml deleted file mode 100644 index 7538119..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bparser.sgml +++ /dev/null @@ -1,138 +0,0 @@ - -BParser - - -an XML parser that offers a simplified SAX API - - - - - - - - -#GMarkupParser - - - - -The #BParser struct is private. - - - - - -An enumeration used to indicate the state of a #BParser. Users of -#BParser will want to add their own states; they may use any values -equal or greater than %B_PARSER_STATE_USER. - - -@B_PARSER_STATE_UNKNOWN: -@B_PARSER_STATE_TOPLEVEL: -@B_PARSER_STATE_USER: - - - -The function that is called when the parser hits the start of an -element. Return %B_PARSER_STATE_UNKNOWN from this function to indicate -an error which should cause the parser to abort. - - -@state: the current state of the parser -@element_name: the name of the element -@attribute_names: a %NULL-terminated list of attribute names -@attribute_values: a %NULL-terminated list of attribute values -@user_data: the data that was passed to b_parser_new() -@error: the error pointer that was passed to b_parser_new() -@Returns: the new state of the parser - - - - -The function that is called when the parser hits the end of an -element. Return %B_PARSER_STATE_UNKNOWN from this function to -indicate an error which should cause the parser to abort. - - -@state: the current state of the parser -@element_name: the name of the element -@cdata: pointer to character data that occured between the opening -and closing tags -@cdata_len: the length of @cdata in bytes -@user_data: the data that was passed to b_parser_new() -@error: the error pointer that was passed to b_parser_new() -@Returns: the new state of the parser - - - - - - - -@start_element: -@end_element: -@user_data: -@Returns: - - - - - - - -@parser: - - - - - - - -@parser: -@text: -@text_len: -@error: -@Returns: - - - - - - - -@parser: -@error: -@Returns: - - - - - - - -@parser: -@io: -@recode: -@error: -@Returns: - - - - - - - -@parser: -@Returns: - - - - - - - -@text: -@text_len: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bprotocol.sgml b/blib-1.1.7/docs/reference/tmpl/bprotocol.sgml deleted file mode 100644 index aafe230..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bprotocol.sgml +++ /dev/null @@ -1,113 +0,0 @@ - -BProtocol - - -definiton of the Blinkenlights Network Protocol - - - -The bprotocol.h header file defines the Blinkenlights Network -Protocol. It contains structure definitions for the different network -packets as well as defines for magic numbers. - - - -This header file doesn't use any GLib types to make it possible to -include it from applications that can not or don't want to use BLib. -As a user of BLib you don't need to care about the details of the -protocol described here. Use the #BSender and #BReceiver instead. - - - - -#BPacket, #BSender, #BReceiver - - - - -The magic number that identifies a setup packet. - - - - - - -The magic number that identifies a frame packet. - - - - - - -The magic number that identifies a device control packet. - - - - - - -The magic number that identifies a frame packet in the old -Blinkenlights protocol. BLib doesn't support this old version. - - - - - - -The magic number that identifies a frame packet in an extension to the -old Blinkenlights protocol. BLib doesn't support this old version. - - - - - - -The magic number that identifies a heartbeat package as used with -the BlinkenProxy protocol. - - - - - - -The default port a matrox control unit listens too. - - - - - - -Use this value in a setup packet to address all listening matrix -control units. - - - - - - -Use this value in a device control packet to switch a device off. - - - - - - -Use this value in a device control packet to switch a device on. - - - - - - -The default port number for BlinkenProxy heartbeat packets. - - - - - - -The default timeout in milliseconds between BlinkenProxy heartbeat packets. - - - - diff --git a/blib-1.1.7/docs/reference/tmpl/bproxyclient.sgml b/blib-1.1.7/docs/reference/tmpl/bproxyclient.sgml deleted file mode 100644 index b628767..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bproxyclient.sgml +++ /dev/null @@ -1,45 +0,0 @@ - -BProxyClient - - - - - - - - - - - - - - - - - - - - - - - - - -@proxy_host: -@proxy_port: -@listen_port: -@callback: -@callback_data: -@error: -@Returns: - - - - - - - -@client: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bproxyserver.sgml b/blib-1.1.7/docs/reference/tmpl/bproxyserver.sgml deleted file mode 100644 index dbc8d56..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bproxyserver.sgml +++ /dev/null @@ -1,69 +0,0 @@ - -BProxyServer - - - - - - - - - - - - - - - - - - - - - - - - - -@port: -@error: -@Returns: - - - - - - - -@server: -@packet: -@Returns: - - - - - - - -@server: -@Returns: - - - - - - - -@bproxyserver: the object which received the signal. -@arg1: -@arg2: - - - - - - -@bproxyserver: the object which received the signal. -@arg1: -@arg2: - diff --git a/blib-1.1.7/docs/reference/tmpl/breceiver.sgml b/blib-1.1.7/docs/reference/tmpl/breceiver.sgml deleted file mode 100644 index da24af9..0000000 --- a/blib-1.1.7/docs/reference/tmpl/breceiver.sgml +++ /dev/null @@ -1,83 +0,0 @@ - -BReceiver - - -receives Blinkenlights packets - - - -The #BReceiver object listens for Blinkenlights UDP packets. For each -frame that matches the receiver configuration, a user-defined callback -is called with the received packet. - - - - -#BSender, #BPacket - - - - -The #BReceiver struct is considered private. - - - - - -The function that gets called to dispatch incoming packets. - - -@receiver: the #BReceiver object that received the packet -@packet: the received #BPacket converted to host byteorder -@callback_data: the data that was passed to b_receiver_new() -@Returns: %TRUE if you want to be called again - - - - - - - -@callback: -@callback_data: -@Returns: - - - - - - - -@receiver: -@port: -@Returns: - - - - - - - -@receiver: -@fd: -@Returns: - - - - - - - -@receiver: - - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/tmpl/bsender.sgml b/blib-1.1.7/docs/reference/tmpl/bsender.sgml deleted file mode 100644 index 99e0844..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bsender.sgml +++ /dev/null @@ -1,115 +0,0 @@ - -BSender - - -sends Blinkenlights packets - - - -The #BSender object sends Blinkenlights UDP packets to a number of -recipients. Recipients can be added and removed at run-time. - - - - -#BReceiver, #BPacket - - - - -The #BSender struct is considered private. - - - - - - - - -@Returns: - - - - - - - -@sender: -@src_port: -@dest_host: -@dest_port: -@error: -@Returns: - -@host: -@port: - - - - - - - -@sender: -@dest_host: -@dest_port: -@error: -@Returns: - -@host: -@port: - - - - - - - -@sender: -@Returns: - - - - - - - -@sender: -@width: -@height: -@channels: -@maxval: -@Returns: - - - - - - - -@sender: -@data: -@Returns: - - - - - - - -@sender: -@Returns: - -@port: -@data: - - - - - - - -@sender: -@verbose: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bsocket.sgml b/blib-1.1.7/docs/reference/tmpl/bsocket.sgml deleted file mode 100644 index 2b25b5d..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bsocket.sgml +++ /dev/null @@ -1,44 +0,0 @@ - -bsocket - - - - - - - - - - - - - - - - - - - -@B_SO_NONE: no options -@B_SO_BROADCAST: send and receive broadcast packages -@B_SO_REUSEADDR: allow the address and port to be reused - - - - - - -@error: -@Returns: - - - - - - - -@options: -@error: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/btheme.sgml b/blib-1.1.7/docs/reference/tmpl/btheme.sgml deleted file mode 100644 index 6927c7f..0000000 --- a/blib-1.1.7/docs/reference/tmpl/btheme.sgml +++ /dev/null @@ -1,213 +0,0 @@ - -BTheme - - -theme support to visualize Blinkenlights - - - -A #BTheme object defines the dimensions, features and the look of a -Blinkenlights installation. It allows to implement a graphical -simulation. BLib comes with two widgets, #BViewGtk and #BViewDirectFB -that hide the ugly details of #BTheme. - - - - -BViewDirectFB, BViewGtk - - - - -The #BColor struct is used to store a single color. The color channels -have values in the range from 0 to 255. - - -@a: alpha channel value (opacity) -@r: red channel value -@g: green channel value -@b: blue channel value - - - -The #BRectangle struct is used to store a rectangle. The coordinates -are pixel values. The x coordinate advances from left to right, the -y coordinate from top to bottom. - - -@x: horizontal offset from origin -@y: vertical offset from origin -@w: width -@h: height - - - -The #BWindow struct defines a single overlay window used in a #BTheme. - - -@value: the value this window definition applies to -@row: the row index -@column: the column index -@src_x: x coordinate in the upper left corner in the source image -@src_y: y coordinate of the upper left corner in the source image -@rect: the destination rectangle - - - -A special value used to indicate that the window definition is valid -for all possible values. - - - - - - -The #BOverlay struct defines a set of overlay windows used in a #BTheme. - - -@image: an optional image to blend over the background -@color: the color is only used when no @image is specified -@windows: a #GList of #BWindow structs - - - -The #BTheme object defines the dimensions and the look of a -Blinkenlights installation. - - - - - - - - -@filename: -@lazy_load: -@error: -@Returns: - - - - - - - -@title: -@type: -@rows: -@columns: -@channels: -@maxval: -@width: -@height: -@Returns: - - - - - - - -@theme: -@error: -@Returns: - - - - - - - -@theme: - - - - -A structure that defines a query on the installed themes. Used by -b_themes_query(). - - -@flags: -@name: -@type: -@rows: -@columns: -@width: -@height: - - - -Flags that define which values of a BThemesQuery are valid. - - -@B_THEMES_QUERY_NONE: -@B_THEMES_QUERY_NAME: -@B_THEMES_QUERY_TYPE: -@B_THEMES_QUERY_ROWS: -@B_THEMES_QUERY_COLUMNS: -@B_THEMES_QUERY_WIDTH: -@B_THEMES_QUERY_HEIGHT: - - - - - - -@themepath: -@query: -@Returns: - - - - -This function is called for each theme found by b_themes_foreach(). - - -@theme: -@callback_data: -@Returns: - - - - - - - -@themepath: -@callback: -@callback_data: - - - - - - - -@themepath: -@callback: -@callback_data: - - - - - - - -@name: -@themepath: -@error: -@Returns: - - - - - - - -@theme: -@prev_data: -@frame_data: -@bbox: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/btypes.sgml b/blib-1.1.7/docs/reference/tmpl/btypes.sgml deleted file mode 100644 index c55ac11..0000000 --- a/blib-1.1.7/docs/reference/tmpl/btypes.sgml +++ /dev/null @@ -1,33 +0,0 @@ - -BTypes - - -Additional GTypes registered by BLib - - - - - - - - - - - - - -The filename type is derived from %G_TYPE_STRING and is used to -indicate that a string should be interpreted as a filename. This -macro returns the #GType for this type. - - - - - - -Return whether the given #GValue can hold values of type %B_TYPE_FILENAME. - - -@value: a #GValue - - diff --git a/blib-1.1.7/docs/reference/tmpl/butils.sgml b/blib-1.1.7/docs/reference/tmpl/butils.sgml deleted file mode 100644 index 0d3de8c..0000000 --- a/blib-1.1.7/docs/reference/tmpl/butils.sgml +++ /dev/null @@ -1,138 +0,0 @@ - -BUtils - - -a collection of utility functions, mainly used from parsers - - - - - - - - - - - - - - - - -@name: -@root: -@error: -@Returns: - - - - - - - -@str: -@value: -@Returns: - - - - - - - -@str: -@value: -@Returns: - - - - - - - -@str: -@value: -@Returns: - - - - - - - -@names: -@values: -@x: -@y: -@Returns: - - - - - - - -@names: -@values: -@rect: -@Returns: - - - - - - - -@names: -@values: -@color: -@Returns: - - - - - - - -@object: -@root: -@names: -@values: -@error: -@Returns: - - - - - - - -@object: -@key: -@value: -@root: -@error: -@Returns: - - - - - - - -@src1: -@src2: -@dest: - - - - - - - -@src1: -@src2: -@dest: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bview-aa.sgml b/blib-1.1.7/docs/reference/tmpl/bview-aa.sgml deleted file mode 100644 index 73fec13..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bview-aa.sgml +++ /dev/null @@ -1,44 +0,0 @@ - -BViewAA - - - - - - - - - - - - - - - - - - - - - - - - - -@aac: -@rows: -@columns: -@channels: -@error: -@Returns: - - - - - - - -@view: -@frame_data: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bview-directfb.sgml b/blib-1.1.7/docs/reference/tmpl/bview-directfb.sgml deleted file mode 100644 index 954c21a..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bview-directfb.sgml +++ /dev/null @@ -1,44 +0,0 @@ - -BViewDirectFB - - -a DirectFB widget to display Blinkenlights - - - - - - - - -BViewGtk - - - - -The #BViewDirectFB struct shouldn't be accessed directly. Its members -are considered private. - - - - - - - - -@theme: -@dfb: -@dest: -@error: -@Returns: - - - - - - - -@view: -@frame_data: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bview-gtk.sgml b/blib-1.1.7/docs/reference/tmpl/bview-gtk.sgml deleted file mode 100644 index cc311ff..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bview-gtk.sgml +++ /dev/null @@ -1,42 +0,0 @@ - -BViewGtk - - -a GTK+ widget to display Blinkenlights - - - - - - - - -BViewDirectFB - - - - -The #BViewGtk struct shouldn't be accessed directly. Its members are -considered private. - - - - - - - - -@theme: -@error: -@Returns: - - - - - - - -@view: -@frame_data: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bview-pixbuf.sgml b/blib-1.1.7/docs/reference/tmpl/bview-pixbuf.sgml deleted file mode 100644 index 96fc49b..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bview-pixbuf.sgml +++ /dev/null @@ -1,72 +0,0 @@ - -BViewPixbuf - - - - - - - - - - - - - - - - - - - - - - - - - -@rows: -@columns: -@channels: -@error: -@Returns: - -@theme: - - - - - - - -@theme: -@image_preload: -@error: -@Returns: - -@preload: - - - - - - - -@view: -@filename: -@error: -@Returns: - - - - - - - -@view: -@frame_data: -@clip: -@error: -@Returns: - - diff --git a/blib-1.1.7/docs/reference/tmpl/bwriter.sgml b/blib-1.1.7/docs/reference/tmpl/bwriter.sgml deleted file mode 100644 index 8bb60ce..0000000 --- a/blib-1.1.7/docs/reference/tmpl/bwriter.sgml +++ /dev/null @@ -1,79 +0,0 @@ - -BWriter - - -writes XML files - - - - - - - - - - - - - -The #BWriter struct is private. - - - - - - - - -@stream: -@indent: -@Returns: - - - - - - - -@writer: - - - - - - - -@writer: -@encoding: - - - - - - - -@writer: -@tag: -@Varargs: - - - - - - - -@writer: -@tag: - - - - - - - -@writer: -@tag: -@value: -@Varargs: - - diff --git a/blib-1.1.7/docs/reference/version.in b/blib-1.1.7/docs/reference/version.in deleted file mode 100644 index 3b063b3..0000000 --- a/blib-1.1.7/docs/reference/version.in +++ /dev/null @@ -1 +0,0 @@ -@BLIB_VERSION@ diff --git a/blib-1.1.7/docs/reference/xml/beffects.xml b/blib-1.1.7/docs/reference/xml/beffects.xml deleted file mode 100644 index 0a7fe99..0000000 --- a/blib-1.1.7/docs/reference/xml/beffects.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - -BEffects -3 -BLIB Library - - - -BEffectssimple effects on a single movie frame - - -Synopsis - - - - - -struct BEffects; -enum BEffectScope; -BEffects* b_effects_new (void); -void b_effects_apply (BEffects *effects, - guchar *frame_data, - gint width, - gint height, - gint channels, - gint maxval); - - - - - -Object Hierarchy - - - GObject - +----BEffects - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BEffects-struct"/>struct BEffects -struct BEffects; - - - - -<anchor id="BEffectScope"/>enum BEffectScope -typedef enum -{ - B_EFFECT_SCOPE_NONE = 0, - B_EFFECT_SCOPE_LEFT = 1 << 0, - B_EFFECT_SCOPE_RIGHT = 1 << 1, - B_EFFECT_SCOPE_ALL = B_EFFECT_SCOPE_LEFT | B_EFFECT_SCOPE_RIGHT -} BEffectScope; - - - - - -<anchor id="b-effects-new"/>b_effects_new () -BEffects* b_effects_new (void); - -Creates a new BEffects object with default values. - - - -Returns : the newly allocate BEffects object. - - - -<anchor id="b-effects-apply"/>b_effects_apply () -void b_effects_apply (BEffects *effects, - guchar *frame_data, - gint width, - gint height, - gint channels, - gint maxval); - -This function applies the effects described in the effects object -to a single frame. - - - -effects : - a BEffects object - -frame_data : - data to apply the effects on - -width : - width of the frame_data buffer - -height : - height of the frame_data buffer - -channels : - number of channels in the frame_data buffer - -maxval : - the maximum value for the frame_data buffer - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/blib.xml b/blib-1.1.7/docs/reference/xml/blib.xml deleted file mode 100644 index 2c032e1..0000000 --- a/blib-1.1.7/docs/reference/xml/blib.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - -BLib -3 -BLIB Library - - - -BLibBLib library initialization - - -Synopsis - - - - - -void b_init (void); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="b-init"/>b_init () -void b_init (void); - -This function initializes the BLib library. It calls g_type_init() -for you, initializes the random number generator and registers some -transform functions needed for the deserialization routines. - - -It is safe to call this function multiple times but you should at -least call it once before you use any other BLib functions. - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bmodule-internal.xml b/blib-1.1.7/docs/reference/xml/bmodule-internal.xml deleted file mode 100644 index 18d9f6a..0000000 --- a/blib-1.1.7/docs/reference/xml/bmodule-internal.xml +++ /dev/null @@ -1,258 +0,0 @@ - - - - - -BModule Internal API -3 -BLIB Library - - - -BModule Internal APIthe internal API for users of BModules - - -Synopsis - - - - - -BModule* b_module_new (GType module_type, - gint width, - gint height, - guchar *buffer, - BModulePaintCallback paint_callback, - gpointer paint_data, - GError **error); -void b_module_set_aspect (BModule *module, - gdouble aspect_ratio); -gboolean b_module_prepare (BModule *module, - GError **error); -void b_module_relax (BModule *module); -void b_module_start (BModule *module); -void b_module_stop (BModule *module); -void b_module_event (BModule *module, - BModuleEvent *event); -gint b_module_tick (BModule *module); -void b_module_describe (BModule *module, - gchar **title, - gchar **description, - gchar **author); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="b-module-new"/>b_module_new () -BModule* b_module_new (GType module_type, - gint width, - gint height, - guchar *buffer, - BModulePaintCallback paint_callback, - gpointer paint_data, - GError **error); - -This function tries to create the class for the module_type and -queries it with the given width and height. Only if the class can -handle the requested size, a BModule instance is created and -initialized with the given values. - - - -module_type : - the type of module to create - -width : - width of the frame buffer - -height : - height of the frame buffer - -buffer : - pointer to a preallocated buffer or NULL - -paint_callback : - the function to call in b_module_paint() - -paint_data : - data to pass to the paint_callback - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : the newly allocate BModule object - - - -<anchor id="b-module-set-aspect"/>b_module_set_aspect () -void b_module_set_aspect (BModule *module, - gdouble aspect_ratio); - -Sets the pixel (or window) aspect ratio for the module. Most -modules ignore this value but some may adapt their output to take -the shape of pixels into account. - - - -module : - a BModule object - -aspect_ratio : - the new pixel aspect ratio (x / y) - - - -<anchor id="b-module-prepare"/>b_module_prepare () -gboolean b_module_prepare (BModule *module, - GError **error); - -This function first queries the module once more to check that it -can handle the current settings. If the query succeeds, the prepare() -method of the module is called. The module should then prepare -itself and will be able to start as soon as b_module_start() is called. - - - -module : - a BModule object - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE is the module has successfully prepared itself, -FALSE otherwise - - - -<anchor id="b-module-relax"/>b_module_relax () -void b_module_relax (BModule *module); - -Calls the relax() method of the module causing it to release -resources allocated in b_module_prepare(). - - - -module : - a BModule object - - - -<anchor id="b-module-start"/>b_module_start () -void b_module_start (BModule *module); - -Emits the start signal for module. If module has a lifetime set, -a timer is installed that stops the module when the lifetime expires. - - -You need to prepare module by calling b_module_prepare() before it -can be started. - - - -module : - a BModule object - - - -<anchor id="b-module-stop"/>b_module_stop () -void b_module_stop (BModule *module); - -Emits the stop signal for module. You may only call this function -for a BModule that is currently running. - - - -module : - a BModule object - - - -<anchor id="b-module-event"/>b_module_event () -void b_module_event (BModule *module, - BModuleEvent *event); - -Dispatches an event to module by calling its event() method with -event. This function has no effect if the module is not currently -running. - - - -module : - a BModule object - -event : - pointer to a BModuleEvent - - - -<anchor id="b-module-tick"/>b_module_tick () -gint b_module_tick (BModule *module); - -Calls the tick() method of module. You may only call this function -for a BModule that is currently running. - - - -module : - a BModule object - -Returns : the number of milliseconds until tick() should be -called again or -1 to indicate that no further ticks are requested - - - -<anchor id="b-module-describe"/>b_module_describe () -void b_module_describe (BModule *module, - gchar **title, - gchar **description, - gchar **author); - -This function queries module for a title, description and the name -of the author. It does so by calling the modules describe() method. -You may pass NULL as return location if you are not interested in -a particular information. The title is guaranteed to be available, -description and author may be NULL if the module doesn't provide -this information. - - -You must free all returned strings using g_free() if you don't need -them any longer. - - - -module : - a BModule object - -title : - return location for the module title or NULL - -description : - return location for the module description or NULL - -author : - return location for the name of the module author or NULL - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bmodule-utils.xml b/blib-1.1.7/docs/reference/xml/bmodule-utils.xml deleted file mode 100644 index 273a885..0000000 --- a/blib-1.1.7/docs/reference/xml/bmodule-utils.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -BModule Utilities -3 -BLIB Library - - - -BModule Utilitiesutility functions for BModule implementations - - -Synopsis - - - - - -void b_module_draw_point (BModule *module, - gint x, - gint y, - guchar value); -void b_module_draw_line (BModule *module, - gint x1, - gint y1, - gint x2, - gint y2, - guchar value); -void b_module_fill (BModule *module, - guchar value); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="b-module-draw-point"/>b_module_draw_point () -void b_module_draw_point (BModule *module, - gint x, - gint y, - guchar value); - -Draws a point to the module's frame buffer. It is safe to specify -coordinates outside the buffer. - - - -module : - a BModule object - -x : - x coordinate - -y : - y coordinate - -value : - the color to draw with - - - -<anchor id="b-module-draw-line"/>b_module_draw_line () -void b_module_draw_line (BModule *module, - gint x1, - gint y1, - gint x2, - gint y2, - guchar value); - -Draws a one-pixel wide line between two points to the module's -frame buffer. The endpoints are included in the line. If the line -exceeds the buffer, it is properly clipped. - - - -module : - a BModule object - -x1 : - x coordinate of the start point - -y1 : - y coordinate of the start point - -x2 : - x coordinate of the end point - -y2 : - y coordinate of the end point - -value : - the color to draw with - - - -<anchor id="b-module-fill"/>b_module_fill () -void b_module_fill (BModule *module, - guchar value); - -Fills the module's framebuffer with value. - - - -module : - a BModule object - -value : - the color to draw with - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bmodule.xml b/blib-1.1.7/docs/reference/xml/bmodule.xml deleted file mode 100644 index 0697adb..0000000 --- a/blib-1.1.7/docs/reference/xml/bmodule.xml +++ /dev/null @@ -1,310 +0,0 @@ - - - - - -BModule -3 -BLIB Library - - - -BModuledefinition of the Blinkenlights Game API - - -Synopsis - - - - - -struct BModule; -struct BModuleEvent; -enum BModuleEventType; -enum BModuleKey; -gboolean (*BModulePaintCallback) (BModule *bmodule, - guchar *buffer, - gpointer data); -void b_module_ticker_start (BModule *module, - gint timeout); -void b_module_ticker_stop (BModule *module); -void b_module_request_stop (BModule *module); -void b_module_paint (BModule *module); - - - - - -Object Hierarchy - - - GObject - +----BModule - - - - - - - -Properties - - - "lifetime" gint : Write / Construct - "speed" gdouble : Write / Construct - - - - -Signal Prototypes - - -"start" void user_function (BModule *bmodule, - gpointer user_data); -"stop" void user_function (BModule *bmodule, - gpointer user_data); - - - - - -Description - - - - - - -Details - -<anchor id="BModule-struct"/>struct BModule -struct BModule; - -The BModule struct has a couple of fields that may be read directly -from a BModule implementation. You must however not change any -members directly. Usually a BModule uses the -width, height, -channels, -maxval, aspect -and num_players fields. - - -The buffer variable is the only one a -BModule may write to. It does so when it needs to update the frame -buffer. It is however recommened to use utility functions like -b_module_fill() instead of writing into the -buffer. All other fields of BModule are -considered private. - - -<anchor id="BModuleEvent"/>struct BModuleEvent -struct BModuleEvent { - - gint device_id; - BModuleEventType type; - BModuleKey key; -}; - - -The BModuleEvent struct defines an event delivered to a BModule. -The key field is only valid if the type -is B_EVENT_TYPE_KEY. More field may be added when new event types -are added. - - -gint device_id -the event source - - - -BModuleEventType type -the type of event - - - -BModuleKey key -the key - - - - - -<anchor id="BModuleEventType"/>enum BModuleEventType -typedef enum -{ - B_EVENT_TYPE_UNKNOWN = 0, - B_EVENT_TYPE_KEY, - B_EVENT_TYPE_PLAYER_ENTERED, - B_EVENT_TYPE_PLAYER_LEFT -} BModuleEventType; - - -This enumeration classifies an event into a number of types. - - -<anchor id="BModuleKey"/>enum BModuleKey -typedef enum -{ - B_KEY_0, - B_KEY_1, - B_KEY_2, - B_KEY_3, - B_KEY_4, - B_KEY_5, - B_KEY_6, - B_KEY_7, - B_KEY_8, - B_KEY_9, - B_KEY_HASH, - B_KEY_ASTERISK -} BModuleKey; - - -Enumeration of the possible key values in an event of type -B_EVENT_TYPE_KEY. - - -<anchor id="BModulePaintCallback"/>BModulePaintCallback () -gboolean (*BModulePaintCallback) (BModule *bmodule, - guchar *buffer, - gpointer data); - -A callback that is registered when a BModule is created using -b_module_new(). It is called from b_module_paint() and typically -causes a Blinkenlights frame packet to be emitted. You don't need -to care about this if you are implementing a BModule. - -bmodule : - - -buffer : - - -data : - - -Returns : - - - - - -<anchor id="b-module-ticker-start"/>b_module_ticker_start () -void b_module_ticker_start (BModule *module, - gint timeout); - -Starts a timeout for module that will call cause its tick() method -to be called in timeout milliseconds. The return value of the -tick() method is then used to install a new timeout for module. -This proceeds until the tick() method returns -1, -b_module_ticker_stop() is called or the module is stopped. - - -You may only call this function for a BModule that is currently -running. - - - -module : - a BModule object - -timeout : - the timeout interval in milliseconds - - - -<anchor id="b-module-ticker-stop"/>b_module_ticker_stop () -void b_module_ticker_stop (BModule *module); - -Stops the ticker for module. If there is a pending timeout for -module, it is removed. - - -You may only call this function for a BModule that is currently -running. - - - -module : - a BModule object - - - -<anchor id="b-module-request-stop"/>b_module_request_stop () -void b_module_request_stop (BModule *module); - -This function causes the module to be stopped. This is for example -used when a game module decides that the game is over. - - -You may only call this function for a BModule that is currently -running. - - - -module : - a BModule object - - - -<anchor id="b-module-paint"/>b_module_paint () -void b_module_paint (BModule *module); - -This function causes a repaint of the screen. - - - -module : - a BModule object - - - - - -Properties - -"lifetime" (gint : Write / Construct) - -Maximum time a module is allowed to run (in milliseconds). - -"speed" (gdouble : Write / Construct) - -Allows to tune the playback speed. - - - - - - -Signals -<anchor id="BModule-start"/>The "start" signal -void user_function (BModule *bmodule, - gpointer user_data); - - - -bmodule : -the object which received the signal. - - -user_data : -user data set when the signal handler was connected. -<anchor id="BModule-stop"/>The "stop" signal -void user_function (BModule *bmodule, - gpointer user_data); - - - -bmodule : -the object which received the signal. - - -user_data : -user data set when the signal handler was connected. - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bmoduleinfo.xml b/blib-1.1.7/docs/reference/xml/bmoduleinfo.xml deleted file mode 100644 index 24bb592..0000000 --- a/blib-1.1.7/docs/reference/xml/bmoduleinfo.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - -BModuleInfo -3 -BLIB Library - - - -BModuleInfohandling of loadable modules - - -Synopsis - - - - - -struct BModuleInfo; -BModuleInfo* b_module_info_new (const gchar *filename); -gint b_module_infos_scan_dir (const gchar *dirname); - - - - - -Object Hierarchy - - - GObject - +----GTypeModule - +----BModuleInfo - - - - - -Implemented Interfaces - -BModuleInfo implements GTypePlugin. - - - - - - - - -Description - - - - - - -Details - -<anchor id="BModuleInfo-struct"/>struct BModuleInfo -struct BModuleInfo; - -The BModuleInfo struct is considered private. - - -<anchor id="b-module-info-new"/>b_module_info_new () -BModuleInfo* b_module_info_new (const gchar *filename); - -Creates a new BModuleInfo object a loadable module. - - - -filename : - the filename of the loadable module - -Returns : a newly allocated BModuleInfo object - - - -<anchor id="b-module-infos-scan-dir"/>b_module_infos_scan_dir () -gint b_module_infos_scan_dir (const gchar *dirname); - -Scans the given directory for loadable modules and registers the -types implemented by the found modules. - - - -dirname : - the name of the directory to scan or NULL to use the -default directory - -Returns : the number of successfully registered modules - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bmovie-effects.xml b/blib-1.1.7/docs/reference/xml/bmovie-effects.xml deleted file mode 100644 index c863c38..0000000 --- a/blib-1.1.7/docs/reference/xml/bmovie-effects.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - -BMovieEffects -3 -BLIB Library - - - -BMovieEffectssimple effects on a movie - - -Synopsis - - - - - -void b_movie_normalize (BMovie *movie, - gint maxval); -void b_movie_apply_colormap (BMovie *movie, - guchar *map); -void b_movie_apply_effects (BMovie *movie, - BEffects *effects, - gboolean reverse, - gdouble speed); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="b-movie-normalize"/>b_movie_normalize () -void b_movie_normalize (BMovie *movie, - gint maxval); - -Changes the maximum value for movie, that is the value that will -cause the lamp to glow with full intensity. This function iterates -over all frames of the movie and changes the frame data accordingly. - - - -movie : - a BMovie object - -maxval : - the new maximum value to apply to movie - - - -<anchor id="b-movie-apply-colormap"/>b_movie_apply_colormap () -void b_movie_apply_colormap (BMovie *movie, - guchar *map); - -Applies a mapping defined by map to all frames of the movie. The -mapping must not exceed the movie's maxval. - - - -movie : - a BMovie object - -map : - a LUT that remaps each color value - - - -<anchor id="b-movie-apply-effects"/>b_movie_apply_effects () -void b_movie_apply_effects (BMovie *movie, - BEffects *effects, - gboolean reverse, - gdouble speed); - -If effects is non-NULL, the effects described by it are applied -to movie. If reverse is TRUE, the order of frames is reversed. -If speed is different from 1.0, the frame timing is adjusted; for -example a value of 2.0 makes the movie play with double speed. - - - -movie : - a BMovie object - -effects : - a BEffects object or NULL - -reverse : - whether to reverse the order of frames in movie - -speed : - an adjustment factor to be applied on the frame timing - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bmovie.xml b/blib-1.1.7/docs/reference/xml/bmovie.xml deleted file mode 100644 index 40da2db..0000000 --- a/blib-1.1.7/docs/reference/xml/bmovie.xml +++ /dev/null @@ -1,348 +0,0 @@ - - - - - -BMovie -3 -BLIB Library - - - -BMoviebase class for Blinkenlights movies - - -Synopsis - - - - - -#define B_MOVIE_MIN_DELAY -#define B_MOVIE_DEFAULT_DELAY -struct BMovie; -struct BMovieFrame; -#define B_TYPE_MOVIE_BML -#define B_TYPE_MOVIE_BLM -#define B_TYPE_MOVIE_GIF -BMovie* b_movie_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error); -BMovie* b_movie_new_from_fd (gint fd, - GError **error); -gboolean b_movie_load (BMovie *movie, - GError **error); -void b_movie_unload (BMovie *movie); -gboolean b_movie_save (BMovie *movie, - FILE *stream, - GError **error); -gboolean b_movie_save_as (BMovie *movie, - GType movie_type, - FILE *stream, - GError **error); -GList* b_movie_get_frame_at_time (BMovie *movie, - GList *seed, - gint time); -void b_movie_prepend_frame (BMovie *movie, - gint duration, - const guchar *data); - - - - - -Object Hierarchy - - - GObject - +----BObject - +----BMovie - - - - - - - - - - -Description - -The BMovie class defines a common interface to a Blinkenlights -movie. BLib comes with a couple of implementations that correspond to -the different file formats. They are referred to by their GType: -B_TYPE_MOVIE_BML, B_TYPE_MOVIE_BLM and B_TYPE_MOVIE_GIF. - - - - -Details - -<anchor id="B-MOVIE-MIN-DELAY-CAPS"/>B_MOVIE_MIN_DELAY -#define B_MOVIE_MIN_DELAY 20 - - -The minimum time for a frame in milliseconds. Shorter frame delays -will be set to this value. - - -<anchor id="B-MOVIE-DEFAULT-DELAY-CAPS"/>B_MOVIE_DEFAULT_DELAY -#define B_MOVIE_DEFAULT_DELAY 100 - - -The default time for a frame in milliseconds. Frames with no specified -delay will be set to this value. - - -<anchor id="BMovie-struct"/>struct BMovie -struct BMovie; - -The BMovie struct has various members that may be read directly since -not all of them has accessor functions. You must however not change -any of the fields. - - -<anchor id="BMovieFrame"/>struct BMovieFrame -struct BMovieFrame { - - gint start; - gint duration; - guchar *data; -}; - - -The BMovieFrame struct defines a single movie frame. - - -gint start -the start time of the frame in milliseconds - - - -gint duration -the duration of the frame in milliseconds - - - -guchar *data -frame data according to the values in the BMovie that owns this frame - - - - - -<anchor id="B-TYPE-MOVIE-BML-CAPS"/>B_TYPE_MOVIE_BML -#define B_TYPE_MOVIE_BML (b_movie_bml_get_type ()) - - -Type derived from BMovie that handles movies in the Blinkenlights Markup -Language (BML). - - -<anchor id="B-TYPE-MOVIE-BLM-CAPS"/>B_TYPE_MOVIE_BLM -#define B_TYPE_MOVIE_BLM (b_movie_blm_get_type ()) - - -Type derived from BMovie that handles movies in old-fashioned BLM format. - - -<anchor id="B-TYPE-MOVIE-GIF-CAPS"/>B_TYPE_MOVIE_GIF -#define B_TYPE_MOVIE_GIF (b_movie_gif_get_type ()) - - -Type derived from BMovie that handles movies in the GIF format. - - -<anchor id="b-movie-new-from-file"/>b_movie_new_from_file () -BMovie* b_movie_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error); - -Tries to load a BMovie from the file pointed to by filename. If -lazy_load is TRUE, only the header is loaded and no frames are stored. - - - -filename : - the name of the file to load - -lazy_load : - whether to do lazy-loading, i.e. only load the header - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a newly allocated BMovie object or NULL if the load -failed - - - -<anchor id="b-movie-new-from-fd"/>b_movie_new_from_fd () -BMovie* b_movie_new_from_fd (gint fd, - GError **error); - -Tries to load a BMovie from the UNIX file descriptor fd. Lazy -loading from file descriptors is not implemented since it doesn't -seem to make much sense. - - - -fd : - a UNIX file descriptor - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a newly allocated BMovie object or NULL if the load -failed - - - -<anchor id="b-movie-load"/>b_movie_load () -gboolean b_movie_load (BMovie *movie, - GError **error); - -Assures that the frames of the movie are loaded. - - - -movie : - a BMovie object - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE if the movie was loaded successfully. - - - -<anchor id="b-movie-unload"/>b_movie_unload () -void b_movie_unload (BMovie *movie); - -Unloads the frames of a movie. - - -The movie object counts how many times you call b_movie_load() and -b_movie_unload() and only really unloads the frames if -b_movie_unload() was called as often as b_movie_load(). Note that -b_movie_new_from_file() and b_movie_new_from_fd() call -b_movie_load() unless lazy-loading was requested. - - - -movie : - a BMovie object - - - -<anchor id="b-movie-save"/>b_movie_save () -gboolean b_movie_save (BMovie *movie, - FILE *stream, - GError **error); - -Saves a BMovie object to a stream. - - - -movie : - a BMovie object - -stream : - a FILE stream ready for writing - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE on success or FALSE otherwise - - - -<anchor id="b-movie-save-as"/>b_movie_save_as () -gboolean b_movie_save_as (BMovie *movie, - GType movie_type, - FILE *stream, - GError **error); - -Saves a BMovie object to a stream and allows to specify the file -format to use. - - -The format is specified by passing a type derived from -B_TYPE_MOVIE as movie_type. At the moment B_TYPE_MOVIE_BML, -B_TYPE_MOVIE_BLM and B_TYPE_MOVIE_GIF are supported types. - - - -movie : - a BMovie object - -movie_type : - the movie type to use for saving - -stream : - a FILE stream ready for writing - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE on success or FALSE otherwise - - - -<anchor id="b-movie-get-frame-at-time"/>b_movie_get_frame_at_time () -GList* b_movie_get_frame_at_time (BMovie *movie, - GList *seed, - gint time); - -Looks for the frame active after time milliseconds. - - -If you are calling this function subsequentially with increasing -time values, you can speed up the search by passing the last return -value as the seed parameter. - - - -movie : - a loaded BMovie object - -seed : - an optional GList pointer that can speed up the search - -time : - the time in milliseconds - -Returns : a GList pointer that has the frame as data or NULL -if the time was out of the movie's range. - - - -<anchor id="b-movie-prepend-frame"/>b_movie_prepend_frame () -void b_movie_prepend_frame (BMovie *movie, - gint duration, - const guchar *data); - -This is an internal function used by the movie loaders. It should -never be called from anywhere else. - - - -movie : - - -duration : - - -data : - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bmovieplayer.xml b/blib-1.1.7/docs/reference/xml/bmovieplayer.xml deleted file mode 100644 index 13400c8..0000000 --- a/blib-1.1.7/docs/reference/xml/bmovieplayer.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -BMoviePlayer -3 -BLIB Library - - - -BMoviePlayera BModule that implements a BMovie player - - -Synopsis - - - - - -struct BMoviePlayer; - - - - - -Object Hierarchy - - - GObject - +----BModule - +----BMoviePlayer - - - - - - - -Properties - - - "clear" gboolean : Write / Construct - "h-align" gdouble : Write / Construct - "movie" BFilename : Write / Construct - "reverse" gboolean : Write / Construct - "v-align" gdouble : Write / Construct - - - - - - -Description - - - - - - -Details - -<anchor id="BMoviePlayer-struct"/>struct BMoviePlayer -struct BMoviePlayer; - -The BMoviePlayer struct is considered private. - - - - -Properties - -"clear" (gboolean : Write / Construct) - -Clear the screen before starting. - -"h-align" (gdouble : Write / Construct) - -Horizontal alignment on the screen. - -"movie" (BFilename : Write / Construct) - -The filename of the movie to play. - -"reverse" (gboolean : Write / Construct) - -Allows to play the movie backwards. - -"v-align" (gdouble : Write / Construct) - -Vertical alignment on the screen. - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bobject.xml b/blib-1.1.7/docs/reference/xml/bobject.xml deleted file mode 100644 index ed5a194..0000000 --- a/blib-1.1.7/docs/reference/xml/bobject.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -BObject -3 -BLIB Library - - - -BObjectan abstract base class derived from GObject - - -Synopsis - - - - - -struct BObject; -void b_object_set_filename (BObject *object, - const gchar *filename); -void b_object_set_name (BObject *object, - const gchar *name); -const gchar* b_object_get_filename (BObject *object); -const gchar* b_object_get_name (BObject *object); - - - - - -Object Hierarchy - - - GObject - +----BObject - - - - - - - -Properties - - - "filename" gchararray : Read / Write - "name" gchararray : Read / Write - - - - - - -Description - -BObject is directly derived from GObject and adds name and filename - properties. - - - - -Details - -<anchor id="BObject-struct"/>struct BObject -struct BObject; - -The BObject struct shouldn't be accessed directly. Its members are -considered private. - - -<anchor id="b-object-set-filename"/>b_object_set_filename () -void b_object_set_filename (BObject *object, - const gchar *filename); - -Sets the filename associated with object. - - - -object : - a BObject. - -filename : - the new filename, a nul-terminated string in the filesystem's -encoding. - - - -<anchor id="b-object-set-name"/>b_object_set_name () -void b_object_set_name (BObject *object, - const gchar *name); - -Sets the name associated with object. - - - -object : - a BObject. - -name : - the new name, a nul-terminated string in UTF-8 encoding. - - - -<anchor id="b-object-get-filename"/>b_object_get_filename () -const gchar* b_object_get_filename (BObject *object); - -This functions retrieves the filename associated with object. The -returned value must not be freed. - - - -object : - a BObject. - -Returns : the fileanme or NULL if no filename was set for object. - - - -<anchor id="b-object-get-name"/>b_object_get_name () -const gchar* b_object_get_name (BObject *object); - -This functions retrieves the name associated with object. If no -name has been set for object, the name is generated from the -object's filename. The returned value must not be freed. - - - -object : - a BObject. - -Returns : the name or NULL if no name and no filename was set -for object. - - - - - -Properties - -"filename" (gchararray : Read / Write) - -The filename associated with the object. This is a string in the filesystems's encoding. - -"name" (gchararray : Read / Write) - -The name associated with the object. This is a string in UTF-8 encoding. - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bpacket.xml b/blib-1.1.7/docs/reference/xml/bpacket.xml deleted file mode 100644 index 64f8598..0000000 --- a/blib-1.1.7/docs/reference/xml/bpacket.xml +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -BPacket -3 -BLIB Library - - - -BPacketthe UDP packet used to transport a single frame - - -Synopsis - - - - - -struct BPacket; -union BPacketHeader; -BPacket* b_packet_new (gint width, - gint height, - gint channels, - gint maxval, - gint *data_size); -gsize b_packet_size (BPacket *packet); -void b_packet_hton (BPacket *packet); -void b_packet_ntoh (BPacket *packet); - - - - - - - - - - -Description - -A BPacket consists of a mcu_frame_header struct followed by the -actual frame data. It corresponds to a single animation frame. - - - - -Details - -<anchor id="BPacket"/>struct BPacket -struct BPacket { - - BPacketHeader header; - guchar data[0]; -}; - - -The BPacket struct has a variable size which is determined by the -values passed to b_packet_new(). - - -BPacketHeader header -the Blinkenlights frame header - - - -guchar data[0] -the frame data - - - - - -<anchor id="BPacketHeader"/>union BPacketHeader -union BPacketHeader -{ - mcu_frame_header_t mcu_frame_h; - heartbeat_header_t heartbeat_h; -}; - - - - - -<anchor id="b-packet-new"/>b_packet_new () -BPacket* b_packet_new (gint width, - gint height, - gint channels, - gint maxval, - gint *data_size); - -Allocates a new BPacket structure and initializes it with the -given values. If data_size is non-NULL the size of the data area -(in bytes) is returned via this variable. - - -The packet should be freed with g_free() when it is not needed any -longer. - - - -width : - the number of pixels per row - -height : - the number of pixels per column - -channels : - the number of channels per pixels - -maxval : - the maximum value - -data_size : - returns the size of the packet data - -Returns : a newly allocated BPacket. - - - -<anchor id="b-packet-size"/>b_packet_size () -gsize b_packet_size (BPacket *packet); - - - -packet : - - -Returns : - - - - - -<anchor id="b-packet-hton"/>b_packet_hton () -void b_packet_hton (BPacket *packet); - -Converts all members of packet from host to network byteorder. - - - -packet : - pointer to a BPacket - - - -<anchor id="b-packet-ntoh"/>b_packet_ntoh () -void b_packet_ntoh (BPacket *packet); - -Converts all members of packet from network to host byteorder. - - - -packet : - pointer to a BPacket - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bparams.xml b/blib-1.1.7/docs/reference/xml/bparams.xml deleted file mode 100644 index 0786107..0000000 --- a/blib-1.1.7/docs/reference/xml/bparams.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -BParams -3 -BLIB Library - - - -BParamsAdditional Parameter types introduced by BLib - - -Synopsis - - - - - -#define B_TYPE_PARAM_FILENAME -GParamSpec* b_param_spec_filename (const gchar *name, - const gchar *nick, - const gchar *blurb, - gchar *default_value, - GParamFlags flags); - - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="B-TYPE-PARAM-FILENAME-CAPS"/>B_TYPE_PARAM_FILENAME -#define B_TYPE_PARAM_FILENAME (b_param_filename_get_type ()) - - -The GType of the param spec for a B_TYPE_FILENAME property. - - -<anchor id="b-param-spec-filename"/>b_param_spec_filename () -GParamSpec* b_param_spec_filename (const gchar *name, - const gchar *nick, - const gchar *blurb, - gchar *default_value, - GParamFlags flags); - -Creates a new GParamSpec for a B_TYPE_FILENAME property. - - - -name : - the property name - -nick : - an optional short version of the name - -blurb : - an optional description - -default_value : - the default value (may be NULL) - -flags : - the GParamFlags for this param_spec - -Returns : the newly allocate GParamSpec. - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bparser.xml b/blib-1.1.7/docs/reference/xml/bparser.xml deleted file mode 100644 index f49b984..0000000 --- a/blib-1.1.7/docs/reference/xml/bparser.xml +++ /dev/null @@ -1,321 +0,0 @@ - - - - - -BParser -3 -BLIB Library - - - -BParseran XML parser that offers a simplified SAX API - - -Synopsis - - - - - -struct BParser; -enum BParserState; -BParserState (*BParserStartFunc) (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); -BParserState (*BParserEndFunc) (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); -BParser* b_parser_new (BParserStartFunc start_element, - BParserEndFunc end_element, - gpointer user_data); -void b_parser_free (BParser *parser); -gboolean b_parser_parse (BParser *parser, - const gchar *text, - gssize text_len, - GError **error); -gboolean b_parser_end_parse (BParser *parser, - GError **error); -gboolean b_parser_parse_io_channel (BParser *parser, - GIOChannel *io, - gboolean recode, - GError **error); -BParserState b_parser_get_state (BParser *parser); -gchar* b_parse_encoding (const gchar *text, - gint text_len); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BParser"/>struct BParser -struct BParser; - -The BParser struct is private. - - -<anchor id="BParserState"/>enum BParserState -typedef enum -{ - B_PARSER_STATE_UNKNOWN, - B_PARSER_STATE_TOPLEVEL, - B_PARSER_STATE_USER = 0x10 /* first user state, use as many as you need */ -} BParserState; - - -An enumeration used to indicate the state of a BParser. Users of -BParser will want to add their own states; they may use any values -equal or greater than B_PARSER_STATE_USER. - - -<anchor id="BParserStartFunc"/>BParserStartFunc () -BParserState (*BParserStartFunc) (BParserState state, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error); - -The function that is called when the parser hits the start of an -element. Return B_PARSER_STATE_UNKNOWN from this function to indicate -an error which should cause the parser to abort. - -state : -the current state of the parser - -element_name : -the name of the element - -attribute_names : -a NULL-terminated list of attribute names - -attribute_values : -a NULL-terminated list of attribute values - -user_data : -the data that was passed to b_parser_new() - -error : -the error pointer that was passed to b_parser_new() - -Returns :the new state of the parser - - - - - -<anchor id="BParserEndFunc"/>BParserEndFunc () -BParserState (*BParserEndFunc) (BParserState state, - const gchar *element_name, - const gchar *cdata, - gsize cdata_len, - gpointer user_data, - GError **error); - -The function that is called when the parser hits the end of an -element. Return B_PARSER_STATE_UNKNOWN from this function to -indicate an error which should cause the parser to abort. - -state : -the current state of the parser - -element_name : -the name of the element - -cdata : -pointer to character data that occured between the opening -and closing tags - -cdata_len : -the length of cdata in bytes - -user_data : -the data that was passed to b_parser_new() - -error : -the error pointer that was passed to b_parser_new() - -Returns :the new state of the parser - - - - - -<anchor id="b-parser-new"/>b_parser_new () -BParser* b_parser_new (BParserStartFunc start_element, - BParserEndFunc end_element, - gpointer user_data); - -Creates a new BParser suited to parse XML files. The BParser -should later be freed using b_parser_free(). - - - -start_element : - the function to call when an element is started - -end_element : - the function to call when an element is closed - -user_data : - data to pass to the functions above - -Returns : a newly allocated BParser - - - -<anchor id="b-parser-free"/>b_parser_free () -void b_parser_free (BParser *parser); - -Frees the resources allocated for parser. You must not access -parser after calling this function. - - - -parser : - a BParser - - - -<anchor id="b-parser-parse"/>b_parser_parse () -gboolean b_parser_parse (BParser *parser, - const gchar *text, - gssize text_len, - GError **error); - -Let the parser process a chunk of text. You need to call -b_parser_end_parse() after you passed the last chunk to the parser. - - - -parser : - a BParser - -text : - pointer to a text buffer to parse - -text_len : - the number of bytes to parse from text - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE if parsing was successful, FALSE if an error occured - - - -<anchor id="b-parser-end-parse"/>b_parser_end_parse () -gboolean b_parser_end_parse (BParser *parser, - GError **error); - -Finishes the parser. After calling this function, you must not -call b_parser_parse() on the parser again. - - - -parser : - a BParser - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE if parser was successfully finished, FALSE -otherwise - - - -<anchor id="b-parser-parse-io-channel"/>b_parser_parse_io_channel () -gboolean b_parser_parse_io_channel (BParser *parser, - GIOChannel *io, - gboolean recode, - GError **error); - -Reads data from the GIOChannel io and passes it to parser. If -recode is TRUE, the data should start with an XML header so this -function can determine the encoding of the XML data and convert it -to UTF-8 for you. - - - -parser : - a BParser - -io : - a GIOChannel to read the text to parse from - -recode : - TRUE if you want the parser to do automatic encoding conversion - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE if parsing was successful, FALSE otherwise - - - -<anchor id="b-parser-get-state"/>b_parser_get_state () -BParserState b_parser_get_state (BParser *parser); - -Retrieves the current state of parser. - - - -parser : - a BParser - -Returns : the state of parser - - - -<anchor id="b-parse-encoding"/>b_parse_encoding () -gchar* b_parse_encoding (const gchar *text, - gint text_len); - -Scans the text for an XML header with encoding specification. - - - -text : - a string to parse, must be at least 20 bytes - -text_len : - the maximum number of bytes to parse from text - -Returns : a copy of the encoding string or NULL if none was -found - - - - - - - - -See Also - -GMarkupParser - - - - diff --git a/blib-1.1.7/docs/reference/xml/bprotocol.xml b/blib-1.1.7/docs/reference/xml/bprotocol.xml deleted file mode 100644 index d68993a..0000000 --- a/blib-1.1.7/docs/reference/xml/bprotocol.xml +++ /dev/null @@ -1,161 +0,0 @@ - - - - - -BProtocol -3 -BLIB Library - - - -BProtocoldefiniton of the Blinkenlights Network Protocol - - -Synopsis - - - - - -#define MAGIC_MCU_SETUP -#define MAGIC_MCU_FRAME -#define MAGIC_MCU_DEVCTRL -#define MAGIC_BLFRAME -#define MAGIC_BLFRAME_256 -#define MAGIC_HEARTBEAT -#define MCU_LISTENER_PORT -#define MCU_ID_ANY -#define MCU_DEVCTRL_OFF -#define MCU_DEVCTRL_ON -#define B_HEARTBEAT_PORT -#define B_HEARTBEAT_INTERVAL - - - - - - - - - - -Description - -The bprotocol.h header file defines the Blinkenlights Network -Protocol. It contains structure definitions for the different network -packets as well as defines for magic numbers. - - - -This header file doesn't use any GLib types to make it possible to -include it from applications that can not or don't want to use BLib. -As a user of BLib you don't need to care about the details of the -protocol described here. Use the BSender and BReceiver instead. - - - - -Details - -<anchor id="MAGIC-MCU-SETUP-CAPS"/>MAGIC_MCU_SETUP -#define MAGIC_MCU_SETUP 0x2342FEED /* MCU Configuration packet */ - - -The magic number that identifies a setup packet. - - -<anchor id="MAGIC-MCU-FRAME-CAPS"/>MAGIC_MCU_FRAME -#define MAGIC_MCU_FRAME 0x23542666 /* MCU Frame packet */ - - -The magic number that identifies a frame packet. - - -<anchor id="MAGIC-MCU-DEVCTRL-CAPS"/>MAGIC_MCU_DEVCTRL -#define MAGIC_MCU_DEVCTRL 0x23542667 /* MCU Device Control packet */ - - -The magic number that identifies a device control packet. - - -<anchor id="MAGIC-BLFRAME-CAPS"/>MAGIC_BLFRAME -#define MAGIC_BLFRAME 0xDEADBEEF /* Original BL Frame Packet */ - - -The magic number that identifies a frame packet in the old -Blinkenlights protocol. BLib doesn't support this old version. - - -<anchor id="MAGIC-BLFRAME-256-CAPS"/>MAGIC_BLFRAME_256 -#define MAGIC_BLFRAME_256 0xFEEDBEEF /* Extendend BL Frame Packet (Greyscale) */ - - -The magic number that identifies a frame packet in an extension to the -old Blinkenlights protocol. BLib doesn't support this old version. - - -<anchor id="MAGIC-HEARTBEAT-CAPS"/>MAGIC_HEARTBEAT -#define MAGIC_HEARTBEAT 0x42424242 /* Heartbeat packet */ - - -The magic number that identifies a heartbeat package as used with -the BlinkenProxy protocol. - - -<anchor id="MCU-LISTENER-PORT-CAPS"/>MCU_LISTENER_PORT -#define MCU_LISTENER_PORT 2323 - - -The default port a matrox control unit listens too. - - -<anchor id="MCU-ID-ANY-CAPS"/>MCU_ID_ANY -#define MCU_ID_ANY -1 - - -Use this value in a setup packet to address all listening matrix -control units. - - -<anchor id="MCU-DEVCTRL-OFF-CAPS"/>MCU_DEVCTRL_OFF -#define MCU_DEVCTRL_OFF 0 /* switch device off */ - - -Use this value in a device control packet to switch a device off. - - -<anchor id="MCU-DEVCTRL-ON-CAPS"/>MCU_DEVCTRL_ON -#define MCU_DEVCTRL_ON 1 /* switch device on */ - - -Use this value in a device control packet to switch a device on. - - -<anchor id="B-HEARTBEAT-PORT-CAPS"/>B_HEARTBEAT_PORT -#define B_HEARTBEAT_PORT 4242 - - -The default port number for BlinkenProxy heartbeat packets. - - -<anchor id="B-HEARTBEAT-INTERVAL-CAPS"/>B_HEARTBEAT_INTERVAL -#define B_HEARTBEAT_INTERVAL 5000 /* Heartbeat interval in ms */ - - -The default timeout in milliseconds between BlinkenProxy heartbeat packets. - - - - - - - -See Also - -BPacket, BSender, BReceiver - - - - diff --git a/blib-1.1.7/docs/reference/xml/bproxyclient.xml b/blib-1.1.7/docs/reference/xml/bproxyclient.xml deleted file mode 100644 index 7ab3749..0000000 --- a/blib-1.1.7/docs/reference/xml/bproxyclient.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - -BProxyClient -3 -BLIB Library - - - -BProxyClient - - -Synopsis - - - - - -struct BProxyClient; -BProxyClient* b_proxy_client_new (const gchar *proxy_host, - gint proxy_port, - gint listen_port, - BReceiverCallback callback, - gpointer callback_data, - GError **error); -gboolean b_proxy_client_send_heartbeat (BProxyClient *client); - - - - - -Object Hierarchy - - - GObject - +----BReceiver - +----BProxyClient - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BProxyClient-struct"/>struct BProxyClient -struct BProxyClient; - - - - -<anchor id="b-proxy-client-new"/>b_proxy_client_new () -BProxyClient* b_proxy_client_new (const gchar *proxy_host, - gint proxy_port, - gint listen_port, - BReceiverCallback callback, - gpointer callback_data, - GError **error); - -Creates a new BProxyClient object, ready to use. - - - -proxy_host : - the blinkenproxy host - -proxy_port : - the blinkenproxy port - -listen_port : - the local port to listen to for Blinkenlights packages - or -1 to bind to an arbitrary free local port - -callback : - the function to call when a new frame arrives - -callback_data : - data to pass to the callback - -error : - return location for a possible error - -Returns : a newly allocate BProxyClient object - - - -<anchor id="b-proxy-client-send-heartbeat"/>b_proxy_client_send_heartbeat () -gboolean b_proxy_client_send_heartbeat (BProxyClient *client); - -Make the client send a heartbeat packet. This function should -be called periodically with the suggested interval of -B_HEARTBEAT_INTERVAL. To achieve, use this function with -g_timeout_add(). - - - -client : - a BProxyClient - -Returns : always TRUE - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bproxyserver.xml b/blib-1.1.7/docs/reference/xml/bproxyserver.xml deleted file mode 100644 index fe5f7fb..0000000 --- a/blib-1.1.7/docs/reference/xml/bproxyserver.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - -BProxyServer -3 -BLIB Library - - - -BProxyServer - - -Synopsis - - - - - -struct BProxyServer; -BProxyServer* b_proxy_server_new (gint port, - GError **error); -gboolean b_proxy_server_send_packet (BProxyServer *server, - BPacket *packet); -gint b_proxy_server_num_clients (BProxyServer *server); - - - - - -Object Hierarchy - - - GObject - +----BReceiver - +----BProxyServer - - - - - - - - -Signal Prototypes - - -"client-added" - void user_function (BProxyServer *bproxyserver, - gchar *arg1, - gint arg2, - gpointer user_data); -"client-removed" - void user_function (BProxyServer *bproxyserver, - gchar *arg1, - gint arg2, - gpointer user_data); - - - - - -Description - - - - - - -Details - -<anchor id="BProxyServer-struct"/>struct BProxyServer -struct BProxyServer; - - - - -<anchor id="b-proxy-server-new"/>b_proxy_server_new () -BProxyServer* b_proxy_server_new (gint port, - GError **error); - -Creates a new BProxyServer object, ready to use. - - - -port : - the local port to listen to for heartbeat packages - -error : - return location for a possible error - -Returns : a newly allocate BProxyServer object - - - -<anchor id="b-proxy-server-send-packet"/>b_proxy_server_send_packet () -gboolean b_proxy_server_send_packet (BProxyServer *server, - BPacket *packet); - - - -server : - - -packet : - - -Returns : - - - - - -<anchor id="b-proxy-server-num-clients"/>b_proxy_server_num_clients () -gint b_proxy_server_num_clients (BProxyServer *server); - - - -server : - - -Returns : - - - - - - - - -Signals -<anchor id="BProxyServer-client-added"/>The "client-added" signal -void user_function (BProxyServer *bproxyserver, - gchar *arg1, - gint arg2, - gpointer user_data); - - - -bproxyserver : -the object which received the signal. - -arg1 : - - -arg2 : - - - -user_data : -user data set when the signal handler was connected. -<anchor id="BProxyServer-client-removed"/>The "client-removed" signal -void user_function (BProxyServer *bproxyserver, - gchar *arg1, - gint arg2, - gpointer user_data); - - - -bproxyserver : -the object which received the signal. - -arg1 : - - -arg2 : - - - -user_data : -user data set when the signal handler was connected. - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/breceiver.xml b/blib-1.1.7/docs/reference/xml/breceiver.xml deleted file mode 100644 index d6c8ecb..0000000 --- a/blib-1.1.7/docs/reference/xml/breceiver.xml +++ /dev/null @@ -1,195 +0,0 @@ - - - - - -BReceiver -3 -BLIB Library - - - -BReceiverreceives Blinkenlights packets - - -Synopsis - - - - - -struct BReceiver; -gboolean (*BReceiverCallback) (BReceiver *receiver, - BPacket *packet, - gpointer callback_data); -BReceiver* b_receiver_new (BReceiverCallback callback, - gpointer callback_data); -gboolean b_receiver_listen (BReceiver *receiver, - gint port); -gboolean b_receiver_listen_fd (BReceiver *receiver, - gint fd); -void b_receiver_stop (BReceiver *receiver); - - - - - -Object Hierarchy - - - GObject - +----BReceiver - - - - - - - -Properties - - - "callback" gpointer : Write / Construct Only - "callback-data" gpointer : Write / Construct Only - - - - - - -Description - -The BReceiver object listens for Blinkenlights UDP packets. For each -frame that matches the receiver configuration, a user-defined callback -is called with the received packet. - - - - -Details - -<anchor id="BReceiver-struct"/>struct BReceiver -struct BReceiver; - -The BReceiver struct is considered private. - - -<anchor id="BReceiverCallback"/>BReceiverCallback () -gboolean (*BReceiverCallback) (BReceiver *receiver, - BPacket *packet, - gpointer callback_data); - -The function that gets called to dispatch incoming packets. - -receiver : -the BReceiver object that received the packet - -packet : -the received BPacket converted to host byteorder - -callback_data : -the data that was passed to b_receiver_new() - -Returns :TRUE if you want to be called again - - - - - -<anchor id="b-receiver-new"/>b_receiver_new () -BReceiver* b_receiver_new (BReceiverCallback callback, - gpointer callback_data); - -Creates a new BReceiver object. - - - -callback : - the function to call when a new frame arrives - -callback_data : - data to pass to the callback - -Returns : a newly allocate BReceiver object - - - -<anchor id="b-receiver-listen"/>b_receiver_listen () -gboolean b_receiver_listen (BReceiver *receiver, - gint port); - -Causes the receiver to start to listen to the specified UDP -port. For each successfully received Blinkenlights packet, the -packet will be converted to host byteorder and the callback that -was specified on b_receiver_new() will be called. - - - -receiver : - a BReceiver object - -port : - the UDP port to listen to - -Returns : TRUE if the receiver listens to port, FALSE otherwise - - - -<anchor id="b-receiver-listen-fd"/>b_receiver_listen_fd () -gboolean b_receiver_listen_fd (BReceiver *receiver, - gint fd); - -Causes the receiver to start to listen to the given file descriptor. -This function is rarely useful, it is used internally by BProxyClient. - - - -receiver : - a BReceiver object - -fd : - a file descriptor - -Returns : TRUE on success - - - -<anchor id="b-receiver-stop"/>b_receiver_stop () -void b_receiver_stop (BReceiver *receiver); - -Makes the receiver stop listening. - - - -receiver : - a BReceiver object - - - - - -Properties - -"callback" (gpointer : Write / Construct Only) - - - -"callback-data" (gpointer : Write / Construct Only) - - - - - - - - - - -See Also - -BSender, BPacket - - - - diff --git a/blib-1.1.7/docs/reference/xml/bsender.xml b/blib-1.1.7/docs/reference/xml/bsender.xml deleted file mode 100644 index ba4961f..0000000 --- a/blib-1.1.7/docs/reference/xml/bsender.xml +++ /dev/null @@ -1,263 +0,0 @@ - - - - - -BSender -3 -BLIB Library - - - -BSendersends Blinkenlights packets - - -Synopsis - - - - - -struct BSender; -BSender* b_sender_new (void); -gboolean b_sender_add_recipient (BSender *sender, - gint src_port, - const gchar *dest_host, - gint dest_port, - GError **error); -gboolean b_sender_remove_recipient (BSender *sender, - const gchar *dest_host, - gint dest_port, - GError **error); -GList* b_sender_list_recipients (BSender *sender); -gboolean b_sender_configure (BSender *sender, - gint width, - gint height, - gint channels, - gint maxval); -gboolean b_sender_send_frame (BSender *sender, - const guchar *data); -gboolean b_sender_send_heartbeat (BSender *sender); -void b_sender_set_verbose (BSender *sender, - gboolean verbose); - - - - - -Object Hierarchy - - - GObject - +----BSender - - - - - - - - - - -Description - -The BSender object sends Blinkenlights UDP packets to a number of -recipients. Recipients can be added and removed at run-time. - - - - -Details - -<anchor id="BSender-struct"/>struct BSender -struct BSender; - -The BSender struct is considered private. - - -<anchor id="b-sender-new"/>b_sender_new () -BSender* b_sender_new (void); - -Creates a new BSender object. - - - -Returns : a newly allocated BSender object - - - -<anchor id="b-sender-add-recipient"/>b_sender_add_recipient () -gboolean b_sender_add_recipient (BSender *sender, - gint src_port, - const gchar *dest_host, - gint dest_port, - GError **error); - -Tries to resolve host and adds it to the sender's list of recipients. - - - -sender : - a BSender object - -src_port : - originating UDP port (-1 to leave unspecified) - -dest_host : - destination hostname or IP address - -dest_port : - destination UDP port - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE if the recipient was successfully added, FALSE -otherwise - - - -<anchor id="b-sender-remove-recipient"/>b_sender_remove_recipient () -gboolean b_sender_remove_recipient (BSender *sender, - const gchar *dest_host, - gint dest_port, - GError **error); - -Removes all recipients with matching host and port from the -sender's list of recipients. - - - -sender : - a BSender object - -dest_host : - destination hostname or IP address - -dest_port : - destination UDP port - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE if at least one matching recipient was found -and removed, FALSE otherwise - - - -<anchor id="b-sender-list-recipients"/>b_sender_list_recipients () -GList* b_sender_list_recipients (BSender *sender); - -Creates a list of strings that describe the senders -recipients. You should free the strings as well as the list when -it is no longer needed. - - - -sender : - a BSender object - -Returns : a newly allocated GList of newly allocated strings - - - -<anchor id="b-sender-configure"/>b_sender_configure () -gboolean b_sender_configure (BSender *sender, - gint width, - gint height, - gint channels, - gint maxval); - -Prepares sender to send Blinkenlights UDP packets with the given -parameters. - - - -sender : - a BSender object - -width : - number of pixels per row - -height : - number of pixels per column - -channels : - number of channels per pixel - -maxval : - the maximum value - -Returns : TRUE if sender was successfully reconfigured, -FALSE otherwise - - - -<anchor id="b-sender-send-frame"/>b_sender_send_frame () -gboolean b_sender_send_frame (BSender *sender, - const guchar *data); - -Sends Blinkenlights packets to all recipients registered with -sender. The data should match the values of the last call to -b_sender_configure() for sender. - - - -sender : - a Bsender object - -data : - the frame data to send - -Returns : FALSE in case of a fatal error, TRUE otherwise - - - -<anchor id="b-sender-send-heartbeat"/>b_sender_send_heartbeat () -gboolean b_sender_send_heartbeat (BSender *sender); -b_sender_send_heartbeat is deprecated and should not be used in newly-written code. - -This function is deprecated and might be removed in the future. -If you need the heartbeat functionality, use BProxyClient instead. - - - -sender : - a Bsender object - -Returns : TRUE always - - - -<anchor id="b-sender-set-verbose"/>b_sender_set_verbose () -void b_sender_set_verbose (BSender *sender, - gboolean verbose); - -In earlier BLib versions BSender used to print a message to stderr -when send() failed. This message is now suppressed by default, but -you can get the old behaviour back using this function. - - - -sender : - a Bsender object - -verbose : - whether the sender should do verbose error reporting or not - - - - - - - - -See Also - -BReceiver, BPacket - - - - diff --git a/blib-1.1.7/docs/reference/xml/bsocket.xml b/blib-1.1.7/docs/reference/xml/bsocket.xml deleted file mode 100644 index 6b41a40..0000000 --- a/blib-1.1.7/docs/reference/xml/bsocket.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - -bsocket -3 -BLIB Library - - - -bsocket - - -Synopsis - - - - - -enum BSocketOptions; -gboolean b_socket_init (GError **error); -gint b_socket_udp_new (BSocketOptions options, - GError **error); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BSocketOptions"/>enum BSocketOptions -typedef enum -{ - B_SO_NONE = 0, - B_SO_BROADCAST = 1 << 0, - B_SO_REUSEADDR = 1 << 1 -} BSocketOptions; - - - - - -B_SO_NONE - no options - - - -B_SO_BROADCAST -send and receive broadcast packages - - - -B_SO_REUSEADDR -allow the address and port to be reused - - - - - -<anchor id="b-socket-init"/>b_socket_init () -gboolean b_socket_init (GError **error); - -Initialize network sockets. This function does nothing on -UNIXes. On Win32 it initializes the Winsock DLL. You may call this -function any number of times, the initialization is only done once. - - - -error : - return location for possible errors. - -Returns : TRUE on success, FALSE in case of an error - - - -<anchor id="b-socket-udp-new"/>b_socket_udp_new () -gint b_socket_udp_new (BSocketOptions options, - GError **error); - -Creates an UDP socket and configures it according to options. - - - -options : - BSocketOptions to set on the socket. - -error : - return location for possible errors. - -Returns : a socket descriptor or -1 in case of an error - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/btheme.xml b/blib-1.1.7/docs/reference/xml/btheme.xml deleted file mode 100644 index 2e6cb19..0000000 --- a/blib-1.1.7/docs/reference/xml/btheme.xml +++ /dev/null @@ -1,546 +0,0 @@ - - - - - -BTheme -3 -BLIB Library - - - -BThemetheme support to visualize Blinkenlights - - -Synopsis - - - - - -struct BColor; -struct BRectangle; -struct BWindow; -#define B_WINDOW_VALUE_ALL -struct BOverlay; -struct BTheme; -BTheme* b_theme_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error); -BTheme* b_theme_new_from_scratch (const gchar *title, - const gchar *type, - gint rows, - gint columns, - gint channels, - gint maxval, - gint width, - gint height); -gboolean b_theme_load (BTheme *theme, - GError **error); -void b_theme_unload (BTheme *theme); -struct BThemesQuery; -enum BThemesQueryFlags; -GList* b_themes_query (const gchar *themepath, - BThemesQuery *query); -gboolean (*BThemesForeachFunc) (BTheme *theme, - gpointer callback_data); -void b_themes_foreach (const gchar *themepath, - BThemesForeachFunc callback, - gpointer callback_data); -void b_themes_foreach_theme (const gchar *themepath, - GHFunc callback, - gpointer callback_data); -BTheme* b_themes_lookup_theme (const gchar *name, - const gchar *themepath, - GError **error); -gboolean b_theme_frame_diff_boundary (BTheme *theme, - const guchar *prev_data, - const guchar *frame_data, - BRectangle *bbox); - - - - - -Object Hierarchy - - - GObject - +----BObject - +----BTheme - - - - - - - - - - -Description - -A BTheme object defines the dimensions, features and the look of a -Blinkenlights installation. It allows to implement a graphical -simulation. BLib comes with two widgets, BViewGtk and BViewDirectFB -that hide the ugly details of BTheme. - - - - -Details - -<anchor id="BColor"/>struct BColor -struct BColor { - - guchar a; - guchar r; - guchar g; - guchar b; -}; - - -The BColor struct is used to store a single color. The color channels -have values in the range from 0 to 255. - - -guchar a -alpha channel value (opacity) - - - -guchar r -red channel value - - - -guchar g -green channel value - - - -guchar b -blue channel value - - - - - -<anchor id="BRectangle"/>struct BRectangle -struct BRectangle { - - gint x; - gint y; - gint w; - gint h; -}; - - -The BRectangle struct is used to store a rectangle. The coordinates -are pixel values. The x coordinate advances from left to right, the -y coordinate from top to bottom. - - -gint x -horizontal offset from origin - - - -gint y -vertical offset from origin - - - -gint w -width - - - -gint h -height - - - - - -<anchor id="BWindow"/>struct BWindow -struct BWindow { - - gint value; - gint row; - gint column; - gint src_x; - gint src_y; - BRectangle rect; -}; - - -The BWindow struct defines a single overlay window used in a BTheme. - - -gint value -the value this window definition applies to - - - -gint row -the row index - - - -gint column -the column index - - - -gint src_x -x coordinate in the upper left corner in the source image - - - -gint src_y -y coordinate of the upper left corner in the source image - - - -BRectangle rect -the destination rectangle - - - - - -<anchor id="B-WINDOW-VALUE-ALL-CAPS"/>B_WINDOW_VALUE_ALL -#define B_WINDOW_VALUE_ALL 0 - - -A special value used to indicate that the window definition is valid -for all possible values. - - -<anchor id="BOverlay"/>struct BOverlay -struct BOverlay { - - gchar *image; - BColor color; - - GList *windows; -}; - - -The BOverlay struct defines a set of overlay windows used in a BTheme. - - -gchar *image -an optional image to blend over the background - - - -BColor color -the color is only used when no image is specified - - - -GList *windows -a GList of BWindow structs - - - - - -<anchor id="BTheme-struct"/>struct BTheme -struct BTheme; - -The BTheme object defines the dimensions and the look of a -Blinkenlights installation. - - -<anchor id="b-theme-new-from-file"/>b_theme_new_from_file () -BTheme* b_theme_new_from_file (const gchar *filename, - gboolean lazy_load, - GError **error); - -Tries to load a BTheme from the file pointed to by filename. If -lazy_load is TRUE, only the header is loaded. - - - -filename : - the name of the file to load the theme from - -lazy_load : - whether to do lazy-loading - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a newly allocated BTheme object or NULL if the load -failed - - - -<anchor id="b-theme-new-from-scratch"/>b_theme_new_from_scratch () -BTheme* b_theme_new_from_scratch (const gchar *title, - const gchar *type, - gint rows, - gint columns, - gint channels, - gint maxval, - gint width, - gint height); - -Creates a new BTheme object from scratch. This may be useful if -you want to quickly test a movie for a layout you don't have a -theme for. You need to call b_theme_load() before you can use the -new theme. - - - -title : - a descriptive title - -type : - the theme type or NULL - -rows : - the number of rows of windows - -columns : - the number of columns of windows - -channels : - the number of channels per window (must be 1) - -maxval : - the maximum value - -width : - screen width in pixels - -height : - screen height in pixels - -Returns : a newly allocated, lazy-loaded, BTheme object - - - -<anchor id="b-theme-load"/>b_theme_load () -gboolean b_theme_load (BTheme *theme, - GError **error); - -Loads all data into the theme. You only need to call this if you -lazy-loaded the theme or called b_theme_unload() before. - - - -theme : - a BTheme object - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE on success, FALSE otherwise - - - -<anchor id="b-theme-unload"/>b_theme_unload () -void b_theme_unload (BTheme *theme); - -Frees all data of a BTheme except the meta information stored in -the header. - - - -theme : - a BTheme object - - - -<anchor id="BThemesQuery"/>struct BThemesQuery -struct BThemesQuery { - - BThemesQueryFlags flags; - - const gchar *name; - const gchar *type; - gint rows; - gint columns; - gint width; - gint height; -}; - - -A structure that defines a query on the installed themes. Used by -b_themes_query(). - - -<anchor id="BThemesQueryFlags"/>enum BThemesQueryFlags -typedef enum -{ - B_THEMES_QUERY_NONE = 0, - B_THEMES_QUERY_NAME = 1 << 0, - B_THEMES_QUERY_TYPE = 1 << 1, - B_THEMES_QUERY_ROWS = 1 << 2, - B_THEMES_QUERY_COLUMNS = 1 << 3, - B_THEMES_QUERY_WIDTH = 1 << 4, - B_THEMES_QUERY_HEIGHT = 1 << 5 -} BThemesQueryFlags; - - -Flags that define which values of a BThemesQuery are valid. - - -<anchor id="b-themes-query"/>b_themes_query () -GList* b_themes_query (const gchar *themepath, - BThemesQuery *query); - -Looks for themes as defined by query. If themepath is not -specified the default path is used. The default path can be overridden -by setting the environment variable B_THEME_PATH. - - -Each theme that matches the query is lazy-loaded. - - - -themepath : - a colon-separated list of directories to search or NULL to -use the default path - -query : - pointer to a BThemesQuery - -Returns : a GList of newly allocated, lazy-loaded BTheme objects -or NULL if no matching theme was found - - - -<anchor id="BThemesForeachFunc"/>BThemesForeachFunc () -gboolean (*BThemesForeachFunc) (BTheme *theme, - gpointer callback_data); - -This function is called for each theme found by b_themes_foreach(). - -theme : - - -callback_data : - - -Returns : - - - - - -<anchor id="b-themes-foreach"/>b_themes_foreach () -void b_themes_foreach (const gchar *themepath, - BThemesForeachFunc callback, - gpointer callback_data); - -This function iterates over all themes in the themepath, lazy-loads them, -runs callback on the theme and unrefs it again. The iteration is stopped -if a callback returns FALSE. - - -If themepath is not specified, the default path is used. The -default path can be overridden by setting the environment variable -B_THEME_PATH. - - - -themepath : - a colon-separated list of directories to search or NULL to -use the default path - -callback : - a function to call for each theme - -callback_data : - data to pass to the callback - - - -<anchor id="b-themes-foreach-theme"/>b_themes_foreach_theme () -void b_themes_foreach_theme (const gchar *themepath, - GHFunc callback, - gpointer callback_data); -b_themes_foreach_theme is deprecated and should not be used in newly-written code. - -Shouldn't be used in new code, use b_themes_foreach() instead. - - - -themepath : - - -callback : - - -callback_data : - - - - -<anchor id="b-themes-lookup-theme"/>b_themes_lookup_theme () -BTheme* b_themes_lookup_theme (const gchar *name, - const gchar *themepath, - GError **error); -b_themes_lookup_theme is deprecated and should not be used in newly-written code. - -Shouldn't be used in new code, use b_themes_query() instead. - - - -name : - - -themepath : - - -error : - - -Returns : - - - -<anchor id="b-theme-frame-diff-boundary"/>b_theme_frame_diff_boundary () -gboolean b_theme_frame_diff_boundary (BTheme *theme, - const guchar *prev_data, - const guchar *frame_data, - BRectangle *bbox); - -Computes the bounding box of the difference image between two frames. - - - -theme : - a BTheme - -prev_data : - data of the previous frame - -frame_data : - data of the current frame - -bbox : - returns bounding box - -Returns : TRUE if the bounding box is not empty. - - - - - - - - -See Also - -BViewDirectFB, BViewGtk - - - - diff --git a/blib-1.1.7/docs/reference/xml/btypes.xml b/blib-1.1.7/docs/reference/xml/btypes.xml deleted file mode 100644 index a6c6057..0000000 --- a/blib-1.1.7/docs/reference/xml/btypes.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - -BTypes -3 -BLIB Library - - - -BTypesAdditional GTypes registered by BLib - - -Synopsis - - - - - -#define B_TYPE_FILENAME -#define B_VALUE_HOLDS_FILENAME (value) - - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="B-TYPE-FILENAME-CAPS"/>B_TYPE_FILENAME -#define B_TYPE_FILENAME (b_filename_get_type ()) - - -The filename type is derived from G_TYPE_STRING and is used to -indicate that a string should be interpreted as a filename. This -macro returns the GType for this type. - - -<anchor id="B-VALUE-HOLDS-FILENAME-CAPS"/>B_VALUE_HOLDS_FILENAME() -#define B_VALUE_HOLDS_FILENAME(value) (G_TYPE_CHECK_VALUE_TYPE ((value), B_TYPE_FILENAME)) - - -Return whether the given GValue can hold values of type B_TYPE_FILENAME. - -value : -a GValue - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/butils.xml b/blib-1.1.7/docs/reference/xml/butils.xml deleted file mode 100644 index 9462c09..0000000 --- a/blib-1.1.7/docs/reference/xml/butils.xml +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -BUtils -3 -BLIB Library - - - -BUtilsa collection of utility functions, mainly used from parsers - - -Synopsis - - - - - -gchar* b_filename_from_utf8 (const gchar *name, - const gchar *root, - GError **error); -gboolean b_parse_int (const gchar *str, - gint *value); -gboolean b_parse_boolean (const gchar *str, - gboolean *value); -gboolean b_parse_double (const gchar *str, - gdouble *value); -gboolean b_parse_coordinates (const gchar **names, - const gchar **values, - gint *x, - gint *y); -gboolean b_parse_rectangle (const gchar **names, - const gchar **values, - BRectangle *rect); -gboolean b_parse_color (const gchar **names, - const gchar **values, - BColor *color); -gboolean b_parse_param (GObject *object, - const gchar *root, - const gchar **names, - const gchar **values, - GError **error); -gboolean b_object_set_property (GObject *object, - const gchar *key, - const gchar *value, - const gchar *root, - GError **error); -void b_rectangle_union (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest); -gboolean b_rectangle_intersect (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="b-filename-from-utf8"/>b_filename_from_utf8 () -gchar* b_filename_from_utf8 (const gchar *name, - const gchar *root, - GError **error); - -Convert name in UTF-8 encoding to a filename in the filesystem's -encoding. If root is non-NULL and name is not an absolute -filename, the returned filename is built using root as a prefix. - - - -name : - the filename in UTF-8 encoding - -root : - an optional path to use - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a pointer to the newly allocated filename or NULL in -case of an error. This value must be freed with g_free(). - - - -<anchor id="b-parse-int"/>b_parse_int () -gboolean b_parse_int (const gchar *str, - gint *value); - -Parse an integer value from a string. - - - -str : - the string to parse - -value : - location to store the integer value - -Returns : TRUE if the string could be parsed, FALSE otherwise - - - -<anchor id="b-parse-boolean"/>b_parse_boolean () -gboolean b_parse_boolean (const gchar *str, - gboolean *value); - -Parse a boolean value from a string. - - - -str : - the string to parse - -value : - location to store the boolean value - -Returns : TRUE if the string could be parsed, FALSE otherwise - - - -<anchor id="b-parse-double"/>b_parse_double () -gboolean b_parse_double (const gchar *str, - gdouble *value); - -Parse a double (floating-point) value from a string. - - - -str : - the string to parse - -value : - location to store the double value - -Returns : TRUE if the string could be parsed, FALSE otherwise - - - -<anchor id="b-parse-coordinates"/>b_parse_coordinates () -gboolean b_parse_coordinates (const gchar **names, - const gchar **values, - gint *x, - gint *y); - -Parses a pair of name/value arrays looking for the names "x" and "y" -and tries to parse the associated values into integer values. - - - -names : - a NULL-terminated array of names - -values : - a NULL-terminated array of values - -x : - location to store the value of the x coordinate - -y : - location to store the value of the y coordinate - -Returns : TRUE if both coordinates could be parsed, FALSE otherwise - - - -<anchor id="b-parse-rectangle"/>b_parse_rectangle () -gboolean b_parse_rectangle (const gchar **names, - const gchar **values, - BRectangle *rect); - -Parses a pair of name/value arrays looking for the names "x", "y", -"width" and "heigth" and tries to parse the associated values into -a BRectangle. - - - -names : - a NULL-terminated array of names - -values : - a NULL-terminated array of values - -rect : - pointer to a BRectangle to store the result - -Returns : TRUE if the rectangle could be parsed, FALSE otherwise - - - -<anchor id="b-parse-color"/>b_parse_color () -gboolean b_parse_color (const gchar **names, - const gchar **values, - BColor *color); - -Parses a pair of name/value arrays looking for the name "color" and -tries to convert the associated value to a BColor. The color value -is expected to be in hexadecimal notation as in HTML. - - - -names : - a NULL-terminated array of names - -values : - a NULL-terminated array of values - -color : - pointer to a BColor to store the result - -Returns : TRUE if the color could be parsed, FALSE otherwise - - - -<anchor id="b-parse-param"/>b_parse_param () -gboolean b_parse_param (GObject *object, - const gchar *root, - const gchar **names, - const gchar **values, - GError **error); - -Parses a pair of name/value arrays looking for the names "key" and -"value". The key/value pair is then used to set the respective object -property by calling b_object_set_property(). - - - -object : - a GObject - -root : - an optional string to use as root if a filename is set - -names : - a NULL-terminated array of names - -values : - a NULL-terminated array of values - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE if parsing was successful, FALSE otherwise - - - -<anchor id="b-object-set-property"/>b_object_set_property () -gboolean b_object_set_property (GObject *object, - const gchar *key, - const gchar *value, - const gchar *root, - GError **error); - -Sets the object property key by interpreting the string -value. This function takes care of converting the string to the -proper type. If the property is a B_TYPE_FILENAME the filename is -build using the root parameter. - - - -object : - a GObject - -key : - the name of the property - -value : - the property value as a string - -root : - an optional string to use as root if a filename property is set - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : TRUE on success, FALSE otherwise - - - -<anchor id="b-rectangle-union"/>b_rectangle_union () -void b_rectangle_union (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest); - - - -src1 : - - -src2 : - - -dest : - - - - - - -<anchor id="b-rectangle-intersect"/>b_rectangle_intersect () -gboolean b_rectangle_intersect (const BRectangle *src1, - const BRectangle *src2, - BRectangle *dest); - - - -src1 : - - -src2 : - - -dest : - - -Returns : - - - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bview-aa.xml b/blib-1.1.7/docs/reference/xml/bview-aa.xml deleted file mode 100644 index c0863bc..0000000 --- a/blib-1.1.7/docs/reference/xml/bview-aa.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - -BViewAA -3 -BLIB Library - - - -BViewAA - - -Synopsis - - - - - -struct BViewAA; -BViewAA* b_view_aa_new (aa_context *aac, - gint rows, - gint columns, - gint channels, - GError **error); -void b_view_aa_update (BViewAA *view, - const guchar *frame_data); - - - - - -Object Hierarchy - - - GObject - +----BViewAA - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BViewAA-struct"/>struct BViewAA -struct BViewAA; - - - - -<anchor id="b-view-aa-new"/>b_view_aa_new () -BViewAA* b_view_aa_new (aa_context *aac, - gint rows, - gint columns, - gint channels, - GError **error); - -Creates a new BViewAA object suitable to display -Blinkenlights movies that fit the theme. Most of the information -from the theme is ignored, except for the placement of the windows. - - - -aac : - the AALIB context - -rows : - - -columns : - - -channels : - - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a new BViewAA or NULL in case of an error - - - -<anchor id="b-view-aa-update"/>b_view_aa_update () -void b_view_aa_update (BViewAA *view, - const guchar *frame_data); - -Displays a new frame on the view. The view expects frame_data -in the range of 0 to 255. - - - -view : - a BViewAA object - -frame_data : - the frame data to display - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bview-directfb.xml b/blib-1.1.7/docs/reference/xml/bview-directfb.xml deleted file mode 100644 index a007a1f..0000000 --- a/blib-1.1.7/docs/reference/xml/bview-directfb.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - -BViewDirectFB -3 -BLIB Library - - - -BViewDirectFBa DirectFB widget to display Blinkenlights - - -Synopsis - - - - - -struct BViewDirectFB; -BViewDirectFB* b_view_directfb_new (BTheme *theme, - IDirectFB *dfb, - IDirectFBSurface *dest, - GError **error); -void b_view_directfb_update (BViewDirectFB *view, - const guchar *frame_data); - - - - - -Object Hierarchy - - - GObject - +----BViewDirectFB - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BViewDirectFB-struct"/>struct BViewDirectFB -struct BViewDirectFB; - -The BViewDirectFB struct shouldn't be accessed directly. Its members -are considered private. - - -<anchor id="b-view-directfb-new"/>b_view_directfb_new () -BViewDirectFB* b_view_directfb_new (BTheme *theme, - IDirectFB *dfb, - IDirectFBSurface *dest, - GError **error); - -Creates a new BViewDirectFB object suitable to display -Blinkenlights movies that fit the theme. The view will render to -the dest surface. If its size doesn't fit the screen size -specified in the theme, the view is drawn centered on the dest -surface. - - - -theme : - a BTheme object - -dfb : - the DirectFB super interface - -dest : - the destination surface - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a new BViewDirectFB or NULL in case of an error - - - -<anchor id="b-view-directfb-update"/>b_view_directfb_update () -void b_view_directfb_update (BViewDirectFB *view, - const guchar *frame_data); - -Displays a new frame on the view. The view expects frame_data -in the range of 0 to 255. - - - -view : - a BViewDirectFB object - -frame_data : - the frame data to display - - - - - - - - -See Also - -BViewGtk - - - - diff --git a/blib-1.1.7/docs/reference/xml/bview-gtk.xml b/blib-1.1.7/docs/reference/xml/bview-gtk.xml deleted file mode 100644 index 66b520b..0000000 --- a/blib-1.1.7/docs/reference/xml/bview-gtk.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - -BViewGtk -3 -BLIB Library - - - -BViewGtka GTK+ widget to display Blinkenlights - - -Synopsis - - - - - -struct BViewGtk; -GtkWidget* b_view_gtk_new (BTheme *theme, - GError **error); -void b_view_gtk_update (BViewGtk *view, - const guchar *frame_data); - - - - - -Object Hierarchy - - - GObject - +----GtkObject - +----GtkWidget - +----GtkDrawingArea - +----BViewGtk - - - - - -Implemented Interfaces - -BViewGtk implements AtkImplementorIface. - - - - - - - - -Description - - - - - - -Details - -<anchor id="BViewGtk-struct"/>struct BViewGtk -struct BViewGtk; - -The BViewGtk struct shouldn't be accessed directly. Its members are -considered private. - - -<anchor id="b-view-gtk-new"/>b_view_gtk_new () -GtkWidget* b_view_gtk_new (BTheme *theme, - GError **error); - -Creates a new widget suitable to display Blinkenlights movies that -fit the theme. - - - -theme : - a BTheme object - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a new widget or NULL in case of an error - - - -<anchor id="b-view-gtk-update"/>b_view_gtk_update () -void b_view_gtk_update (BViewGtk *view, - const guchar *frame_data); - -Displays a new frame on the view. The view expects frame_data -in the range of 0 to 255. - - - -view : - a BViewGtk widget - -frame_data : - the frame data to display - - - - - - - - -See Also - -BViewDirectFB - - - - diff --git a/blib-1.1.7/docs/reference/xml/bview-pixbuf.xml b/blib-1.1.7/docs/reference/xml/bview-pixbuf.xml deleted file mode 100644 index a06c55c..0000000 --- a/blib-1.1.7/docs/reference/xml/bview-pixbuf.xml +++ /dev/null @@ -1,187 +0,0 @@ - - - - - -BViewPixbuf -3 -BLIB Library - - - -BViewPixbuf - - -Synopsis - - - - - -struct BViewPixbuf; -BViewPixbuf* b_view_pixbuf_new (gint rows, - gint columns, - gint channels, - GError **error); -BViewPixbuf* b_view_pixbuf_new_theme (BTheme *theme, - gboolean image_preload, - GError **error); -const GdkPixbuf* b_view_pixbuf_load_image (BViewPixbuf *view, - const gchar *filename, - GError **error); -const GdkPixbuf* b_view_pixbuf_render (BViewPixbuf *view, - const guchar *frame_data, - const BRectangle *clip, - GError **error); - - - - - -Object Hierarchy - - - GObject - +----BViewPixbuf - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BViewPixbuf-struct"/>struct BViewPixbuf -struct BViewPixbuf; - - - - -<anchor id="b-view-pixbuf-new"/>b_view_pixbuf_new () -BViewPixbuf* b_view_pixbuf_new (gint rows, - gint columns, - gint channels, - GError **error); - -Creates a new BViewPixbuf for the given parameters. This is a -simple version that renders a grayscale pixel for every window. - - - -rows : - - -columns : - - -channels : - - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a new view or NULL in case of an error - - - -<anchor id="b-view-pixbuf-new-theme"/>b_view_pixbuf_new_theme () -BViewPixbuf* b_view_pixbuf_new_theme (BTheme *theme, - gboolean image_preload, - GError **error); - -Creates a pixbuf renderer for Blinkenlights frames using the -theme. When image_preload is enabled, all images refered to by -the theme are loaded. If an error occurs loading the images, -b_view_pixbuf_new() will fail and return NULL. If a view is -created with preloaded images, calling b_view_pixbuf_render() on -it will always succeed so you can skip error checking later. - - - -theme : - a BTheme object - -image_preload : - whether to preload all images - -error : - location to store the error occuring, - or NULL to ignore errors - -Returns : a new view or NULL in case of an error - - - -<anchor id="b-view-pixbuf-load-image"/>b_view_pixbuf_load_image () -const GdkPixbuf* b_view_pixbuf_load_image (BViewPixbuf *view, - const gchar *filename, - GError **error); - -Renders a frame on the view and returns a pointer to a GdkPixbuf -holding the rendered image. The pixbuf is owned by the view, you -may only read from it. - - -The view expects frame_data in the range of 0 to 255. - - - -view : - a BViewPixbuf object - -filename : - the filename of the image to load - -error : - location to store the error occuring, or NULL to ignore errors - -Returns : a pointer to a GdkPixbuf with the rendered frame - - - -<anchor id="b-view-pixbuf-render"/>b_view_pixbuf_render () -const GdkPixbuf* b_view_pixbuf_render (BViewPixbuf *view, - const guchar *frame_data, - const BRectangle *clip, - GError **error); - -Renders a frame on the view. The view expects frame_data in the -range of 0 to 255. - - - -view : - a BViewPixbuf object - -frame_data : - the frame data to display - -clip : - clipping rectangle (or NULL) - -error : - location to store the error occuring, or NULL to ignore - errors - -Returns : a reference to a GdkPixbuf with the rendered frame. - - - - - - - - - diff --git a/blib-1.1.7/docs/reference/xml/bwriter.xml b/blib-1.1.7/docs/reference/xml/bwriter.xml deleted file mode 100644 index 8b80198..0000000 --- a/blib-1.1.7/docs/reference/xml/bwriter.xml +++ /dev/null @@ -1,182 +0,0 @@ - - - - - -BWriter -3 -BLIB Library - - - -BWriterwrites XML files - - -Synopsis - - - - - -struct BWriter; -BWriter* b_writer_new (FILE *stream, - gint indent); -void b_writer_free (BWriter *writer); -void b_write_header (BWriter *writer, - const gchar *encoding); -void b_write_open_tag (BWriter *writer, - const gchar *tag, - ...); -void b_write_close_tag (BWriter *writer, - const gchar *tag); -void b_write_element (BWriter *writer, - const gchar *tag, - const gchar *value, - ...); - - - - - - - - - - -Description - - - - - - -Details - -<anchor id="BWriter"/>struct BWriter -struct BWriter; - -The BWriter struct is private. - - -<anchor id="b-writer-new"/>b_writer_new () -BWriter* b_writer_new (FILE *stream, - gint indent); - -Creates a new BWriter which gives a convenient interface to write -XML data to stream. The writer should later be freed using -b_writer_free(). - - - -stream : - a FILE stream prepared for writing - -indent : - how many characters to indent per nesting level - -Returns : a newly allocate BWriter - - - -<anchor id="b-writer-free"/>b_writer_free () -void b_writer_free (BWriter *writer); - -Frees the resources allocated for writer. You must not access -writer after calling this function. - - - -writer : - a BWriter - - - -<anchor id="b-write-header"/>b_write_header () -void b_write_header (BWriter *writer, - const gchar *encoding); - -Writes an XML header to the stream associated with writer. - - - -writer : - a BWriter - -encoding : - an optional encoding string or NULL - - - -<anchor id="b-write-open-tag"/>b_write_open_tag () -void b_write_open_tag (BWriter *writer, - const gchar *tag, - ...); - -Writes an opening XML tag with the element name tag to the stream -associated with writer. You can pass a NULL-terminated list of -key/value pairs that are written out as attributes. - - - -writer : - a BWriter - -tag : - the name of the element to open - -... : - an optional key/value pairs interpreted as attributes - - - -<anchor id="b-write-close-tag"/>b_write_close_tag () -void b_write_close_tag (BWriter *writer, - const gchar *tag); - -Writes a closing XML tag with the element name tag to the stream -associated with writer. - - - -writer : - a BWriter - -tag : - the name of the element to close - - - -<anchor id="b-write-element"/>b_write_element () -void b_write_element (BWriter *writer, - const gchar *tag, - const gchar *value, - ...); - -Writes an XML element with the name tag and the value value to -the stream associated with writer. If value is NULL, an empty -element is written. You can pass a NULL-terminated list of -key/value pairs that are written out as attributes. - - - -writer : - a BWriter - -tag : - the element name - -value : - the element value - -... : - an optional key/value pairs interpreted as attributes - - - - - - - - - diff --git a/blib-1.1.7/gfx/Makefile.am b/blib-1.1.7/gfx/Makefile.am deleted file mode 100644 index dcb8c68..0000000 --- a/blib-1.1.7/gfx/Makefile.am +++ /dev/null @@ -1,68 +0,0 @@ -## Makefile.am for blib/gfx -## Process this file with automake to produce Makefile.in - -AM_CPPFLAGS = \ - $(CFLAGS) \ - -DG_DISABLE_DEPRECATED \ - -DGDK_PIXBUF_DISABLE_DEPRECATED \ - -DGDK_DISABLE_DEPRECATED \ - -DGTK_DISABLE_DEPRECATED - -INCLUDES = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ \ - @GDK_PIXBUF_CFLAGS@ \ - @GTK_CFLAGS@ \ - @DIRECTFB_CFLAGS@ - -gfx_ldflags = \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -export-dynamic - - -if HAVE_AA -gfx_aa_lib = libb-aa.la -endif - -if HAVE_DIRECTFB -gfx_directfb_lib = libb-directfb.la -endif - -if HAVE_GTK -gfx_gtk_lib = libb-gtk.la -endif - -if HAVE_PIXBUF -gfx_pixbuf_lib = libb-pixbuf.la -endif - - -lib_LTLIBRARIES = \ - $(gfx_directfb_lib) \ - $(gfx_pixbuf_lib) \ - $(gfx_gtk_lib) \ - $(gfx_aa_lib) - -libb_aa_la_includedir = $(INCLUDEDIR)/blib -libb_aa_la_include_HEADERS = blib-aa.h bview-aa.h -libb_aa_la_SOURCES = bview-aa.c -libb_aa_la_LIBADD = @AA_LIBS@ @WIN32_LIBS@ -libb_aa_la_LDFLAGS = $(gfx_ldflags) - -libb_directfb_la_includedir = $(INCLUDEDIR)/blib -libb_directfb_la_include_HEADERS = blib-directfb.h bview-directfb.h -libb_directfb_la_SOURCES = bview-directfb.c -libb_directfb_la_LIBADD = @DIRECTFB_LIBS@ @WIN32_LIBS@ -libb_directfb_la_LDFLAGS = $(gfx_ldflags) - -libb_gtk_la_includedir = $(INCLUDEDIR)/blib -libb_gtk_la_include_HEADERS = blib-gtk.h bview-gtk.h -libb_gtk_la_SOURCES = bview-gtk.c -libb_gtk_la_LIBADD = @GTK_LIBS@ @WIN32_LIBS@ -libb_gtk_la_LDFLAGS = $(gfx_ldflags) - -libb_pixbuf_la_includedir = $(INCLUDEDIR)/blib -libb_pixbuf_la_include_HEADERS = blib-pixbuf.h bview-pixbuf.h -libb_pixbuf_la_SOURCES = bview-pixbuf.c -libb_pixbuf_la_LIBADD = @GDK_PIXBUF_LIBS@ @WIN32_LIBS@ -libb_pixbuf_la_LDFLAGS = $(gfx_ldflags) diff --git a/blib-1.1.7/gfx/Makefile.in b/blib-1.1.7/gfx/Makefile.in deleted file mode 100644 index 089b12d..0000000 --- a/blib-1.1.7/gfx/Makefile.in +++ /dev/null @@ -1,662 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -AM_CPPFLAGS = \ - $(CFLAGS) \ - -DG_DISABLE_DEPRECATED \ - -DGDK_PIXBUF_DISABLE_DEPRECATED \ - -DGDK_DISABLE_DEPRECATED \ - -DGTK_DISABLE_DEPRECATED - - -INCLUDES = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ \ - @GDK_PIXBUF_CFLAGS@ \ - @GTK_CFLAGS@ \ - @DIRECTFB_CFLAGS@ - - -gfx_ldflags = \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -export-dynamic - - -@HAVE_AA_TRUE@gfx_aa_lib = libb-aa.la - -@HAVE_DIRECTFB_TRUE@gfx_directfb_lib = libb-directfb.la - -@HAVE_GTK_TRUE@gfx_gtk_lib = libb-gtk.la - -@HAVE_PIXBUF_TRUE@gfx_pixbuf_lib = libb-pixbuf.la - -lib_LTLIBRARIES = \ - $(gfx_directfb_lib) \ - $(gfx_pixbuf_lib) \ - $(gfx_gtk_lib) \ - $(gfx_aa_lib) - - -libb_aa_la_includedir = $(INCLUDEDIR)/blib -libb_aa_la_include_HEADERS = blib-aa.h bview-aa.h -libb_aa_la_SOURCES = bview-aa.c -libb_aa_la_LIBADD = @AA_LIBS@ @WIN32_LIBS@ -libb_aa_la_LDFLAGS = $(gfx_ldflags) - -libb_directfb_la_includedir = $(INCLUDEDIR)/blib -libb_directfb_la_include_HEADERS = blib-directfb.h bview-directfb.h -libb_directfb_la_SOURCES = bview-directfb.c -libb_directfb_la_LIBADD = @DIRECTFB_LIBS@ @WIN32_LIBS@ -libb_directfb_la_LDFLAGS = $(gfx_ldflags) - -libb_gtk_la_includedir = $(INCLUDEDIR)/blib -libb_gtk_la_include_HEADERS = blib-gtk.h bview-gtk.h -libb_gtk_la_SOURCES = bview-gtk.c -libb_gtk_la_LIBADD = @GTK_LIBS@ @WIN32_LIBS@ -libb_gtk_la_LDFLAGS = $(gfx_ldflags) - -libb_pixbuf_la_includedir = $(INCLUDEDIR)/blib -libb_pixbuf_la_include_HEADERS = blib-pixbuf.h bview-pixbuf.h -libb_pixbuf_la_SOURCES = bview-pixbuf.c -libb_pixbuf_la_LIBADD = @GDK_PIXBUF_LIBS@ @WIN32_LIBS@ -libb_pixbuf_la_LDFLAGS = $(gfx_ldflags) -subdir = gfx -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(lib_LTLIBRARIES) - -libb_aa_la_DEPENDENCIES = -am_libb_aa_la_OBJECTS = bview-aa.lo -libb_aa_la_OBJECTS = $(am_libb_aa_la_OBJECTS) -libb_directfb_la_DEPENDENCIES = -am_libb_directfb_la_OBJECTS = bview-directfb.lo -libb_directfb_la_OBJECTS = $(am_libb_directfb_la_OBJECTS) -libb_gtk_la_DEPENDENCIES = -am_libb_gtk_la_OBJECTS = bview-gtk.lo -libb_gtk_la_OBJECTS = $(am_libb_gtk_la_OBJECTS) -libb_pixbuf_la_DEPENDENCIES = -am_libb_pixbuf_la_OBJECTS = bview-pixbuf.lo -libb_pixbuf_la_OBJECTS = $(am_libb_pixbuf_la_OBJECTS) - -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bview-aa.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bview-directfb.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bview-gtk.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bview-pixbuf.Plo -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ - $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DIST_SOURCES = $(libb_aa_la_SOURCES) $(libb_directfb_la_SOURCES) \ - $(libb_gtk_la_SOURCES) $(libb_pixbuf_la_SOURCES) -HEADERS = $(libb_aa_la_include_HEADERS) \ - $(libb_directfb_la_include_HEADERS) \ - $(libb_gtk_la_include_HEADERS) \ - $(libb_pixbuf_la_include_HEADERS) - -DIST_COMMON = $(libb_aa_la_include_HEADERS) \ - $(libb_directfb_la_include_HEADERS) \ - $(libb_gtk_la_include_HEADERS) \ - $(libb_pixbuf_la_include_HEADERS) $(srcdir)/Makefile.in \ - Makefile.am -SOURCES = $(libb_aa_la_SOURCES) $(libb_directfb_la_SOURCES) $(libb_gtk_la_SOURCES) $(libb_pixbuf_la_SOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu gfx/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -libLTLIBRARIES_INSTALL = $(INSTALL) -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libdir) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ - $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ - else :; fi; \ - done - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ - $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" = "$$p" && dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libb-aa.la: $(libb_aa_la_OBJECTS) $(libb_aa_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libb_aa_la_LDFLAGS) $(libb_aa_la_OBJECTS) $(libb_aa_la_LIBADD) $(LIBS) -libb-directfb.la: $(libb_directfb_la_OBJECTS) $(libb_directfb_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libb_directfb_la_LDFLAGS) $(libb_directfb_la_OBJECTS) $(libb_directfb_la_LIBADD) $(LIBS) -libb-gtk.la: $(libb_gtk_la_OBJECTS) $(libb_gtk_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libb_gtk_la_LDFLAGS) $(libb_gtk_la_OBJECTS) $(libb_gtk_la_LIBADD) $(LIBS) -libb-pixbuf.la: $(libb_pixbuf_la_OBJECTS) $(libb_pixbuf_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libb_pixbuf_la_LDFLAGS) $(libb_pixbuf_la_OBJECTS) $(libb_pixbuf_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bview-aa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bview-directfb.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bview-gtk.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bview-pixbuf.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` - -.c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -libb_aa_la_includeHEADERS_INSTALL = $(INSTALL_HEADER) -install-libb_aa_la_includeHEADERS: $(libb_aa_la_include_HEADERS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libb_aa_la_includedir) - @list='$(libb_aa_la_include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(libb_aa_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_aa_la_includedir)/$$f"; \ - $(libb_aa_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_aa_la_includedir)/$$f; \ - done - -uninstall-libb_aa_la_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libb_aa_la_include_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " rm -f $(DESTDIR)$(libb_aa_la_includedir)/$$f"; \ - rm -f $(DESTDIR)$(libb_aa_la_includedir)/$$f; \ - done -libb_directfb_la_includeHEADERS_INSTALL = $(INSTALL_HEADER) -install-libb_directfb_la_includeHEADERS: $(libb_directfb_la_include_HEADERS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libb_directfb_la_includedir) - @list='$(libb_directfb_la_include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(libb_directfb_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_directfb_la_includedir)/$$f"; \ - $(libb_directfb_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_directfb_la_includedir)/$$f; \ - done - -uninstall-libb_directfb_la_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libb_directfb_la_include_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " rm -f $(DESTDIR)$(libb_directfb_la_includedir)/$$f"; \ - rm -f $(DESTDIR)$(libb_directfb_la_includedir)/$$f; \ - done -libb_gtk_la_includeHEADERS_INSTALL = $(INSTALL_HEADER) -install-libb_gtk_la_includeHEADERS: $(libb_gtk_la_include_HEADERS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libb_gtk_la_includedir) - @list='$(libb_gtk_la_include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(libb_gtk_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_gtk_la_includedir)/$$f"; \ - $(libb_gtk_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_gtk_la_includedir)/$$f; \ - done - -uninstall-libb_gtk_la_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libb_gtk_la_include_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " rm -f $(DESTDIR)$(libb_gtk_la_includedir)/$$f"; \ - rm -f $(DESTDIR)$(libb_gtk_la_includedir)/$$f; \ - done -libb_pixbuf_la_includeHEADERS_INSTALL = $(INSTALL_HEADER) -install-libb_pixbuf_la_includeHEADERS: $(libb_pixbuf_la_include_HEADERS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libb_pixbuf_la_includedir) - @list='$(libb_pixbuf_la_include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(libb_pixbuf_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_pixbuf_la_includedir)/$$f"; \ - $(libb_pixbuf_la_includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(libb_pixbuf_la_includedir)/$$f; \ - done - -uninstall-libb_pixbuf_la_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libb_pixbuf_la_include_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " rm -f $(DESTDIR)$(libb_pixbuf_la_includedir)/$$f"; \ - rm -f $(DESTDIR)$(libb_pixbuf_la_includedir)/$$f; \ - done - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(LTLIBRARIES) $(HEADERS) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(libb_aa_la_includedir) $(DESTDIR)$(libb_directfb_la_includedir) $(DESTDIR)$(libb_gtk_la_includedir) $(DESTDIR)$(libb_pixbuf_la_includedir) -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: install-libb_aa_la_includeHEADERS \ - install-libb_directfb_la_includeHEADERS \ - install-libb_gtk_la_includeHEADERS \ - install-libb_pixbuf_la_includeHEADERS - -install-exec-am: install-libLTLIBRARIES - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -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-info-am uninstall-libLTLIBRARIES \ - uninstall-libb_aa_la_includeHEADERS \ - uninstall-libb_directfb_la_includeHEADERS \ - uninstall-libb_gtk_la_includeHEADERS \ - uninstall-libb_pixbuf_la_includeHEADERS - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am \ - install-libLTLIBRARIES install-libb_aa_la_includeHEADERS \ - install-libb_directfb_la_includeHEADERS \ - install-libb_gtk_la_includeHEADERS \ - install-libb_pixbuf_la_includeHEADERS install-man 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 uninstall uninstall-am uninstall-info-am \ - uninstall-libLTLIBRARIES uninstall-libb_aa_la_includeHEADERS \ - uninstall-libb_directfb_la_includeHEADERS \ - uninstall-libb_gtk_la_includeHEADERS \ - uninstall-libb_pixbuf_la_includeHEADERS - -# 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: diff --git a/blib-1.1.7/gfx/blib-aa.h b/blib-1.1.7/gfx/blib-aa.h deleted file mode 100644 index ff1d0ea..0000000 --- a/blib-1.1.7/gfx/blib-aa.h +++ /dev/null @@ -1,29 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2003 pix - * Copyright (C) 2002 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __BLIB_AA_H__ -#define __BLIB_AA_H__ - -#include - -#include -#include - -#endif /* __BLIB_AA_H__ */ diff --git a/blib-1.1.7/gfx/blib-directfb.h b/blib-1.1.7/gfx/blib-directfb.h deleted file mode 100644 index 9f01def..0000000 --- a/blib-1.1.7/gfx/blib-directfb.h +++ /dev/null @@ -1,28 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __BLIB_DIRECTFB_H__ -#define __BLIB_DIRECTFB_H__ - -#include - -#include -#include - -#endif /* __BLIB_DIRECTFB_H__ */ diff --git a/blib-1.1.7/gfx/blib-gtk.h b/blib-1.1.7/gfx/blib-gtk.h deleted file mode 100644 index b68b3af..0000000 --- a/blib-1.1.7/gfx/blib-gtk.h +++ /dev/null @@ -1,29 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __BLIB_GTK_H__ -#define __BLIB_GTK_H__ - -#include - -#include -#include -#include - -#endif /* __BLIB_GTK_H__ */ diff --git a/blib-1.1.7/gfx/blib-pixbuf.h b/blib-1.1.7/gfx/blib-pixbuf.h deleted file mode 100644 index 2c801e4..0000000 --- a/blib-1.1.7/gfx/blib-pixbuf.h +++ /dev/null @@ -1,28 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002-2004 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __BLIB_PIXBUF_H__ -#define __BLIB_PIXBUF_H__ - -#include - -#include -#include - -#endif /* __BLIB_PIXBUF_H__ */ diff --git a/blib-1.1.7/gfx/bview-aa.c b/blib-1.1.7/gfx/bview-aa.c deleted file mode 100644 index b1a76cf..0000000 --- a/blib-1.1.7/gfx/bview-aa.c +++ /dev/null @@ -1,170 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2003 pix - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include /* memset */ - -#include - -#include "blib/blib.h" - -#include "bview-aa.h" - - -static void b_view_aa_init (BViewAA *view); - - -GType -b_view_aa_get_type (void) -{ - static GType view_type = 0; - - if (!view_type) - { - static const GTypeInfo view_info = - { - sizeof (BViewAAClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - NULL, /* class_init */ - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BViewAA), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_view_aa_init, - }; - - view_type = g_type_register_static (G_TYPE_OBJECT, - "BViewAA", &view_info, 0); - } - - return view_type; -} - -static void -b_view_aa_init (BViewAA *view) -{ - view->aac = NULL; - view->rows = 0; - view->columns = 0; - view->channels = 0; -} - -/** - * b_view_aa_new: - * @aac: the AALIB context - * @rows: - * @columns: - * @channels: - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Creates a new #BViewAA object suitable to display - * Blinkenlights movies that fit the @theme. Most of the information - * from the theme is ignored, except for the placement of the windows. - * - * Return value: a new #BViewAA or %NULL in case of an error - **/ -BViewAA * -b_view_aa_new (aa_context *aac, - gint rows, - gint columns, - gint channels, - GError **error) -{ - BViewAA *view; - - g_return_val_if_fail (aac != NULL, NULL); - g_return_val_if_fail (rows > 0 && columns > 0, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (channels != 1) - { - g_set_error (error, 0, 0, "Channels != 1 is not (yet) supported"); - return NULL; - } - - view = B_VIEW_AA (g_object_new (B_TYPE_VIEW_AA, NULL)); - - view->aac = aac; - view->rows = rows; - view->columns = columns; - view->channels = channels; - - /* - work out how many pixels make up a screen character - normally 2x2 but they threaten to change it to 3x3 - */ - view->char_width = (aa_imgwidth (aac) / aa_scrwidth (aac)); - view->char_height = (aa_imgheight (aac) / aa_scrheight (aac)); - - b_view_aa_update (view, NULL); - - return view; -} - -/** - * b_view_aa_update: - * @view: a #BViewAA object - * @frame_data: the frame data to display - * - * Displays a new frame on the @view. The @view expects @frame_data - * in the range of 0 to 255. - **/ -void -b_view_aa_update (BViewAA *view, - const guchar *frame_data) -{ - aa_context *aac; - gint x, y; - - g_return_if_fail (B_IS_VIEW_AA (view)); - - aac = view->aac; - - /* clear the screen */ - memset (aa_image (aac), 0, aa_imgheight (aac) * aa_imgwidth (aac)); - - if (!frame_data) - return; - - for (y = 0; y < view->rows; y++) - for (x = 0; x < view->columns; x++) - { - gint ix, iy; - - /* draw a block that fills one screen character */ - for (iy = 0; iy < view->char_height; iy++) - for (ix = 0; ix < view->char_width; ix++) - { - aa_putpixel (aac, - x * view->char_width + ix, - y * view->char_height + iy, - *frame_data); - } - - frame_data++; - } - - aa_fastrender (aac, 0, 0, view->columns, view->rows); - - aa_flush (aac); -} diff --git a/blib-1.1.7/gfx/bview-aa.h b/blib-1.1.7/gfx/bview-aa.h deleted file mode 100644 index c029b7a..0000000 --- a/blib-1.1.7/gfx/bview-aa.h +++ /dev/null @@ -1,70 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2003 pix - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_VIEW_AA_H__ -#define __B_VIEW_AA_H__ - -G_BEGIN_DECLS - -#define B_TYPE_VIEW_AA (b_view_aa_get_type ()) -#define B_VIEW_AA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_VIEW_AA, BViewAA)) -#define B_VIEW_AA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_VIEW_AA, BViewAAClass)) -#define B_IS_VIEW_AA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_VIEW_AA)) - - -typedef struct _BViewAAClass BViewAAClass; -typedef struct _BViewAA BViewAA; - -struct _BViewAAClass -{ - GObjectClass parent_class; -}; - -struct _BViewAA -{ - /*< private >*/ - GObject parent_instance; - - gint rows; - gint columns; - gint channels; - - gint char_width; - gint char_height; - - aa_context *aac; -}; - - -GType b_view_aa_get_type (void) G_GNUC_CONST; -BViewAA * b_view_aa_new (aa_context *aac, - gint rows, - gint columns, - gint channels, - GError **error); - -/* the view expects data with a maxval of 255 */ -void b_view_aa_update (BViewAA *view, - const guchar *frame_data); - -G_END_DECLS - -#endif /* __B_VIEW_AA_H__ */ diff --git a/blib-1.1.7/gfx/bview-directfb.c b/blib-1.1.7/gfx/bview-directfb.c deleted file mode 100644 index a0be90e..0000000 --- a/blib-1.1.7/gfx/bview-directfb.c +++ /dev/null @@ -1,325 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include "blib/blib.h" - -#include "bview-directfb.h" - - -static void b_view_directfb_class_init (BViewDirectFBClass *class); -static void b_view_directfb_init (BViewDirectFB *view); -static void b_view_directfb_finalize (GObject *object); - -static IDirectFBSurface * load_image (BViewDirectFB *view, - IDirectFB *dfb, - const gchar *filename); -static void surface_release (IDirectFBSurface *surface); - - -static GObjectClass *parent_class = NULL; - - -GType -b_view_directfb_get_type (void) -{ - static GType view_type = 0; - - if (!view_type) - { - static const GTypeInfo view_info = - { - sizeof (BViewDirectFBClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_view_directfb_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BViewDirectFB), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_view_directfb_init, - }; - - view_type = g_type_register_static (G_TYPE_OBJECT, - "BViewDirectFB", &view_info, 0); - } - - return view_type; -} - -static void -b_view_directfb_class_init (BViewDirectFBClass *class) -{ - GObjectClass *object_class; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - - object_class->finalize = b_view_directfb_finalize; -} - -static void -b_view_directfb_init (BViewDirectFB *view) -{ - view->theme = NULL; - view->images = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify) NULL, - (GDestroyNotify) surface_release); -} - -static void -b_view_directfb_finalize (GObject *object) -{ - BViewDirectFB *view; - - view = B_VIEW_DIRECTFB (object); - - if (view->dest) - view->dest->Release (view->dest); - - if (view->theme) - g_object_unref (view->theme); - - g_hash_table_destroy (view->images); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -/** - * b_view_directfb_new: - * @theme: a #BTheme object - * @dfb: the DirectFB super interface - * @dest: the destination surface - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Creates a new #BViewDirectFB object suitable to display - * Blinkenlights movies that fit the @theme. The view will render to - * the @dest surface. If its size doesn't fit the screen size - * specified in the theme, the view is drawn centered on the @dest - * surface. - * - * Return value: a new #BViewDirectFB or %NULL in case of an error - **/ -BViewDirectFB * -b_view_directfb_new (BTheme *theme, - IDirectFB *dfb, - IDirectFBSurface *dest, - GError **error) -{ - BViewDirectFB *view; - GList *list; - DFBRectangle rect; - - g_return_val_if_fail (B_IS_THEME (theme), NULL); - g_return_val_if_fail (dfb != NULL, NULL); - g_return_val_if_fail (dest != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (theme->channels != 1) - { - g_set_error (error, 0, 0, "Channels != 1 is not (yet) supported"); - return NULL; - } - - view = B_VIEW_DIRECTFB (g_object_new (B_TYPE_VIEW_DIRECTFB, NULL)); - - view->theme = g_object_ref (theme); - - dest->Clear (dest, - theme->bg_color.r, theme->bg_color.g, theme->bg_color.b, 0xFF); - - dest->GetSize (dest, &rect.w, &rect.h); - - rect.x = (rect.w - theme->width) / 2; - rect.y = (rect.h - theme->height) / 2; - - dest->GetSubSurface (dest, &rect, &view->dest); - - if (theme->bg_image) - view->background = load_image (view, dfb, theme->bg_image); - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - - if (!overlay->image) - continue; - - load_image (view, dfb, overlay->image); - } - - b_view_directfb_update (view, NULL); - - return view; -} - -/** - * b_view_directfb_update: - * @view: a #BViewDirectFB object - * @frame_data: the frame data to display - * - * Displays a new frame on the @view. The @view expects @frame_data - * in the range of 0 to 255. - **/ -void -b_view_directfb_update (BViewDirectFB *view, - const guchar *frame_data) -{ - BTheme *theme; - IDirectFBSurface *dest; - GList *list; - - g_return_if_fail (B_IS_VIEW_DIRECTFB (view)); - g_return_if_fail (B_IS_THEME (view->theme)); - - theme = view->theme; - dest = view->dest; - - dest->Clear (dest, - theme->bg_color.r, theme->bg_color.g, theme->bg_color.b, 0xFF); - - if (view->background) - { - dest->SetBlittingFlags (dest, DSBLIT_NOFX); - dest->Blit (dest, - view->background, NULL, - theme->bg_image_x, theme->bg_image_y); - } - - if (!frame_data) - return; - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - IDirectFBSurface *surface = NULL; - GList *windows; - - if (overlay->image) - surface = g_hash_table_lookup (view->images, overlay->image); - - if (surface) - { - dest->SetBlittingFlags (dest, (DSBLIT_BLEND_ALPHACHANNEL | - DSBLIT_BLEND_COLORALPHA)); - - for (windows = overlay->windows; windows; windows = windows->next) - { - BWindow *window = windows->data; - DFBRectangle rect; - guchar value; - - value = frame_data[(window->column + - window->row * theme->columns)]; - if (!value) - continue; - - window += (value * theme->maxval) / 256; - - rect.x = window->src_x; - rect.y = window->src_y; - rect.w = window->rect.w; - rect.h = window->rect.h; - - dest->SetColor (dest, - 0, 0, 0, - window->value == B_WINDOW_VALUE_ALL ? - value : 0xFF); - dest->Blit (dest, - surface, &rect, window->rect.x, window->rect.y); - } - } - else - { - dest->SetDrawingFlags (dest, DSDRAW_BLEND); - - for (windows = overlay->windows; windows; windows = windows->next) - { - BWindow *window = windows->data; - guchar value; - - value = frame_data[(window->column + - window->row * theme->columns)]; - if (!value) - continue; - - window += (value * theme->maxval) / 256; - - dest->SetColor (dest, - overlay->color.r, - overlay->color.g, - overlay->color.b, - (window->value == B_WINDOW_VALUE_ALL) ? - ((overlay->color.a + 1) * value) >> 8 : - overlay->color.a); - dest->FillRectangle (dest, - window->rect.x, window->rect.y, - window->rect.w, window->rect.h); - } - } - } -} - -static IDirectFBSurface * -load_image (BViewDirectFB *view, - IDirectFB *dfb, - const gchar *filename) -{ - IDirectFBSurface *surface; - IDirectFBImageProvider *provider; - DFBSurfaceDescription dsc; - DFBResult err; - - surface = g_hash_table_lookup (view->images, filename); - - if (surface) - return surface; - - err = dfb->CreateImageProvider (dfb, filename, &provider); - - if (err) - { - g_printerr ("Error loading image from file '%s': %s\n", - filename, DirectFBErrorString (err)); - } - else - { - provider->GetSurfaceDescription (provider, &dsc); - - if (dfb->CreateSurface (dfb, &dsc, &surface) != DFB_OK) - return NULL; - - provider->RenderTo (provider, surface, NULL); - provider->Release (provider); - } - - g_hash_table_insert (view->images, (gpointer) filename, surface); - - return surface; -} - -static void -surface_release (IDirectFBSurface *surface) -{ - surface->Release (surface); -} diff --git a/blib-1.1.7/gfx/bview-directfb.h b/blib-1.1.7/gfx/bview-directfb.h deleted file mode 100644 index f3c1f98..0000000 --- a/blib-1.1.7/gfx/bview-directfb.h +++ /dev/null @@ -1,65 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_VIEW_DIRECTFB_H__ -#define __B_VIEW_DIRECTFB_H__ - -G_BEGIN_DECLS - -#define B_TYPE_VIEW_DIRECTFB (b_view_directfb_get_type ()) -#define B_VIEW_DIRECTFB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_VIEW_DIRECTFB, BViewDirectFB)) -#define B_VIEW_DIRECTFB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_VIEW_DIRECTFB, BViewDirectFBClass)) -#define B_IS_VIEW_DIRECTFB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_VIEW_DIRECTFB)) - - -typedef struct _BViewDirectFBClass BViewDirectFBClass; -typedef struct _BViewDirectFB BViewDirectFB; - -struct _BViewDirectFBClass -{ - GObjectClass parent_class; -}; - -struct _BViewDirectFB -{ - /*< private >*/ - GObject parent_instance; - - BTheme *theme; - - IDirectFBSurface *dest; - IDirectFBSurface *background; - GHashTable *images; -}; - - -GType b_view_directfb_get_type (void) G_GNUC_CONST; -BViewDirectFB * b_view_directfb_new (BTheme *theme, - IDirectFB *dfb, - IDirectFBSurface *dest, - GError **error); - -/* the view expects data with a maxval of 255 */ -void b_view_directfb_update (BViewDirectFB *view, - const guchar *frame_data); - -G_END_DECLS - -#endif /* __B_VIEW_DIRECTFB_H__ */ diff --git a/blib-1.1.7/gfx/bview-gtk.c b/blib-1.1.7/gfx/bview-gtk.c deleted file mode 100644 index 1697553..0000000 --- a/blib-1.1.7/gfx/bview-gtk.c +++ /dev/null @@ -1,389 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "blib/blib.h" - -#include "bview-pixbuf.h" -#include "bview-gtk.h" - - -static void b_view_gtk_class_init (BViewGtkClass *class); -static void b_view_gtk_init (BViewGtk *view); -static void b_view_gtk_finalize (GObject *object); -static void b_view_gtk_realize (GtkWidget *widget); -static void b_view_gtk_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static gboolean b_view_gtk_expose_event (GtkWidget *widget, - GdkEventExpose *event); -static gboolean b_view_gtk_alloc_color (GdkDrawable *drawable, - BColor *color, - GdkColor *gdk_color); -static GdkDrawable * b_view_gtk_get_drawable (BViewGtk *view, - const gchar *filename, - GdkWindow *window); - - -static GtkDrawingAreaClass *parent_class = NULL; - - -GType -b_view_gtk_get_type (void) -{ - static GType view_type = 0; - - if (!view_type) - { - static const GTypeInfo view_info = - { - sizeof (BViewGtkClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_view_gtk_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BViewGtk), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_view_gtk_init, - }; - - view_type = g_type_register_static (GTK_TYPE_DRAWING_AREA, - "BViewGtk", &view_info, 0); - } - - return view_type; -} - -static void -b_view_gtk_class_init (BViewGtkClass *class) -{ - GObjectClass *object_class; - GtkWidgetClass *widget_class; - - parent_class = g_type_class_peek_parent (class); - object_class = G_OBJECT_CLASS (class); - widget_class = GTK_WIDGET_CLASS (class); - - object_class->finalize = b_view_gtk_finalize; - - widget_class->realize = b_view_gtk_realize; - widget_class->size_request = b_view_gtk_size_request; - widget_class->expose_event = b_view_gtk_expose_event; -} - -static void -b_view_gtk_init (BViewGtk *view) -{ - view->pixview = NULL; - view->theme = NULL; - view->frame_data = NULL; - view->drawables = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify) NULL, - (GDestroyNotify) g_object_unref); -} - -static void -b_view_gtk_finalize (GObject *object) -{ - BViewGtk *view = B_VIEW_GTK (object); - - g_free (view->frame_data); - - g_hash_table_destroy (view->drawables); - - g_object_unref (view->theme); - g_object_unref (view->pixview); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_view_gtk_realize (GtkWidget *widget) -{ - BViewGtk *view = B_VIEW_GTK (widget); - GdkColor color; - - GTK_WIDGET_CLASS (parent_class)->realize (widget); - - if (b_view_gtk_alloc_color (GDK_DRAWABLE (widget->window), - &view->theme->bg_color, &color)) - { - gdk_window_set_background (widget->window, &color); - } -} - -static void -b_view_gtk_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - BViewGtk *view = B_VIEW_GTK (widget); - - requisition->width = view->theme->width; - requisition->height = view->theme->height; -} - -static gboolean -b_view_gtk_expose_event (GtkWidget *widget, - GdkEventExpose *event) -{ - BViewGtk *view = B_VIEW_GTK (widget); - BTheme *theme = view->theme; - GdkGC *gc; - BRectangle rect; - gint x, y; - - x = (widget->allocation.width - view->theme->width) / 2; - y = (widget->allocation.height - view->theme->height) / 2; - - gc = widget->style->fg_gc[GTK_STATE_NORMAL]; - - gdk_gc_set_clip_rectangle (gc, &event->area); - - if (view->blend) - { - rect.x = x; - rect.y = y; - rect.w = view->theme->width; - rect.h = view->theme->height; - - if (b_rectangle_intersect (&rect, (BRectangle *) &event->area, NULL)) - gdk_pixbuf_render_to_drawable (view->pixview->pixbuf, - widget->window, gc, - 0, 0, - rect.x, rect.y, rect.w, rect.h, - GDK_RGB_DITHER_NORMAL, - - event->area.x, - event->area.y); - } - else - { - GdkDrawable *drawable; - GList *list; - - drawable = b_view_gtk_get_drawable (view, - theme->bg_image, widget->window); - - if (drawable) - { - rect.x = x + view->theme->bg_image_x; - rect.y = y + view->theme->bg_image_y; - - gdk_drawable_get_size (drawable, &rect.w, &rect.h); - - if (b_rectangle_intersect (&rect, (BRectangle *) &event->area, NULL)) - gdk_draw_drawable (GDK_DRAWABLE (widget->window), gc, - drawable, - 0, 0, - rect.x, rect.y, rect.w, rect.h); - } - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - GList *windows; - GdkColor color; - - drawable = b_view_gtk_get_drawable (view, - overlay->image, widget->window); - - if (drawable == NULL && - b_view_gtk_alloc_color (widget->window, &overlay->color, &color)) - { - gdk_gc_set_foreground (gc, &color); - } - - for (windows = overlay->windows; windows; windows = windows->next) - { - BWindow *window = windows->data; - guchar value; - - value = view->frame_data[(window->column + - window->row * theme->columns)]; - if (!value) - continue; - - window += (value * theme->maxval) / 256; - - rect.x = window->rect.x + x; - rect.y = window->rect.y + y; - rect.w = window->rect.w; - rect.h = window->rect.h; - - if (b_rectangle_intersect (&rect, - (BRectangle *) &event->area, NULL)) - { - if (drawable) - gdk_draw_drawable (GDK_DRAWABLE (widget->window), gc, - drawable, - window->src_x, window->src_y, - rect.x, rect.y, rect.w, rect.h); - else - gdk_draw_rectangle (GDK_DRAWABLE (widget->window), gc, - TRUE, - rect.x, rect.y, rect.w, rect.h); - } - } - } - } - - gdk_gc_set_clip_rectangle (gc, NULL); - - return TRUE; -} - -/** - * b_view_gtk_new: - * @theme: a #BTheme object - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Creates a new widget suitable to display Blinkenlights movies that - * fit the @theme. - * - * Return value: a new widget or %NULL in case of an error - **/ -GtkWidget * -b_view_gtk_new (BTheme *theme, - GError **error) -{ - BViewGtk *view; - BViewPixbuf *pixview; - - g_return_val_if_fail (B_IS_THEME (theme), NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (theme->channels != 1) - { - g_set_error (error, 0, 0, "Channels != 1 is not (yet) supported"); - return NULL; - } - - pixview = b_view_pixbuf_new_theme (theme, TRUE, error); - if (! pixview) - return FALSE; - - view = B_VIEW_GTK (g_object_new (B_TYPE_VIEW_GTK, NULL)); - - view->pixview = pixview; - view->theme = g_object_ref (theme); - view->blend = theme->needs_blending; - view->frame_data = g_new0 (guchar, (theme->rows * theme->columns)); - - if (view->blend) - b_view_pixbuf_render (view->pixview, NULL, NULL, NULL); - - return GTK_WIDGET (view); -} - -/** - * b_view_gtk_update: - * @view: a #BViewGtk widget - * @frame_data: the frame data to display - * - * Displays a new frame on the @view. The @view expects @frame_data - * in the range of 0 to 255. - **/ -void -b_view_gtk_update (BViewGtk *view, - const guchar *frame_data) -{ - GtkWidget *widget; - BTheme *theme; - BRectangle rect; - - g_return_if_fail (B_IS_VIEW_GTK (view)); - g_return_if_fail (B_IS_THEME (view->theme)); - - theme = view->theme; - - b_theme_frame_diff_boundary (theme, view->frame_data, frame_data, &rect); - - if (frame_data) - memcpy (view->frame_data, frame_data, (theme->rows * theme->columns)); - else - memset (view->frame_data, 0, (theme->rows * theme->columns)); - - if (view->blend) - b_view_pixbuf_render (view->pixview, view->frame_data, &rect, NULL); - - widget = GTK_WIDGET (view); - - rect.x += (widget->allocation.width - view->theme->width) / 2; - rect.y += (widget->allocation.height - view->theme->height) / 2; - - gtk_widget_queue_draw_area (widget, rect.x, rect.y, rect.w, rect.h); -} - -static gboolean -b_view_gtk_alloc_color (GdkDrawable *drawable, - BColor *color, - GdkColor *gdk_color) -{ - gdk_color->red = (color->r << 8) | color->r; - gdk_color->green = (color->g << 8) | color->g; - gdk_color->blue = (color->b << 8) | color->b; - - return (gdk_colormap_alloc_color (gdk_drawable_get_colormap (drawable), - gdk_color, FALSE, TRUE)); -} - -static GdkDrawable * -b_view_gtk_get_drawable (BViewGtk *view, - const gchar *filename, - GdkWindow *window) -{ - GdkDrawable *drawable; - const GdkPixbuf *pixbuf; - - if (! filename) - return NULL; - - drawable = g_hash_table_lookup (view->drawables, filename); - if (drawable) - return drawable; - - pixbuf = b_view_pixbuf_load_image (view->pixview, filename, NULL); - if (pixbuf) - { - GdkColormap *colormap = gdk_drawable_get_colormap (window); - gint width = gdk_pixbuf_get_width (pixbuf); - gint height = gdk_pixbuf_get_height (pixbuf); - GdkGC *gc; - - drawable = GDK_DRAWABLE (gdk_pixmap_new (window, width, height, - gdk_colormap_get_visual (colormap)->depth)); - - gdk_drawable_set_colormap (drawable, colormap); - - gc = gdk_gc_new (drawable); - - gdk_draw_pixbuf (drawable, gc, - (GdkPixbuf *) pixbuf, 0, 0, 0, 0, width, height, - GDK_RGB_DITHER_NORMAL, 0, 0); - - g_object_unref (gc); - - g_hash_table_insert (view->drawables, (gpointer) filename, drawable); - } - - return drawable; -} diff --git a/blib-1.1.7/gfx/bview-gtk.h b/blib-1.1.7/gfx/bview-gtk.h deleted file mode 100644 index 5e01526..0000000 --- a/blib-1.1.7/gfx/bview-gtk.h +++ /dev/null @@ -1,64 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_VIEW_GTK_H__ -#define __B_VIEW_GTK_H__ - -G_BEGIN_DECLS - -#define B_TYPE_VIEW_GTK (b_view_gtk_get_type ()) -#define B_VIEW_GTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_VIEW_GTK, BViewGtk)) -#define B_VIEW_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_VIEW_GTK, BViewGtkClass)) -#define B_IS_VIEW_GTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_VIEW_GTK)) - - -typedef struct _BViewGtkClass BViewGtkClass; -typedef struct _BViewGtk BViewGtk; - -struct _BViewGtkClass -{ - GtkDrawingAreaClass parent_class; -}; - -struct _BViewGtk -{ - /*< private >*/ - GtkDrawingArea parent_instance; - - BViewPixbuf *pixview; - BTheme *theme; - gboolean blend; - guchar *frame_data; - - GHashTable *drawables; -}; - - -GType b_view_gtk_get_type (void) G_GNUC_CONST; -GtkWidget * b_view_gtk_new (BTheme *theme, - GError **error); - -/* the view expects data with a maxval of 255 */ -void b_view_gtk_update (BViewGtk *view, - const guchar *frame_data); - -G_END_DECLS - -#endif /* __B_VIEW_GTK_H__ */ diff --git a/blib-1.1.7/gfx/bview-pixbuf.c b/blib-1.1.7/gfx/bview-pixbuf.c deleted file mode 100644 index 127fa37..0000000 --- a/blib-1.1.7/gfx/bview-pixbuf.c +++ /dev/null @@ -1,677 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include - -#include - -#include "blib/blib.h" - -#include "bview-pixbuf.h" - - -static void b_view_pixbuf_class_init (BViewPixbufClass *class); -static void b_view_pixbuf_init (BViewPixbuf *view); -static void b_view_pixbuf_finalize (GObject *object); - -static void b_view_pixbuf_fill_rect (GdkPixbuf *pixbuf, - const BRectangle *rect, - const BColor *color); -static void b_view_pixbuf_blend_rect (GdkPixbuf *dest, - const GdkPixbuf *src, - const BRectangle *dest_rect, - gint src_x, - gint src_y, - guchar opacity); - - -static GObjectClass *parent_class = NULL; - - -GType -b_view_pixbuf_get_type (void) -{ - static GType view_type = 0; - - if (!view_type) - { - static const GTypeInfo view_info = - { - sizeof (BViewPixbufClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_view_pixbuf_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BViewPixbuf), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_view_pixbuf_init, - }; - - view_type = g_type_register_static (G_TYPE_OBJECT, - "BViewPixbuf", &view_info, 0); - } - - return view_type; -} - -static void -b_view_pixbuf_class_init (BViewPixbufClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - - parent_class = g_type_class_peek_parent (class); - - object_class->finalize = b_view_pixbuf_finalize; -} - -static void -b_view_pixbuf_init (BViewPixbuf *view) -{ - view->pixbuf = NULL; - view->theme = NULL; - view->rows = 0; - view->columns = 0; - view->channels = 0; - view->images = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify) NULL, - (GDestroyNotify) g_object_unref); -} - -static void -b_view_pixbuf_finalize (GObject *object) -{ - BViewPixbuf *view = B_VIEW_PIXBUF (object); - - g_hash_table_destroy (view->images); - - if (view->theme) - g_object_unref (view->theme); - - if (view->pixbuf) - g_object_unref (view->pixbuf); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -/** - * b_view_pixbuf_new: - * @rows: - * @columns: - * @channels: - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Creates a new #BViewPixbuf for the given parameters. This is a - * simple version that renders a grayscale pixel for every window. - * - * Return value: a new view or %NULL in case of an error - **/ -BViewPixbuf * -b_view_pixbuf_new (gint rows, - gint columns, - gint channels, - GError **error) -{ - BViewPixbuf *view; - - g_return_val_if_fail (rows > 0 && columns > 0, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (channels != 1) - { - g_set_error (error, 0, 0, "Channels != 1 is not (yet) supported"); - return NULL; - } - - view = B_VIEW_PIXBUF (g_object_new (B_TYPE_VIEW_PIXBUF, NULL)); - - view->rows = rows; - view->columns = columns; - view->channels = channels; - - return view; -} - -/** - * b_view_pixbuf_new_theme: - * @theme: a #BTheme object - * @image_preload: whether to preload all images - * @error: location to store the error occuring, - * or %NULL to ignore errors - * - * Creates a pixbuf renderer for Blinkenlights frames using the - * @theme. When image_preload is enabled, all images refered to by - * the theme are loaded. If an error occurs loading the images, - * b_view_pixbuf_new() will fail and return %NULL. If a view is - * created with preloaded images, calling b_view_pixbuf_render() on - * it will always succeed so you can skip error checking later. - * - * Return value: a new view or %NULL in case of an error - **/ -BViewPixbuf * -b_view_pixbuf_new_theme (BTheme *theme, - gboolean image_preload, - GError **error) -{ - BViewPixbuf *view; - - g_return_val_if_fail (B_IS_THEME (theme), NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (theme->channels != 1) - { - g_set_error (error, 0, 0, "Channels != 1 is not (yet) supported"); - return NULL; - } - - view = B_VIEW_PIXBUF (g_object_new (B_TYPE_VIEW_PIXBUF, NULL)); - - view->theme = g_object_ref (theme); - - view->rows = theme->rows; - view->columns = theme->columns; - view->channels = theme->channels; - - if (image_preload) - { - GList *list; - - if (theme->bg_image) - { - if (! b_view_pixbuf_load_image (view, theme->bg_image, error)) - { - g_object_unref (view); - return NULL; - } - } - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - - if (! b_view_pixbuf_load_image (view, overlay->image, error)) - { - g_object_unref (view); - return NULL; - } - } - } - - return view; -} - -static const GdkPixbuf * -b_view_pixbuf_render_theme (BViewPixbuf *view, - const guchar *frame_data, - const BRectangle *clip, - GError **error) -{ - BTheme *theme = view->theme; - const GdkPixbuf *image; - GList *list; - BRectangle rect; - - if (view->pixbuf) - { - b_view_pixbuf_fill_rect (view->pixbuf, clip, &theme->bg_color); - } - else - { - view->pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, - theme->width, theme->height); - b_view_pixbuf_fill_rect (view->pixbuf, NULL, &theme->bg_color); - } - - if (theme->bg_image) - { - gint x, y; - - image = b_view_pixbuf_load_image (view, theme->bg_image, error); - if (! image) - return NULL; - - rect.x = x = theme->bg_image_x; - rect.y = y = theme->bg_image_y; - rect.w = gdk_pixbuf_get_width (image); - rect.h = gdk_pixbuf_get_height (image); - - if (!clip || b_rectangle_intersect (&rect, clip, &rect)) - gdk_pixbuf_copy_area (image, - rect.x - x, rect.y - x, rect.w, rect.h, - view->pixbuf, - rect.x, rect.y); - } - - for (list = theme->overlays; list && frame_data; list = list->next) - { - BOverlay *overlay = list->data; - GList *windows; - - if (overlay->image) - { - image = b_view_pixbuf_load_image (view, overlay->image, error); - if (! image) - return NULL; - - for (windows = overlay->windows; windows; windows = windows->next) - { - BWindow *window = windows->data; - guchar value = frame_data[(window->column + - window->row * theme->columns)]; - if (value) - { - gint x, y; - - window += (value * theme->maxval) / 256; - - memcpy (&rect, &window->rect, sizeof (BRectangle)); - - x = rect.x; - y = rect.y; - - if (!clip || b_rectangle_intersect (&rect, clip, &rect)) - b_view_pixbuf_blend_rect (view->pixbuf, image, - &rect, - window->src_x + rect.x - x, - window->src_y + rect.y - y, - (window->value - == B_WINDOW_VALUE_ALL) ? - value : 0xFF); - } - } - } - else - { - BColor color = overlay->color; - - for (windows = overlay->windows; windows; windows = windows->next) - { - BWindow *window = windows->data; - guchar value = frame_data[(window->column + - window->row * theme->columns)]; - if (value) - { - window += (value * theme->maxval) / 256; - - color.a = overlay->color.a; - if (window->value == B_WINDOW_VALUE_ALL) - color.a = ((color.a + 1) * value) >> 8; - - memcpy (&rect, &window->rect, sizeof (BRectangle)); - - if (!clip || b_rectangle_intersect (&rect, clip, &rect)) - b_view_pixbuf_fill_rect (view->pixbuf, &rect, &color); - } - } - } - - } - - return (const GdkPixbuf *) view->pixbuf; -} - - -/** - * b_view_pixbuf_render - * @view: a #BViewPixbuf object - * @frame_data: the frame data to display - * @clip: clipping rectangle (or %NULL) - * @error: location to store the error occuring, or %NULL to ignore - * errors - * - * Renders a frame on the @view. The @view expects @frame_data in the - * range of 0 to 255. - * - * Return value: a reference to a #GdkPixbuf with the rendered frame. - **/ -const GdkPixbuf * -b_view_pixbuf_render (BViewPixbuf *view, - const guchar *frame_data, - const BRectangle *clip, - GError **error) -{ - BRectangle rect; - - g_return_val_if_fail (B_IS_VIEW_PIXBUF (view), NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - if (view->theme) - return b_view_pixbuf_render_theme (view, frame_data, clip, error); - - if (! view->pixbuf) - view->pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, - view->columns, view->rows); - - rect.x = 0; - rect.y = 0; - rect.w = view->columns; - rect.h = view->rows; - - if (!clip || b_rectangle_intersect (&rect, clip, &rect)) - { - const guchar *src; - guchar *dest; - guchar *pixels = gdk_pixbuf_get_pixels (view->pixbuf); - gint pitch = gdk_pixbuf_get_rowstride (view->pixbuf); - gint x, y; - - src = frame_data + (rect.y * view->columns) + rect.x; - dest = pixels + (rect.y * pitch) + rect.x; - - for (y = 0; y < rect.h; y++) - { - for (x = 0; x < rect.w; x++) - { - dest[3 * x] = src[x]; - dest[3 * x + 1] = src[x]; - dest[3 * x + 2] = src[x]; - } - - dest += pitch; - src += view->columns; - } - } - - return (const GdkPixbuf *) view->pixbuf; -} - -/** - * b_view_pixbuf_load_image: - * @view: a #BViewPixbuf object - * @filename: the filename of the image to load - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Renders a frame on the @view and returns a pointer to a #GdkPixbuf - * holding the rendered image. The pixbuf is owned by the view, you - * may only read from it. - * - * The @view expects @frame_data in the range of 0 to 255. - * - * Return value: a pointer to a #GdkPixbuf with the rendered frame - **/ -const GdkPixbuf * -b_view_pixbuf_load_image (BViewPixbuf *view, - const gchar *filename, - GError **error) -{ - GdkPixbuf *pixbuf = g_hash_table_lookup (view->images, filename); - - if (pixbuf) - return pixbuf; - - pixbuf = gdk_pixbuf_new_from_file (filename, error); - - if (pixbuf) - { - g_hash_table_insert (view->images, (gpointer) filename, pixbuf); - } - else if (error && *error) - { - gchar *msg = g_strdup_printf ("Error loading image from file '%s': %s\n", - filename, (*error)->message); - g_free ((*error)->message); - (*error)->message = msg; - } - - return (const GdkPixbuf *) pixbuf; -} - - -/* this function assumes that the pixbuf has no alpha channel */ -static void -b_view_pixbuf_fill_rect (GdkPixbuf *pixbuf, - const BRectangle *rect, - const BColor *color) -{ - guchar *data; - gint pitch; - guchar r, g, b; - BRectangle fill = { 0, 0, - gdk_pixbuf_get_width (pixbuf), - gdk_pixbuf_get_height (pixbuf) }; - - if (rect && ! b_rectangle_intersect ((BRectangle *) rect, &fill, &fill)) - return; - - data = gdk_pixbuf_get_pixels (pixbuf); - pitch = gdk_pixbuf_get_rowstride (pixbuf); - - data += fill.y * pitch + fill.x * 3; - - r = color ? color->r : 0x0; - g = color ? color->g : 0x0; - b = color ? color->b : 0x0; - - do - { - guchar *d = data; - guint w = fill.w; - - do - { - data[0] = r; - data[1] = g; - data[2] = g; - - d += 3; - } - while (--w); - - data += pitch; - } - while (--fill.h); -} - -/* this function assumes that the dest pixbuf has no alpha channel */ -static void -b_view_pixbuf_blend_rect (GdkPixbuf *dest, - const GdkPixbuf *src, - const BRectangle *dest_rect, - gint src_x, - gint src_y, - guchar opacity) -{ - guchar *src_data; - guchar *dest_data; - gint src_pitch; - gint dest_pitch; - gint i; - BRectangle rect = { 0, 0, - gdk_pixbuf_get_width (dest), - gdk_pixbuf_get_height (dest) }; - - if (! opacity) - return; - - if (! b_rectangle_intersect (dest_rect, &rect, &rect)) - return; - - src_x += rect.x - dest_rect->x; - src_y += rect.y - dest_rect->y; - - if (src_x < 0) - rect.w += src_x, src_x = 0; - - if (src_y < 0) - rect.h += src_y, src_y = 0; - - i = gdk_pixbuf_get_width (src); - rect.w = MIN (i - src_x, rect.w); - if (rect.w < 1) - return; - - i = gdk_pixbuf_get_height (src); - rect.h = MIN (i - src_y, rect.h); - if (rect.h < 1) - return; - - src_data = gdk_pixbuf_get_pixels (src); - src_pitch = gdk_pixbuf_get_rowstride (src); - - dest_data = gdk_pixbuf_get_pixels (dest); - dest_pitch = gdk_pixbuf_get_rowstride (dest); - - dest_data += rect.y * dest_pitch + rect.x * 3; - - switch (gdk_pixbuf_get_n_channels (src)) - { - case 3: - src_data += src_y * src_pitch + src_x * 3; - - switch (opacity) - { - case 0xff: - do - { - guchar *s = src_data; - guchar *d = dest_data; - gint w = rect.w; - - do - { - d[0] = s[0]; - d[1] = s[1]; - d[2] = s[2]; - - d += 3; - s += 3; - } - while (--w); - - src_data += src_pitch; - dest_data += dest_pitch; - } - while (--rect.h); - break; - - default: - do - { - guchar *s = src_data; - guchar *d = dest_data; - gint w = rect.w; - - do - { - guint a0 = opacity; - guint a1 = 0xff - opacity; - guint a = a0 + a1; - - d[0] = (a0 * s[0] + a1 * d[0]) / a; - d[1] = (a0 * s[1] + a1 * d[1]) / a; - d[2] = (a0 * s[2] + a1 * d[2]) / a; - - d += 3; - s += 3; - } - while (--w); - - src_data += src_pitch; - dest_data += dest_pitch; - } - while (--rect.h); - break; - } - break; - - case 4: - src_data += src_y * src_pitch + src_x * 4; - - switch (opacity) - { - case 0xff: - do - { - guchar *s = src_data; - guchar *d = dest_data; - gint w = rect.w; - - do - { - switch (s[3]) - { - case 0: - break; - - case 0xff: - d[0] = s[0]; - d[1] = s[1]; - d[2] = s[2]; - break; - - default: - { - guint a0 = s[3] * 0xff; - guint a1 = 0xffff - s[3]; - guint a = a0 + a1; - - d[0] = (a0 * s[0] + a1 * d[0]) / a; - d[1] = (a0 * s[1] + a1 * d[1]) / a; - d[2] = (a0 * s[2] + a1 * d[2]) / a; - } - break; - } - - s += 4; - d += 3; - } - while (--w); - - src_data += src_pitch; - dest_data += dest_pitch; - } - while (--rect.h); - break; - - default: - do - { - guchar *s = src_data; - guchar *d = dest_data; - gint w = rect.w; - - do - { - if (s[3]) - { - guint a0 = s[3] * opacity; - guint a1 = 0xffff - opacity; - guint a = a0 + a1; - - d[0] = (a0 * s[0] + a1 * d[0]) / a; - d[1] = (a0 * s[1] + a1 * d[1]) / a; - d[2] = (a0 * s[2] + a1 * d[2]) / a; - } - - s += 4; - d += 3; - } - while (--w); - - src_data += src_pitch; - dest_data += dest_pitch; - } - while (--rect.h); - break; - } - } -} diff --git a/blib-1.1.7/gfx/bview-pixbuf.h b/blib-1.1.7/gfx/bview-pixbuf.h deleted file mode 100644 index 3e23990..0000000 --- a/blib-1.1.7/gfx/bview-pixbuf.h +++ /dev/null @@ -1,76 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2004 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#ifndef __B_VIEW_PIXBUF_H__ -#define __B_VIEW_PIXBUF_H__ - -G_BEGIN_DECLS - -#define B_TYPE_VIEW_PIXBUF (b_view_pixbuf_get_type ()) -#define B_VIEW_PIXBUF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_VIEW_PIXBUF, BViewPixbuf)) -#define B_VIEW_PIXBUF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_VIEW_PIXBUF, BViewPixbufClass)) -#define B_IS_VIEW_PIXBUF(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_VIEW_PIXBUF)) - - -typedef struct _BViewPixbufClass BViewPixbufClass; -typedef struct _BViewPixbuf BViewPixbuf; - -struct _BViewPixbufClass -{ - GObjectClass parent_class; -}; - -struct _BViewPixbuf -{ - /*< private >*/ - GObject parent_instance; - - BTheme *theme; - gint rows; - gint columns; - gint channels; - - GdkPixbuf *pixbuf; - GHashTable *images; -}; - - -GType b_view_pixbuf_get_type (void) G_GNUC_CONST; -BViewPixbuf * b_view_pixbuf_new (gint rows, - gint columns, - gint channels, - GError **error); -BViewPixbuf * b_view_pixbuf_new_theme (BTheme *theme, - gboolean image_preload, - GError **error); - -/* the view expects data with a maxval of 255 */ -const GdkPixbuf * b_view_pixbuf_render (BViewPixbuf *view, - const guchar *frame_data, - const BRectangle *clip, - GError **error); - -const GdkPixbuf * b_view_pixbuf_load_image (BViewPixbuf *view, - const gchar *filename, - GError **error); - -G_END_DECLS - -#endif /* __B_VIEW_PIXBUF_H__ */ diff --git a/blib-1.1.7/install-sh b/blib-1.1.7/install-sh deleted file mode 100755 index 6ce63b9..0000000 --- a/blib-1.1.7/install-sh +++ /dev/null @@ -1,294 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# 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 -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd=$cpprog - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "$0: no input file specified" >&2 - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d "$dst" ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "$0: $src does not exist" >&2 - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "$0: no destination specified" >&2 - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dst" ] - then - dst=$dst/`basename "$src"` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-$defaultIFS}" - -oIFS=$IFS -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS=$oIFS - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp=$pathcomp$1 - shift - - if [ ! -d "$pathcomp" ] ; - then - $mkdirprog "$pathcomp" - else - : - fi - - pathcomp=$pathcomp/ -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd "$dst" && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename "$dst"` - else - dstfile=`basename "$dst" $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename "$dst"` - else - : - fi - -# Make a couple of temp file names in the proper directory. - - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - -# Trap to clean up temp files at exit. - - trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 - trap '(exit $?); exit' 1 2 13 15 - -# Move or copy the file name to the temp name - - $doit $instcmd "$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 $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && - -# 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. - -{ - if [ -f "$dstdir/$dstfile" ] - then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || - $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || - { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit - } - else - : - fi -} && - -# Now rename the file to the real destination. - - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - -fi && - -# The final little trick to "correctly" pass the exit status to the exit trap. - -{ - (exit 0); exit -} diff --git a/blib-1.1.7/ltmain.sh b/blib-1.1.7/ltmain.sh deleted file mode 100644 index 18281bb..0000000 --- a/blib-1.1.7/ltmain.sh +++ /dev/null @@ -1,6425 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun configure. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 -# Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 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 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. - -basename="s,^.*/,,g" - -# 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 $basename` -modename="$progname" - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 - -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION=1.5.4 -TIMESTAMP=" (1.1220.2.90 2004/04/03 14:10:19) Debian$Rev: 203 $" - - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" - -##################################### -# Shell function definitions: -# This seems to be the best place for them - -# 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. -func_win32_libid () { - 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 - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | \ - sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` - if test "X$win32_nmres" = "Ximport" ; then - win32_libid_type="x86 archive import" - else - win32_libid_type="x86 archive static" - fi - 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_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 () { - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - CC_quoted="$CC_quoted $arg" - done - 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 "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; - # 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. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - CC_quoted="$CC_quoted $arg" - done - case "$@ " in - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) - # 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 - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit $EXIT_FAILURE -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi -} -# End of Shell function definitions -##################################### - -# Darwin sucks -eval std_shrext=\"$shrext_cmds\" - -# Parse our command line options once, thoroughly. -while test "$#" -gt 0 -do - arg="$1" - shift - - case $arg in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles="$execute_dlfiles $arg" - ;; - tag) - tagname="$arg" - preserve_args="${preserve_args}=$arg" - - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) - $echo "$progname: invalid tag name: $tagname" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $tagname in - CC) - # Don't test for the "default" C tag, as we know, it's there, but - # not specially marked. - ;; - *) - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then - taglist="$taglist $tagname" - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" - else - $echo "$progname: ignoring unknown tag $tagname" 1>&2 - fi - ;; - esac - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=yes - ;; - - --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - $echo - $echo "Copyright (C) 2003 Free Software Foundation, Inc." - $echo "This is free software; see the source for copying conditions. There is NO" - $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - exit $EXIT_SUCCESS - ;; - - --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" - done - exit $EXIT_SUCCESS - ;; - - --debug) - $echo "$progname: enabling shell trace mode" - set -x - preserve_args="$preserve_args $arg" - ;; - - --dry-run | -n) - run=: - ;; - - --features) - $echo "host: $host" - if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" - else - $echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - $echo "enable static libraries" - else - $echo "disable static libraries" - fi - exit $EXIT_SUCCESS - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --preserve-dup-deps) duplicate_deps="yes" ;; - - --quiet | --silent) - show=: - preserve_args="$preserve_args $arg" - ;; - - --tag) prevopt="--tag" prev=tag ;; - --tag=*) - set tag "$optarg" ${1+"$@"} - shift - prev=tag - preserve_args="$preserve_args --tag" - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE -fi - -# 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= - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 - $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 - case $nonopt in - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) - mode=link - for arg - do - case $arg in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case $mode in - # libtool compile mode - compile) - modename="$modename: compile" - # 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= - - 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) - if test -n "$libobj" ; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit $EXIT_FAILURE - fi - arg_mode=target - continue - ;; - - -static | -prefer-pic | -prefer-non-pic) - later="$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,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - lastarg="$lastarg $arg" - done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - - # Add the arguments to base_compile. - base_compile="$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. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - case $lastarg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" - ;; - esac - - base_compile="$base_compile $lastarg" - done # for arg - - case $arg_mode in - arg) - $echo "$modename: you must specify an argument for -Xcompile" - exit $EXIT_FAILURE - ;; - target) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit $EXIT_FAILURE - ;; - *) - # Get the name of the library object. - [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSifmso]' - case $libobj in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.ii) xform=ii ;; - *.class) xform=class ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; - *.for) xform=for ;; - *.java) xform=java ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case $libobj in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir= - else - xdir=$xdir/ - fi - lobj=${xdir}$objdir/$objname - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; 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 "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - 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 "$need_locks" = yes; then - until $run ln "$progpath" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; 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." - - $run $rm $removelist - exit $EXIT_FAILURE - fi - $echo $srcfile > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - - $run $rm "$libobj" "${libobj}T" - - # Create a libtool object file (analogous to a ".la" file), - # but don't create it if we're doing a dry run. - test -z "$run" && cat > ${libobj}T </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." - - $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 - $show "$mv $output_obj $lobj" - if $run $mv $output_obj $lobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the PIC object to the libtool object file. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T </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." - - $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 - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - else - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - fi - build_libtool_libs=no - build_old_libs=yes - prefer_static_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 - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test - ;; - *) qarg=$arg ;; - esac - libtool_args="$libtool_args $qarg" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case $prev in - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - else - dlprefiles="$dlprefiles $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit $EXIT_FAILURE - fi - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat $save_arg` - do -# moreargs="$moreargs $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$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 "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit $EXIT_FAILURE - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - done - else - $echo "$modename: link input file \`$save_arg' does not exist" - exit $EXIT_FAILURE - fi - arg=$save_arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit $EXIT_FAILURE - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) rpath="$rpath $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; - esac - fi - prev= - continue - ;; - xcompiler) - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" - prev= - compile_command="$compile_command $wl$qarg" - finalize_command="$finalize_command $wl$qarg" - continue - ;; - xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - 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 - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -avoid-version) - avoid_version=yes - 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 - $echo "$modename: more than one -exported-symbols argument is not allowed" - exit $EXIT_FAILURE - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - 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*) - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - ;; - esac - continue - ;; - - -L*) - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit $EXIT_FAILURE - fi - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "*) ;; - *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-mingw* | *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs -framework System" - continue - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) - deplibs="$deplibs $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # gcc -m* arguments should be passed to the linker via $compiler_flags - # in order to pass architecture information to the linker - # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo - # but this is not reliable with gcc because gcc may use -mfoo to - # select a different linker, different libraries, etc, while - # -Wl,-mfoo simply passes -mfoo to the linker. - -m*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - if test "$with_gcc" = "yes" ; then - compiler_flags="$compiler_flags $arg" - fi - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - # The PATH hackery in wrapper scripts is required on Windows - # in order for the loader to find any dlls it needs. - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit $EXIT_FAILURE - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - continue - ;; - - -static) - # 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 - ;; - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Wl,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $wl$flag" - linker_flags="$linker_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - - *.$objext) - # A standard object. - objs="$objs $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$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 "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit $EXIT_FAILURE - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - ;; - - *.$libext) - # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" - prev= - else - deplibs="$deplibs $arg" - 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. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done # argument parsing loop - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'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\" - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - # Create the object directory. - if test ! -d "$output_objdir"; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test "$status" -ne 0 && test ! -d "$output_objdir"; then - exit $status - fi - fi - - # Determine the type of output - case $output in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - case $host in - *cygwin* | *mingw* | *pw32*) - # don't eliminate duplications in $postdeps and $predeps - duplicate_compiler_generated_deps=yes - ;; - *) - duplicate_compiler_generated_deps=$duplicate_deps - ;; - 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 test "X$duplicate_deps" = "Xyes" ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - libs="$libs $deplib" - done - - if test "$linkmode" = lib; 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 test "X$duplicate_compiler_generated_deps" = "Xyes" ; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; - esac - pre_post_deps="$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 link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit $EXIT_FAILURE - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - for pass in $passes; do - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; 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 "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 - continue - fi - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` - for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; 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 "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # 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 "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if (${SED} -e '2q' $lib | - grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - library_names= - old_library= - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - *) - $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) lib="$deplib" ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - if test "$deplibs_check_method" != pass_all; then - $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 used here." - else - $echo - $echo "*** Warning: Linking the shared library $output against the" - $echo "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - - # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit $EXIT_FAILURE - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; 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. - dlprefiles="$dlprefiles $lib $dependency_libs" - else - newdlfiles="$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 - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 - abs_ladir="$ladir" - fi - ;; - esac - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - $echo "$modename: warning: library \`$lib' was moved." 1>&2 - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$libdir" - absdir="$libdir" - fi - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; 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 "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - 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 "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - 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 - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes - fi - # This is a shared library - - # Warn about portability, can't link against -module's on - # some systems (darwin) - if test "$shouldnotlink" = yes && test "$pass" = link ; then - $echo - if test "$linkmode" = prog; 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 "$linkmode" = lib && - test "$hardcode_into_libs" = yes; 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 "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - realname="$2" - shift; 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*) - major=`expr $current - $age` - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - soname=`$echo $soroot | ${SED} -e 's/^.*\///'` - newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - $show "extracting exported symbol list from \`$soname'" - save_ifs="$IFS"; IFS='~' - cmds=$extract_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - save_ifs="$IFS"; IFS='~' - cmds=$old_archive_from_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - 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 "$linkmode" = prog || test "$mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5* ) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a module then we can not link against - # it, someone is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; 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 - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case "$libdir" in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit $EXIT_FAILURE - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; 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 "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; 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 - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; 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 "$linkmode" = prog; 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 "$hardcode_direct" != unsupported; 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 "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; 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 can not 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 "$module" = yes; 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 "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; - esac;; - *) temp_deplibs="$temp_deplibs $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - case $deplib in - -L*) path="$deplib" ;; - *.la) - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$deplib" && dir="." - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - fi - ;; - esac - if grep "^installed=no" $deplib > /dev/null; then - path="$absdir/$objdir" - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - if test "$absdir" != "$libdir"; then - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi - path="$absdir" - fi - depdepl= - case $host in - *-*-darwin*) - # we do not want to link against static libs, - # but need to link against shared - 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 "$path/$depdepl" ; then - depdepl="$path/$depdepl" - fi - # do not add paths which are already there - case " $newlib_search_path " in - *" $path "*) ;; - *) newlib_search_path="$newlib_search_path $path";; - esac - fi - path="" - ;; - *) - path="-L$path" - ;; - esac - ;; - -l*) - case $host in - *-*-darwin*) - # Again, we only want to link against shared libraries - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` - for tmp in $newlib_search_path ; do - if test -f "$tmp/lib$tmp_libs.dylib" ; then - eval depdepl="$tmp/lib$tmp_libs.dylib" - break - fi - done - path="" - ;; - *) continue ;; - esac - ;; - *) continue ;; - esac - case " $deplibs " in - *" $depdepl "*) ;; - *) deplibs="$depdepl $deplibs" ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$deplibs $path" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # 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 "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_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 "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # 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 - tmp_libs="$tmp_libs $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi - - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - objs="$objs$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit $EXIT_FAILURE - else - $echo - $echo "*** Warning: Linking the shared library $output against the non-libtool" - $echo "*** objects $objs is not portable!" - libobjs="$libobjs $objs" - fi - fi - - if test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 - fi - - set dummy $rpath - if test "$#" -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; 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 - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - IFS="$save_ifs" - - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # 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="$2" - number_minor="$3" - number_revision="$4" - # - # 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 - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows) - current=`expr $number_major + $number_minor` - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - current=`expr $number_major + $number_minor - 1` - age="$number_minor" - revision="$number_minor" - ;; - esac - ;; - no) - current="$2" - revision="$3" - age="$4" - ;; - 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]) ;; - *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $revision in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $age in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - if test "$age" -gt "$current"; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - 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 - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - minor_current=`expr $current + 1` - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current"; - ;; - - irix | nonstopux) - major=`expr $current - $age + 1` - - 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 "$loop" -ne 0; do - iface=`expr $revision - $loop` - loop=`expr $loop - 1` - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - osf) - major=.`expr $current - $age` - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - major=`expr $current - $age` - versuffix="-$major" - ;; - - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE - ;; - 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 "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - fi - - if test "$mode" != relink; 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) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - removelist="$removelist $p" - ;; - *) ;; - esac - done - if test -n "$removelist"; then - $show "${rm}r $removelist" - $run ${rm}r $removelist - fi - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - for path in $notinst_path; do - lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` - deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` - dependency_libs=`$echo "$dependency_libs " | ${SED} -e '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 - temp_xrpath="$temp_xrpath -R$libdir" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; 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 "*) ;; - *) dlfiles="$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 "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - deplibs="$deplibs -framework System" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - deplibs="$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. - $rm conftest.c - cat > conftest.c </dev/null` - 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 "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$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 - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - newdeplibs="$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 - newdeplibs="$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 - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` - done - fi - if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ - | grep . >/dev/null; then - $echo - if test "X$deplibs_check_method" = "Xnone"; 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 - fi - ;; - 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 is the System framework - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; 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 "$build_old_libs" = no; 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 "$allow_undefined" = no; 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 "$build_old_libs" = no; 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 - - # 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 "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$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" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$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 "$mode" != relink && 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 - realname="$2" - shift; 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" - for link - do - linknames="$linknames $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - if len=`expr "X$cmd" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - $show "$cmd" - $run eval "$cmd" || exit $? - skipped_export=false - else - # The command line is too long to execute in one step. - $show "using reloadable object file for export list..." - skipped_export=: - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex"; then - $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" - $run eval '$mv "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - tmp_deplibs="$tmp_deplibs $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && 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 "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise. - $echo "creating reloadable object files..." - - # 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 - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - delfiles= - last_robj= - k=1 - output=$output_objdir/$save_output-${k}.$objext - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - eval test_cmds=\"$reload_cmds $objlist $last_robj\" - if test "X$objlist" = X || - { len=`expr "X$test_cmds" : ".*"` && - test "$len" -le "$max_cmd_len"; }; then - objlist="$objlist $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" - else - # All subsequent reloadable object files will link in - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" - fi - last_robj=$output_objdir/$save_output-${k}.$objext - k=`expr $k + 1` - output=$output_objdir/$save_output-${k}.$objext - objlist=$obj - len=1 - 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~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - - if ${skipped_export-false}; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - libobjs=$output - # Append the command to create the export file. - eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" - fi - - # Set up a command to remove the reloadale object files - # after they are used. - i=0 - while test "$i" -lt "$k" - do - i=`expr $i + 1` - delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" - done - - $echo "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" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - 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\" - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && 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 - - # Append the command to remove the reloadable object files - # to the just-reset $cmds. - eval cmds=\"\$cmds~\$rm $delfiles\" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" - $run 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 "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case $output in - *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit $EXIT_FAILURE - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $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= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${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" - # $run eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; - esac - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi - - if test "$preload" = yes; then - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && - test "$dlopen_self_static" = unknown; then - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." - fi - fi - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - case $host in - *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - if test "$tagname" = CXX ; then - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - fi - ;; - esac - - compile_command="$compile_command $compile_deplibs" - finalize_command="$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 "*) ;; - *) finalize_rpath="$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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - 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"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) finalize_perm_rpath="$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 "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - - dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - fi - fi - - if test -n "$dlsyms"; then - case $dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${outputname}.nm" - - $show "$rm $nlist ${nlist}S ${nlist}T" - $run $rm "$nlist" "${nlist}S" "${nlist}T" - - # Parse the name list into a source file. - $show "creating $output_objdir/$dlsyms" - - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - $show "generating symbol list for \`$output'" - - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - for arg in $progfiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - if test -n "$export_symbols_regex"; then - $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$output.exp" - $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - else - $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' - $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` - $run eval '$echo ": $name " >> "$nlist"' - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # 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/$dlsyms"' - else - $echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] = -{\ -" - - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" - - $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - fi - - pic_flag_for_symtable= - 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*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; - esac;; - *-*-hpux*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag";; - esac - esac - - # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit $EXIT_FAILURE - ;; - 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 "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi - - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - status=$? - - # Delete the generated files. - if test -n "$dlsyms"; then - $show "$rm $output_objdir/${outputname}S.${objext}" - $run $rm "$output_objdir/${outputname}S.${objext}" - fi - - exit $status - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - 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 - rpath="$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 - rpath="$rpath$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; 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 "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $run $rm $output - # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname - - $show "$link_command" - $run eval "$link_command" || exit $? - - # Now create the wrapper script. - $show "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}\" || 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 - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - cwrappersource=`$echo ${objdir}/lt-${output}.c` - cwrapper=`$echo ${output}.exe` - $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - cat > $cwrappersource <> $cwrappersource<<"EOF" -#include -#include -#include -#include -#include -#include - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef DIR_SEPARATOR -#define DIR_SEPARATOR '/' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -#define HAVE_DOS_BASED_FILE_SYSTEM -#ifndef DIR_SEPARATOR_2 -#define DIR_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 */ - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -const char *program_name = NULL; - -void * xmalloc (size_t num); -char * xstrdup (const char *string); -char * basename (const char *name); -char * fnqualify(const char *path); -char * strendzap(char *str, const char *pat); -void lt_fatal (const char *message, ...); - -int -main (int argc, char *argv[]) -{ - char **newargz; - int i; - - program_name = (char *) xstrdup ((char *) basename (argv[0])); - newargz = XMALLOC(char *, argc+2); -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" - newargz[1] = fnqualify(argv[0]); - /* we know the script has the same name, without the .exe */ - /* so make sure newargz[1] doesn't end in .exe */ - strendzap(newargz[1],".exe"); - for (i = 1; i < argc; i++) - newargz[i+1] = xstrdup(argv[i]); - newargz[argc+1] = NULL; -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" -} - -void * -xmalloc (size_t num) -{ - void * p = (void *) malloc (num); - if (!p) - lt_fatal ("Memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL -; -} - -char * -basename (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha (name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return (char *) base; -} - -char * -fnqualify(const char *path) -{ - size_t size; - char *p; - char tmp[LT_PATHMAX + 1]; - - assert(path != NULL); - - /* Is it qualified already? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha (path[0]) && path[1] == ':') - return xstrdup (path); -#endif - if (IS_DIR_SEPARATOR (path[0])) - return xstrdup (path); - - /* prepend the current directory */ - /* doesn't handle '~' */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ - p = XMALLOC(char, size); - sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); - return p; -} - -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 (strcmp(str, pat) == 0) - *str = '\0'; - } - return str; -} - -static void -lt_error_core (int exit_status, const char * mode, - const char * message, va_list ap) -{ - fprintf (stderr, "%s: %s: ", program_name, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); - va_end (ap); -} -EOF - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. - $run $LTCC -s -o $cwrapper $cwrappersource - ;; - esac - $rm $output - trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 - - $echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# 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. -Xsed='${SED} -e 1s/^X//' -sed_quote_subst='$sed_quote_subst' - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variable: - 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 - echo=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $echo >> $output "\ - 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 >> $output "\ - - # 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 $EXIT_FAILURE - fi - fi - - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $rm \"\$progdir/\$program\"; - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $rm \"\$progdir/\$file\" - fi" - else - $echo >> $output "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $echo >> $output "\ - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # 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 \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - - export $shlibpath_var -" - fi - - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $echo >> $output "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) - $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} -" - ;; - - *) - $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} -" - ;; - esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit $EXIT_FAILURE - 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 $EXIT_FAILURE - fi -fi\ -" - chmod +x $output - fi - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` - done - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - eval cmds=\"$old_archive_cmds\" - - if len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - $echo "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - # GNU ar 2.10+ was changed to match POSIX; thus no paths are - # encoded into archives. This makes 'ar r' malfunction in - # this piecewise linking case whenever conflicting object - # names appear in distinct ar calls; check, warn and compensate. - if (for obj in $save_oldobjs - do - $echo "X$obj" | $Xsed -e 's%^.*/%%' - done | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 - $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 - AR_FLAGS=cq - fi - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - for obj in $save_oldobjs - do - oldobjs="$objlist $obj" - objlist="$objlist $obj" - eval test_cmds=\"$old_archive_cmds\" - if len=`expr "X$test_cmds" : ".*"` && - test "$len" -le "$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= - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - eval cmd=\"$cmd\" - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "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}\" || 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 - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; 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 "X$relink_command" | $Xsed -e "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - - # Only create the output if not a dry run. - if test -z "$run"; then - for installed in no yes; do - if test "$installed" = yes; 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) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdependency_libs="$newdependency_libs $libdir/$name" - ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - for lib in $dlfiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdlfiles="$newdlfiles $libdir/$name" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdlprefiles="$newdlprefiles $libdir/$name" - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlfiles="$newdlfiles $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlprefiles="$newdlprefiles $abs" - done - dlprefiles="$newdlprefiles" - fi - $rm $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac - $echo > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# 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' - -# Libraries that this one depends upon. -dependency_libs='$dependency_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 "$installed" = no && test "$need_relink" = yes; then - $echo >> $output "\ -relink_command=\"$relink_command\"" - fi - done - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac - exit $EXIT_SUCCESS - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg="$nonopt" - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest="$arg" - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; - -s) - stripme=" -s" - continue - ;; - -*) ;; - - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest="$arg" - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test "$#" -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - 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. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - library_names= - old_library= - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ - test "X$dir" = "X$file/" && dir= - dir="$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 "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. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit $EXIT_FAILURE - fi - - 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 - - $echo "$modename: warning: relinking \`$file'" 1>&2 - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit $EXIT_FAILURE - fi - fi - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$srcname $destdir/$realname" - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run eval "$striplib $destdir/$realname" || exit $? - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - cmds=$postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$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 - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run 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 - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - 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 - file=`$echo $file|${SED} 's,.exe$,,'` - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin*|*mingw*) - wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` - ;; - *) - wrapper=$file - ;; - esac - if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then - notinst_deplibs= - relink_command= - - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit $EXIT_FAILURE - fi - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - relink_command= - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir="/tmp" - test -n "$TMPDIR" && tmpdir="$TMPDIR" - tmpdir="$tmpdir/libtool-$$" - save_umask=`umask` - umask 0077 - if $mkdir "$tmpdir"; then - umask $save_umask - else - umask $save_umask - $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 - continue - fi - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` - - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - ${rm}r "$tmpdir" - continue - fi - file="$outputname" - else - $echo "$modename: warning: cannot relink \`$file'" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyways - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` - ;; - esac - ;; - esac - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && ${rm}r "$tmpdir" - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$old_striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - cmds=$old_postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - cmds=$finish_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" = : && exit $EXIT_SUCCESS - - $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" - $echo "more information, such as the ld(1) and ld.so(8) manual pages." - $echo "----------------------------------------------------------------------" - exit $EXIT_SUCCESS - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit $EXIT_FAILURE - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - dir= - case $file in - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit $EXIT_FAILURE - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - 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 - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # 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 - fi - ;; - - # libtool clean and uninstall mode - clean | uninstall) - modename="$modename: $mode" - rm="$nonopt" - files= - rmforce= - 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) rm="$rm $arg"; rmforce=yes ;; - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - rmdirs= - - origobjdir="$objdir" - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$file"; then - dir=. - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then - case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; - 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 test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - - if test "$mode" = uninstall; then - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - cmds=$postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - cmds=$old_postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - # FIXME: should reinstall the best remaining shared library. - fi - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - - # Read the .lo file - . $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" \ - && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" \ - && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$mode" = clean ; then - noexename=$name - case $file in - *.exe) - file=`$echo $file|${SED} 's,.exe$,,'` - noexename=`$echo $name|${SED} 's,.exe$,,'` - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$noexename - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles || exit_status=1 - done - objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - $show "rmdir $dir" - $run rmdir $dir >/dev/null 2>&1 - fi - done - - exit $exit_status - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - fi -fi # test -z "$show_help" - -if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit $EXIT_FAILURE -fi - -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --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 - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - --version print version information - -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. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE. - -Report bugs to ." - exit $EXIT_SUCCESS - ;; - -clean) - $echo \ -"Usage: $modename [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: $modename [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 - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static linking - -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: $modename [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: $modename [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: $modename [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 rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [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 - -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 - -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 - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -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: $modename [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." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; -esac - -$echo -$echo "Try \`$modename --help' for more information about other modes." - -exit $EXIT_SUCCESS - -# The TAGs below are defined such that we never get into a situation -# in which 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: diff --git a/blib-1.1.7/missing b/blib-1.1.7/missing deleted file mode 100755 index fc54c64..0000000 --- a/blib-1.1.7/missing +++ /dev/null @@ -1,336 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. -# Originally 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, 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. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/blib-1.1.7/mkinstalldirs b/blib-1.1.7/mkinstalldirs deleted file mode 100755 index d2d5f21..0000000 --- a/blib-1.1.7/mkinstalldirs +++ /dev/null @@ -1,111 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -errstatus=0 -dirmode="" - -usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" 1>&2 - exit 0 - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -case $dirmode in - '') - if mkdir -p -- . 2>/dev/null; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - fi - ;; - *) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - fi - ;; -esac - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# End: -# mkinstalldirs ends here diff --git a/blib-1.1.7/modules/Makefile.am b/blib-1.1.7/modules/Makefile.am deleted file mode 100644 index 9fd726a..0000000 --- a/blib-1.1.7/modules/Makefile.am +++ /dev/null @@ -1,84 +0,0 @@ -## Makefile.am for blib/modules -## Process this file with automake to produce Makefile.in - -libdir = @MODULEPATH@ - -AM_CPPFLAGS = \ - $(CFLAGS) \ - -DG_DISABLE_DEPRECATED - -INCLUDES = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ - -if BUILD_MODULES -lib_LTLIBRARIES = \ - libbbreakout.la \ - libbclock.la \ - libbcountdown.la \ - libbdebug.la \ - libbdropout.la \ - libbfire.la \ - libbmatrix.la \ - libbpacman.la \ - libbpong.la \ - libbproxy.la \ - libbpushline.la \ - libbqix.la \ - libbretris.la \ - libbsnake.la \ - libbtetris.la \ - libbtext.la \ - libbxxo.la -endif - -libbbreakout_la_SOURCES = bbreakout.c -libbbreakout_la_LDFLAGS = -avoid-version -module - -libbclock_la_SOURCES = bclock.c digits.h -libbclock_la_LDFLAGS = -avoid-version -module - -libbcountdown_la_SOURCES = bcountdown.c digits.h -libbcountdown_la_LDFLAGS = -avoid-version -module - -libbdebug_la_SOURCES = bdebug.c digits.h -libbdebug_la_LDFLAGS = -avoid-version -module - -libbfire_la_SOURCES = bfire.c -libbfire_la_LDFLAGS = -avoid-version -module - -libbdropout_la_SOURCES = bdropout.c -libbdropout_la_LDFLAGS = -avoid-version -module - -libbmatrix_la_SOURCES = bmatrix.c -libbmatrix_la_LDFLAGS = -avoid-version -module - -libbpacman_la_SOURCES = bpacman.c -libbpacman_la_LDFLAGS = -avoid-version -module - -libbpong_la_SOURCES = bpong.c digits.h -libbpong_la_LDFLAGS = -avoid-version -module - -libbproxy_la_SOURCES = bproxy.c -libbproxy_la_LDFLAGS = -avoid-version -module - -libbpushline_la_SOURCES = bpushline.c -libbpushline_la_LDFLAGS = -avoid-version -module - -libbqix_la_SOURCES = bqix.c -libbqix_la_LDFLAGS = -avoid-version -module - -libbretris_la_SOURCES = bretris.c -libbretris_la_LDFLAGS = -avoid-version -module - -libbsnake_la_SOURCES = bsnake.c -libbsnake_la_LDFLAGS = -avoid-version -module - -libbtetris_la_SOURCES = btetris.c -libbtetris_la_LDFLAGS = -avoid-version -module - -libbtext_la_SOURCES = btext.c -libbtext_la_LDFLAGS = -avoid-version -module - -libbxxo_la_SOURCES = bxxo.c -libbxxo_la_LDFLAGS = -avoid-version -module diff --git a/blib-1.1.7/modules/Makefile.in b/blib-1.1.7/modules/Makefile.in deleted file mode 100644 index 950347d..0000000 --- a/blib-1.1.7/modules/Makefile.in +++ /dev/null @@ -1,680 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ - -libdir = @MODULEPATH@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -AM_CPPFLAGS = \ - $(CFLAGS) \ - -DG_DISABLE_DEPRECATED - - -INCLUDES = \ - -I$(top_srcdir) \ - @GLIB_CFLAGS@ - - -@BUILD_MODULES_TRUE@lib_LTLIBRARIES = \ -@BUILD_MODULES_TRUE@ libbbreakout.la \ -@BUILD_MODULES_TRUE@ libbclock.la \ -@BUILD_MODULES_TRUE@ libbcountdown.la \ -@BUILD_MODULES_TRUE@ libbdebug.la \ -@BUILD_MODULES_TRUE@ libbdropout.la \ -@BUILD_MODULES_TRUE@ libbfire.la \ -@BUILD_MODULES_TRUE@ libbmatrix.la \ -@BUILD_MODULES_TRUE@ libbpacman.la \ -@BUILD_MODULES_TRUE@ libbpong.la \ -@BUILD_MODULES_TRUE@ libbproxy.la \ -@BUILD_MODULES_TRUE@ libbpushline.la \ -@BUILD_MODULES_TRUE@ libbqix.la \ -@BUILD_MODULES_TRUE@ libbretris.la \ -@BUILD_MODULES_TRUE@ libbsnake.la \ -@BUILD_MODULES_TRUE@ libbtetris.la \ -@BUILD_MODULES_TRUE@ libbtext.la \ -@BUILD_MODULES_TRUE@ libbxxo.la - - -libbbreakout_la_SOURCES = bbreakout.c -libbbreakout_la_LDFLAGS = -avoid-version -module - -libbclock_la_SOURCES = bclock.c digits.h -libbclock_la_LDFLAGS = -avoid-version -module - -libbcountdown_la_SOURCES = bcountdown.c digits.h -libbcountdown_la_LDFLAGS = -avoid-version -module - -libbdebug_la_SOURCES = bdebug.c digits.h -libbdebug_la_LDFLAGS = -avoid-version -module - -libbfire_la_SOURCES = bfire.c -libbfire_la_LDFLAGS = -avoid-version -module - -libbdropout_la_SOURCES = bdropout.c -libbdropout_la_LDFLAGS = -avoid-version -module - -libbmatrix_la_SOURCES = bmatrix.c -libbmatrix_la_LDFLAGS = -avoid-version -module - -libbpacman_la_SOURCES = bpacman.c -libbpacman_la_LDFLAGS = -avoid-version -module - -libbpong_la_SOURCES = bpong.c digits.h -libbpong_la_LDFLAGS = -avoid-version -module - -libbproxy_la_SOURCES = bproxy.c -libbproxy_la_LDFLAGS = -avoid-version -module - -libbpushline_la_SOURCES = bpushline.c -libbpushline_la_LDFLAGS = -avoid-version -module - -libbqix_la_SOURCES = bqix.c -libbqix_la_LDFLAGS = -avoid-version -module - -libbretris_la_SOURCES = bretris.c -libbretris_la_LDFLAGS = -avoid-version -module - -libbsnake_la_SOURCES = bsnake.c -libbsnake_la_LDFLAGS = -avoid-version -module - -libbtetris_la_SOURCES = btetris.c -libbtetris_la_LDFLAGS = -avoid-version -module - -libbtext_la_SOURCES = btext.c -libbtext_la_LDFLAGS = -avoid-version -module - -libbxxo_la_SOURCES = bxxo.c -libbxxo_la_LDFLAGS = -avoid-version -module -subdir = modules -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(lib_LTLIBRARIES) - -libbbreakout_la_LIBADD = -am_libbbreakout_la_OBJECTS = bbreakout.lo -libbbreakout_la_OBJECTS = $(am_libbbreakout_la_OBJECTS) -libbclock_la_LIBADD = -am_libbclock_la_OBJECTS = bclock.lo -libbclock_la_OBJECTS = $(am_libbclock_la_OBJECTS) -libbcountdown_la_LIBADD = -am_libbcountdown_la_OBJECTS = bcountdown.lo -libbcountdown_la_OBJECTS = $(am_libbcountdown_la_OBJECTS) -libbdebug_la_LIBADD = -am_libbdebug_la_OBJECTS = bdebug.lo -libbdebug_la_OBJECTS = $(am_libbdebug_la_OBJECTS) -libbdropout_la_LIBADD = -am_libbdropout_la_OBJECTS = bdropout.lo -libbdropout_la_OBJECTS = $(am_libbdropout_la_OBJECTS) -libbfire_la_LIBADD = -am_libbfire_la_OBJECTS = bfire.lo -libbfire_la_OBJECTS = $(am_libbfire_la_OBJECTS) -libbmatrix_la_LIBADD = -am_libbmatrix_la_OBJECTS = bmatrix.lo -libbmatrix_la_OBJECTS = $(am_libbmatrix_la_OBJECTS) -libbpacman_la_LIBADD = -am_libbpacman_la_OBJECTS = bpacman.lo -libbpacman_la_OBJECTS = $(am_libbpacman_la_OBJECTS) -libbpong_la_LIBADD = -am_libbpong_la_OBJECTS = bpong.lo -libbpong_la_OBJECTS = $(am_libbpong_la_OBJECTS) -libbproxy_la_LIBADD = -am_libbproxy_la_OBJECTS = bproxy.lo -libbproxy_la_OBJECTS = $(am_libbproxy_la_OBJECTS) -libbpushline_la_LIBADD = -am_libbpushline_la_OBJECTS = bpushline.lo -libbpushline_la_OBJECTS = $(am_libbpushline_la_OBJECTS) -libbqix_la_LIBADD = -am_libbqix_la_OBJECTS = bqix.lo -libbqix_la_OBJECTS = $(am_libbqix_la_OBJECTS) -libbretris_la_LIBADD = -am_libbretris_la_OBJECTS = bretris.lo -libbretris_la_OBJECTS = $(am_libbretris_la_OBJECTS) -libbsnake_la_LIBADD = -am_libbsnake_la_OBJECTS = bsnake.lo -libbsnake_la_OBJECTS = $(am_libbsnake_la_OBJECTS) -libbtetris_la_LIBADD = -am_libbtetris_la_OBJECTS = btetris.lo -libbtetris_la_OBJECTS = $(am_libbtetris_la_OBJECTS) -libbtext_la_LIBADD = -am_libbtext_la_OBJECTS = btext.lo -libbtext_la_OBJECTS = $(am_libbtext_la_OBJECTS) -libbxxo_la_LIBADD = -am_libbxxo_la_OBJECTS = bxxo.lo -libbxxo_la_OBJECTS = $(am_libbxxo_la_OBJECTS) - -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bbreakout.Plo ./$(DEPDIR)/bclock.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bcountdown.Plo ./$(DEPDIR)/bdebug.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bdropout.Plo ./$(DEPDIR)/bfire.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmatrix.Plo ./$(DEPDIR)/bpacman.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bpong.Plo ./$(DEPDIR)/bproxy.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bpushline.Plo ./$(DEPDIR)/bqix.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bretris.Plo ./$(DEPDIR)/bsnake.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/btetris.Plo ./$(DEPDIR)/btext.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/bxxo.Plo -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ - $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DIST_SOURCES = $(libbbreakout_la_SOURCES) $(libbclock_la_SOURCES) \ - $(libbcountdown_la_SOURCES) $(libbdebug_la_SOURCES) \ - $(libbdropout_la_SOURCES) $(libbfire_la_SOURCES) \ - $(libbmatrix_la_SOURCES) $(libbpacman_la_SOURCES) \ - $(libbpong_la_SOURCES) $(libbproxy_la_SOURCES) \ - $(libbpushline_la_SOURCES) $(libbqix_la_SOURCES) \ - $(libbretris_la_SOURCES) $(libbsnake_la_SOURCES) \ - $(libbtetris_la_SOURCES) $(libbtext_la_SOURCES) \ - $(libbxxo_la_SOURCES) -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am -SOURCES = $(libbbreakout_la_SOURCES) $(libbclock_la_SOURCES) $(libbcountdown_la_SOURCES) $(libbdebug_la_SOURCES) $(libbdropout_la_SOURCES) $(libbfire_la_SOURCES) $(libbmatrix_la_SOURCES) $(libbpacman_la_SOURCES) $(libbpong_la_SOURCES) $(libbproxy_la_SOURCES) $(libbpushline_la_SOURCES) $(libbqix_la_SOURCES) $(libbretris_la_SOURCES) $(libbsnake_la_SOURCES) $(libbtetris_la_SOURCES) $(libbtext_la_SOURCES) $(libbxxo_la_SOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -libLTLIBRARIES_INSTALL = $(INSTALL) -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libdir) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ - $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ - else :; fi; \ - done - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ - echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ - $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" = "$$p" && dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libbbreakout.la: $(libbbreakout_la_OBJECTS) $(libbbreakout_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbbreakout_la_LDFLAGS) $(libbbreakout_la_OBJECTS) $(libbbreakout_la_LIBADD) $(LIBS) -libbclock.la: $(libbclock_la_OBJECTS) $(libbclock_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbclock_la_LDFLAGS) $(libbclock_la_OBJECTS) $(libbclock_la_LIBADD) $(LIBS) -libbcountdown.la: $(libbcountdown_la_OBJECTS) $(libbcountdown_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbcountdown_la_LDFLAGS) $(libbcountdown_la_OBJECTS) $(libbcountdown_la_LIBADD) $(LIBS) -libbdebug.la: $(libbdebug_la_OBJECTS) $(libbdebug_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbdebug_la_LDFLAGS) $(libbdebug_la_OBJECTS) $(libbdebug_la_LIBADD) $(LIBS) -libbdropout.la: $(libbdropout_la_OBJECTS) $(libbdropout_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbdropout_la_LDFLAGS) $(libbdropout_la_OBJECTS) $(libbdropout_la_LIBADD) $(LIBS) -libbfire.la: $(libbfire_la_OBJECTS) $(libbfire_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbfire_la_LDFLAGS) $(libbfire_la_OBJECTS) $(libbfire_la_LIBADD) $(LIBS) -libbmatrix.la: $(libbmatrix_la_OBJECTS) $(libbmatrix_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbmatrix_la_LDFLAGS) $(libbmatrix_la_OBJECTS) $(libbmatrix_la_LIBADD) $(LIBS) -libbpacman.la: $(libbpacman_la_OBJECTS) $(libbpacman_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbpacman_la_LDFLAGS) $(libbpacman_la_OBJECTS) $(libbpacman_la_LIBADD) $(LIBS) -libbpong.la: $(libbpong_la_OBJECTS) $(libbpong_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbpong_la_LDFLAGS) $(libbpong_la_OBJECTS) $(libbpong_la_LIBADD) $(LIBS) -libbproxy.la: $(libbproxy_la_OBJECTS) $(libbproxy_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbproxy_la_LDFLAGS) $(libbproxy_la_OBJECTS) $(libbproxy_la_LIBADD) $(LIBS) -libbpushline.la: $(libbpushline_la_OBJECTS) $(libbpushline_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbpushline_la_LDFLAGS) $(libbpushline_la_OBJECTS) $(libbpushline_la_LIBADD) $(LIBS) -libbqix.la: $(libbqix_la_OBJECTS) $(libbqix_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbqix_la_LDFLAGS) $(libbqix_la_OBJECTS) $(libbqix_la_LIBADD) $(LIBS) -libbretris.la: $(libbretris_la_OBJECTS) $(libbretris_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbretris_la_LDFLAGS) $(libbretris_la_OBJECTS) $(libbretris_la_LIBADD) $(LIBS) -libbsnake.la: $(libbsnake_la_OBJECTS) $(libbsnake_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbsnake_la_LDFLAGS) $(libbsnake_la_OBJECTS) $(libbsnake_la_LIBADD) $(LIBS) -libbtetris.la: $(libbtetris_la_OBJECTS) $(libbtetris_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbtetris_la_LDFLAGS) $(libbtetris_la_OBJECTS) $(libbtetris_la_LIBADD) $(LIBS) -libbtext.la: $(libbtext_la_OBJECTS) $(libbtext_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbtext_la_LDFLAGS) $(libbtext_la_OBJECTS) $(libbtext_la_LIBADD) $(LIBS) -libbxxo.la: $(libbxxo_la_OBJECTS) $(libbxxo_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libbxxo_la_LDFLAGS) $(libbxxo_la_OBJECTS) $(libbxxo_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bbreakout.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bclock.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bcountdown.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdebug.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdropout.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bfire.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmatrix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpacman.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpong.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bproxy.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpushline.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bqix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bretris.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsnake.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btetris.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btext.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bxxo.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` - -.c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(LTLIBRARIES) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(libdir) -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-libLTLIBRARIES - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -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-info-am uninstall-libLTLIBRARIES - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am \ - install-libLTLIBRARIES install-man 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 uninstall uninstall-am uninstall-info-am \ - uninstall-libLTLIBRARIES - -# 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: diff --git a/blib-1.1.7/modules/bbreakout.c b/blib-1.1.7/modules/bbreakout.c deleted file mode 100644 index 7ead092..0000000 --- a/blib-1.1.7/modules/bbreakout.c +++ /dev/null @@ -1,795 +0,0 @@ -/* BBreakout: Breakout module for Blinkenlights - * - * Copyright (c) 2002 1stein <1stein@1stein.no-ip.com> - * - * based on Test implementation for a BModule by the Blinkenlights Crew - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include - -#define BBreakoutVerMaj 1 -#define BBreakoutVerMin 0 -#define BBreakoutVerRev 0 - -//minimum size and color count of display -#define BBreakoutSizeXMin 18 -#define BBreakoutSizeYMin 15 -#define BBreakoutColorCntMin 4 -//minimum number of free pixel rows over player -#define BBreakoutFreeRowsMin 3 -//size of stones -#define BBreakoutStoneSizeX 3 -#define BBreakoutStoneSizeY 1 -//number of lives for player -#define BBreakoutLives 5 -//speed of game -#define BBreakoutTicks 120 -//number of ticks player is dead after missing a ball -#define BBreakoutDeadTime 10 - -#define BBreakoutAutoStart TRUE - -//the colors -#define BBreakoutColorEmpty( MaxColor ) (0) -#define BBreakoutColorStone1( MaxColor ) ((MaxColor) / 2) -#define BBreakoutColorStone2( MaxColor ) ((MaxColor) * 3 / 4) -#define BBreakoutColorStone3( MaxColor ) (MaxColor) -#define BBreakoutColorBall( MaxColor ) (MaxColor) -#define BBreakoutColorPlayerDead( MaxColor ) ((MaxColor) / 2) -#define BBreakoutColorPlayerDeadBlink( MaxColor ) ((MaxColor) / 4) -#define BBreakoutColorPlayerAlive( MaxColor ) ((MaxColor) * 3 / 4) - -#ifdef BREAKOUT_DEBUG -#define dbg_print g_print -#else -static inline void -dbg_print (char * Fmt, ...) -{ -} -#endif - -#define B_TYPE_BREAKOUT_MODULE (b_type_breakout_module) -#define B_BREAKOUT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_BREAKOUT_MODULE, BBreakoutModule)) -#define B_BREAKOUT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_BREAKOUT_MODULE, BBreakoutModuleClass)) -#define B_IS_BREAKOUT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_BREAKOUT_MODULE)) - -typedef struct _BBreakoutModule BBreakoutModule; -typedef struct _BBreakoutModuleClass BBreakoutModuleClass; - -struct _BBreakoutModule -{ - BModule parent_instance; - - int MaxColor; //maximum color value - int FreeRows; //number of free pixel rows over player - int StoneCntX, StoneCntY; //number of stones in field - int StoneSizeX, StoneSizeY; //size of stone area of game-field - int SizeX, SizeY; //size of game-field - int OfsX, OfsY; //offset of top left corner of game-field - int PlayerSizeX, PlayerPosY; //x-size and y-position of player - int PlayerPosXMax, PlayerStepX; //maximum x-position and x-step-size of player - int * * ppStones; //two-dimensional array with stones - int StoneCnt; //number of stones left in game - int Lives; //rest of player's lives - int DeadCnt; //number of ticks player is dead, 0 if player is alive - int PlayerPosX; //x-position of (left corner of) player - int BallActive; //!0 if ball is flying, 0 if ball is at player - int BallPosX, BallPosY; //position of ball (if ball is flying) - int BallDirX, BallDirY; //direction of ball (if ball is flying) - - int player_device_id; -}; - -struct _BBreakoutModuleClass -{ - BModuleClass parent_class; -}; -static GType b_breakout_module_get_type (GTypeModule *module); -static void b_breakout_module_class_init (BBreakoutModuleClass *klass); -static void b_breakout_module_init (BBreakoutModule *module); -static gboolean b_breakout_module_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_breakout_module_prepare (BModule *module, - GError **error); -static void b_breakout_module_relax (BModule *module); -static void b_breakout_module_start (BModule *module); -static void b_breakout_module_event (BModule *module, - BModuleEvent *event); -static gint b_breakout_module_tick (BModule *module); -static void b_breakout_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - - -static GType b_type_breakout_module = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule * module) -{ - b_breakout_module_get_type (module); - - return TRUE; -} - -GType -b_breakout_module_get_type (GTypeModule * module) -{ - if (!b_type_breakout_module) - { - static const GTypeInfo breakout_module_info = { - sizeof (BBreakoutModuleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_breakout_module_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BBreakoutModule), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_breakout_module_init, - }; - - /* !!!!!!!!! The name given in the next function MUST be unique! */ - - b_type_breakout_module = g_type_module_register_type (module, - B_TYPE_MODULE, - "BBreakout", - &breakout_module_info, - 0); - } - - return b_type_breakout_module; -} - -//output current picture -void -BBreakoutOutput (BBreakoutModule *pBreakoutModule) -{ - int OfsX, OfsY, X, Y, X1, Y1, Y2, Color; - - //empty the screen - b_module_fill ((BModule *) pBreakoutModule, - BBreakoutColorEmpty (pBreakoutModule->MaxColor)); - - //get offset - OfsX = pBreakoutModule->OfsX; - OfsY = pBreakoutModule->OfsY; - - //draw stones - for (Y = 0; Y < pBreakoutModule->StoneCntY; Y++) - { - for (X = 0; X < pBreakoutModule->StoneCntX; X++) - { - //stone there - if (pBreakoutModule->ppStones[Y][X] > 0) - { - //get position of stone - X1 = OfsX + X * BBreakoutStoneSizeX; - Y1 = OfsY + Y * BBreakoutStoneSizeY; - //get color - if (pBreakoutModule->ppStones[Y][X] == 1) - Color = BBreakoutColorStone1 (pBreakoutModule->MaxColor); - else if (pBreakoutModule->ppStones[Y][X] == 2) - Color = BBreakoutColorStone2 (pBreakoutModule->MaxColor); - else - Color = BBreakoutColorStone3 (pBreakoutModule->MaxColor); - //draw stone - for( Y2 = 0; Y2 < BBreakoutStoneSizeY; Y2++ ) - b_module_draw_line ((BModule *) pBreakoutModule, - X1, Y1 + Y2, - X1 + BBreakoutStoneSizeX - 1, Y1 + Y2, - Color); - } - } - } - - //get player color (dead or alive) - if (pBreakoutModule->DeadCnt > 0) - { - if (pBreakoutModule->DeadCnt & 1 ) - Color = BBreakoutColorPlayerDead (pBreakoutModule->MaxColor); - else - Color = BBreakoutColorPlayerDeadBlink (pBreakoutModule->MaxColor); - } - else - Color = BBreakoutColorPlayerAlive (pBreakoutModule->MaxColor); - //draw player - b_module_draw_line ((BModule *) pBreakoutModule, - OfsX + pBreakoutModule->PlayerPosX, OfsY + pBreakoutModule->PlayerPosY, - OfsX + pBreakoutModule->PlayerPosX + pBreakoutModule->PlayerSizeX - 1, OfsY + pBreakoutModule->PlayerPosY, - Color); - - //draw active ball - if (pBreakoutModule->BallActive) - { - b_module_draw_point ((BModule *) pBreakoutModule, - OfsX + pBreakoutModule->BallPosX, - OfsY + pBreakoutModule->BallPosY, - BBreakoutColorBall (pBreakoutModule->MaxColor)); - } - //draw ball at player - else - { - b_module_draw_point ((BModule *) pBreakoutModule, - OfsX + pBreakoutModule->PlayerPosX + pBreakoutModule->PlayerSizeX / 2, - OfsY + pBreakoutModule->PlayerPosY - 1, - BBreakoutColorBall (pBreakoutModule->MaxColor)); - } - - //update screen - b_module_paint ((BModule *) pBreakoutModule); -} - -//initialize player -void -BBreakoutPlayerInit (BBreakoutModule *pBreakoutModule) -{ - //player is alive - pBreakoutModule->DeadCnt = 0; - //set start position of player - pBreakoutModule->PlayerPosX = (pBreakoutModule->SizeX - pBreakoutModule->PlayerSizeX) / 2; - - if (BBreakoutAutoStart) - { - //set ball to active, set position and direction - pBreakoutModule->BallActive = 1; - pBreakoutModule->BallPosX = pBreakoutModule->PlayerPosX + pBreakoutModule->PlayerSizeX / 2; - pBreakoutModule->BallPosY = pBreakoutModule->PlayerPosY - 1; - pBreakoutModule->BallDirX = rand() % 1 ? -1 : 1; - pBreakoutModule->BallDirY = -1; - } - else - { - //ball is at player - pBreakoutModule->BallActive = 0; - } -} - -//start a new game -void -BBreakoutNewGame (BBreakoutModule *pBreakoutModule) -{ - int X, Y; - - //set stones to 2 or 3 hits in checkerboard-style - for (Y = 0; Y < pBreakoutModule->StoneCntY; Y++) - for (X = 0; X < pBreakoutModule->StoneCntX; X++) - if ((X + Y) & 1) - pBreakoutModule->ppStones[Y][X] = 2; - else - pBreakoutModule->ppStones[Y][X] = 3; - //make a free way around the field - for (Y = 2; Y < pBreakoutModule->StoneCntY - 1; Y++) - { - pBreakoutModule->ppStones[Y][0] = 0; - pBreakoutModule->ppStones[Y][pBreakoutModule->StoneCntX - 1] = 0; - } - for (X = 0; X < pBreakoutModule->StoneCntX; X++) - { - pBreakoutModule->ppStones[0][X] = 0; - pBreakoutModule->ppStones[1][X] = 0; - } - //put a hole into the upper center - for (Y = 4; Y < pBreakoutModule->StoneCntY * 2 / 3; Y++) - { - pBreakoutModule->ppStones[Y][(pBreakoutModule->StoneCntX - 1) / 2] = 0; - pBreakoutModule->ppStones[Y][(pBreakoutModule->StoneCntX) / 2] = 0; - } - - //count stones - pBreakoutModule->StoneCnt = 0; - for (Y = 0; Y < pBreakoutModule->StoneCntY; Y++) - for (X = 0; X < pBreakoutModule->StoneCntX; X++) - if (pBreakoutModule->ppStones[Y][X] > 0) - pBreakoutModule->StoneCnt++; - - dbg_print ("BBreakout: new game\n"); - - //initialize player - BBreakoutPlayerInit (pBreakoutModule); - - //output current picture - BBreakoutOutput (pBreakoutModule); -} - -//key-procedure -void -BBreakoutKey (BBreakoutModule *pBreakoutModule, - BModuleKey Key) -{ - //don't do anything if player is dead - if (pBreakoutModule->DeadCnt > 0) - return; - - switch (Key) - { - case B_KEY_1: - //shoot ball to the left - if (!pBreakoutModule->BallActive) - { - //set ball to active, set position and direction - pBreakoutModule->BallActive = 1; - pBreakoutModule->BallPosX = pBreakoutModule->PlayerPosX + pBreakoutModule->PlayerSizeX / 2; - pBreakoutModule->BallPosY = pBreakoutModule->PlayerPosY - 1; - pBreakoutModule->BallDirX = -1; - pBreakoutModule->BallDirY = -1; - } - break; - case B_KEY_3: - //shoot ball to the right - if (!pBreakoutModule->BallActive) - { - //set ball to active, set position and direction - pBreakoutModule->BallActive = 1; - pBreakoutModule->BallPosX = pBreakoutModule->PlayerPosX + pBreakoutModule->PlayerSizeX / 2; - pBreakoutModule->BallPosY = pBreakoutModule->PlayerPosY - 1; - pBreakoutModule->BallDirX = 1; - pBreakoutModule->BallDirY = -1; - } - break; - case B_KEY_4: - //move player one step left - pBreakoutModule->PlayerPosX -= pBreakoutModule->PlayerStepX; - if (pBreakoutModule->PlayerPosX < 0) - pBreakoutModule->PlayerPosX = 0; - break; - case B_KEY_6: - //move player one step right - pBreakoutModule->PlayerPosX += pBreakoutModule->PlayerStepX; - if (pBreakoutModule->PlayerPosX > pBreakoutModule->PlayerPosXMax) - pBreakoutModule->PlayerPosX = pBreakoutModule->PlayerPosXMax; - break; - case B_KEY_7: - //move player one pixel left - pBreakoutModule->PlayerPosX--;; - if (pBreakoutModule->PlayerPosX < 0) - pBreakoutModule->PlayerPosX = 0; - break; - case B_KEY_9: - //move player one pixel right - pBreakoutModule->PlayerPosX++; - if (pBreakoutModule->PlayerPosX > pBreakoutModule->PlayerPosXMax) - pBreakoutModule->PlayerPosX = pBreakoutModule->PlayerPosXMax; - break; - - default: - break; - } - - //output current picture - BBreakoutOutput (pBreakoutModule); -} - -//tick-procedure -//returns 1 if game over or 0 if game not over -int -BBreakoutTick (BBreakoutModule *pBreakoutModule) -{ - int X, Y, X1, Y1, X2, Y2; - - //player is dead - if (pBreakoutModule->DeadCnt >= 0) - { - //decrement dead counter - pBreakoutModule->DeadCnt--; - if (pBreakoutModule->DeadCnt == 0) - { - //player has life left - if (pBreakoutModule->Lives > 0) - { - dbg_print( "BBreakout: player is alive again - %d live(s) left\n", pBreakoutModule->Lives); - //initialize player - BBreakoutPlayerInit (pBreakoutModule); - } - - //game over - else - { - dbg_print( "BBreakout: player has no more lives left - game over\n"); - //request end of game - b_module_request_stop ((BModule *) pBreakoutModule); - //return game over - return 1; - } - } - - //output current picture - BBreakoutOutput (pBreakoutModule); - - //return game not over - return 0; - } //if (pBreakoutModule->DeadCnt >= 0) - - //ball ist active - if (pBreakoutModule->BallActive) - { - //bounce ball at left of game-field - if (pBreakoutModule->BallPosX <= 0 - && pBreakoutModule->BallDirX == -1) - pBreakoutModule->BallDirX = 1; - //bounce ball at right of game-field - if (pBreakoutModule->BallPosX >= pBreakoutModule->SizeX - 1 - && pBreakoutModule->BallDirX == 1) - pBreakoutModule->BallDirX = -1; - //bounce ball at top of game-field - if (pBreakoutModule->BallPosY <= 0 - && pBreakoutModule->BallDirY == -1) - pBreakoutModule->BallDirY = 1; - //bounce ball at bottom of game-field - if (pBreakoutModule->BallPosY >= pBreakoutModule->SizeY - 1 - && pBreakoutModule->BallDirY == 1) - pBreakoutModule->BallDirY = -1; - - //bounce ball at edges of stones - for (Y = 0; Y < pBreakoutModule->StoneCntY; Y++) - { - for (X = 0; X < pBreakoutModule->StoneCntX; X++) - { - //stone there - if (pBreakoutModule->ppStones[Y][X] > 0) - { - //get position (all 4 corners) of stone - X1 = X * BBreakoutStoneSizeX; - Y1 = Y * BBreakoutStoneSizeY; - X2 = X1 + BBreakoutStoneSizeX - 1; - Y2 = Y1 + BBreakoutStoneSizeY - 1; - //bounce ball at left edge of stone - if (pBreakoutModule->BallPosX == X1 - 1 - && pBreakoutModule->BallDirX == 1 - && pBreakoutModule->BallPosY >= Y1 - && pBreakoutModule->BallPosY <= Y2) - { - pBreakoutModule->BallDirX = -1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - //bounce ball at right edge of stone - if (pBreakoutModule->BallPosX == X2 + 1 - && pBreakoutModule->BallDirX == -1 - && pBreakoutModule->BallPosY >= Y1 - && pBreakoutModule->BallPosY <= Y2) - { - pBreakoutModule->BallDirX = 1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - //bounce ball at top edge of stone - if (pBreakoutModule->BallPosY == Y1 - 1 - && pBreakoutModule->BallDirY == 1 - && pBreakoutModule->BallPosX >= X1 - && pBreakoutModule->BallPosX <= X2) - { - pBreakoutModule->BallDirY = -1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - //bounce ball at bottom edge of stone - if (pBreakoutModule->BallPosY == Y2 + 1 - && pBreakoutModule->BallDirY == -1 - && pBreakoutModule->BallPosX >= X1 - && pBreakoutModule->BallPosX <= X2) - { - pBreakoutModule->BallDirY = 1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - } - } //for (X ... - } //for (Y ... - - //bounce ball at corners of stones - //(it is important to bounce at all stone edges first) - for (Y = 0; Y < pBreakoutModule->StoneCntY; Y++) - { - for (X = 0; X < pBreakoutModule->StoneCntX; X++) - { - //stone there - if (pBreakoutModule->ppStones[Y][X] > 0) - { - //get position (all 4 corners) of stone - X1 = X * BBreakoutStoneSizeX; - Y1 = Y * BBreakoutStoneSizeY; - X2 = X1 + BBreakoutStoneSizeX - 1; - Y2 = Y1 + BBreakoutStoneSizeY - 1; - //bounce ball at top-left corner of stone - if (pBreakoutModule->BallPosX == X1 - 1 - && pBreakoutModule->BallPosY == Y1 - 1 - && pBreakoutModule->BallDirX == 1 - && pBreakoutModule->BallDirY == 1) - { - pBreakoutModule->BallDirX = -1; //bounce ball - pBreakoutModule->BallDirY = -1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - //bounce ball at top-right corner of stone - if (pBreakoutModule->BallPosX == X2 + 1 - && pBreakoutModule->BallPosY == Y1 - 1 - && pBreakoutModule->BallDirX == -1 - && pBreakoutModule->BallDirY == 1) - { - pBreakoutModule->BallDirX = 1; //bounce ball - pBreakoutModule->BallDirY = -1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - //bounce ball at bottom-left corner of stone - if (pBreakoutModule->BallPosX == X1 - 1 - && pBreakoutModule->BallPosY == Y2 + 1 - && pBreakoutModule->BallDirX == 1 - && pBreakoutModule->BallDirY == -1) - { - pBreakoutModule->BallDirX = -1; //bounce ball - pBreakoutModule->BallDirY = 1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - //bounce ball at bottom-right corner of stone - if (pBreakoutModule->BallPosX == X2 + 1 - && pBreakoutModule->BallPosY == Y2 + 1 - && pBreakoutModule->BallDirX == -1 - && pBreakoutModule->BallDirY == -1) - { - pBreakoutModule->BallDirX = 1; //bounce ball - pBreakoutModule->BallDirY = 1; //bounce ball - pBreakoutModule->ppStones[Y][X]--; //stone has one hit less - if (pBreakoutModule->ppStones[Y][X] == 0) //stone is gone - pBreakoutModule->StoneCnt--; //one stone less - } - } - } //for (X ... - } //for (Y ... - - //bounce ball at top edge of player - if (pBreakoutModule->BallPosY == pBreakoutModule->PlayerPosY - 1 - && pBreakoutModule->BallPosX >= pBreakoutModule->PlayerPosX - && pBreakoutModule->BallPosX <= pBreakoutModule->PlayerPosX + pBreakoutModule->PlayerSizeX - 1 - && pBreakoutModule->BallDirY == 1) - { - pBreakoutModule->BallDirY = -1; - } - //bounce ball at left corner of player - if (pBreakoutModule->BallPosX == pBreakoutModule->PlayerPosX - 1 - && pBreakoutModule->BallPosY == pBreakoutModule->PlayerPosY - 1 - && pBreakoutModule->BallDirX == 1 - && pBreakoutModule->BallDirY == 1) - { - pBreakoutModule->BallDirX = -1; - pBreakoutModule->BallDirY = -1; - } - //bounce ball at right corner of player - if (pBreakoutModule->BallPosX == pBreakoutModule->PlayerPosX + pBreakoutModule->PlayerSizeX - && pBreakoutModule->BallPosY == pBreakoutModule->PlayerPosY - 1 - && pBreakoutModule->BallDirX == -1 - && pBreakoutModule->BallDirY == 1) - { - pBreakoutModule->BallDirX = 1; - pBreakoutModule->BallDirY = -1; - } - - //move ball - pBreakoutModule->BallPosX += pBreakoutModule->BallDirX; - pBreakoutModule->BallPosY += pBreakoutModule->BallDirY; - - //all stones gone - if (pBreakoutModule->StoneCnt == 0) - { - dbg_print( "BBreakout: player has destroyed all stones - game over\n"); - //output current picture - BBreakoutOutput (pBreakoutModule); - //request end of game - b_module_request_stop ((BModule *) pBreakoutModule); - //return game over - return 1; - } - - //player missed ball - if( pBreakoutModule->BallPosY >= pBreakoutModule->PlayerPosY ) - { - //decrement player's lives - pBreakoutModule->Lives--; - dbg_print ("BBreakout: player missed the ball and died\n"); - //player is dead now - pBreakoutModule->DeadCnt = BBreakoutDeadTime; - } - } //if (pBreakoutModule->BallActive) - - //output current picture - BBreakoutOutput (pBreakoutModule); - - //return game not over - return 0; -} - -static void -b_breakout_module_class_init (BBreakoutModuleClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->max_players = 1; - - module_class->query = b_breakout_module_query; - module_class->prepare = b_breakout_module_prepare; - module_class->relax = b_breakout_module_relax; - module_class->start = b_breakout_module_start; - module_class->event = b_breakout_module_event; - module_class->tick = b_breakout_module_tick; - module_class->describe = b_breakout_module_describe; -} - -static void -b_breakout_module_init (BBreakoutModule *breakout_module) -{ - breakout_module->player_device_id = -1; -} - -static gboolean -b_breakout_module_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width >= BBreakoutSizeXMin && height >= BBreakoutSizeYMin - && channels == 1 && maxval + 1 >= BBreakoutColorCntMin); -} - -static gboolean -b_breakout_module_prepare (BModule *module, - GError **error) -{ - int SizePtrs, SizeRow, Size, Y; - char * Ptr; - - BBreakoutModule *breakout_module = B_BREAKOUT_MODULE (module); - - //initialize the module values that depend on the output device - breakout_module->MaxColor = module->maxval; //maximum color value - breakout_module->FreeRows = module->height * 2 / 5; //number of free rows over player - if (breakout_module->FreeRows < BBreakoutFreeRowsMin) - breakout_module->FreeRows = BBreakoutFreeRowsMin; - breakout_module->StoneCntX = module->width / BBreakoutStoneSizeX; //number of stones in field - breakout_module->StoneCntY = (module->height - breakout_module->FreeRows - 1) / BBreakoutStoneSizeY; - breakout_module->StoneSizeX = breakout_module->StoneCntX * BBreakoutStoneSizeX; //size of stone area of game-field - breakout_module->StoneSizeY = breakout_module->StoneCntY * BBreakoutStoneSizeY; - breakout_module->SizeX = breakout_module->StoneSizeX; //size of game field - breakout_module->SizeY = breakout_module->StoneSizeY + breakout_module->FreeRows + 1; - breakout_module->OfsX = (module->width - breakout_module->SizeX) / 2; //offset of top left corner of game-field - breakout_module->OfsY = (module->height - breakout_module->SizeY) / 2; - breakout_module->PlayerSizeX = breakout_module->SizeX / 3; //x-size and y-position of player - breakout_module->PlayerPosY = breakout_module->SizeY - 1; - breakout_module->PlayerPosXMax = breakout_module->SizeX - breakout_module->PlayerSizeX; //maximum x-position of player - breakout_module->PlayerStepX = breakout_module->PlayerSizeX / 2; //x-step-size of player - - //allocate needed memory - SizePtrs = breakout_module->StoneCntY * sizeof( int * ); //get needed size - SizeRow = breakout_module->StoneCntX * sizeof( int ); - Size = SizePtrs + breakout_module->StoneCntY * SizeRow; - Ptr = g_new (gchar, Size); - - breakout_module->ppStones = (int * *)Ptr; //remember pointer - for( Y = 0; Y < breakout_module->StoneCntY; Y++ ) //generate pointers to rows - breakout_module->ppStones[Y] = (int *)(Ptr + SizePtrs + Y * SizeRow); - - return TRUE; -} - -static void -b_breakout_module_relax (BModule *module) -{ - BBreakoutModule *breakout_module = B_BREAKOUT_MODULE (module); - - g_free( breakout_module->ppStones ); - breakout_module->ppStones = NULL; -} - -static void -b_breakout_module_start (BModule *module) -{ - //set player's lives - ((BBreakoutModule *)module)->Lives = BBreakoutLives; - - //start new game - BBreakoutNewGame ((BBreakoutModule *) module); - - //start the tick machinery - b_module_ticker_start (module, BBreakoutTicks); -} - -static void -b_breakout_module_event (BModule *module, - BModuleEvent *event) -{ - BBreakoutModule *breakout; - - breakout = B_BREAKOUT_MODULE (module); - - switch (event->type) - { - case B_EVENT_TYPE_KEY: - if (event->device_id == breakout->player_device_id) - BBreakoutKey (breakout, event->key); - break; - - case B_EVENT_TYPE_PLAYER_ENTERED: - if (breakout->player_device_id == -1) - { - breakout->player_device_id = event->device_id; - - module->num_players++; - } - break; - - case B_EVENT_TYPE_PLAYER_LEFT: - if (breakout->player_device_id == event->device_id) - { - breakout->player_device_id = -1; - - module->num_players--; - } - break; - - default: - break; - } -} - -static gint -b_breakout_module_tick (BModule *module) -{ - int GameOver; - - //call tick-procedure - GameOver = BBreakoutTick ((BBreakoutModule *) module); - - //we want to be called again in some milliseconds, if game is not over - if( GameOver ) - return 0; - else - return BBreakoutTicks; -} - -static void -b_breakout_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BBreakout"; - *description = "Breakout game"; - *author = "1stein"; -} diff --git a/blib-1.1.7/modules/bclock.c b/blib-1.1.7/modules/bclock.c deleted file mode 100644 index af1c6ab..0000000 --- a/blib-1.1.7/modules/bclock.c +++ /dev/null @@ -1,373 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#include -#include - -#include - -#include "digits.h" - - -#define TIMEOUT 75 -#define DEFAULT_MODE CLOCK_MODE_DIGITAL - - -typedef enum -{ - CLOCK_MODE_DIGITAL, - CLOCK_MODE_ANALOG, - CLOCK_MODE_LAST -} BClockMode; - -enum -{ - PROP_0, - PROP_MODE -}; - - -#define B_TYPE_CLOCK_MODE (b_clock_mode_get_type ()) - -#define B_TYPE_CLOCK (b_type_clock) -#define B_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_CLOCK, BClock)) -#define B_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_CLOCK, BClockClass)) -#define B_IS_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_CLOCK)) - -typedef struct _BClock BClock; -typedef struct _BClockClass BClockClass; - -struct _BClock -{ - BModule parent_instance; - - guint epoche; - gint mode; - gboolean colon; -}; - -struct _BClockClass -{ - BModuleClass parent_class; -}; - -static GType b_clock_get_type (GTypeModule *module); - -static void b_clock_class_init (BClockClass *klass); -static void b_clock_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static gboolean b_clock_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_clock_prepare (BModule *module, - GError **error); -static void b_clock_relax (BModule *module); -static void b_clock_start (BModule *module); -static gint b_clock_tick (BModule *module); -static void b_clock_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); -static gboolean b_clock_gettime (BClock *clock); - - -static GType b_type_clock = 0; - - -static const GEnumValue clock_mode_enum_values[] = -{ - { CLOCK_MODE_DIGITAL, "digital", NULL }, - { CLOCK_MODE_ANALOG, "analog", NULL }, - { 0, NULL, NULL } -}; - -GType -b_clock_mode_get_type (void) -{ - static GType enum_type = 0; - - if (!enum_type) - enum_type = g_enum_register_static ("BClockMode", - clock_mode_enum_values); - - return enum_type; -} - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_clock_get_type (module); - return TRUE; -} - -GType -b_clock_get_type (GTypeModule *module) -{ - if (!b_type_clock) - { - static const GTypeInfo clock_info = - { - sizeof (BClockClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_clock_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BClock), - 0, /* n_preallocs */ - NULL /* instance_init */ - }; - - b_type_clock = g_type_module_register_type (module, - B_TYPE_MODULE, "BClock", - &clock_info, 0); - } - - return b_type_clock; -} - -static void -b_clock_class_init (BClockClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - object_class->set_property = b_clock_set_property; - - param_spec = g_param_spec_enum ("mode", NULL, - "Clock mode (analog/digital)", - B_TYPE_CLOCK_MODE, DEFAULT_MODE, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_MODE, param_spec); - - module_class->query = b_clock_query; - module_class->prepare = b_clock_prepare; - module_class->relax = b_clock_relax; - module_class->start = b_clock_start; - module_class->tick = b_clock_tick; - module_class->describe = b_clock_describe; -} - -static void -b_clock_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BClock *line = B_CLOCK (object); - - switch (property_id) - { - case PROP_MODE: - line->mode = g_value_get_enum (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static gboolean -b_clock_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 3 && channels == 1 && maxval == 255); -} - -static gboolean -b_clock_prepare (BModule *module, - GError **error) -{ - return TRUE; -} - -static void -b_clock_relax (BModule *module) -{ -} - -static void -b_clock_start (BModule *module) -{ - b_clock_gettime (B_CLOCK (module)); - b_module_ticker_start (module, b_clock_tick (module)); -} - -static gboolean -b_clock_gettime (BClock *clock) -{ - struct timeval tv; - - gettimeofday (&tv, NULL); - - if (tv.tv_sec != clock->epoche) - { - clock->epoche = tv.tv_sec; - return TRUE; - } - - return FALSE; -} - -static gint -b_clock_tick (BModule *module) -{ - gint h, m, s; - BClock *clock = B_CLOCK (module); - const BFont *digits = &b_digits_3x5; - struct tm *tm; - - if (!b_clock_gettime (clock)) - return TIMEOUT; - - b_module_fill (module, 0); - - tm = localtime ((time_t *) &clock->epoche); - h = tm->tm_hour; - m = tm->tm_min; - s = tm->tm_sec; - - /* g_print ("%02d:%02d:%02d\n", h, m, s); */ - - switch (clock->mode) - { - case CLOCK_MODE_DIGITAL: - { - gchar *text; - gint len, i, n, x, y, x0, y0; - - if (module->width > 20) - { - text = g_strdup_printf ("%02d:%02d:%02d", h, m, s); - } - else - { - text = g_strdup_printf (clock->colon ? "%02d:%02d" : "%02d %02d", - h, m); - clock->colon = !clock->colon; - } - - len = strlen (text); - - x0 = 0; - y0 = module->height / 4; - - for (n = 0; n < len; n++) - { - for (i = 0; i < digits->num_digits && digits->digits_str[i] != text[n]; i++); - - if (len * digits->advance > module->width) - { - if (text[n-1] == ':' || text[n-1] == ' ') - x0--; - - if (text[n] == ':' || text[n] == ' ') - x0--; - } - - if (i < digits->num_digits) - for (x = 0; x < digits->width; x++) - for (y = 0; y < digits->height; y++) - if (digits->data[i][y * digits->width + x] != '0') - b_module_draw_point (module, - x0 + x, y0 + y, module->maxval); - - x0 += digits->advance; - } - g_free (text); - } - - break; - case CLOCK_MODE_ANALOG: - { - gint x0, y0, r, x, y, a; - - x0 = module->width / 2; - y0 = module->height / 2; - r = MIN (x0, y0 / module->aspect); - - for (a = 0; a < 360; a += 30) - { - x = cos (a/180.0 * G_PI) * r + x0 + 0.5; - y = (sin (a/180.0 * G_PI) * r) * module->aspect + y0 + 0.5; - - b_module_draw_point (module, x, y, 0x7f); - } - - /* 1st hand */ - a = h; - a += 45; - a *= 30; - x = cos (a/180.0 * G_PI) * (r - 4) + x0 + 0.5; - y = (sin (a/180.0 * G_PI) * (r - 4)) * module->aspect + y0 + 0.5; - b_module_draw_line (module, x0, y0, x, y, 0x80); - - /* 2nd hand */ - a = m; - a += 45; - a *= 6; - x = cos (a/180.0 * G_PI) * (r - 2) + x0 + 0.5; - y = (sin (a/180.0 * G_PI) * (r - 2)) * module->aspect + y0 + 0.5; - b_module_draw_line (module, x0, y0, x, y, 0xe0); - - - /* 3rd hand */ - a = s; - a += 9; - a *= 6; - x = cos (a/180.0 * G_PI) * (r - 1) + x0 + 0.5; - y = (sin (a/180.0 * G_PI) * (r - 1)) * module->aspect + y0 + 0.5; - b_module_draw_line (module, x0, y0, x, y, 0xff); - } - break; - } - - b_module_paint (module); - return TIMEOUT; -} - -static void -b_clock_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BClock"; - *description = "BKloppte BClock"; - *author = "Daniel Mack"; -} diff --git a/blib-1.1.7/modules/bcountdown.c b/blib-1.1.7/modules/bcountdown.c deleted file mode 100644 index 276de5f..0000000 --- a/blib-1.1.7/modules/bcountdown.c +++ /dev/null @@ -1,336 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Sven Neumann - * Daniel Mack - * - * Inspired by the great 2001 sylvester countdown on the HDL. - * - * 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. - */ - -#include -#include -#include -#include - -#include -#include - -#include - -#include "digits.h" - -#define B_TYPE_COUNTDOWN (b_type_countdown) -#define B_COUNTDOWN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_COUNTDOWN, BCountdown)) -#define B_COUNTDOWN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_COUNTDOWN, BCountdownClass)) -#define B_IS_COUNTDOWN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_COUNTDOWN)) - -#define MAX_DIGITS 4 - -typedef struct _BCountdown BCountdown; -typedef struct _BCountdownClass BCountdownClass; - -struct _BCountdown -{ - BModule parent_instance; - - gchar last_digits[MAX_DIGITS]; - gchar last_font; - gchar last_number_of_digits; - - gint end; -}; - -struct _BCountdownClass -{ - BModuleClass parent_class; -}; - -enum -{ - PROP_0, - PROP_END -}; - - -static GType b_countdown_get_type (GTypeModule *module); -static void b_countdown_class_init (BCountdownClass *klass); -static void b_countdown_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static gboolean b_countdown_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_countdown_prepare (BModule *module, - GError **error); -static void b_countdown_start (BModule *module); -static gint b_countdown_tick (BModule *module); -static void b_countdown_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static BModuleClass * parent_class = NULL; -static GType b_type_countdown = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_countdown_get_type (module); - return TRUE; -} - -GType -b_countdown_get_type (GTypeModule *module) -{ - if (!b_type_countdown) - { - static const GTypeInfo countdown_info = - { - sizeof (BCountdownClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_countdown_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BCountdown), - 0, /* n_preallocs */ - NULL /* instance_init */ - }; - - b_type_countdown = g_type_module_register_type (module, - B_TYPE_MODULE, - "BCountdown", - &countdown_info, 0); - } - - return b_type_countdown; -} - -static void -b_countdown_class_init (BCountdownClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->set_property = b_countdown_set_property; - - param_spec = g_param_spec_int ("end", NULL, - "When to end the countdown.", - 0, G_MAXINT, 0, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_END, param_spec); - - module_class->query = b_countdown_query; - module_class->prepare = b_countdown_prepare; - module_class->start = b_countdown_start; - module_class->tick = b_countdown_tick; - module_class->describe = b_countdown_describe; -} - -static void -b_countdown_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BCountdown *countdown = B_COUNTDOWN (object); - - switch (property_id) - { - case PROP_END: - countdown->end = g_value_get_int (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static gboolean -b_countdown_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 17 && height > 7 && channels == 1 && maxval > 0); -} - -static gboolean -b_countdown_prepare (BModule *module, - GError **error) -{ - BCountdown *countdown = B_COUNTDOWN (module); - - if (countdown->end < 0) - { - g_set_error (error, 0, 0, "Invalid end time for countdown."); - return FALSE; - } - - return TRUE; -} - -static void -b_countdown_start (BModule *module) -{ - gint x; - - BCountdown *countdown = B_COUNTDOWN (module); - countdown->last_font = -1; - countdown->last_number_of_digits = -1; - - for (x = 0; x < MAX_DIGITS; x++) - { - countdown->last_digits[x] = -1; - } - - b_module_ticker_start (module, 1); -} - -static gint -b_countdown_tick (BModule *module) -{ - BCountdown *countdown = B_COUNTDOWN (module); - struct timeval tv; - gint x0, y0; - gint x, y; - gint n, d, i, f; - gint scrollstep; - gint scroll[MAX_DIGITS]; - gint new_digits[MAX_DIGITS]; - const BFont *fonts[] = { &b_digits_3x5, - &b_digits_5x7, - &b_digits_8x7 }; - - gettimeofday (&tv, NULL); - - n = countdown->end - tv.tv_sec; - - g_print ("BCountdown: %d\n", n); - - if (n <= 0 || n > 999) - { - b_module_request_stop (module); - return -1; - } - - for (d = 1, i = n; i > 9; d++) - i /= 10; - - for (f = (sizeof (fonts) / sizeof (fonts[0])) - 1; - module->width - ((d - 1) * fonts[f]->advance + fonts[f]->width) < 0; - f--) - { - if (f < 0) - { - b_module_request_stop (module); - return -1; - } - } - - for (i = 0; i < MAX_DIGITS; i++) - new_digits[i] = ' '; - - g_print ("using font #%d, w: %d h: %d a: %d\n", - f, fonts[f]->width, fonts[f]->height, fonts[f]->advance); - - if (countdown->last_font != f || - countdown->last_number_of_digits != d) - b_module_fill (module, 0); - - for (i = d; i > 0; i--) - { - new_digits[i] = n % 10; - scroll[i] = (countdown->last_digits[i] == -1) - || (countdown->last_digits[i] != new_digits[i]); - n /= 10; - } - - for (scrollstep = 0; scrollstep < module->height; scrollstep++) - { - x0 = module->width - fonts[f]->width; - y0 = module->height - fonts[f]->height; - - /* i'm too tired to think about a smart algorithm... */ - if (d == 1) - x0 = 4; - - for (i = d; i > 0; i--) - { - if (scroll[i]) - { - for (x = 0; x < fonts[f]->width; x++) - { - for (y = module->height; y > 0; y--) - { - module->buffer[(y-1) * module->width + x + x0] = - module->buffer[(y-2) * module->width + x + x0]? - (module->maxval/2):0; - } - module->buffer[x + x0] = 0; - - for (y = 0; y < fonts[f]->height; y++) - { - if (y + y0 <= scrollstep + 1) - b_module_draw_point (module, x0 + x, y0 + y + (scrollstep - module->height), - (fonts[f]->data[new_digits[i]][y * fonts[f]->width + x] != '0')? - module->maxval:0); - } - } - } - x0 -= fonts[f]->advance; - } - b_module_paint (module); - usleep (33 * 1000); - } - - for (x = 0; x < MAX_DIGITS; x++) - { - countdown->last_digits[x] = new_digits[x]; - } - - b_module_paint (module); - - countdown->last_font = f; - countdown->last_number_of_digits = d; - - gettimeofday (&tv, NULL); - return 1000 - (tv.tv_usec / 1000); - -} - -static void -b_countdown_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BCountdown"; - *description = "Countdown"; - *author = "Sven Neumann"; -} diff --git a/blib-1.1.7/modules/bdebug.c b/blib-1.1.7/modules/bdebug.c deleted file mode 100644 index b2f1b40..0000000 --- a/blib-1.1.7/modules/bdebug.c +++ /dev/null @@ -1,387 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -/* Test implementation for a BModule as used in the Blinkenlights context. - * BModules are used to implement games, debug tools etc. - * You can basically use this skeleton, rename the functions and hack your - * code into the functions that contain all the g_print()s now. - */ - -#include - -#include -#include - -#include - -#include "digits.h" - - -#define B_TYPE_DEBUG (b_type_debug) -#define B_DEBUG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_DEBUG, BDebug)) -#define B_DEBUG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_DEBUG, BDebugClass)) -#define B_IS_DEBUG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_DEBUG)) - -typedef struct _BDebug BDebug; -typedef struct _BDebugClass BDebugClass; - -struct _BDebug -{ - BModule parent_instance; - - gint x, y, val; - gboolean dimming; - gboolean runmode; -}; - -struct _BDebugClass -{ - BModuleClass parent_class; -}; - -static GType b_debug_get_type (GTypeModule *module); -static void b_debug_class_init (BDebugClass *klass); -static void b_debug_init (BDebug *debug); -static void b_debug_finalize (GObject *object); -static gboolean b_debug_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_debug_prepare (BModule *module, - GError **error); -static void b_debug_start (BModule *module); -static void b_debug_stop (BModule *module); -static void b_debug_event (BModule *module, - BModuleEvent *event); -static gint b_debug_tick (BModule *module); -static void b_debug_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static BModuleClass * parent_class = NULL; -static GType b_type_debug = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_debug_get_type (module); - - return TRUE; -} - -GType -b_debug_get_type (GTypeModule *module) -{ - if (! b_type_debug) - { - static const GTypeInfo debug_info = - { - sizeof (BDebugClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_debug_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BDebug), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_debug_init, - }; - - b_type_debug = g_type_module_register_type (module, - B_TYPE_MODULE, - "BDebug", - &debug_info, - 0); - } - - return b_type_debug; -} - -static void -b_debug_class_init (BDebugClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = b_debug_finalize; - - module_class->query = b_debug_query; - module_class->prepare = b_debug_prepare; - module_class->start = b_debug_start; - module_class->stop = b_debug_stop; - module_class->event = b_debug_event; - module_class->tick = b_debug_tick; - module_class->describe = b_debug_describe; -} - - -static void -paint_digits (BDebug *debug) -{ - gint x, y, y_off, x_off = 3, n; - gint foo[4]; - BModule *module = B_MODULE (debug); - BFont digits = b_digits_3x5; - - g_print ("BDebug: %02d %02d\n", debug->x, debug->y); - - if (module->width < 12 || module->height < 12) - return; - - if (debug->y < 9) - y_off = debug->y + 4; - else - y_off = debug->y - 8; - - foo[0] = ((module->height - debug->y) / 10); - foo[1] = ((module->height - debug->y) % 10); - foo[2] = ((debug->x + 1) / 10); - foo[3] = ((debug->x + 1) % 10); - - for (n = 0; n < 4; n++) - { - for (x = 0; x < digits.width; x++) - for (y = 0; y < digits.height; y++) - if (digits.data[foo[n]][y*digits.width + x] != '0') - b_module_draw_point (module, x + x_off, y + y_off, module->maxval); - - if (n == 1) - x_off += digits.advance; - - x_off += x+1; - } -} - -static void -b_debug_init (BDebug *debug) -{ -} - -static void -b_debug_finalize (GObject *object) -{ - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static gboolean -b_debug_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 0 && channels == 1 && maxval > 0); -} - -static gboolean -b_debug_prepare (BModule *module, - GError **error) -{ - BDebug *debug = B_DEBUG (module); - - debug->x = module->width / 2; - debug->y = module->height / 2; - debug->val = module->maxval; - debug->dimming = FALSE; - debug->runmode = FALSE; - - return TRUE; -} - -static void -b_debug_start (BModule *module) -{ - BDebug *debug = B_DEBUG (module); - - b_module_draw_point (module, debug->x, debug->y, debug->val); - b_module_paint (module); -} - -static void -b_debug_stop (BModule *module) -{ - /* clear the screen */ - b_module_fill (module, 0); - b_module_paint (module); -} - -static void -b_debug_event (BModule *module, - BModuleEvent *event) -{ - BDebug *debug = B_DEBUG (module); - - switch (event->device_id) - { - case 0: - switch (event->type) - { - case B_EVENT_TYPE_KEY: - switch (event->key) - { - case B_KEY_1: - debug->x--; - case B_KEY_2: - debug->y--; - break; - - case B_KEY_7: - debug->y++; - case B_KEY_4: - debug->x--; - break; - - case B_KEY_3: - debug->y--; - case B_KEY_6: - debug->x++; - break; - - case B_KEY_9: - debug->x++; - case B_KEY_8: - debug->y++; - break; - - case B_KEY_0: - if (debug->runmode) - break; - - if (debug->dimming) - { - debug->dimming = FALSE; - b_module_ticker_stop (module); - } - else - { - debug->dimming = TRUE; - b_module_ticker_start (module, 1000); - } - break; - - case B_KEY_5: - debug->val += module->maxval/8; - if (debug->val > module->maxval) - debug->val = 0; - break; - - case B_KEY_HASH: - if (debug->dimming) - { - debug->dimming = FALSE; - b_module_ticker_stop (module); - } - - debug->val = module->maxval; - - if (debug->runmode) - { - debug->runmode = FALSE; - b_module_ticker_stop (module); - } - else - { - debug->runmode = TRUE; - b_module_ticker_start (module, 250); - } - break; - - case B_KEY_ASTERISK: - debug->val = module->maxval; - break; - - default: - break; - } - break; - default: - break; - } - case 1: - break; - } - - if (debug->x > module->width - 1) - { - debug->x = 0; - debug->y++; - } - - if (debug->y > module->height - 1) - debug->y = 0; - - if (debug->x < 0) - { - debug->x = module->width - 1; - debug->y--; - } - - if (debug->y < 0) - debug->y = module->height - 1; - - b_module_fill (module, 0); - b_module_draw_point (module, debug->x, debug->y, debug->val); - - paint_digits (debug); - - b_module_paint (module); -} - -static gint -b_debug_tick (BModule *module) -{ - BDebug *debug = B_DEBUG (module); - BModuleEvent ev; - - ev.device_id = 0; - ev.type = B_EVENT_TYPE_KEY; - - if (debug->dimming) - ev.key = B_KEY_5; - else if (debug->runmode) - ev.key = B_KEY_6; - - b_debug_event (module, &ev); - - if (debug->dimming) - return 1000; - else if (debug->runmode) - return 333; - - return 0; -} - -static void -b_debug_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BDebug"; - *description = "Blinkenlights Debug swiss army knife"; - *author = "Blinkenlights Crew"; -} diff --git a/blib-1.1.7/modules/bdropout.c b/blib-1.1.7/modules/bdropout.c deleted file mode 100644 index 2515369..0000000 --- a/blib-1.1.7/modules/bdropout.c +++ /dev/null @@ -1,221 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -#include - -#include -#include - -#include - -#include - -#define TIMEOUT 5 - -#define B_TYPE_DROPOUT (b_type_dropout) -#define B_DROPOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_DROPOUT, BDropout)) -#define B_DROPOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_DROPOUT, BDropoutClass)) -#define B_IS_DROPOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_DROPOUT)) - -typedef struct _BDropout BDropout; -typedef struct _BDropoutClass BDropoutClass; - -struct _BDropout -{ - BModule parent_instance; - - gboolean *dropmap; - gint n; -}; - -struct _BDropoutClass -{ - BModuleClass parent_class; -}; - -static GType b_dropout_get_type (GTypeModule *module); - -static void b_dropout_class_init (BDropoutClass *klass); -static void b_dropout_init (BDropout *dropout); - -static gboolean b_dropout_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_dropout_prepare (BModule *module, - GError **error); -static void b_dropout_relax (BModule *module); -static void b_dropout_start (BModule *module); -static gint b_dropout_tick (BModule *module); -static void b_dropout_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_dropout = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_dropout_get_type (module); - return TRUE; -} - -GType -b_dropout_get_type (GTypeModule *module) -{ - if (!b_type_dropout) - { - static const GTypeInfo dropout_info = - { - sizeof (BDropoutClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_dropout_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BDropout), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_dropout_init, - }; - - b_type_dropout = g_type_module_register_type (module, - B_TYPE_MODULE, "BDropout", - &dropout_info, 0); - } - - return b_type_dropout; -} - -static void -b_dropout_class_init (BDropoutClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - module_class->query = b_dropout_query; - module_class->prepare = b_dropout_prepare; - module_class->relax = b_dropout_relax; - module_class->start = b_dropout_start; - module_class->tick = b_dropout_tick; - module_class->describe = b_dropout_describe; -} - -static void -b_dropout_init (BDropout *dropout) -{ -} - -static gboolean -b_dropout_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 3 && channels == 1 && maxval == 255); -} - -static gboolean -b_dropout_prepare (BModule *module, - GError **error) -{ - BDropout *dropout = B_DROPOUT (module); - /* gint x, y; */ - - g_return_val_if_fail (module->height > 0, FALSE); - - /* HACK */ - /* - for (x=0; xwidth; x++) - for (y=0; yheight; y++) - b_module_draw_point (module, x, y, 0xff); - */ - - dropout->dropmap = g_new0 (gboolean, module->width * module->height); - dropout->n = 0; - - return TRUE; -} - -static void -b_dropout_relax (BModule *module) -{ - BDropout *dropout = B_DROPOUT (module); - - if (dropout->dropmap) - { - g_free (dropout->dropmap); - dropout->dropmap = NULL; - } -} - -static void -b_dropout_start (BModule *module) -{ - b_module_ticker_start (module, b_dropout_tick (module)); -} - -static gint -b_dropout_tick (BModule *module) -{ - BDropout *dropout = B_DROPOUT (module); - gint x, y, n; - - for (n = 0; n < 5; n++) - { - if (++dropout->n == module->width * module->height) - { - b_module_fill (module, 0); - b_module_paint (module); - b_module_request_stop (module); - return 0; - } - - do - { - x = random () % module->width; - y = random () % module->height; - } - while (dropout->dropmap[(y * module->width) + x]); - - dropout->dropmap[(y * module->width) + x] = TRUE; - b_module_draw_point (module, x, y, 0); - } - - b_module_paint (module); - - return TIMEOUT; -} - -static void -b_dropout_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BDropout"; - *description = "Dropout hack"; - *author = "Daniel Mack"; -} diff --git a/blib-1.1.7/modules/bfire.c b/blib-1.1.7/modules/bfire.c deleted file mode 100644 index 9d1050b..0000000 --- a/blib-1.1.7/modules/bfire.c +++ /dev/null @@ -1,286 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Sven Neumann - * - * Fire algorithm is based upon aafire which is distributed with aalib. - * - * dT8 8Tb - * dT 8 8 Tb - * dT 8 8 Tb - * - * dT 8 8 Tb - * dT 8 8 Tb - * - * 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. - */ - -#include - -#include -#include - -#include - -#include - -#define MAXTABLE (256*5) -#define TIMEOUT 160 - -#define B_TYPE_FIRE (b_type_fire) -#define B_FIRE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_FIRE, BFire)) -#define B_FIRE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_FIRE, BFireClass)) -#define B_IS_FIRE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_FIRE)) - -typedef struct _BFire BFire; -typedef struct _BFireClass BFireClass; - -struct _BFire -{ - BModule parent_instance; - - gboolean flames; - gint frames; - guint table[MAXTABLE]; -}; - -struct _BFireClass -{ - BModuleClass parent_class; -}; - -enum -{ - PROP_0, - PROP_FLAMES -}; - - -static GType b_fire_get_type (GTypeModule *module); - -static void b_fire_class_init (BFireClass *klass); -static void b_fire_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static void b_fire_init (BFire *fire); - -static gboolean b_fire_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_fire_prepare (BModule *module, - GError **error); -static void b_fire_start (BModule *module); -static gint b_fire_tick (BModule *module); -static void b_fire_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_fire = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_fire_get_type (module); - return TRUE; -} - -GType -b_fire_get_type (GTypeModule *module) -{ - if (!b_type_fire) - { - static const GTypeInfo fire_info = - { - sizeof (BFireClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_fire_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BFire), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_fire_init, - }; - - b_type_fire = g_type_module_register_type (module, - B_TYPE_MODULE, "BFire", - &fire_info, 0); - } - - return b_type_fire; -} - -static void -b_fire_class_init (BFireClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - object_class->set_property = b_fire_set_property; - - param_spec = g_param_spec_boolean ("flames", NULL, - "Whether to draw flames or not.", - TRUE, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_FLAMES, param_spec); - - module_class->query = b_fire_query; - module_class->prepare = b_fire_prepare; - module_class->start = b_fire_start; - module_class->tick = b_fire_tick; - module_class->describe = b_fire_describe; -} - -static void -b_fire_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BFire *fire = B_FIRE (object); - - switch (property_id) - { - case PROP_FLAMES: - fire->flames = g_value_get_boolean (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -b_fire_init (BFire *fire) -{ -} - -static gboolean -b_fire_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 3 && channels == 1 && maxval == 255); -} - -static gboolean -b_fire_prepare (BModule *module, - GError **error) -{ - BFire *fire = B_FIRE (module); - guint i, p2; - gint minus; - - g_return_val_if_fail (module->height > 0, FALSE); - - minus = MAX (1, 500 / module->height); - - for (i = 0; i < MAXTABLE; i++) - { - if (i > minus) - { - p2 = (i - minus) / 5; - fire->table[i] = p2; - } - else - fire->table[i] = 0; - } - - return TRUE; -} - -static void -b_fire_start (BModule *module) -{ - B_FIRE (module)->frames = 0; - b_module_ticker_start (module, b_fire_tick (module)); -} - -static gint -b_fire_tick (BModule *module) -{ - BFire *fire = B_FIRE (module); - gint width = module->width; - gint height = module->height; - guchar *d; - guint i, r, last; - - if (fire->flames) - { - guint i1 = 1; - guint i2 = 4 * width + 1; - - for (i = 0, d = module->buffer + width * (height - 3); - i < width; - i1 += 4, i2 -= 4, d++, i++) - { - for (r = rand() % 6, last = 4 * (rand() % MIN (i1, MIN (i2, 64))); - r > 0 && i < width; - d++, r--, i1 += 4, i2 -= 4, i++) - { - d[0] = last; - last += rand() % 16 - 4; - d[width] = last; - last += rand() % 16 - 4; - d[2 * width] = last; - last += rand() % 16 - 4; - } - } - } - else if (++fire->frames >= 2 * height) - { - b_module_request_stop (module); - return 0; - } - - for (i = width * height, d = module->buffer; i > width * 2 + 1; d++, i--) - *d = fire->table[(d[width - 1] + d[width + 1] + d[width] + - d[2 * width - 1] + d[2 * width + 1])]; - - for ( ; i > width + 1; d++, i--) - *d = fire->table[(d[width - 1] + d[width + 1] + d[width] + - 2 * d[0])]; - - for ( ; i > 1; d++, i--) - *d = fire->table[d[- 1] + 3 * d[0] + d[1]]; - - *d = fire->table[2 * d[- 1] + 3 * d[0]]; - - b_module_paint (module); - - return TIMEOUT; -} - -static void -b_fire_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BFire"; - *description = "Fire hack"; - *author = "Sven Neumann"; -} diff --git a/blib-1.1.7/modules/bmatrix.c b/blib-1.1.7/modules/bmatrix.c deleted file mode 100644 index f67cc07..0000000 --- a/blib-1.1.7/modules/bmatrix.c +++ /dev/null @@ -1,757 +0,0 @@ -/* bmatrix.c Matrix Module for blib - * - * Copyright (c) 2002 Simon Budig , - * 1999 Jamie Zawinski - * - * Inspired/Ripped off from the Matrix hack from the xscreensaver package. - * - * Due to the very hackish nature of this hack no warranties for the - * quality of the code are given. Sorry. - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * Matrix -- simulate the text scrolls from the movie "The Matrix". - * - */ - -#include -#include - -#include -#include - -#include - - -#define TIMEOUT 60 -#define MATRIX_DENSITY 40 /* Average density of used pixels */ -#define MATRIX_INSERT "both" /* "top" "bottom" "both" */ -#define MATRIX_ACTION 0 /* special effects - flashing, errors, etc. */ -#define MATRIX_SPINNER 0 /* number of stationary flashing pixels */ - -/* Uncomment this for 2 pixels wide columns -#define MATRIX_WIDE - */ - -#define B_TYPE_MATRIX (b_type_matrix) -#define B_MATRIX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_MATRIX, BMatrix)) -#define B_MATRIX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_MATRIX, BMatrixClass)) -#define B_IS_MATRIX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_MATRIX)) - -typedef struct _BMatrix BMatrix; -typedef struct _BMatrixClass BMatrixClass; - -typedef struct _BMatrixCell BMatrixCell; -typedef struct _BMatrixFeeder BMatrixFeeder; - - -struct _BMatrixCell -{ - guint glyph : 8; - gint glow : 8; - guint changed : 1; - guint spinner : 1; -}; - -struct _BMatrixFeeder -{ - gint remaining; - gint throttle; - gint y; - gint failure; - gint fail_type; -}; - -struct _BMatrix -{ - BModule parent_instance; - - gint grid_width, grid_height; - gint flash_x, flash_y, flash_count; - gint failcount; - BMatrixCell *cells; - BMatrixFeeder *feeders; - gint action_p; - gint insert_top_p, insert_bottom_p; - gint density; - gint density_param; - - gint image_width, image_height; - gint nglyphs; -}; - -struct _BMatrixClass -{ - BModuleClass parent_class; -}; - -enum -{ - PROP_0, - PROP_LINES -}; - -static gint densitizer (BMatrix *state); -static void init_spinners (BMatrix *state); -static void draw_matrix (BMatrix *state); - - -static guchar intensities[] = -{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 4, 5, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 -}; - -static GType b_matrix_get_type (GTypeModule *module); -static void b_matrix_class_init (BMatrixClass *klass); -static gboolean b_matrix_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_matrix_prepare (BModule *module, - GError **error); -static void b_matrix_relax (BModule *module); -static void b_matrix_start (BModule *module); -static gint b_matrix_tick (BModule *module); -static void b_matrix_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - -static GType b_type_matrix = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_matrix_get_type (module); - return TRUE; -} - -GType -b_matrix_get_type (GTypeModule *module) -{ - if (!b_type_matrix) - { - static const GTypeInfo matrix_info = - { - sizeof (BMatrixClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_matrix_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BMatrix), - 0, /* n_preallocs */ - NULL /* instance_init */ - }; - - b_type_matrix = g_type_module_register_type (module, - B_TYPE_MODULE, "BMatrix", - &matrix_info, 0); - } - - return b_type_matrix; -} - -static void -b_matrix_class_init (BMatrixClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->query = b_matrix_query; - module_class->prepare = b_matrix_prepare; - module_class->relax = b_matrix_relax; - module_class->start = b_matrix_start; - module_class->tick = b_matrix_tick; - module_class->describe = b_matrix_describe; -} - -static gboolean -b_matrix_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 0 && maxval == 255 && channels == 1); -} - -static gboolean -b_matrix_prepare (BModule *module, - GError **error) -{ - BMatrix *state = B_MATRIX (module); - gchar *insert = NULL; - - state->nglyphs = 15; - -#ifdef MATRIX_WIDE - state->grid_width = (module->width + 1) / 3; -#else - state->grid_width = module->width; -#endif - state->grid_height = module->height; - - state->flash_count = -rand() % 1000; - - state->cells = g_new0 (BMatrixCell, state->grid_width * state->grid_height); - state->feeders = g_new0 (BMatrixFeeder, state->grid_width); - - state->density = MATRIX_DENSITY; - if (state->density < 0) state->density = 0; - if (state->density > 100) state->density = 100; - state->density_param = densitizer (state); - - insert = MATRIX_INSERT; - if (insert && !strcmp(insert, "top")) - { - state->insert_top_p = TRUE; - state->insert_bottom_p = FALSE; - } - else if (insert && !strcmp(insert, "bottom")) - { - state->insert_top_p = FALSE; - state->insert_bottom_p = TRUE; - } - else if (insert && !strcmp(insert, "both")) - { - state->insert_top_p = TRUE; - state->insert_bottom_p = TRUE; - } - else - { - /* if (insert && *insert) - fprintf (stderr, - "%s: `insert' must be `top', `bottom', or `both', not `%s'\n", - "bmatrix", insert); */ - state->insert_top_p = FALSE; - state->insert_bottom_p = TRUE; - } - - state->action_p = MATRIX_ACTION; - - init_spinners (state); - - return TRUE; -} - -static void -b_matrix_relax (BModule *module) -{ - BMatrix *matrix = B_MATRIX (module); - - if (matrix->cells) - { - g_free (matrix->cells); - matrix->cells = NULL; - } - if (matrix->feeders) - { - g_free (matrix->feeders); - matrix->feeders = NULL; - } -} - -static void -b_matrix_start (BModule *module) -{ - b_module_fill (module, 0); - b_module_ticker_start (module, TIMEOUT); -} - -static gint -b_matrix_tick (BModule *module) -{ - BMatrix *matrix = B_MATRIX (module); - - draw_matrix (matrix); - b_module_paint (module); - - return TIMEOUT; -} - -static void -b_matrix_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BMatrix"; - *description = "Matrix hack"; - *author = "Simon Budig, Jamie Zawinski"; -} - -static gint -densitizer (BMatrix *state) -{ - /* Horrid kludge that converts percentages (density of screen coverage) - to the parameter that actually controls this. I got this mapping - empirically, on a 1024x768 screen. Sue me. */ - /* Used to determine a reasonable starting value, xmatrix tries to - adjust this parameter while running. */ - if (state->density < 10) return 85; - else if (state->density < 15) return 60; - else if (state->density < 20) return 45; - else if (state->density < 25) return 25; - else if (state->density < 30) return 20; - else if (state->density < 35) return 15; - else if (state->density < 45) return 10; - else if (state->density < 50) return 8; - else if (state->density < 55) return 7; - else if (state->density < 65) return 5; - else if (state->density < 80) return 3; - else if (state->density < 90) return 2; - else return 1; -} - - -static void -init_spinners (BMatrix *state) -{ - gint i = MATRIX_SPINNER; - gint x, y; - BMatrixCell *cell; - - for (y = 0; y < state->grid_height; y++) - for (x = 0; x < state->grid_width; x++) - { - cell = &state->cells[state->grid_width * y + x]; - cell->spinner = 0; - } - - while (--i > 0) - { - x = rand() % state->grid_width; - y = rand() % state->grid_height; - cell = &state->cells[state->grid_width * y + x]; - cell->spinner = 1; - } -} - -static void -insert_glyph (BMatrix *state, gint glyph, gint x, gint y) -{ - gint bottom_feeder_p = (y >= 0); - BMatrixCell *from, *to; - - if (y >= state->grid_height) - return; - - if (bottom_feeder_p) - { - to = &state->cells[state->grid_width * y + x]; - } - else - { - for (y = state->grid_height-1; y > 0; y--) - { - from = &state->cells[state->grid_width * (y-1) + x]; - to = &state->cells[state->grid_width * y + x]; - to->glyph = from->glyph; - to->glow = from->glow; - to->changed = 1; - } - to = &state->cells[x]; - } - - to->glyph = glyph; - to->changed = 1; - - if (!to->glyph) - ; - else if (bottom_feeder_p) - to->glow = 1 + (rand() % 2); - else - to->glow = 0; -} - - -static void -feed_matrix (BMatrix *state) -{ - gint x; - - /* Update according to current feeders. */ - for (x = 0; x < state->grid_width; x++) - { - BMatrixFeeder *f = &state->feeders[x]; - - if (f->throttle) /* this is a delay tick, synced to frame. */ - { - f->throttle--; - } - else if (f->remaining > 0) /* how many items are in the pipe */ - { - gint g = (rand() % state->nglyphs) + 1; - insert_glyph (state, g, x, f->y); - f->remaining--; - if (f->y >= 0) /* bottom_feeder_p */ - f->y++; - } - else /* if pipe is empty, insert spaces */ - { - insert_glyph (state, 0, x, f->y); - if (f->y >= 0) /* bottom_feeder_p */ - f->y++; - } - - if ((rand() % 10) == 0) /* randly change throttle speed */ - { - f->throttle = ((rand() % 5) + (rand() % 5)); - } - } -} - - -static void -hack_matrix (BMatrix *state) -{ - gint x; - - /* Glow some characters. */ - if (!state->insert_bottom_p) - { - gint i = rand() % (state->grid_width / 2); - while (--i > 0) - { - gint x = rand() % state->grid_width; - gint y = rand() % state->grid_height; - BMatrixCell *cell = &state->cells[state->grid_width * y + x]; - if (cell->glyph && cell->glow == 0) - { - cell->glow = rand() % 10; - cell->changed = 1; - } - } - } - - /* Change some of the feeders. */ - - state->failcount = 0; - - for (x = 0; x < state->grid_width; x++) - { - BMatrixFeeder *f = &state->feeders[x]; - gint bottom_feeder_p; - - if (state->action_p) - /* failure of some columns is controlled by a counter: - f->failure == 0: normal operation, - f->failure < -1: flickering, will black out soon, - f->failure == -1: black out - f->failure > 1: still black out... - f->failure == 1: resuming operation - */ - { - if (f->failure != 0) - { - f->failure += (f->failure < 0 ? 1 : -1); - state->failcount++; - } - - if (f->failure < -1) - { - gint y; - gint r = rand() % 10; - BMatrixCell *cell; - f->fail_type = r > 2 ? 1 : 2; - if (f->fail_type == 2) - for (y=0; y < state->grid_height; y++) - { - cell = &state->cells[state->grid_width * y + x]; - if (cell->glyph) - { - cell->glow = 1; - cell->changed = 1; - } - } - } - - if (f->failure == -1) - { - f->failure += 150; /* This should be variable, but equal - for failing neighbours */ - f->fail_type = 1; - } - - if (f->failure == 1) - { - gint y; - BMatrixCell *cell; - - f->fail_type = 0; - for (y=0; y < state->grid_height; y++) - { - cell = &state->cells[state->grid_width * y + x]; - if (cell->glyph) - { - cell->glow = 1; - cell->changed = 1; - } - } - } - } - - if (f->remaining > 0) /* never change if pipe isn't empty */ - continue; - - /* if ((rand() % densitizer(state)) != 0) then change N% of the time */ - if ((rand() % state->density_param) != 0) /* then change N% of the time */ - continue; - - f->remaining = 3 + (rand() % state->grid_height); - f->throttle = ((rand() % 5) + (rand() % 5)); - - if ((rand() % 4) != 0) - f->remaining = 0; - - if (state->insert_top_p && state->insert_bottom_p) - bottom_feeder_p = (rand() & 1); - else - bottom_feeder_p = state->insert_bottom_p; - - if (bottom_feeder_p) - f->y = rand() % (state->grid_height / 2); - else - f->y = -1; - } - - if (state->action_p) - { - /* Some columns may fail - they typically infect their neighbours */ - gint failtimeout = (rand() % 12) + 3; - - if (!(rand() % 200) && state->failcount <= state->grid_width / 6) - { - gint w = rand() % (1 + state->grid_width / 12); - gint i; - - x = (rand() % state->grid_width); - - for (i = -w; i <= w ; i++) - { - if (x+i >= 0 && - x+i < state->grid_width && - !(state->feeders[x+i].failure)) - { - state->feeders[x+i].failure = - -failtimeout - w + (rand() % (abs(i/3)+1)); - } - } - } - - /* Sometimes a flash (expanding square of glowing glyphs) will appear. - state->flash_count < 0: Count up to next flash - state->flash_count >= 0: radius of flash - */ - if (state->flash_count <= state->grid_width + state->grid_height) - state->flash_count++; - else - state->flash_count = - 1000 + rand() % 800; - - if (state->flash_count == 0) - { - BMatrixCell *cell; - state->flash_x = rand() % state->grid_width; - state->flash_y = rand() % state->grid_height; - cell = - &state->cells[state->grid_width * state->flash_y + state->flash_x]; - if (cell->glyph && !(cell->glow > 0)) - { - cell->glow = 1; - cell->changed = 1; - } - } - - if (state->flash_count > 0) - { - BMatrixCell *cell; - gint j, k, x, y; - k = state->flash_count + state->flash_count / 4; - for (; state->flash_count < k; state->flash_count++) - { - for (j=0; j <= 2 * state->flash_count; j += 1) - { - x = state->flash_x - state->flash_count + j; - y = state->flash_y - state->flash_count; - if (x >= 0 && x < state->grid_width && y >= 0 && - y < state->grid_height) - { - cell = &state->cells[state->grid_width * y + x]; - if (cell->glyph) { cell->glow+=2; cell->changed = 1; } - } - y = state->flash_y + state->flash_count; - if (x >= 0 && x < state->grid_width && y >= 0 && - y < state->grid_height) - { - cell = &state->cells[state->grid_width * y + x]; - if (cell->glyph) { cell->glow+=2; cell->changed = 1; } - } - y = state->flash_y - state->flash_count + j; - x = state->flash_x - state->flash_count; - if (x >= 0 && x < state->grid_width && y >= 0 && - y < state->grid_height) - { - cell = &state->cells[state->grid_width * y + x]; - if (cell->glyph) { cell->glow+=2; cell->changed = 1; } - } - x = state->flash_x + state->flash_count; - if (x >= 0 && x < state->grid_width && y >= 0 && - y < state->grid_height) - { - cell = &state->cells[state->grid_width * y + x]; - if (cell->glyph) { cell->glow+=2; cell->changed = 1; } - } - } - } - } - } - - if (! (rand() % 500)) - init_spinners (state); -} - -static void -draw_matrix (BMatrix *state) -{ - gint x, y, i; - gint count = 0; - BModule *module = B_MODULE (state); - -# define WINDOW 25 - gint dens; - static gint ndens = 0; - static gint tdens = 0; - static gint *densities = NULL; - static gint *parameters = NULL; - static gint dens_sum, param_sum; - - feed_matrix (state); - hack_matrix (state); - - for (x = 0; x < state->grid_width; x++) - { - /* BMatrixFeeder *f = &(state->feeders[x]); */ - - for (y = 0; y < state->grid_height; y++) - { - BMatrixCell *cell = &state->cells[state->grid_width * y + x]; - - if (cell->glyph) - count++; - - if (!cell->changed) - continue; - -#ifdef MATRIX_WIDE - if (cell->glyph == 0) - { - b_module_draw_point (module, x*3, y, 0); - b_module_draw_point (module, x*3+1, y, 0); - } - else - { - b_module_draw_point (module, x*3, y, 17 * intensities[ - ((cell->glow > 0 || cell->spinner) ? - cell->glyph + 30 - : (cell->glow == 0 - ? cell->glyph + 15 - : cell->glyph)) -1]); - b_module_draw_point (module, x*3+1, y, 17 * intensities[ - ((cell->glow > 0 || cell->spinner) ? - cell->glyph + 30 - : (cell->glow == 0 - ? cell->glyph + 15 - : cell->glyph)) -1]); - } -#else - if (cell->glyph == 0) - { - b_module_draw_point (module, x, y, 0); - } - else - { - b_module_draw_point (module, x, y, 17 * intensities[ - ((cell->glow > 0 || cell->spinner) ? - cell->glyph + 30 - : (cell->glow == 0 - ? cell->glyph + 15 - : cell->glyph)) -1]); - } -#endif - - cell->changed = 0; - - if (cell->glow > 0) - { - cell->glow--; - cell->changed = 1; - } - else if (cell->glow < 0) - { - cell->glow++; - if (cell->glow == 0) - cell->glyph = 0; - cell->changed = 1; - } - - if (cell->spinner) - { - cell->glyph = rand() % state->nglyphs; - cell->changed = 1; - } - } - } - - /* Adjust density-parameter */ - dens = (100 * count) / (state->grid_width * state->grid_height); - - if (!densities) { - densities = g_new (gint, WINDOW); - for (i = 0; i < WINDOW; i++) densities[i] = state->density; - dens_sum = state->density * WINDOW; - } - if (!parameters) { - parameters = g_new (gint, WINDOW); - for (i = 0; i < WINDOW; i++) parameters[i] = state->density_param; - param_sum = state->density_param * WINDOW; - } - - /* collect the last WINDOW density/parameter values */ - - dens_sum -= densities [ndens % WINDOW]; - param_sum -= parameters [ndens % WINDOW]; - - densities [ndens % WINDOW] = dens; - parameters [ndens % WINDOW] = state->density_param; - - dens_sum += densities [ndens % WINDOW]; - param_sum += parameters [ndens % WINDOW]; - - tdens += dens; - ndens++; - - /* assume, that the average parameter results in the average density - * and adjust the parameter accordingly +- 1 */ - - if (dens_sum <= (state->density - 5) * WINDOW && - state->density_param > 1) - state->density_param = param_sum / WINDOW - 1; - - if (dens_sum >= (state->density + 5) * WINDOW) - state->density_param = param_sum / WINDOW + 2; - /* +2 to jump over the rounding error */ - -#if 0 - printf ("density: %d%% (%d%%), param: %d\n", - dens, (tdens / ndens), state->density_param); -#endif -} diff --git a/blib-1.1.7/modules/bpacman.c b/blib-1.1.7/modules/bpacman.c deleted file mode 100644 index dbfbff8..0000000 --- a/blib-1.1.7/modules/bpacman.c +++ /dev/null @@ -1,813 +0,0 @@ -/* BPacman: Pacman module for Blinkenlights - * - * Copyright (c) 2002 1stein <1stein@1stein.no-ip.com> - * - * based on Test implementation for a BModule by the Blinkenlights Crew - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include - -#define BPacmanVerMaj 1 -#define BPacmanVerMin 0 -#define BPacmanVerRev 3 - -//minimum size and color count of display -#define BPacmanSizeXMin 25 -#define BPacmanSizeYMin 19 -#define BPacmanColorCntMin 4 -//number of lives for pacman -#define BPacmanLives 3 -//speed of game -#define BPacmanTicks 150 -//number of ticks pacman is dead after contact with monster -#define BPacmanDeadTime 10 -//position of eaten monsters -#define BPacmanMonsterNirvana -100 -//the colors -#define BPacmanColorEmpty( MaxColor ) (0) -#define BPacmanColorWall( MaxColor ) ((MaxColor) * 2 / 3) -#define BPacmanColorPoint( MaxColor ) ((MaxColor) / 3) -#define BPacmanColorPacmanDead( MaxColor ) ((MaxColor) / 2) -#define BPacmanColorPacmanAlive( MaxColor ) (MaxColor) -#define BPacmanColorMonsterDead( MaxColor ) ((MaxColor) / 2) -#define BPacmanColorMonsterAlive( MaxColor ) (MaxColor) -//start position and direction of pacman -#define BPacmanStartPosX -1 -#define BPacmanStartPosY 8 -#define BPacmanStartDirX 1 -#define BPacmanStartDirY 0 -//start positions and directions of monsters -#define BPacmanMonsterCnt 2 -#define BPacmanMonster0StartPosX 12 -#define BPacmanMonster0StartPosY -1 -#define BPacmanMonster0StartDirX 0 -#define BPacmanMonster0StartDirY 1 -#define BPacmanMonster1StartPosX 12 -#define BPacmanMonster1StartPosY 19 -#define BPacmanMonster1StartDirX 0 -#define BPacmanMonster1StartDirY -1 -//the walls of the game-field -int BPacmanWalls[BPacmanSizeYMin][BPacmanSizeXMin] = { - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1}, - {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1}, - {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1}, - {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, - {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, - {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, - {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1}, - {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1}, - {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1}, - {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1}, - {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} -}; -//the positions where changing direction is allowed -int BPacmanChDir[BPacmanSizeYMin][BPacmanSizeXMin] = { - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 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} -}; -//the points of the game-field -int BPacmanPoints[BPacmanSizeYMin][BPacmanSizeXMin] = { - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 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}, - {1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 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, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -}; - -#ifdef PACMAN_DEBUG -#define dbg_print g_print -#else -static inline void -dbg_print (char * Fmt, ...) -{ -} -#endif - -#define B_TYPE_PACMAN_MODULE (b_type_pacman_module) -#define B_PACMAN_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_PACMAN_MODULE, BPacmanModule)) -#define B_PACMAN_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_PACMAN_MODULE, BPacmanModuleClass)) -#define B_IS_PACMAN_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_PACMAN_MODULE)) - -typedef struct _BPacmanModule BPacmanModule; -typedef struct _BPacmanModuleClass BPacmanModuleClass; - -struct _BPacmanModule -{ - BModule parent_instance; - - int OfsX, OfsY; //offset of top left corner of game-field - int MaxColor; //maximum color value - int Points[BPacmanSizeYMin][BPacmanSizeXMin]; //points in game field - int PointsLeft; //numer of points left - int PosX, PosY, CurDirX, CurDirY, NextDirX, NextDirY; //position, current direction and next direction of pacman - int MouthOpen; //pacman's mouth state - int DeadCnt; //counter how long pacman is dead, 0 if not dead - int MonsterPosX[BPacmanMonsterCnt], MonsterPosY[BPacmanMonsterCnt]; //position of monsters - int MonsterDirX[BPacmanMonsterCnt], MonsterDirY[BPacmanMonsterCnt]; //direction of monsters - int MonstersDead; //!0 if monsters are dead - int Lives; //rest of pacman's lives - int player_device_id; -}; - -struct _BPacmanModuleClass -{ - BModuleClass parent_class; -}; - -static GType b_pacman_module_get_type (GTypeModule *module); -static void b_pacman_module_class_init (BPacmanModuleClass *klass); -static void b_pacman_module_init (BPacmanModule *test_module); -static gboolean b_pacman_module_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_pacman_module_prepare (BModule *module, - GError **error); -static void b_pacman_module_start (BModule *module); -static void b_pacman_module_event (BModule *module, - BModuleEvent *event); -static gint b_pacman_module_tick (BModule *module); -static void b_pacman_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_pacman_module = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule * module) -{ - b_pacman_module_get_type (module); - - return TRUE; -} - -GType -b_pacman_module_get_type (GTypeModule * module) -{ - if (!b_type_pacman_module) - { - static const GTypeInfo pacman_module_info = { - sizeof (BPacmanModuleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_pacman_module_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BPacmanModule), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_pacman_module_init, - }; - - /* !!!!!!!!! The name given in the next function MUST be unique! */ - - b_type_pacman_module = g_type_module_register_type (module, - B_TYPE_MODULE, - "BPacman", - &pacman_module_info, - 0); - } - - return b_type_pacman_module; -} - -//check a picel -//returns 1 if pixel in game field or 0 if it is not in game field -static inline int -BPacmanCheckPixel (int X, int Y) -{ - return (X >= 0 && X < BPacmanSizeXMin && Y >= 0 && Y < BPacmanSizeYMin); -} - -//check a position (for pacman or monster) -//returns 1 if position is free of walls or 0 if there is a wall at this position -int -BPacmanCheckPos (int X, int Y) -{ - int XX, YY; - - for (YY = -1; YY <= 1; YY++) - for (XX = -1; XX <= 1; XX++) - if (BPacmanCheckPixel (X + XX, Y + YY)) - if (BPacmanWalls[Y + YY][X + XX]) - return 0; - return 1; -} - -//output a pixel -void -BPacmanOutputPixel (BPacmanModule *pPacmanModule, int X, int Y, int Color) -{ - if (BPacmanCheckPixel (X, Y)) - b_module_draw_point ((BModule *) pPacmanModule, - X + pPacmanModule->OfsX, Y + pPacmanModule->OfsY, - Color); -} - -//output current picture -void -BPacmanOutput (BPacmanModule *pPacmanModule) -{ - int X, Y, I, Color; - - //empty the screen - b_module_fill ((BModule *) pPacmanModule, - BPacmanColorEmpty (pPacmanModule->MaxColor)); - - //put walls and points onto screen - for (Y = 0; Y < BPacmanSizeYMin; Y++) - { - for (X = 0; X < BPacmanSizeXMin; X++) - { - //wall - if (BPacmanWalls[Y][X]) - b_module_draw_point ((BModule *) pPacmanModule, - X + pPacmanModule->OfsX, - Y + pPacmanModule->OfsY, - BPacmanColorWall (pPacmanModule->MaxColor)); - //point - if (pPacmanModule->Points[Y][X]) - b_module_draw_point ((BModule *) pPacmanModule, - X + pPacmanModule->OfsX, - Y + pPacmanModule->OfsY, - BPacmanColorPoint (pPacmanModule->MaxColor)); - } - } - - //get pacman color (dead or alive) - if (pPacmanModule->DeadCnt > 0) - Color = BPacmanColorPacmanDead (pPacmanModule->MaxColor); - else - Color = BPacmanColorPacmanAlive (pPacmanModule->MaxColor); - //draw pacman - if (!pPacmanModule->MouthOpen) - BPacmanOutputPixel (pPacmanModule, pPacmanModule->PosX, - pPacmanModule->PosY, Color); - if (!pPacmanModule->MouthOpen || pPacmanModule->CurDirX != -1) - BPacmanOutputPixel (pPacmanModule, pPacmanModule->PosX - 1, - pPacmanModule->PosY, Color); - if (!pPacmanModule->MouthOpen || pPacmanModule->CurDirX != 1) - BPacmanOutputPixel (pPacmanModule, pPacmanModule->PosX + 1, - pPacmanModule->PosY, Color); - if (!pPacmanModule->MouthOpen || pPacmanModule->CurDirY != -1) - BPacmanOutputPixel (pPacmanModule, pPacmanModule->PosX, - pPacmanModule->PosY - 1, Color); - if (!pPacmanModule->MouthOpen || pPacmanModule->CurDirY != 1) - BPacmanOutputPixel (pPacmanModule, pPacmanModule->PosX, - pPacmanModule->PosY + 1, Color); - - //get monster color (dead or alive) - if (pPacmanModule->MonstersDead) - Color = BPacmanColorMonsterDead (pPacmanModule->MaxColor); - else - Color = BPacmanColorMonsterAlive (pPacmanModule->MaxColor); - //draw monsters - for (I = 0; I < BPacmanMonsterCnt; I++) - { - BPacmanOutputPixel (pPacmanModule, pPacmanModule->MonsterPosX[I], - pPacmanModule->MonsterPosY[I] - 1, Color); - BPacmanOutputPixel (pPacmanModule, pPacmanModule->MonsterPosX[I] - 1, - pPacmanModule->MonsterPosY[I], Color); - BPacmanOutputPixel (pPacmanModule, pPacmanModule->MonsterPosX[I], - pPacmanModule->MonsterPosY[I], Color); - BPacmanOutputPixel (pPacmanModule, pPacmanModule->MonsterPosX[I] + 1, - pPacmanModule->MonsterPosY[I], Color); - BPacmanOutputPixel (pPacmanModule, pPacmanModule->MonsterPosX[I] - 1, - pPacmanModule->MonsterPosY[I] + 1, Color); - BPacmanOutputPixel (pPacmanModule, pPacmanModule->MonsterPosX[I] + 1, - pPacmanModule->MonsterPosY[I] + 1, Color); - } - - //update screen - b_module_paint ((BModule *) pPacmanModule); -} - -//start a new game -void -BPacmanNewGame (BPacmanModule *pPacmanModule) -{ - int X, Y; - - //copy points into local points array and count them - pPacmanModule->PointsLeft = 0; - for (Y = 0; Y < BPacmanSizeYMin; Y++) - { - for (X = 0; X < BPacmanSizeXMin; X++) - { - pPacmanModule->Points[Y][X] = BPacmanPoints[Y][X]; - if (BPacmanPoints[Y][X]) - pPacmanModule->PointsLeft++; - } - } - - //set start position and direction of pacman - pPacmanModule->PosX = BPacmanStartPosX; - pPacmanModule->PosY = BPacmanStartPosY; - pPacmanModule->CurDirX = BPacmanStartDirX; - pPacmanModule->CurDirY = BPacmanStartDirY; - pPacmanModule->NextDirX = BPacmanStartDirX; - pPacmanModule->NextDirY = BPacmanStartDirY; - pPacmanModule->MouthOpen = 0; - pPacmanModule->DeadCnt = 0; - //set start position and direction of monsters - pPacmanModule->MonsterPosX[0] = BPacmanMonster0StartPosX; - pPacmanModule->MonsterPosY[0] = BPacmanMonster0StartPosY; - pPacmanModule->MonsterDirX[0] = BPacmanMonster0StartDirX; - pPacmanModule->MonsterDirY[0] = BPacmanMonster0StartDirY; - pPacmanModule->MonsterPosX[1] = BPacmanMonster1StartPosX; - pPacmanModule->MonsterPosY[1] = BPacmanMonster1StartPosY; - pPacmanModule->MonsterDirX[1] = BPacmanMonster1StartDirX; - pPacmanModule->MonsterDirY[1] = BPacmanMonster1StartDirY; - pPacmanModule->MonstersDead = 0; - - dbg_print ("BPacman: new game\n"); - - //output current picture - BPacmanOutput (pPacmanModule); -} - -//key-procedure -void -BPacmanKey (BPacmanModule *pPacmanModule, - BModuleKey Key) -{ - switch (Key) - { - case B_KEY_2: - //set pacman's next direction to upwards - pPacmanModule->NextDirX = 0; - pPacmanModule->NextDirY = -1; - break; - case B_KEY_4: - //set pacman's next direction to leftwards - pPacmanModule->NextDirX = -1; - pPacmanModule->NextDirY = 0; - break; - case B_KEY_6: - //set pacman's next direction to rightwards - pPacmanModule->NextDirX = 1; - pPacmanModule->NextDirY = 0; - break; - case B_KEY_8: - //set pacman's next direction to downwards - pPacmanModule->NextDirX = 0; - pPacmanModule->NextDirY = 1; - break; - - default: - break; - } - - //output current picture - BPacmanOutput (pPacmanModule); -} - -//tick-procedure -//returns 1 if game over or 0 if game not over -int -BPacmanTick (BPacmanModule *pPacmanModule) -{ - int X, Y, I, J, Left, Right, Up, Down, Cnt, DirX[4], DirY[4]; - - //toggle mouth state - pPacmanModule->MouthOpen = !pPacmanModule->MouthOpen; - - //mouth now open - if (pPacmanModule->MouthOpen) - { - //pacman is dead - if (pPacmanModule->DeadCnt > 0) - { - //decrement dead count - pPacmanModule->DeadCnt--; - if (pPacmanModule->DeadCnt == 0) - { - //another life - if( pPacmanModule->Lives > 0 ) - { - dbg_print( "BPacman: Pacman is alive again - %d live(s) left\n", pPacmanModule->Lives ); - } - //game over - else - { - dbg_print( "BPacman: Pacman has no lives left - game over\n" ); - //request end - b_module_request_stop( (BModule *)pPacmanModule ); - //do nothing else and return game over - return 1; - } - } - } - //pacman is alive - else - { - //pacman is at a position where changing direction is allowed - if (BPacmanCheckPixel (pPacmanModule->PosX, pPacmanModule->PosY)) - { - if (BPacmanChDir[pPacmanModule->PosY][pPacmanModule->PosX]) - { - //change direction to new one - pPacmanModule->CurDirX = pPacmanModule->NextDirX; - pPacmanModule->CurDirY = pPacmanModule->NextDirY; - } - } - - //get new position (move in current direction) - X = pPacmanModule->PosX + pPacmanModule->CurDirX; - Y = pPacmanModule->PosY + pPacmanModule->CurDirY; - //check if there is a wall at the new position - if (BPacmanCheckPos (X, Y)) - { - //set pacman to new position - pPacmanModule->PosX = X; - pPacmanModule->PosY = Y; - //wrap around - if (pPacmanModule->PosX < -1 && pPacmanModule->CurDirX < 0) - pPacmanModule->PosX = BPacmanSizeXMin; - if (pPacmanModule->PosX > BPacmanSizeXMin - && pPacmanModule->CurDirX > 0) - pPacmanModule->PosX = -1; - if (pPacmanModule->PosY < -1 && pPacmanModule->CurDirY < 0) - pPacmanModule->PosY = BPacmanSizeYMin; - if (pPacmanModule->PosY > BPacmanSizeYMin - && pPacmanModule->CurDirY > 0) - pPacmanModule->PosY = -1; - - //point at this position - if (BPacmanCheckPixel - (pPacmanModule->PosX, pPacmanModule->PosY)) - { - if (pPacmanModule-> - Points[pPacmanModule->PosY][pPacmanModule->PosX]) - { - //eat point - pPacmanModule->Points[pPacmanModule-> - PosY][pPacmanModule->PosX] = 0; - pPacmanModule->PointsLeft--; - //all points eaten - if (pPacmanModule->PointsLeft == 0) - { - //monsters are dead now - pPacmanModule->MonstersDead = 1; - } - } - } - } - } - - //monsters are alive - if (!pPacmanModule->MonstersDead) - { - //move monsters - for (I = 0; I < BPacmanMonsterCnt; I++) - { - //monster is at a position where changing direction is allowed - if (BPacmanCheckPixel - (pPacmanModule->MonsterPosX[I], - pPacmanModule->MonsterPosY[I])) - { - if (BPacmanChDir[pPacmanModule->MonsterPosY[I]] - [pPacmanModule->MonsterPosX[I]]) - { - //get possible directions - Left = - BPacmanCheckPos (pPacmanModule->MonsterPosX[I] - 1, - pPacmanModule->MonsterPosY[I]); - Right = - BPacmanCheckPos (pPacmanModule->MonsterPosX[I] + 1, - pPacmanModule->MonsterPosY[I]); - Up = - BPacmanCheckPos (pPacmanModule->MonsterPosX[I], - pPacmanModule->MonsterPosY[I] - 1); - Down = - BPacmanCheckPos (pPacmanModule->MonsterPosX[I], - pPacmanModule->MonsterPosY[I] + 1); - //count directions - Cnt = 0; - if (Left) - Cnt++; - if (Right) - Cnt++; - if (Up) - Cnt++; - if (Down) - Cnt++; - //more than one direction possible - if (Cnt > 1) - { - //exclude backward direction - if (pPacmanModule->MonsterDirX[I] == -1) - Right = 0; - if (pPacmanModule->MonsterDirX[I] == 1) - Left = 0; - if (pPacmanModule->MonsterDirY[I] == -1) - Down = 0; - if (pPacmanModule->MonsterDirY[I] == 1) - Up = 0; - } - //put possible directions into an array - Cnt = 0; - if (Left) - { - DirX[Cnt] = -1; - DirY[Cnt] = 0; - Cnt++; - } - if (Right) - { - DirX[Cnt] = 1; - DirY[Cnt] = 0; - Cnt++; - } - if (Up) - { - DirX[Cnt] = 0; - DirY[Cnt] = -1; - Cnt++; - } - if (Down) - { - DirX[Cnt] = 0; - DirY[Cnt] = 1; - Cnt++; - } - //change direction to new one - if (Cnt > 0) - { - J = rand () % Cnt; //select one of the possible directions per coincidence - pPacmanModule->MonsterDirX[I] = DirX[J]; - pPacmanModule->MonsterDirY[I] = DirY[J]; - } - } - } - - //get new position (move in current direction) - X = - pPacmanModule->MonsterPosX[I] + pPacmanModule->MonsterDirX[I]; - Y = - pPacmanModule->MonsterPosY[I] + pPacmanModule->MonsterDirY[I]; - //check if there is a wall at the new position - if (BPacmanCheckPos (X, Y)) - { - //set monster to new position - pPacmanModule->MonsterPosX[I] = X; - pPacmanModule->MonsterPosY[I] = Y; - //wrap around - if (pPacmanModule->MonsterPosX[I] < -1 - && pPacmanModule->MonsterDirX[I] < 0) - pPacmanModule->MonsterPosX[I] = BPacmanSizeXMin; - if (pPacmanModule->MonsterPosX[I] > BPacmanSizeXMin - && pPacmanModule->MonsterDirX[I] > 0) - pPacmanModule->MonsterPosX[I] = -1; - if (pPacmanModule->MonsterPosY[I] < -1 - && pPacmanModule->MonsterDirY[I] < 0) - pPacmanModule->MonsterPosY[I] = BPacmanSizeYMin; - if (pPacmanModule->MonsterPosY[I] > BPacmanSizeYMin - && pPacmanModule->MonsterDirY[I] > 0) - pPacmanModule->MonsterPosY[I] = -1; - } - } - } - } - - //check if monster kills pacman / pacman kills monster - for (I = 0; I < BPacmanMonsterCnt; I++) - { - //get distance - X = pPacmanModule->PosX - pPacmanModule->MonsterPosX[I]; - if (X < 0) - X = -X; - Y = pPacmanModule->PosY - pPacmanModule->MonsterPosY[I]; - if (Y < 0) - Y = -Y; - //monster kills pacman / pacman kills monster - if (X + Y < 4) - { - //pacman kills monster - if (pPacmanModule->MonstersDead) - { - //move monster out of sight - pPacmanModule->MonsterPosX[I] = BPacmanMonsterNirvana; - pPacmanModule->MonsterPosY[I] = BPacmanMonsterNirvana; - dbg_print ("BPacman: Pacman ate Monster\n"); - //check if all monsters are gone - for (J = 0; J < BPacmanMonsterCnt; J++) - if (pPacmanModule->MonsterPosX[J] != BPacmanMonsterNirvana - || pPacmanModule->MonsterPosY[J] != BPacmanMonsterNirvana) - break; - //all monsters are gone - if (J >= BPacmanMonsterCnt) - { - dbg_print ("BPacman: Pacman has won game\n"); - //start new game - BPacmanNewGame (pPacmanModule); - } - } - //monster kills pacman - else - { - //decrease number of lives - if( pPacmanModule->DeadCnt == 0 ) - { - pPacmanModule->Lives--; - dbg_print( "BPacman: Monster killed Pacman\n" ); - } - //pacman is dead for the next few steps - pPacmanModule->DeadCnt = BPacmanDeadTime; - } - } - } - - //output current picture - BPacmanOutput (pPacmanModule); - - //return game not over - return 0; -} - -static void -b_pacman_module_class_init (BPacmanModuleClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->max_players = 1; - - module_class->query = b_pacman_module_query; - module_class->prepare = b_pacman_module_prepare; - module_class->start = b_pacman_module_start; - module_class->event = b_pacman_module_event; - module_class->tick = b_pacman_module_tick; - module_class->describe = b_pacman_module_describe; -} - -static void -b_pacman_module_init (BPacmanModule *pacman_module) -{ - pacman_module->player_device_id = -1; -} - -static gboolean -b_pacman_module_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width >= BPacmanSizeXMin && height >= BPacmanSizeYMin - && channels == 1 && maxval + 1 >= BPacmanColorCntMin); -} - -static gboolean -b_pacman_module_prepare (BModule *module, - GError **error) -{ - BPacmanModule *pacman_module = B_PACMAN_MODULE (module); - - /* initialize the module values that depend on the output device */ - pacman_module->OfsX = (module->width - BPacmanSizeXMin) / 2; /* offset of top left corner of game-field */ - pacman_module->OfsY = (module->height - BPacmanSizeYMin) / 2; - pacman_module->MaxColor = module->maxval; /* maximum color value */ - - return TRUE; -} - -static void -b_pacman_module_start (BModule *module) -{ - /* set pacman's lives */ - ((BPacmanModule *)module)->Lives = BPacmanLives; - - /* start new game */ - BPacmanNewGame ((BPacmanModule *) module); - - /* start the tick machinery */ - b_module_ticker_start (module, BPacmanTicks); -} - -static void -b_pacman_module_event (BModule *module, - BModuleEvent *event) -{ - BPacmanModule *pacman; - - pacman = B_PACMAN_MODULE (module); - - switch (event->type) - { - case B_EVENT_TYPE_KEY: - if (event->device_id == pacman->player_device_id) - BPacmanKey (pacman, event->key); - break; - - case B_EVENT_TYPE_PLAYER_ENTERED: - if (pacman->player_device_id == -1) - { - pacman->player_device_id = event->device_id; - - module->num_players++; - } - break; - - case B_EVENT_TYPE_PLAYER_LEFT: - if (pacman->player_device_id == event->device_id) - { - pacman->player_device_id = -1; - - module->num_players--; - } - break; - - default: - break; - } -} - -static gint -b_pacman_module_tick (BModule *module) -{ - int GameOver; - - /* call tick-procedure */ - GameOver = BPacmanTick ((BPacmanModule *) module); - - /* we want to be called again in some milliseconds, if game is not over */ - if( GameOver ) - return 0; - else - return BPacmanTicks; -} - -static void -b_pacman_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BPacman"; - *description = "Pacman game"; - *author = "1stein"; -} diff --git a/blib-1.1.7/modules/bpong.c b/blib-1.1.7/modules/bpong.c deleted file mode 100644 index c85e94b..0000000 --- a/blib-1.1.7/modules/bpong.c +++ /dev/null @@ -1,667 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 Sven Neumann - * Michael Natterer - * - * 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. - */ - -#include -#include - -#include - -#include - -#include "digits.h" - - -#define PONG_START_TIMEOUT 200 -#define COMPUTER_LOOSE_SPEEDUP 10 - - -typedef enum -{ - RIGHT, - LEFT -} XDirection; - -typedef enum -{ - UP, - DOWN -} YDirection; - - -typedef enum -{ - GAME_INIT, - LPLAYER_JOIN, - RPLAYER_JOIN, - GAME_OVER -} AnimType; - - -#define B_TYPE_PONG (b_type_pong) -#define B_PONG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_PONG, BPong)) -#define B_PONG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_PONG, BPongClass)) -#define B_IS_PONG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_PONG)) -#define B_IS_PONG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_PONG)) - -typedef struct _BPong BPong; -typedef struct _BPongClass BPongClass; - -struct _BPong -{ - BModule parent_instance; - - AnimType anim; - gint anim_steps; - - gint paddle_size; - - gint lpaddle; - gint rpaddle; - gint ball_x; - gint ball_y; - XDirection ball_xdir; - YDirection ball_ydir; - - gint lplayer_score; - gint rplayer_score; - - gint lplayer_device_id; - gint rplayer_device_id; - - gint timeout; -}; - -struct _BPongClass -{ - BModuleClass parent_class; -}; - - -static GType b_pong_get_type (GTypeModule *module); - -static void b_pong_class_init (BPongClass *klass); -static void b_pong_init (BPong *pong); - -static gboolean b_pong_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_pong_prepare (BModule *module, - GError **error); -static void b_pong_relax (BModule *module); -static void b_pong_start (BModule *module); -static void b_pong_stop (BModule *module); -static void b_pong_event (BModule *module, - BModuleEvent *event); -static gint b_pong_tick (BModule *module); -static void b_pong_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - -static void b_pong_init_game (BPong *pong); -static gint b_pong_move_ball (BPong *pong); -static void b_pong_computer_move (BPong *pong, - gint *paddle); -static gboolean b_pong_reflect (BPong *pong, - gint paddle); -static void b_pong_draw (BPong *pong, - gint lpaddle, - gint rpaddle, - gint ball_x, - gint ball_y); -static void b_pong_draw_scores (BPong *pong); - - -static GType b_type_pong = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_pong_get_type (module); - return TRUE; -} - -static GType -b_pong_get_type (GTypeModule *module) -{ - if (! b_type_pong) - { - static const GTypeInfo pong_info = - { - sizeof (BPongClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_pong_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BPong), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_pong_init, - }; - - b_type_pong = g_type_module_register_type (module, - B_TYPE_MODULE, "BPong", - &pong_info, 0); - } - - return b_type_pong; -} - -static void -b_pong_class_init (BPongClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->max_players = 2; - - module_class->query = b_pong_query; - module_class->prepare = b_pong_prepare; - module_class->relax = b_pong_relax; - module_class->start = b_pong_start; - module_class->stop = b_pong_stop; - module_class->event = b_pong_event; - module_class->tick = b_pong_tick; - module_class->describe = b_pong_describe; -} - -static void -b_pong_init (BPong *pong) -{ - pong->anim_steps = 0; - - pong->lplayer_device_id = -1; - pong->rplayer_device_id = -1; -} - -static gboolean -b_pong_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 7 && height > 7 && channels == 1); -} - -static gboolean -b_pong_prepare (BModule *module, - GError **error) -{ - BPong *pong = B_PONG (module); - - pong->paddle_size = MAX (3, module->height / 4); - - return TRUE; -} - -static void -b_pong_relax (BModule *module) -{ -} - -static void -b_pong_start (BModule *module) -{ - BPong *pong = B_PONG (module); - - pong->lpaddle = pong->rpaddle = module->height / 2 - 1; - pong->lplayer_score = pong->rplayer_score = 0; - - b_pong_init_game (pong); - - pong->timeout = PONG_START_TIMEOUT; - - b_module_ticker_start (module, pong->timeout); -} - -static void -b_pong_stop (BModule *module) -{ - BPong *pong = B_PONG (module); - - pong->lplayer_device_id = -1; - pong->rplayer_device_id = -1; -} - -static void -b_pong_event (BModule *module, - BModuleEvent *event) -{ - BPong *pong = B_PONG (module); - - switch (event->type) - { - case B_EVENT_TYPE_KEY: - if (pong->anim_steps) - return; - - switch (event->key) - { - case B_KEY_1: - case B_KEY_2: - case B_KEY_3: - case B_KEY_4: - case B_KEY_5: - case B_KEY_6: - /* up */ - if (event->device_id == pong->lplayer_device_id) - { - pong->lpaddle = MAX (pong->lpaddle--, 0); - } - else if (event->device_id == pong->rplayer_device_id) - { - pong->rpaddle = MAX (pong->rpaddle--, 0); - } - break; - - case B_KEY_7: - case B_KEY_8: - case B_KEY_9: - case B_KEY_ASTERISK: - case B_KEY_0: - case B_KEY_HASH: - /* down */ - if (event->device_id == pong->lplayer_device_id) - { - pong->lpaddle = MIN (pong->lpaddle++, - module->height - pong->paddle_size); - } - else if (event->device_id == pong->rplayer_device_id) - { - pong->rpaddle = MIN (pong->rpaddle++, - module->height - pong->paddle_size); - } - break; - - default: - break; - } - break; - - case B_EVENT_TYPE_PLAYER_ENTERED: - if (pong->lplayer_device_id == -1) - { - pong->anim = LPLAYER_JOIN; - pong->anim_steps = 6; - pong->lplayer_device_id = event->device_id; - - module->num_players++; - } - else if (pong->rplayer_device_id == -1) - { - pong->anim = RPLAYER_JOIN; - pong->anim_steps = 6; - pong->rplayer_device_id = event->device_id; - - module->num_players++; - } - break; - - case B_EVENT_TYPE_PLAYER_LEFT: - if (pong->lplayer_device_id == event->device_id) - { - pong->lplayer_device_id = -1; - - module->num_players--; - } - else if (pong->rplayer_device_id == event->device_id) - { - pong->rplayer_device_id = -1; - - module->num_players--; - } - break; - - default: - break; - } -} - -static gint -b_pong_tick (BModule *module) -{ - BPong *pong = B_PONG (module); - - if (pong->anim_steps > 0) - { - pong->anim_steps--; - - switch (pong->anim) - { - case GAME_INIT: - b_pong_draw (pong, - pong->lpaddle, pong->rpaddle, - pong->anim_steps == 0 ? pong->ball_x : -1, - pong->anim_steps == 0 ? pong->ball_y : -1); - break; - case LPLAYER_JOIN: - b_pong_draw (pong, - (pong->anim_steps & 1) ? pong->lpaddle : -1, - pong->rpaddle, - -1, -1); - break; - case RPLAYER_JOIN: - b_pong_draw (pong, - pong->lpaddle, - (pong->anim_steps & 1) ? pong->rpaddle : -1, - -1, -1); - break; - case GAME_OVER: - b_pong_draw (pong, - pong->lpaddle, pong->rpaddle, - (pong->anim_steps & 1) ? pong->ball_x : -1, - (pong->anim_steps & 1) ? pong->ball_y : -1); - - if (pong->anim_steps == 0) - { - if ((pong->lplayer_score != pong->rplayer_score) && - (pong->lplayer_score >= 10 || pong->rplayer_score >= 10)) - { - b_module_request_stop (module); - return 0; - } - else - b_pong_init_game (pong); - } - - break; - } - } - else - { - switch (b_pong_move_ball (pong)) - { - case -1: - pong->lplayer_score++; - pong->anim_steps = 6; - pong->anim = GAME_OVER; - if (pong->lplayer_device_id == -1) /* computer lost */ - pong->timeout -= COMPUTER_LOOSE_SPEEDUP; - break; - - case 1: - pong->rplayer_score++; - pong->anim_steps = 6; - pong->anim = GAME_OVER; - if (pong->rplayer_device_id == -1) /* computer lost */ - pong->timeout -= COMPUTER_LOOSE_SPEEDUP; - break; - - case 0: - if (pong->lplayer_device_id == -1) - b_pong_computer_move (pong, &pong->lpaddle); - if (pong->rplayer_device_id == -1) - b_pong_computer_move (pong, &pong->rpaddle); - break; - } - - b_pong_draw (pong, - pong->lpaddle, pong->rpaddle, - pong->ball_x, pong->ball_y); - } - - return pong->timeout; -} - -static void -b_pong_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BPong"; - *description = "Pong game"; - *author = "Sven Neumann"; -} - -static void -b_pong_init_game (BPong *pong) -{ - BModule *module; - gint paddle; - gint foo; - - module = B_MODULE (pong); - - foo = rand (); - - if (foo & 0x1) - { - paddle = pong->lpaddle; - pong->ball_x = 0; - pong->ball_xdir = RIGHT; - } - else - { - paddle = pong->rpaddle; - pong->ball_x = module->width - 1; - pong->ball_xdir = LEFT; - } - - if ((foo & 0x2 && paddle != 0) || - paddle == module->height - pong->paddle_size) - { - pong->ball_y = 0; - pong->ball_ydir = DOWN; - } - else - { - pong->ball_y = module->height - 1; - pong->ball_ydir = UP; - } - - pong->anim = GAME_INIT; - pong->anim_steps = 4; -} - -static gint -b_pong_move_ball (BPong *pong) -{ - BModule *module = B_MODULE (pong); - - switch (pong->ball_xdir) - { - case RIGHT: - pong->ball_x++; - break; - case LEFT: - pong->ball_x--; - break; - } - switch (pong->ball_ydir) - { - case UP: - pong->ball_y--; - break; - case DOWN: - pong->ball_y++; - break; - } - - /* collision with walls ? */ - if (pong->ball_y < 0) - { - pong->ball_y = 1; - pong->ball_ydir = DOWN; - } - else if (pong->ball_y >= module->height) - { - pong->ball_y = module->height - 2; - pong->ball_ydir = UP; - } - - /* collision with left paddle or out ? */ - if (pong->ball_x == 0) - { - if (! b_pong_reflect (pong, pong->lpaddle)) - return 1; /* right wins */ - - pong->ball_x = 2; - pong->ball_xdir = RIGHT; - } - /* collision with right paddle or out ? */ - else if (pong->ball_x == module->width - 1) - { - if (! b_pong_reflect (pong, pong->rpaddle)) - return -1; /* left wins */ - pong->ball_x = module->width - pong->paddle_size; - pong->ball_xdir = LEFT; - } - - return 0; -} - -static void -b_pong_computer_move (BPong *pong, - gint *paddle) -{ - BModule *module = B_MODULE (pong); - - if (rand () & 1) - return; - - if (*paddle - pong->ball_y > -1) - (*paddle)--; - else if (*paddle - pong->ball_y < 1) - (*paddle)++; - - *paddle = CLAMP (*paddle, 0, module->height - pong->paddle_size); -} - -static gboolean -b_pong_reflect (BPong *pong, - gint paddle) -{ - gint d = pong->ball_y - paddle; - - switch (pong->ball_ydir) - { - case DOWN: /* we hit the paddle coming from the top */ - - if (d < 0) - return FALSE; - else if (d == 0) - { - pong->ball_ydir = UP; - pong->ball_y -= 2; - return TRUE; - } - else if (d <= pong->paddle_size) - return TRUE; - else - return FALSE; - - break; - - case UP: /* we hit the paddle coming from the bottom */ - - if (d < -1) - return FALSE; - else if (d < pong->paddle_size - 1) - return TRUE; - else if (d == pong->paddle_size - 1) - { - pong->ball_ydir = DOWN; - pong->ball_y += 2; - return TRUE; - } - else - return FALSE; - - break; - } - - return TRUE; -} - -static void -b_pong_draw (BPong *pong, - gint lpaddle, - gint rpaddle, - gint ball_x, - gint ball_y) -{ - BModule *module; - gint width; - gint height; - gint i; - - module = B_MODULE (pong); - - width = module->width; - height = module->height; - - b_module_fill (module, 0); - - if (lpaddle >= 0 && lpaddle <= height - pong->paddle_size) - for (i = 0; i < pong->paddle_size; i++) - b_module_draw_point (module, 0, lpaddle + i, module->maxval); - - if (rpaddle >= 0 && rpaddle <= height - pong->paddle_size) - for (i = 0; i < pong->paddle_size; i++) - b_module_draw_point (module, width - 1, rpaddle + i, module->maxval); - - if (ball_x >= 0 && ball_x < width && ball_y >= 0 && ball_y < height) - b_module_draw_point (module, ball_x, ball_y, module->maxval); - - if (pong->anim == GAME_OVER) - b_pong_draw_scores (pong); - - b_module_paint (module); -} - -static void -b_pong_draw_scores (BPong *pong) -{ - BModule *module; - gchar *text; - gint len; - gint x0, y0; - gint x, y; - gint n, i; - const BFont *digits = &b_digits_3x5; - - - module = B_MODULE (pong); - - text = g_strdup_printf ("%d:%d", pong->lplayer_score, pong->rplayer_score); - len = strlen (text); - - x0 = (module->width - len * digits->advance) / 2; - y0 = (module->height / 2) - 4; - - for (n = 0; n < len; n++) - { - for (i = 0; i < digits->num_digits && digits->digits_str[i] != text[n]; i++); - - if (i < digits->num_digits) - for (x = 0; x < digits->width; x++) - for (y = 0; y < digits->height; y++) - if (digits->data[i][y * digits->width + x] != '0') - b_module_draw_point (module, x0 + x, y0 + y, module->maxval); - - x0 += digits->advance; - } - - g_free (text); -} diff --git a/blib-1.1.7/modules/bproxy.c b/blib-1.1.7/modules/bproxy.c deleted file mode 100644 index 4fc9681..0000000 --- a/blib-1.1.7/modules/bproxy.c +++ /dev/null @@ -1,295 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -#include -#include - -#include -#include - -#include - - -#define B_TYPE_PROXY (b_type_proxy) -#define B_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_PROXY, BProxy)) -#define B_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_PROXY, BProxyClass)) -#define B_IS_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_PROXY)) - -typedef struct _BProxy BProxy; -typedef struct _BProxyClass BProxyClass; - -struct _BProxy -{ - BModule parent_instance; - - BReceiver *receiver; - gint port; -}; - -struct _BProxyClass -{ - BModuleClass parent_class; -}; - -enum -{ - PROP_0, - PROP_PORT -}; - - -static GType b_proxy_get_type (GTypeModule *module); -static void b_proxy_class_init (BProxyClass *klass); -static void b_proxy_finalize (GObject *object); -static void b_proxy_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static void b_proxy_init (BProxy *proxy); -static gboolean b_proxy_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_proxy_prepare (BModule *module, - GError **error); -static void b_proxy_relax (BModule *module); -static void b_proxy_start (BModule *module); -static void b_proxy_stop (BModule *module); -static void b_proxy_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static BModuleClass * parent_class = NULL; -static GType b_type_proxy = 0; - -static gboolean -callback (BReceiver *rec, - BPacket *packet, - gpointer callback_data) -{ - BModule *module = B_MODULE (callback_data); - - if (packet->header.mcu_frame_h.width == module->width && - packet->header.mcu_frame_h.height == module->height && - packet->header.mcu_frame_h.channels == 1 && - packet->header.mcu_frame_h.maxval > 0) - { - gint max = packet->header.mcu_frame_h.maxval; - - if (max == 255) - { - memcpy (module->buffer, packet->data, - module->width * module->height); - } - else - { - gint bytes = module->width * module->height; - guchar *s = packet->data; - guchar *d = module->buffer; - - do - { - *d = ((gint) *s * 255) / max; - s++, d++; - } - while (--bytes); - } - - b_module_paint (module); - } - else - { - g_printerr ("BProxy: packet mismatch\n"); - } - - return TRUE; -} - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_proxy_get_type (module); - return TRUE; -} - -GType -b_proxy_get_type (GTypeModule *module) -{ - if (!b_type_proxy) - { - static const GTypeInfo proxy_info = - { - sizeof (BProxyClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_proxy_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BProxy), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_proxy_init, - }; - - b_type_proxy = g_type_module_register_type (module, - B_TYPE_MODULE, "BProxy", - &proxy_info, 0); - } - - return b_type_proxy; -} - -static void -b_proxy_class_init (BProxyClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = b_proxy_finalize; - object_class->set_property = b_proxy_set_property; - - param_spec = g_param_spec_int ("port", NULL, - "IP Port to listen on.", - 1024, 65535, 4242, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_PORT, param_spec); - - module_class->query = b_proxy_query; - module_class->prepare = b_proxy_prepare; - module_class->relax = b_proxy_relax; - module_class->start = b_proxy_start; - module_class->stop = b_proxy_stop; - module_class->describe = b_proxy_describe; -} - -static void -b_proxy_finalize (GObject *object) -{ - BProxy *proxy = B_PROXY (object); - - if (proxy->receiver) - { - g_object_unref (proxy->receiver); - proxy->receiver = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_proxy_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BProxy *proxy = B_PROXY (object); - - switch (property_id) - { - case PROP_PORT: - g_return_if_fail (g_value_get_int (value) > 0); - proxy->port = g_value_get_int (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -b_proxy_init (BProxy *proxy) -{ -} - -static gboolean -b_proxy_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 0 && channels == 1 && maxval == 255); -} - -static gboolean -b_proxy_prepare (BModule *module, - GError **error) -{ - BProxy *proxy = B_PROXY (module); - - proxy->receiver = b_receiver_new (callback, module); - - return TRUE; -} - -static void -b_proxy_relax (BModule *module) -{ - BProxy *proxy = B_PROXY (module); - - if (proxy->receiver) - { - g_object_unref (proxy->receiver); - proxy->receiver = NULL; - } -} - -static void -b_proxy_start (BModule *module) -{ - BProxy *proxy = B_PROXY (module); - - b_module_fill (module, 0); - b_module_paint (module); - - if (b_receiver_listen (proxy->receiver, proxy->port)) - { - g_printerr ("BProxy: listening on port %d\n", proxy->port); - } - else - { - g_printerr ("BProxy: can not listen on port %d, exiting\n", proxy->port); - b_module_stop (module); - } -} - -static void -b_proxy_stop (BModule *module) -{ - b_receiver_stop (B_PROXY (module)->receiver); -} - -static void -b_proxy_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BProxy"; - *description = "Generic network proxy"; - *author = "Daniel Mack"; -} diff --git a/blib-1.1.7/modules/bpushline.c b/blib-1.1.7/modules/bpushline.c deleted file mode 100644 index 1be8eac..0000000 --- a/blib-1.1.7/modules/bpushline.c +++ /dev/null @@ -1,344 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -#include - -#include -#include - -#include - -#include - -#define TIMEOUT 75 - - -typedef enum -{ - DIR_FTTB, - DIR_FRTL, - DIR_FBTT, - DIR_FLTR, - DIR_LAST -} BPushlineDir; - -enum -{ - MODE_EAT -}; - -enum -{ - PROP_0, - PROP_DIR, -}; - - -#define DEFAULT_MODE MODE_EAT - -#define B_TYPE_PUSHLINE_DIR (b_pushline_dir_get_type ()) - -#define B_TYPE_PUSHLINE (b_type_pushline) -#define B_PUSHLINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_PUSHLINE, BPushline)) -#define B_PUSHLINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_PUSHLINE, BPushlineClass)) -#define B_IS_PUSHLINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_PUSHLINE)) - -typedef struct _BPushline BPushline; -typedef struct _BPushlineClass BPushlineClass; - -struct _BPushline -{ - BModule parent_instance; - - gint dir; - gint mode; - gint pos; -}; - -struct _BPushlineClass -{ - BModuleClass parent_class; -}; - -static GType b_pushline_get_type (GTypeModule *module); -static void b_pushline_class_init (BPushlineClass *klass); -static void b_pushline_init (BPushline *pushline); -static void b_pushline_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static gboolean b_pushline_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_pushline_prepare (BModule *module, - GError **error); -static void b_pushline_relax (BModule *module); -static void b_pushline_start (BModule *module); -static gint b_pushline_tick (BModule *module); -static void b_pushline_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_pushline = 0; - - -static const GEnumValue pushline_dir_enum_values[] = -{ - { DIR_FTTB, "top-to-bottom", NULL }, - { DIR_FRTL, "right-to-left", NULL }, - { DIR_FBTT, "bottom-to-top", NULL }, - { DIR_FLTR, "left-to-right", NULL }, - { 0, NULL, NULL } -}; - -GType -b_pushline_dir_get_type (void) -{ - static GType enum_type = 0; - - if (!enum_type) - enum_type = g_enum_register_static ("BPushlineDirection", - pushline_dir_enum_values); - - return enum_type; -} - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_pushline_get_type (module); - return TRUE; -} - -GType -b_pushline_get_type (GTypeModule *module) -{ - if (!b_type_pushline) - { - static const GTypeInfo pushline_info = - { - sizeof (BPushlineClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_pushline_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BPushline), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_pushline_init, - }; - - b_type_pushline = g_type_module_register_type (module, B_TYPE_MODULE, - "BPushline", - &pushline_info, 0); - } - - return b_type_pushline; -} - -static void -b_pushline_class_init (BPushlineClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - GParamSpec *param_spec; - gint dir; - - dir = random () % DIR_LAST; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - object_class->set_property = b_pushline_set_property; - - param_spec = g_param_spec_enum ("direction", NULL, - "The direction the line moves.", - B_TYPE_PUSHLINE_DIR, dir, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_DIR, param_spec); - - module_class->query = b_pushline_query; - module_class->prepare = b_pushline_prepare; - module_class->relax = b_pushline_relax; - module_class->start = b_pushline_start; - module_class->tick = b_pushline_tick; - module_class->describe = b_pushline_describe; -} - -static void -b_pushline_init (BPushline *pushline) -{ - pushline->mode = DEFAULT_MODE; -} - -static void -b_pushline_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BPushline *line = B_PUSHLINE (object); - - switch (property_id) - { - case PROP_DIR: - line->dir = g_value_get_enum (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static gboolean -b_pushline_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 3 && channels == 1 && maxval == 255); -} - -static gboolean -b_pushline_prepare (BModule *module, - GError **error) -{ - BPushline *pushline = B_PUSHLINE (module); - - switch (pushline->dir) - { - case DIR_FTTB: - pushline->pos = -1; - break; - case DIR_FRTL: - pushline->pos = module->width; - break; - case DIR_FBTT: - pushline->pos = module->height; - break; - case DIR_FLTR: - pushline->pos = -1; - break; - } - - return TRUE; -} - -static void -b_pushline_relax (BModule *module) -{ -} - -static void -b_pushline_start (BModule *module) -{ - b_module_ticker_start (module, b_pushline_tick (module)); -} - -static gint -b_pushline_tick (BModule *module) -{ - BPushline *pushline = B_PUSHLINE (module); - gint width = module->width; - gint height = module->height; - - switch (pushline->dir) - { - case DIR_FTTB: - pushline->pos++; - if (pushline->pos >= width) - goto stop; - - b_module_draw_line (module, - 0, pushline->pos, width - 1, pushline->pos, - module->maxval); - if (pushline->pos > 0) - b_module_draw_line (module, - 0, pushline->pos - 1, width - 1, pushline->pos - 1, - 0); - break; - - case DIR_FRTL: - pushline->pos--; - if (pushline->pos < 0) - goto stop; - - b_module_draw_line (module, - pushline->pos, 0, pushline->pos, height - 1, - module->maxval); - if (pushline->pos < width - 1) - b_module_draw_line (module, - pushline->pos + 1, 0, pushline->pos + 1, height -1, - 0); - break; - - case DIR_FBTT: - pushline->pos--; - if (pushline->pos < 0) - goto stop; - - b_module_draw_line (module, - 0, pushline->pos, width-1, pushline->pos, - module->maxval); - if (pushline->pos < height-1) - b_module_draw_line (module, - 0, pushline->pos + 1, width - 1, pushline->pos + 1, - 0); - break; - - case DIR_FLTR: - pushline->pos++; - if (pushline->pos > width) - goto stop; - b_module_draw_line (module, - pushline->pos, 0, pushline->pos, height - 1, - module->maxval); - if (pushline->pos > 0) - b_module_draw_line (module, - pushline->pos - 1, 0, pushline->pos - 1, height -1, - 0); - break; - } - - b_module_paint (module); - return TIMEOUT; - - stop: - b_module_fill (module, 0); - b_module_paint (module); - b_module_request_stop (module); - - return 0; -} - -static void -b_pushline_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BPushline"; - *description = "Pushline hack"; - *author = "Daniel Mack"; -} diff --git a/blib-1.1.7/modules/bqix.c b/blib-1.1.7/modules/bqix.c deleted file mode 100644 index 8b151fa..0000000 --- a/blib-1.1.7/modules/bqix.c +++ /dev/null @@ -1,347 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Sven Neumann - * - * Inspired by the Qix hack from the xscreensaver package. - * - * 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. - */ - -#include -#include - -#include -#include - -#include - - -#define TIMEOUT 60 - -#define SPREAD 100 /* prescaled! */ -#define SCALE 6 - - -#define B_TYPE_QIX (b_type_qix) -#define B_QIX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_QIX, BQix)) -#define B_QIX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_QIX, BQixClass)) -#define B_IS_QIX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_QIX)) - -typedef struct _BQix BQix; -typedef struct _BQixClass BQixClass; - -typedef struct _BQixLine BQixLine; - -struct _BQixLine -{ - struct { - gint x; - gint y; - gint dx; - gint dy; - } points[2]; -}; - -struct _BQix -{ - BModule parent_instance; - - gint max_lines; - - BQixLine *lines; - guchar *values; - gint nlines; - gint maxx; - gint maxy; -}; - -struct _BQixClass -{ - BModuleClass parent_class; -}; - -enum -{ - PROP_0, - PROP_LINES -}; - - -static GType b_qix_get_type (GTypeModule *module); -static void b_qix_class_init (BQixClass *klass); -static void b_qix_finalize (GObject *object); -static void b_qix_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static void b_qix_init (BQix *qix); -static gboolean b_qix_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_qix_prepare (BModule *module, - GError **error); -static void b_qix_relax (BModule *module); -static void b_qix_start (BModule *module); -static gint b_qix_tick (BModule *module); -static void b_qix_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static BModuleClass * parent_class = NULL; -static GType b_type_qix = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_qix_get_type (module); - return TRUE; -} - -GType -b_qix_get_type (GTypeModule *module) -{ - if (!b_type_qix) - { - static const GTypeInfo qix_info = - { - sizeof (BQixClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_qix_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BQix), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_qix_init, - }; - - b_type_qix = g_type_module_register_type (module, - B_TYPE_MODULE, "BQix", - &qix_info, 0); - } - - return b_type_qix; -} - -static void -b_qix_class_init (BQixClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = b_qix_finalize; - object_class->set_property = b_qix_set_property; - - param_spec = g_param_spec_int ("lines", NULL, - "The number of lines to draw.", - 1, 64, 5, - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_LINES, param_spec); - - module_class->query = b_qix_query; - module_class->prepare = b_qix_prepare; - module_class->relax = b_qix_relax; - module_class->start = b_qix_start; - module_class->tick = b_qix_tick; - module_class->describe = b_qix_describe; -} - -static void -b_qix_finalize (GObject *object) -{ - BQix *qix = B_QIX (object); - - g_free (qix->lines); - g_free (qix->values); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_qix_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BQix *qix = B_QIX (object); - - switch (property_id) - { - case PROP_LINES: - g_return_if_fail (g_value_get_int (value) > 0); - qix->max_lines = g_value_get_int (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -b_qix_init (BQix *qix) -{ -} - -static gboolean -b_qix_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 0 && channels == 1 && maxval > 0); -} - -static gboolean -b_qix_prepare (BModule *module, - GError **error) -{ - BQix *qix = B_QIX (module); - gint i, value; - gint xspread, yspread; - - if (qix->max_lines < 1) - { - g_set_error (error, 0, 0, "Qix module must have at least one line"); - return FALSE; - } - - qix->lines = g_new (BQixLine, 2 * qix->max_lines); - qix->values = g_new (guchar, qix->max_lines); - - if (module->aspect < 1.0) - { - xspread = SPREAD; - yspread = module->aspect * xspread; - } - else - { - yspread = SPREAD; - xspread = module->aspect * yspread; - } - - qix->maxx = (module->width << SCALE) - 1; - qix->maxy = (module->height << SCALE) - 1; - - qix->nlines = 1; - - for (i = 0; i < 2; i++) - { - qix->lines[0].points[i].x = rand () % qix->maxx; - qix->lines[0].points[i].y = rand () % qix->maxy; - qix->lines[0].points[i].dx = (rand () % (xspread + 1)) - (xspread / 2); - qix->lines[0].points[i].dy = (rand () % (yspread + 1)) - (yspread / 2); - } - - value = module->maxval / qix->max_lines; - - for (i = 0; i < qix->max_lines; i++) - qix->values[i] = module->maxval - i * value; - - return TRUE; -} - -static void -b_qix_relax (BModule *module) -{ - BQix *qix = B_QIX (module); - - if (qix->lines) - { - g_free (qix->lines); - qix->lines = NULL; - } - if (qix->values) - { - g_free (qix->values); - qix->values = NULL; - } -} - -static void -b_qix_start (BModule *module) -{ - b_module_ticker_start (module, TIMEOUT); -} - -static gint -b_qix_tick (BModule *module) -{ - BQix *qix = B_QIX (module); - BQixLine *line; - gint i; - - b_module_fill (module, 0); - -#define wiggle(point, delta, max) \ - point += delta; \ - if (point < 0) point = 0, delta = -delta, point += delta / 2; \ - else if (point > max) point = max, delta = -delta, point += delta / 2; - - for (i = qix->nlines - 1; i > 0; i--) - memcpy (qix->lines + i, qix->lines + i - 1, sizeof (BQixLine)); - - line = qix->lines; - - for (i = 0; i < 2; i++) - { - wiggle (line->points[i].x, line->points[i].dx, qix->maxx); - wiggle (line->points[i].y, line->points[i].dy, qix->maxy); - } - - i = qix->nlines - 1; - if (i % 2) - i--; - - for (; i >= 0; i -= 2) - { - line = qix->lines + i; - b_module_draw_line (module, - line->points[0].x >> SCALE, - line->points[0].y >> SCALE, - line->points[1].x >> SCALE, - line->points[1].y >> SCALE, - qix->values[i / 2]); - } - - b_module_paint (module); - - if (qix->nlines < 2 * qix->max_lines) - qix->nlines++; - - return TIMEOUT; -} - -static void -b_qix_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BQix"; - *description = "Qix hack"; - *author = "Sven Neumann"; -} diff --git a/blib-1.1.7/modules/bretris.c b/blib-1.1.7/modules/bretris.c deleted file mode 100644 index 42b63f8..0000000 --- a/blib-1.1.7/modules/bretris.c +++ /dev/null @@ -1,701 +0,0 @@ -/* BRetris: Tetris (from right to left) module for Blinkenlights - * - * Copyright (c) 2003 1stein <1stein@schuermans.info> - * - * based on Test implementation for a BModule by the Blinkenlights Crew - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include - -#define BRetrisVerMaj 1 -#define BRetrisVerMin 0 -#define BRetrisVerRev 2 - -//minimum size and color count of display -#define BRetrisSizeXMin 18 -#define BRetrisSizeYMin 8 -#define BRetrisMaxColorMin 1 -//speed of game (small number = fast) -#define BRetrisSpeedMin 500 -#define BRetrisSpeedMax 50 -#define BRetrisSpeedInc 7 //how fast to increase speed -#define BRetrisSpeedDrop 20 //speed for dropping stones -//the colors -#define BRetrisColorEmpty( MaxColor ) (0) -#define BRetrisColorActiveStone( MaxColor ) (MaxColor) -#define BRetrisColorStone( MaxColor ) ((MaxColor) * 3 / 4) -#define BRetrisColorRemoveStone( MaxColor ) (MaxColor) - -#define count( array ) (sizeof( (array) ) / sizeof( (array)[0] )) - -#ifdef RETRIS_DEBUG -#define dbg_print g_print -#else -#define dbg_print(fmt, ...) -#endif - -#define B_TYPE_RETRIS_MODULE (b_type_retris_module) -#define B_RETRIS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_RETRIS_MODULE, BRetrisModule)) -#define B_RETRIS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_RETRIS_MODULE, BRetrisModuleClass)) -#define B_IS_RETRIS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_RETRIS_MODULE)) - -typedef struct _BRetrisModule BRetrisModule; -typedef struct _BRetrisModuleClass BRetrisModuleClass; - - -struct _BRetrisModule -{ - BModule parent_instance; - - int SizeX, SizeY; //size of game-field - int MaxColor; //maximum color value - int PlayerId; //device id of the player - int Speed; //current speed - int * * ppStones; //two-dimensional array with stones [SizeX+4][SizeY] - int CurStone; //number of current stone, -1 if none - int CurX, CurY; //position of current stone - int CurRot; //rotation of current stone - int RemoveCol; //column being removed, -1 if none - int Dropping; //flag if dropping current stone -}; - -struct _BRetrisModuleClass -{ - BModuleClass parent_class; -}; - -static GType b_retris_module_get_type (GTypeModule *module); -static void b_retris_module_class_init (BRetrisModuleClass *klass); -static void b_retris_module_init (BRetrisModule *test_module); -static gboolean b_retris_module_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_retris_module_prepare (BModule *module, - GError **error); -static void b_retris_module_relax (BModule *module); -static void b_retris_module_start (BModule *module); -static void b_retris_module_event (BModule *module, - BModuleEvent *event); -static gint b_retris_module_tick (BModule *module); -static void b_retris_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_retris_module = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule * module) -{ - b_retris_module_get_type (module); - - return TRUE; -} - -GType -b_retris_module_get_type (GTypeModule * module) -{ - if (!b_type_retris_module) - { - static const GTypeInfo retris_module_info = { - sizeof (BRetrisModuleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_retris_module_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BRetrisModule), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_retris_module_init, - }; - - /* !!!!!!!!! The name given in the next function MUST be unique! */ - - b_type_retris_module = g_type_module_register_type (module, - B_TYPE_MODULE, - "BRetris", - &retris_module_info, - 0); - } - - return b_type_retris_module; -} - -//stones (always 4 lines with same stone in different rotation angles) -typedef struct sBRetrisStonePos -{ - int X, Y; -} stBRetrisStonePos; -typedef struct sBRetrisStoneRot -{ - stBRetrisStonePos Pos[4]; -} stBRetrisStoneRot; -typedef struct sBRetrisStone -{ - stBRetrisStoneRot Rot[4]; -} stBRetrisStone; -stBRetrisStone BRetrisStoneTable[] = -{ - { { { { { -2, 0 }, { -1, 0 }, { 0, 0 }, { 1, 0 } } }, //the I - { { { 0, -2 }, { 0, -1 }, { 0, 0 }, { 0, 1 } } }, - { { { -2, 0 }, { -1, 0 }, { 0, 0 }, { 1, 0 } } }, - { { { 0, -2 }, { 0, -1 }, { 0, 0 }, { 0, 1 } } } } }, - { { { { { 1, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 } } }, //the L - { { { 0, -1 }, { 0, 0 }, { 0, 1 }, { 1, 1 } } }, - { { { -1, 0 }, { 0, 0 }, { 1, 0 }, { -1, 1 } } }, - { { { -1, -1 }, { 0, -1 }, { 0, 0 }, { 0, 1 } } } } }, - { { { { { -1, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 } } }, //the J - { { { 0, -1 }, { 1, -1 }, { 0, 0 }, { 0, 1 } } }, - { { { -1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 1 } } }, - { { { 0, -1 }, { 0, 0 }, { -1, 1 }, { 0, 1 } } } } }, - { { { { { 0, -1 }, { -1, 0 }, { 0, 0 }, { 0, 1 } } }, //the T - { { { 0, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 } } }, - { { { 0, -1 }, { 0, 0 }, { 1, 0 }, { 0, 1 } } }, - { { { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 } } } } }, - { { { { { 0, -1 }, { 1, -1 }, { 0, 0 }, { 1, 0 } } }, //the block - { { { 0, -1 }, { 1, -1 }, { 0, 0 }, { 1, 0 } } }, - { { { 0, -1 }, { 1, -1 }, { 0, 0 }, { 1, 0 } } }, - { { { 0, -1 }, { 1, -1 }, { 0, 0 }, { 1, 0 } } } } }, - { { { { { 0, -1 }, { -1, 0 }, { 0, 0 }, { -1, 1 } } }, //the Z - { { { -1, -1 }, { 0, -1 }, { 0, 0 }, { 1, 0 } } }, - { { { 0, -1 }, { -1, 0 }, { 0, 0 }, { -1, 1 } } }, - { { { -1, -1 }, { 0, -1 }, { 0, 0 }, { 1, 0 } } } } }, - { { { { { -1, -1 }, { -1, 0 }, { 0, 0 }, { 0, 1 } } }, //the S - { { { 0, -1 }, { 1, -1 }, { -1, 0 }, { 0, 0 } } }, - { { { -1, -1 }, { -1, 0 }, { 0, 0 }, { 0, 1 } } }, - { { { 0, -1 }, { 1, -1 }, { -1, 0 }, { 0, 0 } } } } }, -}; - -//check if a stone fits at a position -//retuns true if stone fits -static int -BRetrisCheckStone (BRetrisModule *pRetrisModule, - int Stone, int PosX, int PosY, int Rot) -{ - stBRetrisStoneRot * pStoneRot; - stBRetrisStonePos * pStonePos; - int I, X, Y, SizeX, SizeY; - - //check if stone is available - if (Stone < 0 || Stone >= count (BRetrisStoneTable)) - return 0; - - //get size of stone array - SizeX = pRetrisModule->SizeX + 4; - SizeY = pRetrisModule->SizeY; - - //get pointer to stone rotation - pStoneRot = &BRetrisStoneTable[Stone] - .Rot[Rot & 3]; - - //all 4 positions - for (I = 0; I < 4; I++) - { - //get position - pStonePos = &pStoneRot->Pos[I]; - //get coordinates - X = PosX + pStonePos->X; - Y = PosY + pStonePos->Y; - //outside of array - if( X < 0 || X >= SizeX || Y < 0 || Y >= SizeY ) - return 0; - //position not free - if( pRetrisModule->ppStones[X][Y] ) - return 0; - } - - //stone fits - return 1; -} - -//deactivate stone -static void -BRetrisDeactivateStone (BRetrisModule *pRetrisModule) -{ - stBRetrisStoneRot * pStoneRot; - stBRetrisStonePos * pStonePos; - int I, X, Y, SizeX, SizeY; - - //check if stone is available - if (pRetrisModule->CurStone < 0 || pRetrisModule->CurStone >= count (BRetrisStoneTable)) - return; - - //get size of stone array - SizeX = pRetrisModule->SizeX + 4; - SizeY = pRetrisModule->SizeY; - - //get pointer to stone rotation - pStoneRot = &BRetrisStoneTable[pRetrisModule->CurStone] - .Rot[pRetrisModule->CurRot & 3]; - - //all 4 positions - for (I = 0; I < 4; I++) - { - //get position - pStonePos = &pStoneRot->Pos[I]; - //get coordinates - X = pRetrisModule->CurX + pStonePos->X; - Y = pRetrisModule->CurY + pStonePos->Y; - //put stone into stone array - if( X >= 0 && X < SizeX && Y >= 0 && Y < SizeY ) - pRetrisModule->ppStones[X][Y] = 1; - } -} - -//draw active stone -static void -BRetrisDrawStone (BRetrisModule *pRetrisModule) -{ - stBRetrisStoneRot * pStoneRot; - stBRetrisStonePos * pStonePos; - int I, X, Y, SizeX, SizeY; - - //check if stone is available - if (pRetrisModule->CurStone < 0 || pRetrisModule->CurStone >= count (BRetrisStoneTable)) - return; - - //get size of display - SizeX = pRetrisModule->SizeX; - SizeY = pRetrisModule->SizeY; - - //get pointer to stone rotation - pStoneRot = &BRetrisStoneTable[pRetrisModule->CurStone] - .Rot[pRetrisModule->CurRot & 3]; - - //all 4 positions - for (I = 0; I < 4; I++) - { - //get position - pStonePos = &pStoneRot->Pos[I]; - //get coordinates - X = pRetrisModule->CurX + pStonePos->X; - Y = pRetrisModule->CurY + pStonePos->Y; - //draw position - if( X >= 0 && X < SizeX && Y >= 0 && Y < SizeY ) - b_module_draw_point ((BModule *) pRetrisModule, - X, Y, - BRetrisColorActiveStone (pRetrisModule->MaxColor)); - } -} - -//output current picture -static void -BRetrisOutput (BRetrisModule *pRetrisModule) -{ - int X, Y; - - //empty the screen - b_module_fill ((BModule *) pRetrisModule, - BRetrisColorEmpty (pRetrisModule->MaxColor)); - - //draw stones - for (X = 0; X < pRetrisModule->SizeX; X++) - { - for (Y = 0; Y < pRetrisModule->SizeY; Y++) - { - if (pRetrisModule->ppStones[X][Y]) - { - if (X == pRetrisModule->RemoveCol) - b_module_draw_point ((BModule *) pRetrisModule, - X, Y, - BRetrisColorRemoveStone (pRetrisModule->MaxColor)); - else - b_module_draw_point ((BModule *) pRetrisModule, - X, Y, - BRetrisColorStone (pRetrisModule->MaxColor)); - } - } - } - - //draw active stone - BRetrisDrawStone (pRetrisModule); - - //update screen - b_module_paint ((BModule *) pRetrisModule); -} - -//start a new game -static void -BRetrisNewGame (BRetrisModule *pRetrisModule) -{ - int X, Y; - - //set speed to minimal - pRetrisModule->Speed = BRetrisSpeedMin; - - //remove all stones - for (X = 0; X < pRetrisModule->SizeX + 4; X++) - for (Y = 0; Y < pRetrisModule->SizeY; Y++) - pRetrisModule->ppStones[X][Y] = 0; - - //no current stone yet - pRetrisModule->CurStone = -1; - //no column ist being removed - pRetrisModule->RemoveCol = -1; - //no stone is being dropped - pRetrisModule->Dropping = 0; - - dbg_print ("BRetris: new game\n"); - - //output current picture - BRetrisOutput (pRetrisModule); -} - -//key-procedure -static void -BRetrisKey (BRetrisModule *pRetrisModule, - BModuleKey Key) -{ - switch (Key) - { - //move stone up - case B_KEY_2: - if (BRetrisCheckStone (pRetrisModule, - pRetrisModule->CurStone, - pRetrisModule->CurX, - pRetrisModule->CurY - 1, - pRetrisModule->CurRot)) - { - pRetrisModule->CurY--; - BRetrisOutput (pRetrisModule); - } - break; - - //rotate stone - case B_KEY_3: - case B_KEY_6: - if (BRetrisCheckStone (pRetrisModule, - pRetrisModule->CurStone, - pRetrisModule->CurX, - pRetrisModule->CurY, - (pRetrisModule->CurRot + 1) & 3)) - { - pRetrisModule->CurRot = (pRetrisModule->CurRot + 1) & 3; - BRetrisOutput (pRetrisModule); - } - break; - - //drop stone - case B_KEY_4: - pRetrisModule->Dropping = 1; //set flag for dropping stone - b_module_ticker_stop ((BModule *) pRetrisModule); //restart the tick machinery - b_module_ticker_start ((BModule *) pRetrisModule, BRetrisSpeedDrop); - break; - - //move stone down - case B_KEY_8: - if (BRetrisCheckStone (pRetrisModule, - pRetrisModule->CurStone, - pRetrisModule->CurX, - pRetrisModule->CurY + 1, - pRetrisModule->CurRot)) - { - pRetrisModule->CurY++; - BRetrisOutput (pRetrisModule); - } - break; - - //rotate stone in other direction - case B_KEY_9: - if (BRetrisCheckStone (pRetrisModule, - pRetrisModule->CurStone, - pRetrisModule->CurX, - pRetrisModule->CurY, - (pRetrisModule->CurRot + 3) & 3)) - { - pRetrisModule->CurRot = (pRetrisModule->CurRot + 3) & 3; - BRetrisOutput (pRetrisModule); - } - break; - - default: - break; - } -} - -//tick-procedure -//returns 1 if game over or 0 if game not over -static int -BRetrisTick (BRetrisModule *pRetrisModule) -{ - int X, Y; - - //dropping a stone - if (pRetrisModule->Dropping) - { - //move stone one down - if (BRetrisCheckStone (pRetrisModule, - pRetrisModule->CurStone, - pRetrisModule->CurX - 1, - pRetrisModule->CurY, - pRetrisModule->CurRot)) - pRetrisModule->CurX--; - //stone has hit ground - else - //stop dropping stone - pRetrisModule->Dropping = 0; - } //dropping a stone - - //not dropping a stone - else - { - //stone active - if (pRetrisModule->CurStone >= 0) - { - //move stone one down - if (BRetrisCheckStone (pRetrisModule, - pRetrisModule->CurStone, - pRetrisModule->CurX - 1, - pRetrisModule->CurY, - pRetrisModule->CurRot)) - pRetrisModule->CurX--; - //stone has hit ground - else - { - BRetrisDeactivateStone (pRetrisModule); //deactivate stone - pRetrisModule->CurStone = -1; //no current stone - dbg_print( "BRetris: stone hit ground\n" ); - } - } //stone active - - //no active stone - else - { - //column is being removed - if (pRetrisModule->RemoveCol >= 0) - { - //remove the column - for (X = pRetrisModule->RemoveCol; X < pRetrisModule->SizeX + 4 - 1; X++) - for (Y = 0; Y < pRetrisModule->SizeY; Y++) - pRetrisModule->ppStones[X][Y] = pRetrisModule->ppStones[X + 1][Y]; - dbg_print( "BRetris: column %d removed\n", pRetrisModule->RemoveCol ); - pRetrisModule->RemoveCol = -1; //no column is being removed - //increase speed - pRetrisModule->Speed = (pRetrisModule->Speed * (BRetrisSpeedInc - 1) + BRetrisSpeedMax) / BRetrisSpeedInc; - } //column is being removed - - //no column is being removed - else - { - //check for a column to remove - for (X = 0; X < pRetrisModule->SizeX + 4; X++) - { - for (Y = 0; Y < pRetrisModule->SizeY; Y++) - if (! pRetrisModule->ppStones[X][Y]) - break; - if (Y >= pRetrisModule->SizeY) //column is full - break; - } - - //found a column to remove - if (X < pRetrisModule->SizeX + 4) - { - pRetrisModule->RemoveCol = X; - dbg_print( "BRetris: column %d is full\n", pRetrisModule->RemoveCol ); - } - - //found no column to remove - else - { - //check game over - for (X = pRetrisModule->SizeX; X < pRetrisModule->SizeX + 4; X++) - for (Y = 0; Y < pRetrisModule->SizeY; Y++) - if (pRetrisModule->ppStones[X][Y]) - //found inactive stone right of display - game over - return 1; - - //create new stone - pRetrisModule->CurStone = rand( ) % count (BRetrisStoneTable); - pRetrisModule->CurX = pRetrisModule->SizeX + 2; - pRetrisModule->CurY = pRetrisModule->SizeY / 2; - pRetrisModule->CurRot = rand( ) & 3; - dbg_print( "BRetris: created new stone\n" ); - } //found no column to remove - } //no column is being removed - } //no active stone - } //not dropping a stone - - //output new picture - BRetrisOutput (pRetrisModule); - - //return game not over - return 0; -} - -static void -b_retris_module_class_init (BRetrisModuleClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->query = b_retris_module_query; - module_class->prepare = b_retris_module_prepare; - module_class->relax = b_retris_module_relax; - module_class->start = b_retris_module_start; - module_class->event = b_retris_module_event; - module_class->tick = b_retris_module_tick; - module_class->describe = b_retris_module_describe; -} - -static void -b_retris_module_init (BRetrisModule *retris_module) -{ -} - -static gboolean -b_retris_module_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width >= BRetrisSizeXMin && height >= BRetrisSizeYMin - && channels == 1 && maxval >= BRetrisMaxColorMin); -} - -static gboolean -b_retris_module_prepare (BModule *module, - GError **error) -{ - int SizePtrs, SizeCol, Size, X; - char * Ptr; - - BRetrisModule *pRetris_module = B_RETRIS_MODULE (module); - - //initialize the module values that depend on the output device - pRetris_module->SizeX = module->width; //size of game field - pRetris_module->SizeY = module->height; - pRetris_module->MaxColor = module->maxval; //maximum color value - pRetris_module->PlayerId = -1; //no plyer in game yet - - //allocate needed memory - SizePtrs = (pRetris_module->SizeX + 4) * sizeof( int * ); //get needed size - SizeCol = pRetris_module->SizeY * sizeof( int ); - Size = SizePtrs + (pRetris_module->SizeX + 4) * SizeCol; - Ptr = g_new (gchar, Size); - - pRetris_module->ppStones = (int * *)Ptr; //remember pointer - for( X = 0, Ptr += SizePtrs; X < pRetris_module->SizeX + 4; X++, Ptr += SizeCol ) //generate pointers to columns - pRetris_module->ppStones[X] = (int *)Ptr; - - return TRUE; -} - -static void -b_retris_module_relax (BModule *module) -{ - BRetrisModule *pRetris_module = B_RETRIS_MODULE (module); - - g_free (pRetris_module->ppStones); - pRetris_module->ppStones = NULL; -} - -static void -b_retris_module_start (BModule *module) -{ - //start new game - BRetrisNewGame ((BRetrisModule *) module); - - //start the tick machinery - b_module_ticker_start (module, BRetrisSpeedMin); -} - -static void -b_retris_module_event (BModule *module, - BModuleEvent *event) -{ - BRetrisModule *retris = B_RETRIS_MODULE (module); - - switch (event->type) - { - case B_EVENT_TYPE_KEY: - BRetrisKey (retris, event->key); - break; - - case B_EVENT_TYPE_PLAYER_ENTERED: - if (retris->PlayerId == -1) - { - retris->PlayerId = event->device_id; - module->num_players++; - } - break; - - case B_EVENT_TYPE_PLAYER_LEFT: - if (retris->PlayerId == event->device_id) - { - retris->PlayerId = -1; - module->num_players--; - } - break; - - default: - break; - } -} - -static gint -b_retris_module_tick (BModule *module) -{ - int GameOver; - - //call tick-procedure - GameOver = BRetrisTick ((BRetrisModule *) module); - - //game over - if( GameOver ) - { - dbg_print ("BRetris: requesting stop\n"); - //clear screen - b_module_fill (module, 0); - b_module_paint (module); - //request end of game - b_module_request_stop (module); - //we do not want to be called again - return 0; - } - - //dropping a stone at the moment - if (((BRetrisModule *) module)->Dropping) - //we want to be called again in very few milliseconds - return BRetrisSpeedDrop; - - //we want to be called again in some milliseconds - return ((BRetrisModule *) module)->Speed; -} - -static void -b_retris_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BRetris"; - *description = "Tetris game from right to left"; - *author = "1stein"; -} - diff --git a/blib-1.1.7/modules/bsnake.c b/blib-1.1.7/modules/bsnake.c deleted file mode 100644 index 84c2217..0000000 --- a/blib-1.1.7/modules/bsnake.c +++ /dev/null @@ -1,578 +0,0 @@ -/* BSnake: Snake module for Blinkenlights - * - * Copyright (c) 2003 1stein <1stein@schuermans.info> - * - * based on Test implementation for a BModule by the Blinkenlights Crew - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include - - -#define BSnakeVerMaj 1 -#define BSnakeVerMin 1 -#define BSnakeVerRev 2 -#define BSnakeVerTxt "1.1.2" - -//minimum size and color count of display -#define BSnakeSizeXMin 18 -#define BSnakeSizeYMin 8 -#define BSnakeMaxColorMin 1 -//initial and maximum length of the snake -#define BSnakeLenIni( Width, Height ) 3 -#define BSnakeLenMax( Width, Height ) ((Width) + (Height) + 3) -//time snake is dead after chrashing before game ends -#define BSnakeDeadTime 10 -#define BSnakeLives 3 -//initial and maximum speed of game (high number = slow) -#define BSnakeSpeedIni 500 -#define BSnakeSpeedMax 100 -//the colors -#define BSnakeColorEmpty( MaxColor ) (0) -#define BSnakeColorSnakeHead( MaxColor ) (MaxColor) -#define BSnakeColorSnakeBody( MaxColor ) ((MaxColor) * 2 / 3) -#define BSnakeColorMouse( MaxColor ) ((MaxColor) * 3 / 4) - -#ifdef SNAKE_DEBUG -#define dbg_print g_print -#else -#define dbg_print(fmt, ...) -#endif - -#define B_TYPE_SNAKE_MODULE (b_type_snake_module) -#define B_SNAKE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_SNAKE_MODULE, BSnakeModule)) -#define B_SNAKE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_SNAKE_MODULE, BSnakeModuleClass)) -#define B_IS_SNAKE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_SNAKE_MODULE)) - -typedef struct _BSnakeModule BSnakeModule; -typedef struct _BSnakeModuleClass BSnakeModuleClass; - -typedef struct sBSnakePoint -{ - int X, Y; -} stBSnakePoint; - -struct _BSnakeModule -{ - BModule parent_instance; - - int MaxColor; //maximum color value - stBSnakePoint Size; //size of game-field - int SnakeLenIni; //initial size of the snake - int SnakeLenMax; //maximum size of the snake - int PlayerId; //device id of the player - int SnakeLen; //current length of the snake - stBSnakePoint * pSnake; //array with fields of the snake (index 0 is head) - stBSnakePoint SnakeDir; //current direction of snake head - stBSnakePoint SnakeLastDir; //direction of the last step made by the snake - stBSnakePoint Mouse; //position of the current mouse to eat ({-1,-1} if no mouse) - int Speed; //current speed of game - int DeadCnt; //if > 0: snake has been dead for DeadCnt ticks - int Lives; // number of lives left -}; - -struct _BSnakeModuleClass -{ - BModuleClass parent_class; -}; - -static GType b_snake_module_get_type (GTypeModule *module); -static void b_snake_module_class_init (BSnakeModuleClass *klass); -static void b_snake_module_init (BSnakeModule *test_module); -static gboolean b_snake_module_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_snake_module_prepare (BModule *module, - GError **error); -static void b_snake_module_relax (BModule *module); -static void b_snake_module_start (BModule *module); -static void b_snake_module_event (BModule *module, - BModuleEvent *event); -static gint b_snake_module_tick (BModule *module); -static void b_snake_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_snake_module = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule * module) -{ - b_snake_module_get_type (module); - - return TRUE; -} - -GType -b_snake_module_get_type (GTypeModule * module) -{ - if (!b_type_snake_module) - { - static const GTypeInfo snake_module_info = { - sizeof (BSnakeModuleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_snake_module_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BSnakeModule), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_snake_module_init, - }; - - /* !!!!!!!!! The name given in the next function MUST be unique! */ - - b_type_snake_module = g_type_module_register_type (module, - B_TYPE_MODULE, - "BSnake", - &snake_module_info, - 0); - } - - return b_type_snake_module; -} - -//check if two points are equal -static int BSnakePointEqual( stBSnakePoint P1, stBSnakePoint P2 ) -{ - return P1.X == P2.X && P1.Y == P2.Y; -} - -//check if two points are near to each other (euclidian distance < 2) -static int BSnakePointNear( stBSnakePoint P1, stBSnakePoint P2 ) -{ - stBSnakePoint Delta; - Delta.X = P2.X - P1.X; - Delta.Y = P2.Y - P1.Y; - return Delta.X >= -1 && Delta.X <= 1 && Delta.Y >= -1 && Delta.Y <= 1; -} - -//output current picture -void -BSnakeOutput (BSnakeModule *pSnakeModule) -{ - int Color, I; - - //empty the screen - b_module_fill ((BModule *) pSnakeModule, - BSnakeColorEmpty (pSnakeModule->MaxColor)); - - //output nothing if not almost end of game - if( pSnakeModule->DeadCnt < BSnakeDeadTime ) - { - //let snake blink when dead - if( (pSnakeModule->DeadCnt & 1) == 0 ) - { - //draw snake - if( pSnakeModule->pSnake[0].X >= 0 //snake head - && pSnakeModule->pSnake[0].X < pSnakeModule->Size.X - && pSnakeModule->pSnake[0].Y >= 0 - && pSnakeModule->pSnake[0].Y < pSnakeModule->Size.Y ) - b_module_draw_point ((BModule *) pSnakeModule, - pSnakeModule->pSnake[0].X, - pSnakeModule->pSnake[0].Y, - BSnakeColorSnakeHead (pSnakeModule->MaxColor)); - Color = BSnakeColorSnakeBody (pSnakeModule->MaxColor); //snake body - for( I = 1; I < pSnakeModule->SnakeLen; I++ ) - if( pSnakeModule->pSnake[I].X >= 0 - && pSnakeModule->pSnake[I].X < pSnakeModule->Size.X - && pSnakeModule->pSnake[I].Y >= 0 - && pSnakeModule->pSnake[I].Y < pSnakeModule->Size.Y ) - b_module_draw_point ((BModule *) pSnakeModule, - pSnakeModule->pSnake[I].X, - pSnakeModule->pSnake[I].Y, - Color); - } - - //draw mouse - if( pSnakeModule->Mouse.X >= 0 - && pSnakeModule->Mouse.X < pSnakeModule->Size.X - && pSnakeModule->Mouse.Y >= 0 - && pSnakeModule->Mouse.Y < pSnakeModule->Size.Y ) - b_module_draw_point ((BModule *) pSnakeModule, - pSnakeModule->Mouse.X, - pSnakeModule->Mouse.Y, - BSnakeColorMouse (pSnakeModule->MaxColor)); - } - - //update screen - b_module_paint ((BModule *) pSnakeModule); -} - -//start a new game -void -BSnakeNewGame (BSnakeModule *pSnakeModule) -{ - int I; - - //initialize snake - pSnakeModule->SnakeLen = pSnakeModule->SnakeLenIni; //length of snake to initial size - switch( rand( ) % 4 ) //place snake head and set direction - { - case 0: //snake comes from top - pSnakeModule->SnakeDir.X = 0; - pSnakeModule->SnakeDir.Y = 1; - pSnakeModule->pSnake[0].X = rand( ) % pSnakeModule->Size.X; - pSnakeModule->pSnake[0].Y = 0; - break; - case 1: //snake comes from left - pSnakeModule->SnakeDir.X = 1; - pSnakeModule->SnakeDir.Y = 0; - pSnakeModule->pSnake[0].X = 0; - pSnakeModule->pSnake[0].Y = rand( ) % pSnakeModule->Size.Y; - break; - case 2: //snake comes from right - pSnakeModule->SnakeDir.X = -1; - pSnakeModule->SnakeDir.Y = 0; - pSnakeModule->pSnake[0].X = pSnakeModule->Size.X - 1; - pSnakeModule->pSnake[0].Y = rand( ) % pSnakeModule->Size.Y; - break; - case 3: //snake comes from bottom - pSnakeModule->SnakeDir.X = 0; - pSnakeModule->SnakeDir.Y = -1; - pSnakeModule->pSnake[0].X = rand( ) % pSnakeModule->Size.X; - pSnakeModule->pSnake[0].Y = pSnakeModule->Size.Y - 1; - break; - } - for( I = 1; I < pSnakeModule->SnakeLen; I++ ) //initialize body of snake - { - pSnakeModule->pSnake[I].X = pSnakeModule->pSnake[I-1].X - - pSnakeModule->SnakeDir.X; - pSnakeModule->pSnake[I].Y = pSnakeModule->pSnake[I-1].Y - - pSnakeModule->SnakeDir.Y; - } - pSnakeModule->SnakeLastDir = pSnakeModule->SnakeDir; //last step was in same direction - - //no mouse yet - pSnakeModule->Mouse.X = -1; - pSnakeModule->Mouse.Y = -1; - - //set speed to initial value - pSnakeModule->Speed = BSnakeSpeedIni; - - //snake is alive - pSnakeModule->DeadCnt = 0; - - dbg_print ("BSnake: new game\n"); - - //output current picture - BSnakeOutput (pSnakeModule); -} - -//key-procedure -void -BSnakeKey (BSnakeModule *pSnakeModule, - BModuleKey Key) -{ - switch (Key) - { - case B_KEY_2: //set snake direction to up - if( pSnakeModule->SnakeLastDir.Y < 1 ) //not if last step was down - { - pSnakeModule->SnakeDir.X = 0; - pSnakeModule->SnakeDir.Y = -1; - } - break; - case B_KEY_4: //set snake direction to left - if( pSnakeModule->SnakeLastDir.X < 1 ) //not if last step was right - { - pSnakeModule->SnakeDir.X = -1; - pSnakeModule->SnakeDir.Y = 0; - } - break; - case B_KEY_6: //set snake direction to right - if( pSnakeModule->SnakeLastDir.X > -1 ) //not if last step was left - { - pSnakeModule->SnakeDir.X = 1; - pSnakeModule->SnakeDir.Y = 0; - } - break; - case B_KEY_8: //set snake direction to down - if( pSnakeModule->SnakeLastDir.Y > -1 ) //not if last step was up - { - pSnakeModule->SnakeDir.X = 0; - pSnakeModule->SnakeDir.Y = 1; - } - break; - default: - break; - } -} - -//tick-procedure -//returns TRUE if game over or FALSE if game not over -gboolean -BSnakeTick (BSnakeModule *pSnakeModule) -{ - stBSnakePoint NewPos; - int I, Crash; - - //snake is dead - if( pSnakeModule->DeadCnt > 0 ) - { - //track time snake is dead - pSnakeModule->DeadCnt++; - - //output current picture - BSnakeOutput (pSnakeModule); - - //return game over when snake was dead long enough - return pSnakeModule->DeadCnt > BSnakeDeadTime; - } - - //get direction of snake head after next step - NewPos.X = pSnakeModule->pSnake[0].X + pSnakeModule->SnakeDir.X; - NewPos.Y = pSnakeModule->pSnake[0].Y + pSnakeModule->SnakeDir.Y; - - //no mouse available - if( pSnakeModule->Mouse.X < 0 || pSnakeModule->Mouse.Y < 0 ) - { - //generate new mouse - pSnakeModule->Mouse.X = rand( ) % pSnakeModule->Size.X; - pSnakeModule->Mouse.Y = rand( ) % pSnakeModule->Size.Y; - - //check if new mouse position is valid - //(i.e. not exactly at snake position and not directly next to snake) - if( BSnakePointNear( pSnakeModule->Mouse, NewPos ) ) - { - //remove mouse - pSnakeModule->Mouse.X = -1; - pSnakeModule->Mouse.Y = -1; - } - for( I = 0; I < pSnakeModule->SnakeLen; I++ ) - { - if( BSnakePointNear( pSnakeModule->Mouse, pSnakeModule->pSnake[I] ) ) - { - //remove mouse - pSnakeModule->Mouse.X = -1; - pSnakeModule->Mouse.Y = -1; - } - } - - if( pSnakeModule->Mouse.X >= 0 && pSnakeModule->Mouse.Y >= 0 ) - dbg_print ("BSnake: new mouse\n"); - } - - //snake eats mouse - if( pSnakeModule->Mouse.X >= 0 - && pSnakeModule->Mouse.Y >= 0 - && BSnakePointEqual( NewPos, pSnakeModule->Mouse ) ) - { - //remove mouse - pSnakeModule->Mouse.X = -1; - pSnakeModule->Mouse.Y = -1; - - //increase snake length - //(last field of snake body will be set when moving snake one step) - if( pSnakeModule->SnakeLen < pSnakeModule->SnakeLenMax ) - pSnakeModule->SnakeLen++; - - //increase game speed if snake already has got maximum length - //(this formula will not increase the speed above maximum speed) - else - pSnakeModule->Speed = (3 * pSnakeModule->Speed + BSnakeSpeedMax) / 4; - - dbg_print ("BSnake: snake ate mouse\n"); - } - - //check if snake crashes - Crash = 0; - if( NewPos.X < 0 //snake crashes into wall - || NewPos.Y < 0 - || NewPos.X >= pSnakeModule->Size.X - || NewPos.Y >= pSnakeModule->Size.Y ) - Crash = 1; - for( I = 0; I < pSnakeModule->SnakeLen - 1; I++ ) //snake crashes into its body - if( BSnakePointEqual( NewPos, pSnakeModule->pSnake[I] ) ) - Crash = 1; - - //snake crashes - if( Crash ) - { - //mark Snake as dead - pSnakeModule->DeadCnt = 1; - - dbg_print ("BSnake: snake crashed\n"); - } - - - //snake does not crash - else - { - //move snake one step - for( I = pSnakeModule->SnakeLen; I > 0; I-- ) - pSnakeModule->pSnake[I] = pSnakeModule->pSnake[I-1]; - pSnakeModule->pSnake[0] = NewPos; - //remember direction of last step - pSnakeModule->SnakeLastDir = pSnakeModule->SnakeDir; - } - - //output current picture - BSnakeOutput (pSnakeModule); - - //return game not over - return FALSE; -} - -static void -b_snake_module_class_init (BSnakeModuleClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->query = b_snake_module_query; - module_class->prepare = b_snake_module_prepare; - module_class->relax = b_snake_module_relax; - module_class->start = b_snake_module_start; - module_class->event = b_snake_module_event; - module_class->tick = b_snake_module_tick; - module_class->describe = b_snake_module_describe; -} - -static void -b_snake_module_init (BSnakeModule *snake_module) -{ -} - -static gboolean -b_snake_module_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width >= BSnakeSizeXMin && height >= BSnakeSizeYMin - && channels == 1 && maxval >= BSnakeMaxColorMin); -} - -static gboolean -b_snake_module_prepare (BModule *module, - GError **error) -{ - BSnakeModule *snake = B_SNAKE_MODULE (module); - - //initialize the module values that depend on the output device - snake->MaxColor = module->maxval; //maximum color value - snake->Size.X = module->width; //size of game field - snake->Size.Y = module->height; - snake->SnakeLenIni = BSnakeLenIni( module->width, module->height ); //initial size of the snake - snake->SnakeLenMax = BSnakeLenMax( module->width, module->height ); //initial size of the snake - snake->PlayerId = -1; //no player in game yet - - snake->pSnake = g_new (stBSnakePoint, snake->SnakeLenMax); - - return TRUE; -} - -static void -b_snake_module_relax (BModule *module) -{ - BSnakeModule *snake = B_SNAKE_MODULE (module); - - g_free (snake->pSnake); - snake->pSnake = NULL; -} - -static void -b_snake_module_start (BModule *module) -{ - BSnakeModule *snake = B_SNAKE_MODULE (module); - - snake->Lives = BSnakeLives; - BSnakeNewGame (snake); - - b_module_ticker_start (module, snake->Speed); -} - -static void -b_snake_module_event (BModule *module, - BModuleEvent *event) -{ - BSnakeModule *snake = B_SNAKE_MODULE (module); - - switch (event->type) - { - case B_EVENT_TYPE_KEY: - BSnakeKey (snake, event->key); - break; - - case B_EVENT_TYPE_PLAYER_ENTERED: - if (snake->PlayerId == -1) - { - snake->PlayerId = event->device_id; - module->num_players++; - } - break; - - case B_EVENT_TYPE_PLAYER_LEFT: - if (snake->PlayerId == event->device_id) - { - snake->PlayerId = -1; - module->num_players--; - } - break; - - default: - break; - } -} - -static gint -b_snake_module_tick (BModule *module) -{ - BSnakeModule *snake = B_SNAKE_MODULE (module); - gboolean GameOver; - - GameOver = BSnakeTick (snake); - - if( GameOver ) - { - snake->Lives--; - if( snake->Lives <= 0 ) - { - b_module_request_stop (module); //request end - return 0; - } - BSnakeNewGame (snake); - } - - //we want to be called again in some milliseconds, if game is not over - return (snake->Speed); -} - -static void -b_snake_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BSnake"; - *description = "Snake game "BSnakeVerTxt; - *author = "1stein <1stein@schuermans.info>"; -} - diff --git a/blib-1.1.7/modules/btetris.c b/blib-1.1.7/modules/btetris.c deleted file mode 100644 index cfb4d0d..0000000 --- a/blib-1.1.7/modules/btetris.c +++ /dev/null @@ -1,878 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -#include -#include -#include - -#include -#include - -#include - - -#define START_SPEED 600 -#define ACC_ON_STUCK 4 -#define FLASH_SPEED 55 -#define FALL_SPEED 50 -#define BOTTOM_OFFSET 0 /* we used a value of 2 for Arcade/Paris */ - -/* #define TETRIS_DEBUG 1 */ - - -#define B_TYPE_TETRIS (b_type_tetris) -#define B_TETRIS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_TETRIS, BTetris)) -#define B_TETRIS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_TETRIS, BTetrisClass)) -#define B_IS_TETRIS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_TETRIS)) - -typedef struct _BTetris BTetris; -typedef struct _BTetrisClass BTetrisClass; - -struct _BTetris -{ - BModule parent_instance; - - gint x, y; - gint rotation; - guchar *field; - gint field_size; - gint speed; - gint tile; - gboolean game_over; - - gboolean *completed; - gint n_completed; - - gboolean falling; - - gboolean flash_state; - - gint player_device_id; -}; - -struct _BTetrisClass -{ - BModuleClass parent_class; -}; - -static GType b_tetris_get_type (GTypeModule *module); - - -static void b_tetris_class_init (BTetrisClass *klass); -static void b_tetris_init (BTetris *tetris); - -static gboolean b_tetris_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_tetris_prepare (BModule *module, - GError **error); -static void b_tetris_relax (BModule *module); -static void b_tetris_start (BModule *module); -static void b_tetris_stop (BModule *module); -static void b_tetris_event (BModule *module, - BModuleEvent *event); -static gint b_tetris_tick (BModule *module); -static void b_tetris_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_tetris = 0; - -typedef struct _TetrisTile -{ - gchar data[4][16]; - guchar color; -} TetrisTile; - -static TetrisTile tile[] = -{ - { - { - { 0, 0, 0, 0, - 1, 1, 1, 1, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 0, 0, - 0, 1, 0, 0, - 0, 1, 0, 0, - 0, 1, 0, 0 }, - { 0, 0, 0, 0, - 1, 1, 1, 1, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 0, 0, - 0, 1, 0, 0, - 0, 1, 0, 0, - 0, 1, 0, 0 }, - }, - 0x77 - }, - { - { - { 1, 1, 0, 0, - 1, 1, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 0, 0, - 1, 1, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 0, 0, - 1, 1, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 0, 0, - 1, 1, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - }, - 0x99 - }, - { - { - { 1, 0, 0, 0, - 1, 1, 1, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 0, 0, - 1, 0, 0, 0, - 1, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 1, 0, - 0, 0, 1, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 0, 0, - 0, 1, 0, 0, - 1, 1, 0, 0, - 0, 0, 0, 0 }, - }, - 0xbb - }, - { - { - { 0, 0, 1, 0, - 1, 1, 1, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 0, 0, 0, - 1, 0, 0, 0, - 1, 1, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 1, 0, - 1, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 0, 0, - 0, 1, 0, 0, - 0, 1, 0, 0, - 0, 0, 0, 0 }, - }, - 0xbb - }, - { - { - { 1, 1, 1, 0, - 0, 1, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 0, 0, - 1, 1, 0, 0, - 0, 1, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 0, 0, - 1, 1, 1, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 0, 0, 0, - 1, 1, 0, 0, - 1, 0, 0, 0, - 0, 0, 0, 0 }, - }, - 0xdd - }, - { - { - { 0, 1, 1, 0, - 1, 1, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 0, 0, 0, - 1, 1, 0, 0, - 0, 1, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 1, 0, - 1, 1, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 0, 0, 0, - 1, 1, 0, 0, - 0, 1, 0, 0, - 0, 0, 0, 0 }, - }, - 0xff - }, - { - { - { 1, 1, 0, 0, - 0, 1, 1, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 0, 0, - 1, 1, 0, 0, - 1, 0, 0, 0, - 0, 0, 0, 0 }, - { 1, 1, 0, 0, - 0, 1, 1, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 }, - { 0, 1, 0, 0, - 1, 1, 0, 0, - 1, 0, 0, 0, - 0, 0, 0, 0 }, - }, - 0xff - } -}; - -static void -b_tetris_blend_down (BModule *module) -{ - gint x, y, v; - guchar *pixel; - - for (y = 0; y < module->height; y++) - for (v = 255; v >= 0; v -= 0xf) - { - for (x = 0; x < module->width; x++) - { - pixel = module->buffer + (y * module->width + x); - if (*pixel > v) - *pixel = v; - } - - b_module_paint (module); - usleep (5000); - } -} - -static gint -b_tetris_new_tile (void) -{ - return random () % (sizeof (tile) / sizeof (tile[0])); -} - -static gint -b_tetris_tile_width (gint tile_n, - gint rotation) -{ - gint x, y, w = 0; - - for (x = 0; x < 4; x++) - for (y = 0; y < 4; y++) - if (tile[tile_n].data[rotation][y*4+x]) - w = x + 1; - - return w; -} - -static gint -b_tetris_tile_height (gint tile_n, - gint rotation) -{ - gint x, y, h = 0; - - for (y = 0; y < 4; y++) - for (x = 0; x < 4; x++) - if (tile[tile_n].data[rotation][y*4+x]) - h = y + 1; - - return h; -} - -static gint -b_tetris_tile_left_offset (gint tile_n, - gint rotation) -{ - gint o = 4, x, y; - - for (y = 0; y < 4; y++) - for (x = 3; x >= 0; x--) - if (tile[tile_n].data[rotation][y*4+x]) - if (o > x) - o = x; - - return o; -} - -static void -b_tetris_paint (BModule *module) -{ - BTetris *tetris; - gchar *tile_data; - gint x, y; - gint tile_width, tile_height; - - tetris = B_TETRIS (module); - - memcpy (module->buffer, tetris->field, tetris->field_size); - - tile_data = tile[tetris->tile].data[tetris->rotation]; - tile_width = b_tetris_tile_width (tetris->tile, tetris->rotation); - tile_height = b_tetris_tile_height (tetris->tile, tetris->rotation); - -#ifdef TETRIS_DEBUG - g_print ("b_tetris_paint: %d x %d\n", tile_width, tile_height); -#endif - - if (tetris->n_completed == 0) - { - for (x = 0; x < tile_width; x++) - for (y = 0; y < tile_height; y++) - { - if (tile_data[y * 4 + x]) - { - guchar *data = (module->buffer + - module->width * (tetris->y + y) + - (tetris->x + x) * 2); - - data[0] = tile[tetris->tile].color; - data[1] = tile[tetris->tile].color; - } - } - } - - b_module_paint (module); -} - -static void -b_tetris_rotate (BModule *module, - gboolean clockwise) -{ - BTetris *tetris = B_TETRIS (module); - guchar *tile_data; - gint x, y; - gint tile_width, tile_height, tile_leftoff; - gint rotation; - - rotation = tetris->rotation; - - if (clockwise) - rotation += 2; - - rotation++; - rotation %= 4; - - tile_data = tile[tetris->tile].data[rotation]; - tile_width = b_tetris_tile_width (tetris->tile, rotation); - tile_height = b_tetris_tile_height (tetris->tile, rotation); - tile_leftoff = b_tetris_tile_left_offset (tetris->tile, rotation); - - - if (tetris->y + tile_height > module->height - BOTTOM_OFFSET) - return; - - /* check if rotated tile collides with s.th. */ - for (y = 0; y < tile_height; y++) - { - for (x = 0; x < tile_width; x++) - if (tile_data[y * 4 + x] && - tetris->field[module->width * - (tetris->y + tile_height) + (tetris->x + x) * 2]) - return; - } - - while (tetris->x + tile_width > module->width/2) - tetris->x--; - - while (tetris->x - tile_leftoff + 1 < 0) - tetris->x++; - - tetris->rotation = rotation; - b_tetris_paint (module); -} - -static gboolean -b_tetris_down (BModule *module) -{ - BTetris *tetris = B_TETRIS (module); - guchar *tile_data; - gboolean stuck = FALSE; - gint x, y; - gint tile_width, tile_height; - - tile_data = tile[tetris->tile].data[tetris->rotation]; - tile_width = b_tetris_tile_width (tetris->tile, tetris->rotation); - tile_height = b_tetris_tile_height (tetris->tile, tetris->rotation); - - if (tetris->y >= module->height - tile_height - BOTTOM_OFFSET) - { - stuck = TRUE; - } - else - { - for (x = 0; x < tile_width; x++) - for (y = 0; y < tile_height; y++) - if (tile_data[y * 4 + x] && - tetris->field[module->width * (tetris->y + y + 1) + - (tetris->x + x) * 2] != 0) - { - stuck = TRUE; - break; - } - } - - if (stuck) - { - if (tetris->y < 3) - tetris->game_over = TRUE; - - if (tetris->speed > 100) - tetris->speed -= ACC_ON_STUCK; - - for (x = 0; x < tile_width; x++) - for (y = 0; y < tile_height; y++) - { - if (tile_data[y * 4 + x]) - { - guchar *data; - - data = (tetris->field + - module->width * (tetris->y + y) + - 2 * (tetris->x + x)); - - data[0] = tile[tetris->tile].color; - data[1] = tile[tetris->tile].color; - } - } - - - /* check for completed rows */ - for (y = module->height-BOTTOM_OFFSET-1; y > 0; y--) - { - tetris->completed[y] = TRUE; - for (x = 0; x < module->width; x++) - { - if (tetris->field[module->width * y + x] == 0) - tetris->completed[y] = FALSE; - } - if (tetris->completed[y]) - tetris->n_completed++; - } - - if (tetris->n_completed) - tetris->n_completed = 5; - - /* select new tile and start over */ - tetris->y = 0; - tetris->x = module->width / 4 - 1; - tetris->rotation = 0; - tetris->tile = b_tetris_new_tile (); - } - else - { - tetris->y++; - } - - b_tetris_paint (module); - - return stuck; -} - -static void -b_tetris_left (BModule *module) -{ - BTetris *tetris = B_TETRIS (module); - gint x, y; - gint tile_width, tile_height; - guchar *tile_data; - - tile_data = tile[tetris->tile].data[tetris->rotation]; - tile_width = b_tetris_tile_width (tetris->tile, tetris->rotation); - tile_height = b_tetris_tile_height (tetris->tile, tetris->rotation); - - if (tetris->x + - b_tetris_tile_left_offset (tetris->tile, tetris->rotation) <= 0) - return; - - for (x = 0; x < tile_width+1; x++) - for (y = 0; y < tile_height; y++) - if (tile_data[y * 4 + x] && - tetris->field[module->width * (tetris->y + y) + - (tetris->x + x) * 2 - 1] != 0) - return; - - tetris->x--; - b_tetris_paint (module); -} - -static void -b_tetris_right (BModule *module) -{ - BTetris *tetris = B_TETRIS (module); - gint x, y; - gint tile_width, tile_height; - guchar *tile_data; - - tile_data = tile[tetris->tile].data[tetris->rotation]; - tile_width = b_tetris_tile_width (tetris->tile, tetris->rotation); - tile_height = b_tetris_tile_height (tetris->tile, tetris->rotation); - - if (tetris->x * 2 >= (module->width - - b_tetris_tile_width (tetris->tile, - tetris->rotation) * 2 - 1)) - return; - - for (x = 0; x < tile_width+1; x++) - for (y = 0; y < tile_height; y++) - if (tile_data[y * 4 + x] && - tetris->field[module->width * (tetris->y + y) + - (tetris->x + x + 1) * 2] != 0) - return; - - tetris->x++; - b_tetris_paint (module); -} - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_tetris_get_type (module); - return TRUE; -} - -GType -b_tetris_get_type (GTypeModule *module) -{ - if (!b_type_tetris) - { - static const GTypeInfo tetris_info = - { - sizeof (BTetrisClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_tetris_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BTetris), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_tetris_init, - }; - - b_type_tetris = g_type_module_register_type (module, - B_TYPE_MODULE, "BTetris", - &tetris_info, 0); - } - - return b_type_tetris; -} - -static void -b_tetris_class_init (BTetrisClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->max_players = 1; - - module_class->query = b_tetris_query; - module_class->prepare = b_tetris_prepare; - module_class->relax = b_tetris_relax; - module_class->start = b_tetris_start; - module_class->stop = b_tetris_stop; - module_class->event = b_tetris_event; - module_class->tick = b_tetris_tick; - module_class->describe = b_tetris_describe; -} - -static void -b_tetris_init (BTetris *tetris) -{ - tetris->x = 0; - tetris->y = 0; - tetris->rotation = 0; - tetris->speed = START_SPEED; - tetris->tile = -1; - tetris->completed = NULL; - tetris->n_completed = 0; - tetris->player_device_id = -1; -} - -static gboolean -b_tetris_query (gint width, - gint height, - gint channels, - gint maxval) -{ -#ifdef TETRIS_DEBUG - g_print ("b_tetris_query\n"); -#endif - - return (width > 8 && height > 6 && channels == 1 && maxval == 255); -} - -static gboolean -b_tetris_prepare (BModule *module, - GError **error) -{ - BTetris *tetris = B_TETRIS (module); - -#ifdef TETRIS_DEBUG - g_print ("b_tetris_prepare\n"); -#endif - - tetris->field_size = module->width * module->height; - tetris->field = g_new0 (guchar, tetris->field_size); - tetris->completed = g_new0 (gboolean, module->width); - - return TRUE; -} - -static void -b_tetris_relax (BModule *module) -{ - BTetris *tetris = B_TETRIS (module); - -#ifdef TETRIS_DEBUG - g_print ("b_tetris_relax\n"); -#endif - - if (tetris->field) - { - g_free (tetris->field); - tetris->field = NULL; - } - - if (tetris->completed) - { - g_free (tetris->completed); - tetris->completed = NULL; - } -} - -static void -b_tetris_start (BModule *module) -{ - BTetris *tetris; - -#ifdef TETRIS_DEBUG - g_print ("b_tetris_start\n"); -#endif - - tetris = B_TETRIS (module); - - tetris->x = module->width / 4 - 1; - tetris->y = 0; - tetris->rotation = 0; - tetris->tile = b_tetris_new_tile (); - tetris->game_over = FALSE; - tetris->speed = START_SPEED; - -#ifdef TETRIS_DEBUG - g_print (" tetris tile: %d\n", tetris->tile); -#endif - - memset (tetris->field, 0, tetris->field_size); - memset (tetris->completed, 0, module->width); - - tetris->flash_state = FALSE; - tetris->n_completed = 0; - tetris->falling = FALSE; - - b_module_fill (module, 0); - b_module_ticker_start (module, 1000); -} - -static void -b_tetris_stop (BModule *module) -{ - BTetris *tetris; - -#ifdef TETRIS_DEBUG - g_print ("b_tetris_stop\n"); -#endif - - tetris = B_TETRIS (module); - - b_module_fill (module, 0); - b_module_paint (module); -} - -static void -b_tetris_event (BModule *module, - BModuleEvent *event) -{ - BTetris *tetris; - -#ifdef TETRIS_DEBUG - g_print ("b_tetris_event\n"); -#endif - - tetris = B_TETRIS (module); - if (tetris->falling) - return; - - switch (event->type) - { - case B_EVENT_TYPE_KEY: - if (event->device_id == tetris->player_device_id) - { - switch (event->key) - { - case B_KEY_4: - b_tetris_left (module); - break; - case B_KEY_5: - b_tetris_rotate (module, TRUE); - break; - case B_KEY_6: - b_tetris_right (module); - break; - case B_KEY_7: - b_tetris_rotate (module, TRUE); - break; - case B_KEY_8: - if (!b_tetris_down (module)) - tetris->falling = TRUE; - break; - case B_KEY_9: - b_tetris_rotate (module, FALSE); - break; - default: - break; - } - } - break; - - case B_EVENT_TYPE_PLAYER_ENTERED: - if (tetris->player_device_id == -1) - { -#ifdef TETRIS_DEBUG - g_print ("BTetris: player %d entered.\n", event->device_id); -#endif - tetris->player_device_id = event->device_id; - module->num_players++; - } - break; - - case B_EVENT_TYPE_PLAYER_LEFT: - if (tetris->player_device_id == event->device_id) - { - tetris->player_device_id = -1; - module->num_players--; - } - break; - - default: - break; - } -} - -static gint -b_tetris_tick (BModule *module) -{ - BTetris *tetris; - gint y, delta = 0; - -#ifdef TETRIS_DEBUG - g_print ("b_tetris_tick\n"); -#endif - - tetris = B_TETRIS (module); - - if (tetris->game_over) - { - b_tetris_blend_down (module); - b_module_request_stop (module); - return 0; - } - - if (tetris->falling) - { - if (b_tetris_down (module)) - { - tetris->falling = FALSE; - } - else - return FALL_SPEED; - } - - if (tetris->n_completed > 0) - { - /* flash completed rows */ - if (tetris->flash_state) - { - memcpy (module->buffer, tetris->field, tetris->field_size); - b_module_paint (module); - } - else - { - for (y = 0; y < module->height; y++) - if (tetris->completed[y]) - memset (module->buffer + module->width * y, 0, module->width); - - b_module_paint (module); - - /* finally remove completed rows */ - if (--tetris->n_completed == 0) - { - for (y = module->height - BOTTOM_OFFSET - 1; y >= 0; y--) - if (tetris->completed[y - delta]) - { - memmove (tetris->field + module->width, - tetris->field, - module->width * (y)); - delta++; - y++; - } - - memcpy (module->buffer, tetris->field, tetris->field_size); - b_module_paint (module); - memset (tetris->completed, 0, sizeof(gboolean) * module->height); - - return tetris->speed; - } - } - - tetris->flash_state = !(tetris->flash_state); - - return FLASH_SPEED; - } - - if (b_tetris_down (module)) /* if stuck */ - return b_tetris_tick (module); - - return tetris->speed; -} - -static void -b_tetris_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BTetris"; - *description = "Tetris game"; - *author = "Daniel Mack"; -} diff --git a/blib-1.1.7/modules/btext.c b/blib-1.1.7/modules/btext.c deleted file mode 100644 index 722ee1b..0000000 --- a/blib-1.1.7/modules/btext.c +++ /dev/null @@ -1,840 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2001-2002 The Blinkenlights Crew - * Michael Natterer - * - * 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. - */ - -#include -#include - -#include - -#include - - -#define TEXT_TIMEOUT 200 -#define BLINK_TIMEOUT 200 -#define SCROLL_TIMEOUT 100 -#define CHAR_WIDTH 3 -#define CHAR_HEIGHT 5 -#define CHAR_ADVANCE 4 -#define LINE_ADVANCE 6 -#define BLINK_STEPS 4 - - -typedef struct _BChar BChar; - -struct _BChar -{ - gchar character; - gchar width; - guchar matrix[CHAR_WIDTH * CHAR_HEIGHT]; -}; - -static const BChar unknown_char = -{ - 0, 3, - { 1, 1, 1, - 1, 1, 1, - 1, 1, 1, - 1, 1, 1, - 1, 1, 1 - } -}; - -static const BChar chars[] = -{ - { '0', 3, - { 1, 1, 1, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 1, 1, 1 - } - }, - { '1', 3, - { 1, 1, 0, - 0, 1, 0, - 0, 1, 0, - 0, 1, 0, - 0, 1, 0 - } - }, - { '2', 3, - { 0, 1, 1, - 1, 0, 1, - 0, 0, 1, - 0, 1, 0, - 1, 1, 1 - } - }, - { '3', 3, - { 1, 1, 1, - 0, 0, 1, - 1, 1, 1, - 0, 0, 1, - 1, 1, 1 - } - }, - { '4', 3, - { 1, 0, 1, - 1, 0, 1, - 1, 1, 1, - 0, 0, 1, - 0, 0, 1 - } - }, - { '5', 3, - { 1, 1, 1, - 1, 0, 0, - 1, 1, 1, - 0, 0, 1, - 1, 1, 0 - } - }, - { '6', 3, - { 1, 1, 1, - 1, 0, 0, - 1, 1, 1, - 1, 0, 1, - 1, 1, 1 - } - }, - { '7', 3, - { 1, 1, 1, - 0, 0, 1, - 0, 1, 0, - 1, 0, 0, - 1, 0, 0 - } - }, - { '8', 3, - { 1, 1, 1, - 1, 0, 1, - 1, 1, 1, - 1, 0, 1, - 1, 1, 1 - } - }, - { '9', 3, - { 1, 1, 1, - 1, 0, 1, - 1, 1, 1, - 0, 0, 1, - 1, 1, 1 - } - }, - - { ':', 1, - { 0, 0, 0, - 1, 0, 0, - 0, 0, 0, - 1, 0, 0, - 0, 0, 0 - } - }, - { '.', 1, - { 0, 0, 0, - 0, 0, 0, - 0, 0, 0, - 0, 0, 0, - 1, 0, 0 - } - }, - - { 'A', 3, - { 1, 1, 1, - 1, 0, 1, - 1, 1, 1, - 1, 0, 1, - 1, 0, 1 - } - }, - { 'B', 3, - { 1, 1, 0, - 1, 0, 1, - 1, 1, 0, - 1, 0, 1, - 1, 1, 0 - } - }, - { 'C', 3, - { 1, 1, 1, - 1, 0, 0, - 1, 0, 0, - 1, 0, 0, - 1, 1, 1 - } - }, - { 'D', 3, - { 1, 1, 0, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 1, 1, 0 - } - }, - { 'E', 3, - { 1, 1, 1, - 1, 0, 0, - 1, 1, 0, - 1, 0, 0, - 1, 1, 1 - } - }, - { 'F', 3, - { 1, 1, 1, - 1, 0, 0, - 1, 1, 0, - 1, 0, 0, - 1, 0, 0 - } - }, - { 'G', 3, - { 1, 1, 1, - 1, 0, 0, - 1, 0, 1, - 1, 0, 1, - 1, 1, 1 - } - }, - { 'H', 3, - { 1, 0, 1, - 1, 0, 1, - 1, 1, 1, - 1, 0, 1, - 1, 0, 1 - } - }, - { 'I', 1, - { 1, 0, 0, - 1, 0, 0, - 1, 0, 0, - 1, 0, 0, - 1, 0, 0 - } - }, - { 'J', 3, - { 0, 0, 1, - 0, 0, 1, - 0, 0, 1, - 1, 0, 1, - 0, 1, 0 - } - }, - { 'K', 3, - { 1, 0, 1, - 1, 0, 1, - 1, 1, 0, - 1, 0, 1, - 1, 0, 1 - } - }, - { 'L', 3, - { 1, 0, 0, - 1, 0, 0, - 1, 0, 0, - 1, 0, 0, - 1, 1, 1 - } - }, - { 'M', 3, - { 1, 0, 1, - 1, 1, 1, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1 - } - }, - { 'N', 3, - { 1, 1, 1, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1 - } - }, - { 'O', 3, - { 0, 1, 0, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 0, 1, 0 - } - }, - { 'P', 3, - { 1, 1, 0, - 1, 0, 1, - 1, 1, 0, - 1, 0, 0, - 1, 0, 0 - } - }, - { 'Q', 3, - { 0, 1, 0, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 0, 1, 1 - } - }, - { 'R', 3, - { 1, 1, 0, - 1, 0, 1, - 1, 1, 0, - 1, 0, 1, - 1, 0, 1 - } - }, - { 'S', 3, - { 1, 1, 1, - 1, 0, 0, - 1, 1, 1, - 0, 0, 1, - 1, 1, 1 - } - }, - { 'T', 3, - { 1, 1, 1, - 0, 1, 0, - 0, 1, 0, - 0, 1, 0, - 0, 1, 0 - } - }, - { 'U', 3, - { 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 1, 1, 1 - } - }, - { 'V', 3, - { 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 0, 1, 0 - } - }, - { 'W', 3, - { 1, 0, 1, - 1, 0, 1, - 1, 0, 1, - 1, 1, 1, - 1, 0, 1 - } - }, - { 'X', 3, - { 1, 0, 1, - 1, 0, 1, - 0, 1, 0, - 1, 0, 1, - 1, 0, 1 - } - }, - { 'Y', 3, - { 1, 0, 1, - 1, 0, 1, - 0, 1, 0, - 0, 1, 0, - 0, 1, 0 - } - }, - { 'Z', 3, - { 1, 1, 1, - 0, 0, 1, - 0, 1, 0, - 1, 0, 0, - 1, 1, 1 - } - }, -}; - -typedef enum -{ - SCROLL_UP, - CURSOR_BLINK, - FINISH -} AnimType; - - -enum -{ - PROP_0, - PROP_STRING -}; - - -#define B_TYPE_TEXT (b_type_text) -#define B_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_TEXT, BText)) -#define B_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_TEXT, BTextClass)) -#define B_IS_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_TEXT)) -#define B_IS_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_TEXT)) - -typedef struct _BText BText; -typedef struct _BTextClass BTextClass; - -struct _BText -{ - BModule parent_instance; - - gchar *string; - gchar *cursor_pos; - - gint cursor_x; - gint cursor_y; - - guchar bg_color; - guchar fg_color; - - gint player_device_id; - - gint timeout; - - AnimType anim; - gint anim_steps; - - gint cursor_size; - - GRand *rand; -}; - -struct _BTextClass -{ - BModuleClass parent_class; -}; - - -static GType b_text_get_type (GTypeModule *module); - -static void b_text_class_init (BTextClass *klass); -static void b_text_init (BText *text); - -static void b_text_finalize (GObject *object); -static void b_text_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static gboolean b_text_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_text_prepare (BModule *module, - GError **error); -static void b_text_relax (BModule *module); -static void b_text_start (BModule *module); -static void b_text_stop (BModule *module); -static void b_text_event (BModule *module, - BModuleEvent *event); -static gint b_text_tick (BModule *module); -static void b_text_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static BModuleClass * parent_class = NULL; -static GType b_type_text = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_text_get_type (module); - return TRUE; -} - -static GType -b_text_get_type (GTypeModule *module) -{ - if (! b_type_text) - { - static const GTypeInfo text_info = - { - sizeof (BTextClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_text_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BText), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_text_init, - }; - - b_type_text = g_type_module_register_type (module, - B_TYPE_MODULE, "BText", - &text_info, 0); - } - - return b_type_text; -} - -static void -b_text_class_init (BTextClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - GParamSpec *param_spec; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = b_text_finalize; - object_class->set_property = b_text_set_property; - - param_spec = g_param_spec_string ("string", NULL, - "The string to draw.", - "blinken\nbis die\nkotze\nkommt", - G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); - g_object_class_install_property (object_class, PROP_STRING, param_spec); - - module_class->max_players = 1; - - module_class->query = b_text_query; - module_class->prepare = b_text_prepare; - module_class->relax = b_text_relax; - module_class->start = b_text_start; - module_class->stop = b_text_stop; - module_class->event = b_text_event; - module_class->tick = b_text_tick; - module_class->describe = b_text_describe; -} - -static void -b_text_init (BText *text) -{ - text->string = NULL; - - text->anim_steps = 0; - text->player_device_id = -1; - - text->rand = g_rand_new (); -} - -static void -b_text_finalize (GObject *object) -{ - BText *text; - - text = B_TEXT (object); - - if (text->string) - { - g_free (text->string); - text->string = NULL; - } - - if (text->rand) - { - g_rand_free (text->rand); - text->rand = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -b_text_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - BText *text; - - text = B_TEXT (object); - - switch (property_id) - { - case PROP_STRING: - g_free (text->string); - text->string = g_value_dup_string (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static gboolean -b_text_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width >= 5 * CHAR_ADVANCE && - height >= 2 * LINE_ADVANCE && - channels == 1); -} - -static gboolean -b_text_prepare (BModule *module, - GError **error) -{ - BText *text; - - text = B_TEXT (module); - - text->bg_color = 0; - text->fg_color = module->maxval; - - text->cursor_size = CHAR_WIDTH; - - return TRUE; -} - -static void -b_text_relax (BModule *module) -{ -} - -static void -b_text_start (BModule *module) -{ - BText *text = B_TEXT (module); - - text->cursor_pos = text->string; - - text->cursor_x = 0; - text->cursor_y = 0; - - text->anim = CURSOR_BLINK; - text->anim_steps = BLINK_STEPS; - - text->timeout = TEXT_TIMEOUT; - - b_module_fill (module, text->bg_color); - - b_module_ticker_start (module, text->timeout); -} - -static void -b_text_stop (BModule *module) -{ - BText *text; - - text = B_TEXT (module); - - text->player_device_id = -1; -} - -static void -b_text_event (BModule *module, - BModuleEvent *event) -{ - BText *text; - - text = B_TEXT (module); - - switch (event->type) - { - case B_EVENT_TYPE_KEY: - if (text->anim_steps) - return; - - switch (event->key) - { - default: - break; - } - break; - - case B_EVENT_TYPE_PLAYER_ENTERED: - if (text->player_device_id == -1) - { - text->player_device_id = event->device_id; - - module->num_players++; - } - break; - - case B_EVENT_TYPE_PLAYER_LEFT: - if (text->player_device_id == event->device_id) - { - text->player_device_id = -1; - - module->num_players--; - } - break; - - default: - break; - } -} - -static gint -b_text_tick (BModule *module) -{ - BText *text; - - text = B_TEXT (module); - - if (text->anim_steps > 0) - { - text->anim_steps--; - - switch (text->anim) - { - case SCROLL_UP: - memmove (module->buffer, - module->buffer + module->width * module->channels, - module->width * (module->height - 1) * module->channels); - b_module_draw_line (module, - 0, module->height - 1, - module->width - 1, module->height - 1, - text->bg_color); - text->timeout = SCROLL_TIMEOUT; - - if (text->anim_steps == 0) - { - text->anim = CURSOR_BLINK; - text->anim_steps = BLINK_STEPS; - } - break; - - case CURSOR_BLINK: - case FINISH: - b_module_draw_line (module, - text->cursor_x, - text->cursor_y + CHAR_HEIGHT - 1, - text->cursor_x + text->cursor_size - 1, - text->cursor_y + CHAR_HEIGHT - 1, - text->anim_steps % 2 ? - text->fg_color : text->bg_color); - - if (text->anim == FINISH && text->anim_steps == 0) - { - b_module_request_stop (module); - return 0; - } - - text->timeout = BLINK_TIMEOUT; - break; - } - } - else - { - text->timeout = TEXT_TIMEOUT; - - if (text->cursor_pos && *text->cursor_pos) - { - gint advance = CHAR_WIDTH; - - b_module_draw_line (module, - text->cursor_x, - text->cursor_y + CHAR_HEIGHT - 1, - text->cursor_x + text->cursor_size - 1, - text->cursor_y + CHAR_HEIGHT - 1, - text->bg_color); - - if (! g_ascii_isspace (*text->cursor_pos)) - { - const BChar *bchar = &unknown_char; - gint i, x, y; - - for (i = 0; i < G_N_ELEMENTS (chars); i++) - { - if (chars[i].character == g_ascii_toupper (*text->cursor_pos)) - bchar = &chars[i]; - } - - for (x = 0; x < CHAR_WIDTH; x++) - for (y = 0; y < CHAR_HEIGHT; y++) - { - if (bchar->matrix[y * CHAR_WIDTH + x]) - b_module_draw_point (module, - text->cursor_x + x, - text->cursor_y + y, - text->fg_color); - else - b_module_draw_point (module, - text->cursor_x + x, - text->cursor_y + y, - text->bg_color); - } - - advance = bchar->width + 1; - } - - text->cursor_x += advance; - - if (*text->cursor_pos == '\n' || - (text->cursor_x + CHAR_WIDTH > module->width)) - { - text->cursor_pos++; - - /* no whitespace at the start of a line */ - if (g_ascii_isspace (*text->cursor_pos) && - (*text->cursor_pos != '\n' || - (text->cursor_x + CHAR_WIDTH > module->width))) - text->cursor_pos++; - - text->cursor_x = 0; - text->cursor_y += LINE_ADVANCE; - - text->anim = CURSOR_BLINK; - text->anim_steps = BLINK_STEPS; - } - else - { - text->cursor_pos++; - - if (g_rand_double (text->rand) > 0.5) - b_module_draw_line (module, - text->cursor_x, - text->cursor_y + CHAR_HEIGHT - 1, - text->cursor_x + text->cursor_size - 1, - text->cursor_y + CHAR_HEIGHT - 1, - text->fg_color); - } - - if (text->cursor_y + CHAR_HEIGHT > module->height) - { - text->cursor_y -= LINE_ADVANCE; - - text->anim = SCROLL_UP; - text->anim_steps = LINE_ADVANCE; - } - } - else - { - text->anim = FINISH; - text->anim_steps = BLINK_STEPS * 4; - text->timeout = BLINK_TIMEOUT; - } - } - - b_module_paint (module); - - return text->timeout; -} - -static void -b_text_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "BText"; - *description = "Text display"; - *author = "Michael Natterer"; -} diff --git a/blib-1.1.7/modules/bxxo.c b/blib-1.1.7/modules/bxxo.c deleted file mode 100644 index 44d3dbd..0000000 --- a/blib-1.1.7/modules/bxxo.c +++ /dev/null @@ -1,957 +0,0 @@ -/* Bxxo: tic-tac-toe module for Blinkenlights - * - * Copyright (c) 2003 1stein <1stein@schuermans.info> - * - * based on Test implementation for a BModule by the Blinkenlights Crew - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include - -#define BxxoVerMaj 1 -#define BxxoVerMin 0 -#define BxxoVerRev 0 - -//minimum size and color count of display -#define BxxoSizeXMin 12 -#define BxxoSizeYMin 8 -#define BxxoMaxColorMin 1 -//time player has to chose next field (in seconds) -#define BxxoChoseTime 9 -//time to blink winning line (in seconds) -#define BxxoWinTime 3 -//the colors -#define BxxoColorEmpty( MaxColor ) (0) -#define BxxoColorField( MaxColor ) ((MaxColor) * 3 / 5) -#define BxxoColorMark( MaxColor ) (MaxColor) -#define BxxoColorNumber( MaxColor ) (MaxColor) - -#ifdef XXO_DEBUG -#define dbg_print g_print -#else -#define dbg_print(fmt, ...) -#endif - -#define B_TYPE_XXO_MODULE (b_type_xxo_module) -#define B_XXO_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_XXO_MODULE, BxxoModule)) -#define B_XXO_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_XXO_MODULE, BxxoModuleClass)) -#define B_IS_XXO_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_XXO_MODULE)) - -typedef struct _BxxoModule BxxoModule; -typedef struct _BxxoModuleClass BxxoModuleClass; - -struct _BxxoModule -{ - BModule parent_instance; - - int MaxColor; //maximum color value - int SizeX, SizeY; //size of game-field - int MarkX, MarkY; //size of a mark - int PlayerAvail[2]; //boolean flags if players are available - int PlayerId[2]; //id of player - int Field[3][3]; //game field: Field[Y][X], -1 = free, 0 = first player, 1 = second player - int Player; //number of player who has to chose a field next - int ChoseTime; //time to chose (seconds) - int Ticks; //tick counter (0.1 seconds) - int GameOver; //boolean value set if game over - int WinX, WinY, WinDX, WinDY; //variables indicating winning line - int WinTime; //time to let winning line blink (seconds) -}; - -struct _BxxoModuleClass -{ - BModuleClass parent_class; -}; - -static GType b_xxo_module_get_type (GTypeModule *module); -static void b_xxo_module_class_init (BxxoModuleClass *klass); -static void b_xxo_module_init (BxxoModule *test_module); -static gboolean b_xxo_module_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_xxo_module_prepare (BModule *module, - GError **error); -static void b_xxo_module_relax (BModule *module); -static void b_xxo_module_start (BModule *module); -static void b_xxo_module_event (BModule *module, - BModuleEvent *event); -static gint b_xxo_module_tick (BModule *module); -static void b_xxo_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - -static GType b_type_xxo_module = 0; - -//output a player mark -static void BxxoOutMark (BxxoModule * pBxxoModule, - int StartX, int StartY, - int SizeX, int SizeY, - int Player) -{ - int X, Y, Con, Coff; - Con = BxxoColorMark (pBxxoModule->MaxColor); - Coff = BxxoColorEmpty (pBxxoModule->MaxColor); - for( Y = 0; Y < SizeY; Y++ ) - for( X = 0; X < SizeX; X++ ) - if( Player == 0 || (Player == 1 && ((X + Y) & 1) == 0) ) - b_module_draw_point ((BModule*)pBxxoModule, StartX + X, StartY + Y, - Con); - else - b_module_draw_point ((BModule*)pBxxoModule, StartX + X, StartY + Y, - Coff); -} - - -//output a number (0..9) (3x5 pixels) -const char BxxoNumbers[11][5][3] = -{ - { - {1,1,1}, - {1,0,1}, - {1,0,1}, - {1,0,1}, - {1,1,1} - }, - { - {0,0,1}, - {0,0,1}, - {0,0,1}, - {0,0,1}, - {0,0,1} - }, - { - {1,1,1}, - {0,0,1}, - {1,1,1}, - {1,0,0}, - {1,1,1} - }, - { - {1,1,1}, - {0,0,1}, - {1,1,1}, - {0,0,1}, - {1,1,1} - }, - { - {1,0,1}, - {1,0,1}, - {1,1,1}, - {0,0,1}, - {0,0,1} - }, - { - {1,1,1}, - {1,0,0}, - {1,1,1}, - {0,0,1}, - {1,1,1} - }, - { - {1,1,1}, - {1,0,0}, - {1,1,1}, - {1,0,1}, - {1,1,1} - }, - { - {1,1,1}, - {0,0,1}, - {0,0,1}, - {0,0,1}, - {0,0,1} - }, - { - {1,1,1}, - {1,0,1}, - {1,1,1}, - {1,0,1}, - {1,1,1} - }, - { - {1,1,1}, - {1,0,1}, - {1,1,1}, - {0,0,1}, - {1,1,1} - }, - { - {0,0,0}, - {0,0,0}, - {0,0,0}, - {0,0,0}, - {0,0,0} - } -}; -static void BxxoOutNumber (BxxoModule * pBxxoModule, - int X, int Y, - int N) -{ - int Con, Coff, XX, YY; - Con = BxxoColorNumber (pBxxoModule->MaxColor); - Coff = BxxoColorEmpty (pBxxoModule->MaxColor); - if (N > 9) N %= 10; - if (N < 0) N = 10; - for (YY = 0; YY < 5; YY++) - for (XX = 0; XX < 3; XX++) - b_module_draw_point ((BModule*)pBxxoModule, X + XX, Y + YY, - BxxoNumbers[N][YY][XX] ? Con : Coff ); -} - -//check if current player has won -static int BxxoWinCheck( BxxoModule * pBxxoModule ) -{ - int X, Y, Cnt; - //horizontal - for( Y = 0; Y < 3; Y++ ) - { - for( X = 0; X < 3; X++ ) - if( pBxxoModule->Field[Y][X] != pBxxoModule->Player ) - break; - if( X >= 3 ) - { - pBxxoModule->WinX = 0; - pBxxoModule->WinY = Y; - pBxxoModule->WinDX = 1; - pBxxoModule->WinDY = 0; - return 1; - } - } - //vertical - for( X = 0; X < 3; X++ ) - { - for( Y = 0; Y < 3; Y++ ) - if( pBxxoModule->Field[Y][X] != pBxxoModule->Player ) - break; - if( Y >= 3 ) - { - pBxxoModule->WinX = X; - pBxxoModule->WinY = 0; - pBxxoModule->WinDX = 0; - pBxxoModule->WinDY = 1; - return 1; - } - } - //diagonal - for( Y = 0, X = 0; Y < 3; Y++, X++ ) - if( pBxxoModule->Field[Y][X] != pBxxoModule->Player ) - break; - if( Y >= 3 ) - { - pBxxoModule->WinX = 0; - pBxxoModule->WinY = 0; - pBxxoModule->WinDX = 1; - pBxxoModule->WinDY = 1; - return 1; - } - //reverse diagonal - for( Y = 0, X = 2; Y < 3; Y++, X-- ) - if( pBxxoModule->Field[Y][X] != pBxxoModule->Player ) - break; - if( Y >= 3 ) - { - pBxxoModule->WinX = 2; - pBxxoModule->WinY = 0; - pBxxoModule->WinDX = -1; - pBxxoModule->WinDY = 1; - return 1; - } - //no more free fields - Cnt = 0; - for( Y = 0; Y < 3; Y++ ) - for( X = 0; X < 3; X++ ) - if( pBxxoModule->Field[Y][X] == -1 ) - Cnt++; - if( Cnt == 0 ) - { - pBxxoModule->WinX = -1; - pBxxoModule->WinY = -1; - pBxxoModule->WinDX = 0; - pBxxoModule->WinDY = 0; - return 1; - } - return 0; -} - -//chose a field for current player -static void BxxoModuleChose( BxxoModule * pBxxoModule, int * pX, int * pY ) -{ - int X, Y, Cnt, I; - - //try to win - - //horizontal - for( Y = 0; Y < 3; Y++ ) - { - if( pBxxoModule->Field[Y][0] == pBxxoModule->Player - && pBxxoModule->Field[Y][1] == pBxxoModule->Player - && pBxxoModule->Field[Y][2] == -1 ) - { - *pX = 2; - *pY = Y; - return; - } - if( pBxxoModule->Field[Y][0] == pBxxoModule->Player - && pBxxoModule->Field[Y][1] == -1 - && pBxxoModule->Field[Y][2] == pBxxoModule->Player ) - { - *pX = 1; - *pY = Y; - return; - } - if( pBxxoModule->Field[Y][0] == -1 - && pBxxoModule->Field[Y][1] == pBxxoModule->Player - && pBxxoModule->Field[Y][2] == pBxxoModule->Player ) - { - *pX = 0; - *pY = Y; - return; - } - } - //vertical - for( X = 0; X < 3; X++ ) - { - if( pBxxoModule->Field[0][X] == pBxxoModule->Player - && pBxxoModule->Field[1][X] == pBxxoModule->Player - && pBxxoModule->Field[2][X] == -1 ) - { - *pX = X; - *pY = 2; - return; - } - if( pBxxoModule->Field[0][X] == pBxxoModule->Player - && pBxxoModule->Field[1][X] == -1 - && pBxxoModule->Field[2][X] == pBxxoModule->Player ) - { - *pX = X; - *pY = 1; - return; - } - if( pBxxoModule->Field[0][X] == -1 - && pBxxoModule->Field[1][X] == pBxxoModule->Player - && pBxxoModule->Field[2][X] == pBxxoModule->Player ) - { - *pX = X; - *pY = 0; - return; - } - } - //diagonal - if( pBxxoModule->Field[0][0] == pBxxoModule->Player - && pBxxoModule->Field[1][1] == pBxxoModule->Player - && pBxxoModule->Field[2][2] == -1 ) - { - *pX = 2; - *pY = 2; - return; - } - if( pBxxoModule->Field[0][0] == pBxxoModule->Player - && pBxxoModule->Field[1][1] == -1 - && pBxxoModule->Field[2][2] == pBxxoModule->Player ) - { - *pX = 1; - *pY = 1; - return; - } - if( pBxxoModule->Field[0][0] == -1 - && pBxxoModule->Field[1][1] == pBxxoModule->Player - && pBxxoModule->Field[2][2] == pBxxoModule->Player ) - { - *pX = 0; - *pY = 0; - return; - } - //reverse diagonal - if( pBxxoModule->Field[0][2] == pBxxoModule->Player - && pBxxoModule->Field[1][1] == pBxxoModule->Player - && pBxxoModule->Field[2][0] == -1 ) - { - *pX = 0; - *pY = 2; - return; - } - if( pBxxoModule->Field[0][2] == pBxxoModule->Player - && pBxxoModule->Field[1][1] == -1 - && pBxxoModule->Field[2][0] == pBxxoModule->Player ) - { - *pX = 1; - *pY = 1; - return; - } - if( pBxxoModule->Field[0][2] == -1 - && pBxxoModule->Field[1][1] == pBxxoModule->Player - && pBxxoModule->Field[2][0] == pBxxoModule->Player ) - { - *pX = 2; - *pY = 0; - return; - } - - //no direct chance to win - - //try to block other player - - //horizontal - for( Y = 0; Y < 3; Y++ ) - { - if( pBxxoModule->Field[Y][0] == 1 - pBxxoModule->Player - && pBxxoModule->Field[Y][1] == 1 - pBxxoModule->Player - && pBxxoModule->Field[Y][2] == -1 ) - { - *pX = 2; - *pY = Y; - return; - } - if( pBxxoModule->Field[Y][0] == 1 - pBxxoModule->Player - && pBxxoModule->Field[Y][1] == -1 - && pBxxoModule->Field[Y][2] == 1 - pBxxoModule->Player ) - { - *pX = 1; - *pY = Y; - return; - } - if( pBxxoModule->Field[Y][0] == -1 - && pBxxoModule->Field[Y][1] == 1 - pBxxoModule->Player - && pBxxoModule->Field[Y][2] == 1 - pBxxoModule->Player ) - { - *pX = 0; - *pY = Y; - return; - } - } - //vertical - for( X = 0; X < 3; X++ ) - { - if( pBxxoModule->Field[0][X] == 1 - pBxxoModule->Player - && pBxxoModule->Field[1][X] == 1 - pBxxoModule->Player - && pBxxoModule->Field[2][X] == -1 ) - { - *pX = X; - *pY = 2; - return; - } - if( pBxxoModule->Field[0][X] == 1 - pBxxoModule->Player - && pBxxoModule->Field[1][X] == -1 - && pBxxoModule->Field[2][X] == 1 - pBxxoModule->Player ) - { - *pX = X; - *pY = 1; - return; - } - if( pBxxoModule->Field[0][X] == -1 - && pBxxoModule->Field[1][X] == 1 - pBxxoModule->Player - && pBxxoModule->Field[2][X] == 1 - pBxxoModule->Player ) - { - *pX = X; - *pY = 0; - return; - } - } - //diagonal - if( pBxxoModule->Field[0][0] == 1 - pBxxoModule->Player - && pBxxoModule->Field[1][1] == 1 - pBxxoModule->Player - && pBxxoModule->Field[2][2] == -1 ) - { - *pX = 2; - *pY = 2; - return; - } - if( pBxxoModule->Field[0][0] == 1 - pBxxoModule->Player - && pBxxoModule->Field[1][1] == -1 - && pBxxoModule->Field[2][2] == 1 - pBxxoModule->Player ) - { - *pX = 1; - *pY = 1; - return; - } - if( pBxxoModule->Field[0][0] == -1 - && pBxxoModule->Field[1][1] == 1 - pBxxoModule->Player - && pBxxoModule->Field[2][2] == 1 - pBxxoModule->Player ) - { - *pX = 0; - *pY = 0; - return; - } - //reverse diagonal - if( pBxxoModule->Field[0][2] == 1 - pBxxoModule->Player - && pBxxoModule->Field[1][1] == 1 - pBxxoModule->Player - && pBxxoModule->Field[2][0] == -1 ) - { - *pX = 0; - *pY = 2; - return; - } - if( pBxxoModule->Field[0][2] == 1 - pBxxoModule->Player - && pBxxoModule->Field[1][1] == -1 - && pBxxoModule->Field[2][0] == 1 - pBxxoModule->Player ) - { - *pX = 1; - *pY = 1; - return; - } - if( pBxxoModule->Field[0][2] == -1 - && pBxxoModule->Field[1][1] == 1 - pBxxoModule->Player - && pBxxoModule->Field[2][0] == 1 - pBxxoModule->Player ) - { - *pX = 2; - *pY = 0; - return; - } - - //no need to block other player - - //count free fields - Cnt = 0; - for( Y = 0; Y < 3; Y++ ) - for( X = 0; X < 3; X++ ) - if( pBxxoModule->Field[Y][X] == -1 ) - Cnt++; - //there is a free field - if( Cnt > 0 ) - { - //select a random one - I = rand( ) % Cnt; - //return the I-th free field - for( Y = 0; Y < 3; Y++ ) - for( X = 0; X < 3; X++ ) - if( pBxxoModule->Field[Y][X] == -1 ) - { - if( I == 0 ) - { - *pX = X; - *pY = Y; - return; - } - I--; - } - } - - //reaching this line should not occur - - //choose the middle field to be on the safe side and return indices within the field - *pX = 1; - *pY = 1; -} - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule * module) -{ - b_xxo_module_get_type (module); - - return TRUE; -} - -GType -b_xxo_module_get_type (GTypeModule * module) -{ - if (!b_type_xxo_module) - { - static const GTypeInfo xxo_module_info = { - sizeof (BxxoModuleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_xxo_module_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BxxoModule), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_xxo_module_init, - }; - - /* !!!!!!!!! The name given in the next function MUST be unique! */ - - b_type_xxo_module = g_type_module_register_type (module, - B_TYPE_MODULE, - "Bxxo", - &xxo_module_info, - 0); - } - - return b_type_xxo_module; -} - -static void -b_xxo_module_class_init (BxxoModuleClass *klass) -{ - BModuleClass *module_class; - - module_class = B_MODULE_CLASS (klass); - - module_class->query = b_xxo_module_query; - module_class->prepare = b_xxo_module_prepare; - module_class->relax = b_xxo_module_relax; - module_class->start = b_xxo_module_start; - module_class->event = b_xxo_module_event; - module_class->tick = b_xxo_module_tick; - module_class->describe = b_xxo_module_describe; -} - -static void -b_xxo_module_init (BxxoModule *pBxxoModule) -{ -} - -static gboolean -b_xxo_module_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width >= BxxoSizeXMin && height >= BxxoSizeYMin - && channels == 1 && maxval >= BxxoMaxColorMin); -} - -static gboolean -b_xxo_module_prepare (BModule *module, - GError **error) -{ - BxxoModule *pBxxoModule = B_XXO_MODULE (module); - - //initialize the module values that depend on the output device - pBxxoModule->MaxColor = module->maxval; //maximum color value - pBxxoModule->SizeX = module->width; //size of game field - pBxxoModule->SizeY = module->height; - pBxxoModule->MarkX = (pBxxoModule->SizeX - 6) / 3; //size of a mark - pBxxoModule->MarkY = (pBxxoModule->SizeY - 2) / 3; - - return TRUE; -} - -static void -b_xxo_module_relax (BModule *module) -{ -} - -static void -b_xxo_module_start (BModule *module) -{ - BxxoModule *pBxxoModule = B_XXO_MODULE (module); - int X, Y; - - //no player available yet - pBxxoModule->PlayerAvail[0] = 0; - pBxxoModule->PlayerAvail[1] = 0; - //game field is empty - for( Y = 0; Y < 3; Y++ ) - for( X = 0; X < 3; X++ ) - pBxxoModule->Field[Y][X] = -1; - //player 1 starts - pBxxoModule->Player = 0; - pBxxoModule->ChoseTime = BxxoChoseTime; - //no ticks in current second yet - pBxxoModule->Ticks = 0; - //game not over - pBxxoModule->GameOver = 0; - - //initialize screen - b_module_fill ((BModule *) pBxxoModule, //empty the screen - BxxoColorEmpty (pBxxoModule->MaxColor)); - b_module_draw_line ((BModule *) pBxxoModule, //draw the field - pBxxoModule->MarkX, 0, - pBxxoModule->MarkX, pBxxoModule->SizeY - 1, - BxxoColorField (pBxxoModule->MaxColor)); - b_module_draw_line ((BModule *) pBxxoModule, - pBxxoModule->MarkX * 2 + 1, 0, - pBxxoModule->MarkX * 2 + 1, pBxxoModule->SizeY - 1, - BxxoColorField (pBxxoModule->MaxColor)); - b_module_draw_line ((BModule *) pBxxoModule, - 0, pBxxoModule->MarkY, - pBxxoModule->SizeX - 5, pBxxoModule->MarkY, - BxxoColorField (pBxxoModule->MaxColor)); - b_module_draw_line ((BModule *) pBxxoModule, - 0, pBxxoModule->MarkY * 2 + 1, - pBxxoModule->SizeX - 5, pBxxoModule->MarkY * 2 + 1, - BxxoColorField (pBxxoModule->MaxColor)); - BxxoOutNumber( pBxxoModule, pBxxoModule->SizeX - 3, pBxxoModule->SizeY - 5, - pBxxoModule->ChoseTime); - b_module_paint ((BModule *) pBxxoModule); //put image onto screen - - //start the tick machinery - b_module_ticker_start (module, 100); -} - -static void -b_xxo_module_event (BModule *module, - BModuleEvent *event) -{ - int I, X, Y; - - BxxoModule *pBxxoModule = B_XXO_MODULE (module); - - //ignore events if game over - if (pBxxoModule->GameOver) - return; - - //player entered - if (event->type == B_EVENT_TYPE_PLAYER_ENTERED) - { - //search for player not available - for (I = 0; I < 2; I++) - if (!pBxxoModule->PlayerAvail[I]) - break; - //found player - if( I < 2 ) - { - //player joins - pBxxoModule->PlayerAvail[I] = 1; - pBxxoModule->PlayerId[I] = event->device_id; - dbg_print ("Bxxo: player %d (dev_id %d) joined\n", I, event->device_id); - //show player indicator - if (I == pBxxoModule->Player) - { - BxxoOutMark (pBxxoModule, pBxxoModule->SizeX - 3, 0, 3, pBxxoModule->MarkY, I); - b_module_paint ((BModule *) pBxxoModule); //put image onto screen - } - } - } - - //player left - else if (event->type == B_EVENT_TYPE_PLAYER_LEFT) - { - //search for player with device-id - for (I = 0; I < 2; I++) - if (pBxxoModule->PlayerAvail[I] && pBxxoModule->PlayerId[I] == event->device_id) - break; - //found player - if (I < 2) - { - //player leaves - pBxxoModule->PlayerAvail[I] = 0; - dbg_print ("Bxxo: player %d (dev_id %d) left\n", I, event->device_id); - //remove player indicator - if (I == pBxxoModule->Player) - { - BxxoOutMark (pBxxoModule, pBxxoModule->SizeX - 3, 0, 3, pBxxoModule->MarkY, -1); - b_module_paint ((BModule *) pBxxoModule); //put image onto screen - } - } - } - - //key-event - else if (event->type == B_EVENT_TYPE_KEY) - { - //search for player with device-id - for (I = 0; I < 2; I++) - if (pBxxoModule->PlayerAvail[I] && pBxxoModule->PlayerId[I] == event->device_id) - break; - //found player - if (I < 2) - { - //get position from key - switch (event->key) - { - case B_KEY_1: X = 0; Y = 0; break; - case B_KEY_2: X = 1; Y = 0; break; - case B_KEY_3: X = 2; Y = 0; break; - case B_KEY_4: X = 0; Y = 1; break; - case B_KEY_5: X = 1; Y = 1; break; - case B_KEY_6: X = 2; Y = 1; break; - case B_KEY_7: X = 0; Y = 2; break; - case B_KEY_8: X = 1; Y = 2; break; - case B_KEY_9: X = 2; Y = 2; break; - default: X = -1; Y = -1; - } - //a valid key was pressed by the active player - if (X >= 0 && Y >= 0 && I == pBxxoModule->Player) - { - //check if position is still free - if (pBxxoModule->Field[Y][X] < 0) - { - dbg_print ("Bxxo: player %d (dev_id %d) chose field (%d,%d)\n", I, event->device_id, X, Y ); - //place mark - pBxxoModule->Field[Y][X] = I; - BxxoOutMark (pBxxoModule, - (pBxxoModule->MarkX + 1) * X, (pBxxoModule->MarkY + 1) * Y, - pBxxoModule->MarkX, pBxxoModule->MarkY, I); - //player has won - if( BxxoWinCheck( pBxxoModule ) ) - { - //game is over - pBxxoModule->GameOver = 1; - //start win time - pBxxoModule->ChoseTime = -1; - pBxxoModule->WinTime = BxxoWinTime; - //no ticks in current second yet - pBxxoModule->Ticks = 0; - } - //player has not won - else - { - //switch to other player - pBxxoModule->Player = 1 - pBxxoModule->Player; - pBxxoModule->ChoseTime = BxxoChoseTime; - //no ticks in current second yet - pBxxoModule->Ticks = 0; - } - - //update player indicator - if (pBxxoModule->PlayerAvail[pBxxoModule->Player]) - BxxoOutMark (pBxxoModule, pBxxoModule->SizeX - 3, 0, 3, pBxxoModule->MarkY, - pBxxoModule->Player); - else - BxxoOutMark (pBxxoModule, pBxxoModule->SizeX - 3, 0, 3, pBxxoModule->MarkY, - -1); - //show choose time - BxxoOutNumber( pBxxoModule, pBxxoModule->SizeX - 3, pBxxoModule->SizeY - 5, - pBxxoModule->ChoseTime); - //put image onto screen - b_module_paint ((BModule *) pBxxoModule); - } - } - } - } -} - -static gint -b_xxo_module_tick (BModule *module) -{ - BxxoModule *pBxxoModule = B_XXO_MODULE (module); - int X, Y, I; - - //game over - blink with winning line - if (pBxxoModule->GameOver && pBxxoModule->WinX >= 0 && pBxxoModule->WinY >= 0) - { - //off - if (pBxxoModule->Ticks == 0) - { - for( I = 0, X = pBxxoModule->WinX, Y = pBxxoModule->WinY; I < 3; I++, X += pBxxoModule->WinDX, Y += pBxxoModule->WinDY ) - BxxoOutMark (pBxxoModule, - (pBxxoModule->MarkX + 1) * X, (pBxxoModule->MarkY + 1) * Y, - pBxxoModule->MarkX, pBxxoModule->MarkY, - -1); - b_module_paint ((BModule *) pBxxoModule); - } - //on - if (pBxxoModule->Ticks == 5) - { - for( I = 0, X = pBxxoModule->WinX, Y = pBxxoModule->WinY; I < 3; I++, X += pBxxoModule->WinDX, Y += pBxxoModule->WinDY ) - BxxoOutMark (pBxxoModule, - (pBxxoModule->MarkX + 1) * X, (pBxxoModule->MarkY + 1) * Y, - pBxxoModule->MarkX, pBxxoModule->MarkY, - pBxxoModule->Player); - b_module_paint ((BModule *) pBxxoModule); - } - } //if (pBxxModule->GameOver ... - - //count ticks - pBxxoModule->Ticks++; - - //one second elapsed - if (pBxxoModule->Ticks >= 10) - { - pBxxoModule->Ticks = 0; - - //game over - if (pBxxoModule->GameOver) - { - //decrease win time - pBxxoModule->WinTime--; - - //win time reached zero - if (pBxxoModule->WinTime <= 0) - { - dbg_print ("Bxxo: requesting stop\n"); - //clear screen - b_module_fill (module, 0); - b_module_paint (module); - //request end of game - b_module_request_stop (module); - //we do not want to be called again - return 0; - } - } //game over - - //game not over - else - { - //decrease choose time - pBxxoModule->ChoseTime--; - - //choose time reached zero - if (pBxxoModule->ChoseTime <= 0) - { - //find position to place mark - BxxoModuleChose( pBxxoModule, &X, &Y ); - dbg_print ("Bxxo: computer chose field (%d,%d) for player %d\n", X, Y, pBxxoModule->Player ); - //place mark - pBxxoModule->Field[Y][X] = pBxxoModule->Player; - BxxoOutMark (pBxxoModule, - (pBxxoModule->MarkX + 1) * X, (pBxxoModule->MarkY + 1) * Y, - pBxxoModule->MarkX, pBxxoModule->MarkY, pBxxoModule->Player); - //player has won - if( BxxoWinCheck( pBxxoModule ) ) - { - //game is over - pBxxoModule->GameOver = 1; - //start win time - pBxxoModule->ChoseTime = -1; - pBxxoModule->WinTime = BxxoWinTime; - //no ticks in current second yet - pBxxoModule->Ticks = 0; - } - //player has not won - else - { - //switch to other player - pBxxoModule->Player = 1 - pBxxoModule->Player; - pBxxoModule->ChoseTime = BxxoChoseTime; - //no ticks in current second yet - pBxxoModule->Ticks = 0; - } - - //update player indicator - if (pBxxoModule->PlayerAvail[pBxxoModule->Player]) - BxxoOutMark (pBxxoModule, pBxxoModule->SizeX - 3, 0, 3, pBxxoModule->MarkY, - pBxxoModule->Player); - else - BxxoOutMark (pBxxoModule, pBxxoModule->SizeX - 3, 0, 3, pBxxoModule->MarkY, - -1); - } - - //show choose time - BxxoOutNumber( pBxxoModule, pBxxoModule->SizeX - 3, pBxxoModule->SizeY - 5, - pBxxoModule->ChoseTime); - //put image onto screen - b_module_paint ((BModule *) pBxxoModule); - } //game not over - } //one second elapsed - - //we want to be called again in 100 milliseconds - return 100; -} - -static void -b_xxo_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "Bxxo"; - *description = "tic-tac-toe game"; - *author = "1stein"; -} - diff --git a/blib-1.1.7/modules/digits.h b/blib-1.1.7/modules/digits.h deleted file mode 100644 index 6fa35e3..0000000 --- a/blib-1.1.7/modules/digits.h +++ /dev/null @@ -1,326 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * - * 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. - */ - -#ifndef __DIGITS_H__ -#define __DIGITS_H__ - - -typedef struct _BFont { - gint width, height, advance, num_digits; - - guchar *digits_str; - guchar *data[]; -} BFont; - - -static const BFont b_digits_3x5 = { - width: 3, - height: 5, - advance: 4, - num_digits: 12, - digits_str: "0123456789: ", - data: - { /* 0 */ - "111" - "101" - "101" - "101" - "111", - /* 1 */ - "010" - "010" - "010" - "010" - "010", - /* 2 */ - "111" - "001" - "111" - "100" - "111", - /* 3 */ - "111" - "001" - "111" - "001" - "111", - /* 4 */ - "101" - "101" - "111" - "001" - "001", - /* 5 */ - "111" - "100" - "111" - "001" - "111", - /* 6 */ - "111" - "100" - "111" - "101" - "111", - /* 7 */ - "111" - "001" - "010" - "100" - "100", - /* 8 */ - "111" - "101" - "111" - "101" - "111", - /* 9 */ - "111" - "101" - "111" - "001" - "111", - /* : */ - "000" - "010" - "000" - "010" - "000", - /* */ - "000" - "000" - "000" - "000" - "000" - } -}; - -static const BFont b_digits_5x7 = { - width: 5, - height: 7, - advance: 6, - num_digits: 12, - digits_str: "0123456789: ", - data: - { /* 0 */ - "01110" - "10001" - "10011" - "10101" - "11001" - "10001" - "01110", - /* 1 */ - "00100" - "01100" - "00100" - "00100" - "00100" - "00100" - "01110", - /* 2 */ - "01110" - "10001" - "00001" - "00010" - "00100" - "01000" - "11111", - /* 3 */ - "11111" - "00010" - "00100" - "00010" - "00001" - "10001" - "01110", - /* 4 */ - "00010" - "00110" - "01010" - "10010" - "11111" - "00010" - "00010", - /* 5 */ - "11111" - "10000" - "11110" - "00001" - "00001" - "10001" - "01110", - /* 6 */ - "00110" - "01000" - "10000" - "11110" - "10001" - "10001" - "01110", - /* 7 */ - "11111" - "10001" - "00001" - "00010" - "00100" - "00100" - "00100", - /* 8 */ - "01110" - "10001" - "10001" - "01110" - "10001" - "10001" - "01110", - /* 9 */ - "01110" - "10001" - "10001" - "01111" - "00001" - "00010" - "01100", - /* : */ - "00000" - "00000" - "00100" - "00000" - "00100" - "00000" - "00000", - /* */ - "00000" - "00000" - "00000" - "00000" - "00000" - "00000" - "00000" - } -}; - -static const BFont b_digits_8x7 = { - width: 8, - height: 7, - advance: 9, - num_digits: 12, - digits_str: "0123456789: ", - data: - { /* 0 */ - "01111110" - "11000111" - "11001011" - "11001011" - "11010011" - "11100011" - "01111110", - /* 1 */ - "00011100" - "01111100" - "00011100" - "00011100" - "00011100" - "00011100" - "00011100", - /* 2 */ - "00111100" - "11111110" - "00000110" - "00001110" - "00011100" - "01111000" - "11111111", - /* 3 */ - "01111110" - "11111111" - "00000111" - "00111111" - "00000111" - "11111111" - "01111110", - /* 4 */ - "00111111" - "01110111" - "11100111" - "11111111" - "00000111" - "00000111" - "00000111", - /* 5 */ - "11111111" - "11111111" - "11100000" - "11111110" - "00000111" - "01111111" - "11111110", - /* 6 */ - "01111110" - "11100111" - "11000000" - "11111110" - "11100111" - "11100111" - "01111110", - /* 7 */ - "11111111" - "11111111" - "00000111" - "00001110" - "00011100" - "00111000" - "01110000", - /* 8 */ - "00111100" - "11100111" - "11100111" - "01111110" - "11100111" - "11100111" - "00111100", - /* 9 */ - "01111110" - "11100111" - "11100111" - "01111111" - "00000011" - "11100111" - "01111110", - /* : */ - "00000000" - "00111000" - "00111000" - "00000000" - "00111000" - "00111000" - "00000000", - /* */ - "00000000" - "00000000" - "00000000" - "00000000" - "00000000" - "00000000" - "00000000" - } -}; - -#endif /* __DIGITS_H__ */ diff --git a/blib-1.1.7/test/Makefile.am b/blib-1.1.7/test/Makefile.am deleted file mode 100644 index c64f0f4..0000000 --- a/blib-1.1.7/test/Makefile.am +++ /dev/null @@ -1,55 +0,0 @@ - -## Makefile.am for blib/test -## Process this file with automake to produce Makefile.in - -SUBDIRS = movies modules - -INCLUDES = -I$(top_srcdir) - -AM_CPPFLAGS = $(GLIB_CFLAGS) @GTK_CFLAGS@ - -if HAVE_GTK -gtk_test_programs=test-module -endif - -noinst_PROGRAMS = \ - test-movie-parser \ - test-movie-player \ - test-movie-writer \ - test-theme-parser \ - test-sender \ - test-receiver \ - test-module-scanner \ - $(gtk_test_programs) - -BLIB_LIBS = @GLIB_LIBS@ @WIN32_LIBS@ ../blib/libb.la - -test_movie_parser_SOURCES = test-movie-parser.c -test_movie_parser_LDADD = $(BLIB_LIBS) - -test_movie_player_SOURCES = test-movie-player.c -test_movie_player_LDADD = $(BLIB_LIBS) - -test_movie_writer_SOURCES = test-movie-writer.c -test_movie_writer_LDADD = $(BLIB_LIBS) - -test_theme_parser_SOURCES = test-theme-parser.c -test_theme_parser_LDADD = $(BLIB_LIBS) - -test_sender_SOURCES = test-sender.c -test_sender_LDADD = $(BLIB_LIBS) - -test_receiver_SOURCES = test-receiver.c -test_receiver_LDADD = $(BLIB_LIBS) - -test_module_scanner_SOURCES = test-module-scanner.c -test_module_scanner_LDADD = $(BLIB_LIBS) - -if HAVE_GTK -test_module_SOURCES = test-module.c -test_module_LDADD = @GTK_LIBS@ $(BLIB_LIBS) -endif - -TESTS = run-tests.sh - -EXTRA_DIST = $(TESTS) diff --git a/blib-1.1.7/test/Makefile.in b/blib-1.1.7/test/Makefile.in deleted file mode 100644 index 7208566..0000000 --- a/blib-1.1.7/test/Makefile.in +++ /dev/null @@ -1,769 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -SUBDIRS = movies modules - -INCLUDES = -I$(top_srcdir) - -AM_CPPFLAGS = $(GLIB_CFLAGS) @GTK_CFLAGS@ - -@HAVE_GTK_TRUE@gtk_test_programs = test-module - -noinst_PROGRAMS = \ - test-movie-parser \ - test-movie-player \ - test-movie-writer \ - test-theme-parser \ - test-sender \ - test-receiver \ - test-module-scanner \ - $(gtk_test_programs) - - -BLIB_LIBS = @GLIB_LIBS@ @WIN32_LIBS@ ../blib/libb.la - -test_movie_parser_SOURCES = test-movie-parser.c -test_movie_parser_LDADD = $(BLIB_LIBS) - -test_movie_player_SOURCES = test-movie-player.c -test_movie_player_LDADD = $(BLIB_LIBS) - -test_movie_writer_SOURCES = test-movie-writer.c -test_movie_writer_LDADD = $(BLIB_LIBS) - -test_theme_parser_SOURCES = test-theme-parser.c -test_theme_parser_LDADD = $(BLIB_LIBS) - -test_sender_SOURCES = test-sender.c -test_sender_LDADD = $(BLIB_LIBS) - -test_receiver_SOURCES = test-receiver.c -test_receiver_LDADD = $(BLIB_LIBS) - -test_module_scanner_SOURCES = test-module-scanner.c -test_module_scanner_LDADD = $(BLIB_LIBS) - -@HAVE_GTK_TRUE@test_module_SOURCES = test-module.c -@HAVE_GTK_TRUE@test_module_LDADD = @GTK_LIBS@ $(BLIB_LIBS) - -TESTS = run-tests.sh - -EXTRA_DIST = $(TESTS) -subdir = test -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -@HAVE_GTK_TRUE@noinst_PROGRAMS = test-movie-parser$(EXEEXT) \ -@HAVE_GTK_TRUE@ test-movie-player$(EXEEXT) \ -@HAVE_GTK_TRUE@ test-movie-writer$(EXEEXT) \ -@HAVE_GTK_TRUE@ test-theme-parser$(EXEEXT) test-sender$(EXEEXT) \ -@HAVE_GTK_TRUE@ test-receiver$(EXEEXT) \ -@HAVE_GTK_TRUE@ test-module-scanner$(EXEEXT) \ -@HAVE_GTK_TRUE@ test-module$(EXEEXT) -@HAVE_GTK_FALSE@noinst_PROGRAMS = test-movie-parser$(EXEEXT) \ -@HAVE_GTK_FALSE@ test-movie-player$(EXEEXT) \ -@HAVE_GTK_FALSE@ test-movie-writer$(EXEEXT) \ -@HAVE_GTK_FALSE@ test-theme-parser$(EXEEXT) test-sender$(EXEEXT) \ -@HAVE_GTK_FALSE@ test-receiver$(EXEEXT) \ -@HAVE_GTK_FALSE@ test-module-scanner$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) - -am__test_module_SOURCES_DIST = test-module.c -@HAVE_GTK_TRUE@am_test_module_OBJECTS = test-module.$(OBJEXT) -test_module_OBJECTS = $(am_test_module_OBJECTS) -@HAVE_GTK_TRUE@test_module_DEPENDENCIES = ../blib/libb.la -@HAVE_GTK_FALSE@test_module_DEPENDENCIES = -test_module_LDFLAGS = -am_test_module_scanner_OBJECTS = test-module-scanner.$(OBJEXT) -test_module_scanner_OBJECTS = $(am_test_module_scanner_OBJECTS) -test_module_scanner_DEPENDENCIES = ../blib/libb.la -test_module_scanner_LDFLAGS = -am_test_movie_parser_OBJECTS = test-movie-parser.$(OBJEXT) -test_movie_parser_OBJECTS = $(am_test_movie_parser_OBJECTS) -test_movie_parser_DEPENDENCIES = ../blib/libb.la -test_movie_parser_LDFLAGS = -am_test_movie_player_OBJECTS = test-movie-player.$(OBJEXT) -test_movie_player_OBJECTS = $(am_test_movie_player_OBJECTS) -test_movie_player_DEPENDENCIES = ../blib/libb.la -test_movie_player_LDFLAGS = -am_test_movie_writer_OBJECTS = test-movie-writer.$(OBJEXT) -test_movie_writer_OBJECTS = $(am_test_movie_writer_OBJECTS) -test_movie_writer_DEPENDENCIES = ../blib/libb.la -test_movie_writer_LDFLAGS = -am_test_receiver_OBJECTS = test-receiver.$(OBJEXT) -test_receiver_OBJECTS = $(am_test_receiver_OBJECTS) -test_receiver_DEPENDENCIES = ../blib/libb.la -test_receiver_LDFLAGS = -am_test_sender_OBJECTS = test-sender.$(OBJEXT) -test_sender_OBJECTS = $(am_test_sender_OBJECTS) -test_sender_DEPENDENCIES = ../blib/libb.la -test_sender_LDFLAGS = -am_test_theme_parser_OBJECTS = test-theme-parser.$(OBJEXT) -test_theme_parser_OBJECTS = $(am_test_theme_parser_OBJECTS) -test_theme_parser_DEPENDENCIES = ../blib/libb.la -test_theme_parser_LDFLAGS = - -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/test-module-scanner.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/test-module.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/test-movie-parser.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/test-movie-player.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/test-movie-writer.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/test-receiver.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/test-sender.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/test-theme-parser.Po -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ - $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DIST_SOURCES = $(am__test_module_SOURCES_DIST) \ - $(test_module_scanner_SOURCES) $(test_movie_parser_SOURCES) \ - $(test_movie_player_SOURCES) $(test_movie_writer_SOURCES) \ - $(test_receiver_SOURCES) $(test_sender_SOURCES) \ - $(test_theme_parser_SOURCES) - -RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ - ps-recursive install-info-recursive uninstall-info-recursive \ - all-recursive install-data-recursive install-exec-recursive \ - installdirs-recursive install-recursive uninstall-recursive \ - check-recursive installcheck-recursive -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am -DIST_SUBDIRS = $(SUBDIRS) -SOURCES = $(test_module_SOURCES) $(test_module_scanner_SOURCES) $(test_movie_parser_SOURCES) $(test_movie_player_SOURCES) $(test_movie_writer_SOURCES) $(test_receiver_SOURCES) $(test_sender_SOURCES) $(test_theme_parser_SOURCES) - -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f $$p $$f"; \ - rm -f $$p $$f ; \ - done -test-module$(EXEEXT): $(test_module_OBJECTS) $(test_module_DEPENDENCIES) - @rm -f test-module$(EXEEXT) - $(LINK) $(test_module_LDFLAGS) $(test_module_OBJECTS) $(test_module_LDADD) $(LIBS) -test-module-scanner$(EXEEXT): $(test_module_scanner_OBJECTS) $(test_module_scanner_DEPENDENCIES) - @rm -f test-module-scanner$(EXEEXT) - $(LINK) $(test_module_scanner_LDFLAGS) $(test_module_scanner_OBJECTS) $(test_module_scanner_LDADD) $(LIBS) -test-movie-parser$(EXEEXT): $(test_movie_parser_OBJECTS) $(test_movie_parser_DEPENDENCIES) - @rm -f test-movie-parser$(EXEEXT) - $(LINK) $(test_movie_parser_LDFLAGS) $(test_movie_parser_OBJECTS) $(test_movie_parser_LDADD) $(LIBS) -test-movie-player$(EXEEXT): $(test_movie_player_OBJECTS) $(test_movie_player_DEPENDENCIES) - @rm -f test-movie-player$(EXEEXT) - $(LINK) $(test_movie_player_LDFLAGS) $(test_movie_player_OBJECTS) $(test_movie_player_LDADD) $(LIBS) -test-movie-writer$(EXEEXT): $(test_movie_writer_OBJECTS) $(test_movie_writer_DEPENDENCIES) - @rm -f test-movie-writer$(EXEEXT) - $(LINK) $(test_movie_writer_LDFLAGS) $(test_movie_writer_OBJECTS) $(test_movie_writer_LDADD) $(LIBS) -test-receiver$(EXEEXT): $(test_receiver_OBJECTS) $(test_receiver_DEPENDENCIES) - @rm -f test-receiver$(EXEEXT) - $(LINK) $(test_receiver_LDFLAGS) $(test_receiver_OBJECTS) $(test_receiver_LDADD) $(LIBS) -test-sender$(EXEEXT): $(test_sender_OBJECTS) $(test_sender_DEPENDENCIES) - @rm -f test-sender$(EXEEXT) - $(LINK) $(test_sender_LDFLAGS) $(test_sender_OBJECTS) $(test_sender_LDADD) $(LIBS) -test-theme-parser$(EXEEXT): $(test_theme_parser_OBJECTS) $(test_theme_parser_DEPENDENCIES) - @rm -f test-theme-parser$(EXEEXT) - $(LINK) $(test_theme_parser_LDFLAGS) $(test_theme_parser_OBJECTS) $(test_theme_parser_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-module-scanner.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-module.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-movie-parser.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-movie-player.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-movie-writer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-receiver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sender.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-theme-parser.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` - -.c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -# 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. -$(RECURSIVE_TARGETS): - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if (etags --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - else \ - include_option=--include; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list='$(TESTS)'; \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *" $$tst "*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - echo "XPASS: $$tst"; \ - ;; \ - *) \ - echo "PASS: $$tst"; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *" $$tst "*) \ - xfail=`expr $$xfail + 1`; \ - echo "XFAIL: $$tst"; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - echo "FAIL: $$tst"; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - echo "SKIP: $$tst"; \ - fi; \ - done; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="All $$all tests passed"; \ - else \ - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all tests failed"; \ - else \ - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - skipped="($$skip tests were not run)"; \ - test `echo "$$skipped" | wc -c` -gt `echo "$$banner" | wc -c` && \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -gt `echo "$$banner" | wc -c` && \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - test -n "$$skipped" && echo "$$skipped"; \ - test -n "$$report" && echo "$$report"; \ - echo "$$dashes"; \ - test "$$failed" -eq 0; \ - else :; fi -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-recursive -all-am: Makefile $(PROGRAMS) -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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 clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-TESTS \ - check-am clean clean-generic clean-libtool clean-noinstPROGRAMS \ - clean-recursive ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am \ - dvi-recursive info info-am info-recursive install install-am \ - install-data install-data-am install-data-recursive \ - install-exec install-exec-am install-exec-recursive \ - install-info install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ - pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ - tags-recursive uninstall uninstall-am uninstall-info-am \ - uninstall-info-recursive uninstall-recursive - -# 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: diff --git a/blib-1.1.7/test/modules/Makefile.am b/blib-1.1.7/test/modules/Makefile.am deleted file mode 100644 index 2feecc7..0000000 --- a/blib-1.1.7/test/modules/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -## Makefile.am for blib/test/modules - -AM_CPPFLAGS = -DG_DISABLE_DEPRECATED - -INCLUDES = -I$(top_srcdir) @GLIB_CFLAGS@ - -noinst_LTLIBRARIES = libtest.la - -libtest_la_SOURCES = test.c -libtest_la_LDFLAGS = -avoid-version -module diff --git a/blib-1.1.7/test/modules/Makefile.in b/blib-1.1.7/test/modules/Makefile.in deleted file mode 100644 index 70e3604..0000000 --- a/blib-1.1.7/test/modules/Makefile.in +++ /dev/null @@ -1,473 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -AM_CPPFLAGS = -DG_DISABLE_DEPRECATED - -INCLUDES = -I$(top_srcdir) @GLIB_CFLAGS@ - -noinst_LTLIBRARIES = libtest.la - -libtest_la_SOURCES = test.c -libtest_la_LDFLAGS = -avoid-version -module -subdir = test/modules -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) - -libtest_la_LIBADD = -am_libtest_la_OBJECTS = test.lo -libtest_la_OBJECTS = $(am_libtest_la_OBJECTS) - -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/test.Plo -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ - $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DIST_SOURCES = $(libtest_la_SOURCES) -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am -SOURCES = $(libtest_la_SOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/modules/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" = "$$p" && dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libtest.la: $(libtest_la_OBJECTS) $(libtest_la_DEPENDENCIES) - $(LINK) $(libtest_la_LDFLAGS) $(libtest_la_OBJECTS) $(libtest_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` - -.c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(LTLIBRARIES) - -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -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-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - 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 uninstall uninstall-am uninstall-info-am - -# 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: diff --git a/blib-1.1.7/test/modules/test.c b/blib-1.1.7/test/modules/test.c deleted file mode 100644 index 58ad694..0000000 --- a/blib-1.1.7/test/modules/test.c +++ /dev/null @@ -1,331 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (c) 2002 The Blinkenlights Crew - * Daniel Mack - * Michael Natterer - * - * 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. - */ - -/* Test implementation for a BModule as used in the Blinkenlights context. - * BModules are used to implement games, debug tools etc. - * You can basically use this skeleton, rename the functions and hack your - * code into the functions that contain all the g_print()s now. - */ - -#include - -#include -#include - -#include - - -#define B_TYPE_TEST_MODULE (b_type_test_module) -#define B_TEST_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_TEST_MODULE, BTestModule)) -#define B_TEST_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_TEST_MODULE, BTestModuleClass)) -#define B_IS_TEST_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_TEST_MODULE)) - -typedef struct _BTestModule BTestModule; -typedef struct _BTestModuleClass BTestModuleClass; - -struct _BTestModule -{ - BModule parent_instance; - - gint x, y; - gboolean on; -}; - -struct _BTestModuleClass -{ - BModuleClass parent_class; -}; - -static GType b_test_module_get_type (GTypeModule *module); -static void b_test_module_class_init (BTestModuleClass *klass); -static void b_test_module_init (BTestModule *test_module); -static void b_test_module_finalize (GObject *object); -static gboolean b_test_module_query (gint width, - gint height, - gint channels, - gint maxval); -static gboolean b_test_module_prepare (BModule *module, - GError **error); -static void b_test_module_relax (BModule *module); -static void b_test_module_start (BModule *module); -static void b_test_module_stop (BModule *module); -static void b_test_module_event (BModule *module, - BModuleEvent *event); -static gint b_test_module_tick (BModule *module); -static void b_test_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author); - - - -static BModuleClass * parent_class = NULL; -static GType b_type_test_module = 0; - - -G_MODULE_EXPORT gboolean -b_module_register (GTypeModule *module) -{ - b_test_module_get_type (module); - - return TRUE; -} - -GType -b_test_module_get_type (GTypeModule *module) -{ - if (! b_type_test_module) - { - static const GTypeInfo test_module_info = - { - sizeof (BTestModuleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) b_test_module_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (BTestModule), - 0, /* n_preallocs */ - (GInstanceInitFunc) b_test_module_init, - }; - - /* !!!!!!!!! The name given in the next function MUST be unique! */ - - b_type_test_module = g_type_module_register_type (module, - B_TYPE_MODULE, - "BTestModule", - &test_module_info, - 0); - } - - return b_type_test_module; -} - -static void -b_test_module_class_init (BTestModuleClass *klass) -{ - GObjectClass *object_class; - BModuleClass *module_class; - - object_class = G_OBJECT_CLASS (klass); - module_class = B_MODULE_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = b_test_module_finalize; - - module_class->query = b_test_module_query; - module_class->prepare = b_test_module_prepare; - module_class->relax = b_test_module_relax; - module_class->start = b_test_module_start; - module_class->stop = b_test_module_stop; - module_class->event = b_test_module_event; - module_class->tick = b_test_module_tick; - module_class->describe = b_test_module_describe; -} - -static void -b_test_module_init (BTestModule *test_module) -{ - /* the device-independant initialization can happen here */ - test_module->on = FALSE; -} - -static void -b_test_module_finalize (GObject *object) -{ - BTestModule *test_module = B_TEST_MODULE (object); - - /* if we had allocated any resources, we'd free them now */ - - /* just do something to please the compiler ... */ - test_module->on = FALSE; - - /* you MUST upchain here! */ - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static gboolean -b_test_module_query (gint width, - gint height, - gint channels, - gint maxval) -{ - return (width > 0 && height > 0 && channels == 1 && maxval > 0); -} - -static gboolean -b_test_module_prepare (BModule *module, - GError **error) -{ - BTestModule *test_module = B_TEST_MODULE (module); - - /* initialize the module values that depend on the output device */ - test_module->x = module->width / 2; - test_module->y = module->height / 2; - - return TRUE; -} - -static void -b_test_module_relax (BModule *module) -{ - g_print ("b_test_module_relax\n"); - - /* if we had allocated any resources in prepare, we'd free them now */ -} - -static void -b_test_module_start (BModule *module) -{ - g_print ("b_test_module_start\n"); - - /* clear the screen */ - b_module_fill (module, 0); - b_module_paint (module); - - /* start the tick machinery */ - b_module_ticker_start (module, 200); -} - -static void -b_test_module_stop (BModule *module) -{ - g_print ("b_test_module_stop\n"); - - /* clear the screen */ - b_module_fill (module, 0); - b_module_paint (module); -} - -static void -b_test_module_event (BModule *module, - BModuleEvent *event) -{ - BTestModule *test_module; - - g_print ("b_test_module_event\n"); - - test_module = B_TEST_MODULE (module); - - switch (event->device_id) - { - case 0: - switch (event->type) - { - case B_EVENT_TYPE_KEY: - switch (event->key) - { - case B_KEY_1: - if (test_module->x > 0) - test_module->x--; - case B_KEY_2: - if (test_module->y > 0) - test_module->y--; - break; - - case B_KEY_7: - if (test_module->y < module->height-1) - test_module->y++; - case B_KEY_4: - if (test_module->x > 0) - test_module->x--; - break; - - case B_KEY_3: - if (test_module->y > 0) - test_module->y--; - case B_KEY_6: - if (test_module->x < module->width-1) - test_module->x++; - break; - - case B_KEY_9: - if (test_module->x < module->width-1) - test_module->x++; - case B_KEY_8: - if (test_module->y < module->height-1) - test_module->y++; - break; - - case B_KEY_0: - test_module->x = module->width / 2; - test_module->y = module->height / 2; - break; - - default: - break; - } - break; - default: - /* other kinds of events should not occur */ - break; - } - case 1: - /* if this was a multiplayer game, you could dispatch events - from the other 'panel' here */ - break; - } - - /* fill the buffer with zeros */ - b_module_fill (module, 0); - - /* draw the point */ - if (test_module->on) - b_module_draw_point (module, - test_module->x, test_module->y, module->maxval); - - b_module_paint (module); -} - -static gint -b_test_module_tick (BModule *module) -{ - BTestModule *test_module; - - g_print ("b_test_module_tick\n"); - - test_module = B_TEST_MODULE (module); - - /* invert the state */ - test_module->on = (test_module->on == FALSE); - - /* draw the point */ - b_module_draw_point (module, - test_module->x, test_module->y, - test_module->on ? module->maxval : 0); - - b_module_paint (module); - - /* we want to be called again in 200 milliseconds */ - return 200; -} - -static void -b_test_module_describe (BModule *module, - const gchar **title, - const gchar **description, - const gchar **author) -{ - *title = "Test"; - *description = "Blib test module and code example"; - *author = "Blinkenlights Crew"; -} diff --git a/blib-1.1.7/test/movies/Makefile.am b/blib-1.1.7/test/movies/Makefile.am deleted file mode 100644 index e3a8dbd..0000000 --- a/blib-1.1.7/test/movies/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -## Makefile.am for blib/test/movies -## Process this file with automake to produce Makefile.in - -EXTRA_DIST = \ - bushfire-test-16x3.gif \ - camel-18x8.blm \ - rain-26x20.bml diff --git a/blib-1.1.7/test/movies/Makefile.in b/blib-1.1.7/test/movies/Makefile.in deleted file mode 100644 index 587cea1..0000000 --- a/blib-1.1.7/test/movies/Makefile.in +++ /dev/null @@ -1,344 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -host_triplet = @host@ -AA_LIBS = @AA_LIBS@ -AA_VIEW_TYPE = @AA_VIEW_TYPE@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_BINARY_AGE = @BLIB_BINARY_AGE@ -BLIB_INTERFACE_AGE = @BLIB_INTERFACE_AGE@ -BLIB_MAJOR_VERSION = @BLIB_MAJOR_VERSION@ -BLIB_MICRO_VERSION = @BLIB_MICRO_VERSION@ -BLIB_MINOR_VERSION = @BLIB_MINOR_VERSION@ -BLIB_VERSION = @BLIB_VERSION@ -BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@ -BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIR = @DATADIR@ -DB2HTML = @DB2HTML@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DIRECTFB_VIEW_TYPE = @DIRECTFB_VIEW_TYPE@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@ -ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_MKENUMS = @GLIB_MKENUMS@ -GOBJECT_QUERY = @GOBJECT_QUERY@ -GTKDOC = @GTKDOC@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_VIEW_TYPE = @GTK_VIEW_TYPE@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@ -HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@ -HAVE_DOCBOOK_FALSE = @HAVE_DOCBOOK_FALSE@ -HAVE_DOCBOOK_TRUE = @HAVE_DOCBOOK_TRUE@ -HAVE_GTK_DOC = @HAVE_GTK_DOC@ -HAVE_GTK_DOC_FALSE = @HAVE_GTK_DOC_FALSE@ -HAVE_GTK_DOC_TRUE = @HAVE_GTK_DOC_TRUE@ -HAVE_GTK_FALSE = @HAVE_GTK_FALSE@ -HAVE_GTK_TRUE = @HAVE_GTK_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -HTML_DIR = @HTML_DIR@ -INCLUDEDIR = @INCLUDEDIR@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MODULEPATH = @MODULEPATH@ -OBJEXT = @OBJEXT@ -OS_WIN32_FALSE = @OS_WIN32_FALSE@ -OS_WIN32_TRUE = @OS_WIN32_TRUE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_VIEW_TYPE = @PIXBUF_VIEW_TYPE@ -PKG_CONFIG = @PKG_CONFIG@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -THEMEPATH = @THEMEPATH@ -VERSION = @VERSION@ -WIN32_CFLAGS = @WIN32_CFLAGS@ -WIN32_LIBS = @WIN32_LIBS@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -EXTRA_DIST = \ - bushfire-test-16x3.gif \ - camel-18x8.blm \ - rain-26x20.bml - -subdir = test/movies -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu test/movies/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-libtool - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -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-info-am - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am - -# 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: diff --git a/blib-1.1.7/test/movies/bushfire-test-16x3.gif b/blib-1.1.7/test/movies/bushfire-test-16x3.gif deleted file mode 100644 index 876c889..0000000 Binary files a/blib-1.1.7/test/movies/bushfire-test-16x3.gif and /dev/null differ diff --git a/blib-1.1.7/test/movies/camel-18x8.blm b/blib-1.1.7/test/movies/camel-18x8.blm deleted file mode 100644 index b90ceb0..0000000 --- a/blib-1.1.7/test/movies/camel-18x8.blm +++ /dev/null @@ -1,419 +0,0 @@ -# BlinkenLights Movie 18x8 -# name = camel -# description = aa -# creator = Blinkenpaint 2.4 -# author = christine jaschek -# width = 18 -# height = 8 -# loop = no -# duration = 8400 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000111 -000000111111111000 -000000010000001000 -000000110000011000 - -@200 -000100000000000000 -011110000000000000 -111011001100110000 -000001110011001000 -000001000000000100 -000000111111111010 -000000010000001000 -000000110000011000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010000 -000001100000110000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010000 -000001100000110000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110000 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010000 -000001100000110001 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110001 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010000 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010000 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110100 -000000100000010010 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010110 -000001100000110011 - -@200 -001000000000000000 -111100000000000000 -110110011001100000 -000011100110010000 -000010000000001110 -000001111111110000 -000000100000010010 -000001100000110111 - -@200 -010000000000000000 -111000000000000000 -101100110011000000 -000111001100100000 -000100000000011100 -000011111111100000 -000000100001000010 -000001100011000111 - -@200 -100000000000000000 -110000000000000000 -011001100110000000 -001110011001000000 -001000000000111000 -000111111111000000 -000010000001000010 -000110000011000111 - -@200 -000000000000000000 -100000000000000000 -110011001100000000 -011100110010000000 -010000000001110000 -001111111110000000 -000010000100000010 -000110001100000111 - -@200 -000000000000000000 -000000000000000000 -100110011000000000 -111001100100000000 -100000000010000000 -011111111101000000 -001000000100000010 -011000001100000111 - -@200 -000000000000000000 -000000000000000000 -001100110000000000 -110011001000000000 -000000000100000000 -111111111010000000 -001000010000000010 -011000110000000111 - -@200 -000000000000000000 -000000000000000000 -011001100000000000 -100110010000000000 -000000001000000000 -111111110100000000 -100000010000000010 -100000110000000111 - -@200 -000000000000000000 -000000000000000000 -110011000000000000 -001100100000000000 -000000010000000000 -111111101000000000 -000001000000000010 -000011000000000111 - -@200 -000000000000000000 -000000000000000000 -100110000000000000 -011001000000000000 -000000100000000000 -111111010000000000 -000001000000000010 -000011000000000111 - -@200 -000000000000000000 -000000000000000000 -001100000000000000 -110010000000000000 -000001000000000000 -111110100000000000 -000100000000000010 -001100000000000111 - -@200 -000000000000000000 -000000000000000000 -011000000000000000 -100100000000000000 -000010000000000000 -111101000000000000 -000100000000000010 -001100000000000111 - -@200 -000000000000000000 -000000000000000000 -110000000000000000 -001000000000000000 -000100000000000000 -111010000000000000 -010000000000000010 -110000000000000111 - -@200 -000000000000000000 -000000000000000000 -100000000000000000 -010000000000000000 -001000000000000000 -110100000000000000 -010000000000000010 -110000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -100000000000000000 -010000000000000000 -101000000000000000 -100000000000000010 -100000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -100000000000000000 -010000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -100000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@200 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000010 -000000000000000111 - -@400 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 -000000000000000000 diff --git a/blib-1.1.7/test/movies/rain-26x20.bml b/blib-1.1.7/test/movies/rain-26x20.bml deleted file mode 100644 index b1a87cf..0000000 --- a/blib-1.1.7/test/movies/rain-26x20.bml +++ /dev/null @@ -1,429 +0,0 @@ - - -
- Raindrops - Falling raindrops - ArcadePaint 1.0.2 PC - Richard Gordon Faika - 2650 - -
- - 00000000000377000000100000 - 00000002000000000000000000 - 00200024400000000000000000 - 00400244470000000000000000 - 00000027700000000000000000 - 00000000000000001000001000 - 00000000000010000000000000 - 00010000000000002000000000 - 00000000000000004000000000 - 00000000000000000000000000 - 00000000020000000000001000 - 00000000040000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000010000000001000 - 00000000000000001000000020 - 00000000000000000000000040 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - - - 00000000002444700000000000 - 00000000000377000000100000 - 00000000000000000000000000 - 00200002000000000000000000 - 00400024400000000000000000 - 00000244470000000000001000 - 00000027700010001000000000 - 00000000000000000000000000 - 00010000000000002000000000 - 00000000000000004000000000 - 00000000000000000000000000 - 00000000020000000000001000 - 00000000040000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000010001000001000 - 00000000000000000000000020 - 00010000000000000000000040 - 00000000000000000000000000 - 00000000000000000000000000 - - - 00000000000244000000000020 - 00000000002444700000100000 - 00000000000377000000000000 - 00000000000000000000000000 - 00200000000000000000000000 - 00400000000000000000000000 - 00000000000000001000001000 - 00000002000010000000000000 - 00010024400000000000000000 - 00000244470000002000000000 - 00000027700000004000000000 - 00000000000000000000001000 - 00000000020000000000000000 - 00000000040000000000000000 - 00000000000000000000000000 - 00000000000010000000001000 - 00000000000000001000000000 - 00000000000000000000000020 - 00010000000000000000000040 - 00000000000000000000000000 - - - 00010000000020000000000040 - 00000000000244000000000000 - 00000000002444700000100000 - 00000000000377000000000000 - 00000000000000000000000000 - 00200000000000000000000000 - 00400000000000000000001000 - 00000000000010001000000000 - 00000000000000000000000000 - 00010000000000000000000000 - 00000000000000002000000000 - 00000000000000004000000000 - 00000002000000000000001000 - 00000024400000000000000000 - 00000244470000000000000000 - 00000027720000000000000000 - 00000000000010001000001000 - 00000000000000000000000000 - 00010000000000000000000020 - 00000000000000000000000040 - - - 00010000000000000000000020 - 00000000000000000000000040 - 00000000000020000000100000 - 00000000000244000000022000 - 00000000002444700000000000 - 00000000000377000000000000 - 00200000000000000000000000 - 00400000000000001000001000 - 00000000000010000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000002000000000 - 00000000000000004000001000 - 00000000000000000000000000 - 00000000020000000000000000 - 00000000040000000000000000 - 00000000000010000000001000 - 00000002000000001000000000 - 00000024400000000000000000 - 00010244470000000000000000 - - - 00000010000000000003770000 - 00010000000000000000000020 - 00000000000000000000000040 - 00000000000000000000100000 - 00000000000020000000000000 - 00000000000244000000000000 - 00000000002444700000000000 - 00200000000377000000001000 - 00400000000010001000000000 - 00000000000000000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000002000000000 - 00000000000000004000001000 - 00000000000000000000000000 - 00000000020000000000000000 - 00000000040000000000000000 - 00000000000010001000001000 - 00000000000000000000000000 - 00010002000000000000000000 - - - 00000010000000000002440000 - 00010000000000000024447000 - 00000000000000000002770020 - 00000000000000000000100040 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000020000000000000 - 00000000000244000000000000 - 00200000002444701000001000 - 00400000000277000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000002000001000 - 00000000000000004000000000 - 00000000000000000000000000 - 00000000020000000000000000 - 00000000040010000000001000 - 00000000000000001000000000 - 00000000000000000000000000 - - - 00000000000010001000200000 - 00000000000000000002440000 - 00010000000000000022447000 - 00000000000000000002770020 - 00000000000000000000000040 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000010000000001000 - 00200000000020001000000000 - 00400000000244000000000000 - 00010000002444700000000000 - 00000000000277000000000000 - 00000000000000000000000000 - 00000000000000002000001000 - 00000000000000004000000000 - 00000000000000000000000000 - 00000000020000000000000000 - 00000000040010001000001000 - 00000000000000000000000000 - - - 00004770040010001000000000 - 00000000000000000000000000 - 00010000000000000000000000 - 00000000000000000000200000 - 00000000000000000002440020 - 00000000000000000022447040 - 00000000000000000002770000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000010001000001000 - 00200000000000000000000000 - 00410000000000000000000000 - 00000000000020000000000000 - 00000000000244000000000000 - 00000000002444700000001000 - 00000000000277002000000000 - 00000000000000004000000000 - 00000000000000000000000000 - 00000000020010000000001000 - 00000000040000001000000000 - - - 00024447020000000000001000 - 00002770040010001000000000 - 00000000000000000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000020 - 00000000000000000000000040 - 00000000000000000000000000 - 00000000000000000000200000 - 00000000000010000002441000 - 00000000000000001024447000 - 00200000000000000002770000 - 00410000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000001000 - 00000000000000002000000000 - 00000000000000004000000000 - 00000000000020000000000000 - 00000000000244001000001000 - - - 00002440000000000000001000 - 00024447020010001000000000 - 00002770040000000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000020 - 00000000000000000000000040 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000010001000001000 - 00000000000000000000200000 - 00210000000000000002440000 - 00400000000000000024447000 - 00000000000000000002770000 - 00000000000000000000001000 - 00000000000000000000000000 - 00000000000000002000000000 - 00000000000000004000000000 - 00000000000000000000001000 - - - 00000000000000004000000000 - 00000000000000000000001000 - 00000000020010001000000000 - 00000000040000000000000000 - 00010200000000000000000000 - 00002440000000000000000000 - 00024447000000000000000000 - 00002770000000000000000020 - 00000000000000000000000040 - 00000000000000000000000000 - 00000000000010000000001000 - 00000000000000001000000000 - 00000000000000000000000000 - 00210000000000000000000000 - 00400000000000000000000000 - 00000000000000000000000000 - 00000000000000000000001000 - 00000000000000000000000000 - 00000000000000002000020000 - 00000000000000004000244000 - - - 00000000000000002000277000 - 00000000000000004000001000 - 00000000000010001000000000 - 00000000020000000000000000 - 00010000040000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000200000000000000000000 - 00002440000000000000000020 - 00024447000000000000000040 - 00002770000000000000000000 - 00000000000010001000001000 - 00000000000000000000000000 - 00010000000000000000000000 - 00200000000000000000000000 - 00400000000000000000000000 - 00000000000000000000001000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - - - 01000000000000000002444700 - 00000000000000002000277000 - 00000000000000004000001000 - 00000000000010001000000000 - 00010000020000000000000000 - 00000000040000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000020 - 00000200000000000000000040 - 00002440000010000000001000 - 00024447000000001000000000 - 00002770000000000000000000 - 00010000000000000000000000 - 00200000000000000000000000 - 00400000000000000000000000 - 00000000000000000000001000 - 00000000000000000000000000 - 00000000000000000000000000 - - - 01000000000000000000244000 - 00000000000000000002444700 - 00000000000000002000277000 - 00000000000010004000000000 - 00000000000000000000000000 - 00010000020000000000000000 - 00000000040000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000020 - 00000000000000000000000040 - 00000000000010001000001000 - 00000000000000000000000000 - 00010200000000000000000000 - 00002440000000000000000000 - 00224447000000000000000000 - 00402770000000000000001000 - 00000000000000000000000000 - 00000000000000000000000000 - - - 00000000000000000000000000 - 01000000000000000000000000 - 00000000000000000000000000 - 00000000000000002000001000 - 00000000000010004000020000 - 00010000000000000000244000 - 00000000020000000002444700 - 00000000040000000000277000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000020 - 00000000000010000000001040 - 00000000000000001000000000 - 00000000000000000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00200000000000000000000000 - 00400000000000000000001000 - 00000000000000000000000000 - - - 00400027700000000000000000 - 01000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000001000 - 00000000000010002000000000 - 00000000000000004000000000 - 00010000000000000000000000 - 00000000020000000000020000 - 00000000040000000000244000 - 00000000000000000002444700 - 00000000000000000000277000 - 00000000000000000000000000 - 00000000000000000000000020 - 00000000000010001000001040 - 00000000000000000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00200000000000000000001000 - 00400000000000000000000000 - - - 00200244470000000000000000 - 00400027700000000000000000 - 01000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000001000 - 00000000000010002000000000 - 00010000000000004000000000 - 00000000000000000000000000 - 00000000020000000000000000 - 00000000040000000000001000 - 00000000000000000000020000 - 00000000000000000000244000 - 00000000000000000002444700 - 00000000000010000000277020 - 00000000000000001000000040 - 00000000000000000000000000 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00200000000000000000001000 - - - 00000024400000000000100000 - 00200244470000000000000000 - 00400027700000000000000000 - 01000000000000000000000000 - 00000000000000000000001000 - 00000000000010001000000000 - 00000000000000002000000000 - 00010000000000004000000000 - 00000000000000000000000000 - 00000000020000000000000000 - 00000000040000000000001000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000000000000000000 - 00000000000010001000001020 - 00000000000000000000000040 - 00010000000000000000000000 - 00000000000000000000000000 - 00000000000000000000020000 - 00000000000000000000244000 - -
diff --git a/blib-1.1.7/test/run-tests.sh b/blib-1.1.7/test/run-tests.sh deleted file mode 100755 index 3964c29..0000000 --- a/blib-1.1.7/test/run-tests.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -echo - -test -f test-movie-parser.c || { - echo "You must run this script in the tests directory." - echo - exit 1 -} - -if xmllint --version > /dev/null 2>&1; then - movie_dtd="../data/bml.dtd" -fi - -if test -x test-movie-parser; then - echo "Testing the movie parser ..." - for suffix in blm bml gif; do - for movie in movies/*.$suffix; do - test -f $movie && ./test-movie-parser $movie - done - done - echo -fi - -if test -x test-movie-writer; then - echo "Testing the movie writer ..." - for suffix in blm bml gif; do - for movie in movies/*.$suffix; do - if test -f $movie; then - for format in blm bml gif; do - if test $format = bml && test -n $movie_dtd; then - ./test-movie-writer $format $movie | \ - xmllint --noout --dtdvalid $movie_dtd - && \ - echo " ... and validated against $movie_dtd" - else - ./test-movie-writer $format $movie > /dev/null - fi - done - fi - done - done - echo -fi - -exit 0 diff --git a/blib-1.1.7/test/test-module-scanner.c b/blib-1.1.7/test/test-module-scanner.c deleted file mode 100644 index 4477290..0000000 --- a/blib-1.1.7/test/test-module-scanner.c +++ /dev/null @@ -1,102 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * Daniel Mack - * - * 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. - */ - -#include - -#include "blib/blib.h" - - -static void -print_info (GType type) -{ - GParamSpec **props; - GTypeClass *class; - gint n_props; - - class = g_type_class_ref (type); - - props = g_object_class_list_properties (G_OBJECT_CLASS (class), &n_props); - - g_print ("BModule subtype: %s\n\n", g_type_name (type)); - - if (! props) - { - g_print (" %s has no properties.\n", g_type_name (type)); - } - else - { - gint i; - - g_print (" %s has %d properties:\n", g_type_name (type), n_props); - - for (i = 0; i < n_props; i++) - { - GParamSpec *spec = props[i]; - - g_print (" name: %s\n", g_param_spec_get_name (spec)); - g_print (" blurb: %s\n", g_param_spec_get_blurb (spec)); - g_print (" type: %s\n", - g_type_name (G_PARAM_SPEC_VALUE_TYPE (spec))); - g_print ("\n"); - } - } - - g_free (props); - - g_type_class_unref (class); -} - -int -main (int argc, - char *argv[]) -{ - volatile GType movie_player_type; - const gchar *module_dir = "../modules"; - gint i; - - if (argc > 1) - module_dir = argv[1]; - - b_init (); - - /* load the builtin movie player */ - movie_player_type = B_TYPE_MOVIE_PLAYER; - g_print ("Registered the builtin BMoviePlayer module.\n"); - - g_print ("Scanning %s for loadable modules ... ", module_dir); - i = b_module_infos_scan_dir (argv[1]); - g_print ("registered %d modules\n", i); - - if (i > 0) - { - GType *child_types; - gint n_child_types; - - child_types = g_type_children (B_TYPE_MODULE, &n_child_types); - - for (i = 0; i < n_child_types; i++) - print_info (child_types[i]); - - g_free (child_types); - } - - return EXIT_SUCCESS; -} diff --git a/blib-1.1.7/test/test-module.c b/blib-1.1.7/test/test-module.c deleted file mode 100644 index 36bbda1..0000000 --- a/blib-1.1.7/test/test-module.c +++ /dev/null @@ -1,401 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * Daniel Mack - * - * 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. - */ - -#include -#include - -#define GTK_DISABLE_DEPRECATED - -#include - -#include "blib/blib.h" - -/* the HDL setup */ -#define WIDTH 18 -#define HEIGHT 8 -#define ASPECT 0.55 - - -static GtkWidget *main_window = NULL; -static GtkWidget *keys_table = NULL; -static GtkWidget *start_button = NULL; -static GtkWidget *stop_button = NULL; - - -static gboolean -paint (BModule *module, - guchar *buffer, - gpointer data) -{ - b_sender_send_frame (B_SENDER (data), buffer); - - return TRUE; -} - -static void -key_pressed (GObject *object, - gpointer data) -{ - BModuleEvent event; - - event.device_id = 0; - event.type = B_EVENT_TYPE_KEY; - event.key = GPOINTER_TO_INT (g_object_get_data (object, "keyval")); - - g_print ("KEY %d\n", event.key); - - b_module_event (B_MODULE (data), &event); -} - -static void -about_cb (GtkWidget *widget, - BModule *module) -{ - static GtkWidget *dialog = NULL; - - gchar *desc[3]; - GString *text; - gint i; - - if (dialog) - { - gtk_widget_destroy (dialog); - return; - } - - b_module_describe (module, desc, desc + 1, desc + 2); - - text = g_string_new (NULL); - - for (i = 0; i < 3; i++) - { - if (i == 0) - g_string_append_printf (text, - "" - "%s" - "", desc[0]); - else if (desc[i]) - g_string_append (text, desc[i]); - - g_string_append_c (text, '\n'); - - g_free (desc[i]); - } - - dialog = gtk_message_dialog_new (GTK_WINDOW (main_window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, - text->str); - - g_object_add_weak_pointer (G_OBJECT (dialog), (gpointer) &dialog); - - g_string_free (text, TRUE); - - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); - gtk_window_set_title (GTK_WINDOW (dialog), "About this Module"); - - gtk_label_set_use_markup (GTK_LABEL (GTK_MESSAGE_DIALOG (dialog)->label), - TRUE); - - g_signal_connect_swapped (G_OBJECT (dialog), "response", - G_CALLBACK (gtk_widget_destroy), dialog); - - gtk_widget_show (dialog); -} - -static void -start_cb (gpointer data) -{ - BModuleEvent ev; - - gtk_widget_set_sensitive (keys_table, TRUE); - gtk_widget_set_sensitive (start_button, FALSE); - gtk_widget_set_sensitive (stop_button, TRUE); - - g_print ("Telling module device 0 joined..."); - ev.device_id = 0; - ev.type = B_EVENT_TYPE_PLAYER_ENTERED; - b_module_event (B_MODULE (data), &ev); - g_print ("OK.\n"); - -} - -static void -stop_cb (gpointer data) -{ - gtk_widget_set_sensitive (keys_table, FALSE); - gtk_widget_set_sensitive (start_button, TRUE); - gtk_widget_set_sensitive (stop_button, FALSE); -} - -static void -dump_cb (GtkWidget *widget, - BModule *module) -{ - BMovie *movie; - GError *error = NULL; - - movie = g_object_new (B_TYPE_MOVIE_BML, "name", "Module Frame Dump", NULL); - - movie->width = module->width; - movie->height = module->height; - movie->channels = module->channels; - movie->maxval = module->maxval; - - /* eeque */ - movie->load_count = 1; - - b_movie_prepend_frame (movie, 1000, module->buffer); - - if (!b_movie_save (movie, stdout, &error)) - { - g_printerr ("Error writing to stdout: %s\n", error->message); - g_clear_error (&error); - } - - g_object_unref (movie); -} - -static void -setup_window (BModule *module) -{ - GtkWidget *main_vbox; - GtkWidget *vbox; - GtkWidget *button; - gint i; - gchar *key[] = { "_1", "_2", "_3", "_4", "_5", "_6", - "_7", "_8", "_9", "_*", "_0", "_#" }; - BModuleKey keyval[] = { B_KEY_1, - B_KEY_2, - B_KEY_3, - B_KEY_4, - B_KEY_5, - B_KEY_6, - B_KEY_7, - B_KEY_8, - B_KEY_9, - B_KEY_ASTERISK, - B_KEY_0, - B_KEY_HASH }; - - main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - - gtk_window_set_title (GTK_WINDOW (main_window), "Virtual Cellular Phone"); - - g_signal_connect (G_OBJECT (main_window), "destroy", - G_CALLBACK (gtk_main_quit), - NULL); - - main_vbox = gtk_vbox_new (FALSE, 3); - gtk_container_add (GTK_CONTAINER (main_window), main_vbox); - - button = gtk_button_new_with_mnemonic ("_About"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (about_cb), module); - gtk_box_pack_start (GTK_BOX (main_vbox), button, FALSE, FALSE, 0); - - keys_table = gtk_table_new (4, 3, TRUE); - gtk_box_pack_start (GTK_BOX (main_vbox), keys_table, TRUE, TRUE, 0); - - for (i = 0; i < 12; i++) - { - GtkWidget *button = gtk_button_new_with_mnemonic (key[i]); - - gtk_misc_set_padding (GTK_MISC (GTK_BIN (button)->child), 8, 4); - - g_object_set_data (G_OBJECT (button), - "keyval", GINT_TO_POINTER (keyval[i])); - - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (key_pressed), - module); - gtk_table_attach_defaults (GTK_TABLE (keys_table), button, - i%3, i%3 + 1, i/3, i/3 + 1); - } - - gtk_widget_set_sensitive (keys_table, FALSE); - - vbox = gtk_vbox_new (TRUE, 2); - gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); - - start_button = gtk_button_new_with_mnemonic ("_Start"); - g_signal_connect_swapped (G_OBJECT (start_button), "clicked", - G_CALLBACK (b_module_start), module); - gtk_box_pack_start_defaults (GTK_BOX (vbox), start_button); - - stop_button = gtk_button_new_from_stock (GTK_STOCK_STOP); - g_signal_connect_swapped (G_OBJECT (stop_button), "clicked", - G_CALLBACK (b_module_stop), module); - gtk_box_pack_start_defaults (GTK_BOX (vbox), stop_button); - - button = gtk_button_new_with_mnemonic ("_Dump Frame"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (dump_cb), module); - gtk_box_pack_start_defaults (GTK_BOX (vbox), button); - - gtk_widget_set_sensitive (stop_button, FALSE); - - gtk_widget_show_all (main_window); -} - -int -main (int argc, - char *argv[]) -{ - BModule *module; - BSender *sender; - GError *error = NULL; - GType type; - gint i; - gint nreceivers = 0; - - if (argc < 4) - { - g_printerr ("Usage: %s [|--property:=]+\n", argv[0]); - return EXIT_FAILURE; - } - - b_init (); - - gtk_init (&argc, &argv); - - i = b_module_infos_scan_dir (argv[1]); - g_print ("b_module_infos_scan_dir() returned %d\n", i); - - /* make sure (static) BMoviePlayer is correctly registered. */ - g_type_class_peek (B_TYPE_MOVIE_PLAYER); - - if (i > 0) - { - GType *child_types; - gint n_child_types; - - child_types = g_type_children (B_TYPE_MODULE, &n_child_types); - - for (i = 0; i < n_child_types; i++) - { - g_print ("Registered BModule subtype: %s\n", - g_type_name (child_types[i])); - } - - g_free (child_types); - } - - - g_print ("===================\n"); - g_print ("Getting type for '%s'\n", argv[2]); - - type = g_type_from_name (argv[2]); - if (!type) - { - g_print (" ...failed.\n"); - return EXIT_FAILURE; - } - g_print (" ...succeeded.\n"); - - - g_print ("Creating BSender, "); - sender = b_sender_new (); - - for (i = 3; i < argc; i++) { - if (strncmp(argv[i], "--", 2) == 0) - continue; - - b_sender_add_recipient (sender, -1, argv[i], MCU_LISTENER_PORT, NULL); - nreceivers ++; - } - - g_print (" added %d recipients.\n", nreceivers); - - b_sender_configure (sender, WIDTH, HEIGHT, 1, 255); - - - g_print ("Creating object of type '%s' ... ", argv[2]); - - module = b_module_new (type, WIDTH, HEIGHT, NULL, paint, sender, &error); - - if (! module) - { - g_print ("failed: %s\n", error->message); - return EXIT_FAILURE; - } - g_print ("OK.\n"); - - b_module_set_aspect (module, ASPECT); - - g_print ("Checking for module properties ...\n"); - for (i = 3; i < argc; i++) - { - const gchar *p = argv[i]; - gchar *value; - gchar buffer[128]; - - if (strncmp (p, "--property:", 11) != 0) - continue; - - strncpy (buffer, p + 11, 128); - value = strchr (buffer, '='); - if (value == NULL ) - { - g_print ("%s seems not to be a valid property argument, ignoring\n", - argv[i]); - continue; - } - - *value = 0; /* null-terminate key */ - value++; - - g_print ("Setting object property: \"%s\" = \"%s\"\n", buffer, value); - - if (!b_object_set_property (G_OBJECT (module), - buffer, value, NULL, &error)) - { - g_print ("Failed: %s\n", error->message); - g_clear_error (&error); - } - } - - g_print ("Preparing the module ... "); - - if (! b_module_prepare (module, &error)) - { - g_print ("failed: %s\n", error->message); - - g_object_unref (module); - - return EXIT_FAILURE; - } - g_print ("OK.\n"); - - - setup_window (module); - - g_signal_connect (G_OBJECT (module), "start", G_CALLBACK (start_cb), module); - g_signal_connect (G_OBJECT (module), "stop", G_CALLBACK (stop_cb), module); - - gtk_main (); - - g_print ("Quitting.\n"); - - g_object_unref (module); - - return EXIT_SUCCESS; -} diff --git a/blib-1.1.7/test/test-movie-parser.c b/blib-1.1.7/test/test-movie-parser.c deleted file mode 100644 index f2f27af..0000000 --- a/blib-1.1.7/test/test-movie-parser.c +++ /dev/null @@ -1,74 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include - -#include "blib/blib.h" -#include - -int -main (int argc, - char *argv[]) -{ - BMovie *movie; - GError *error = NULL; - - if (argc < 2) - { - g_printerr ("Usage: %s \n", argv[0]); - return EXIT_FAILURE; - } - - b_init (); - - if (strcmp (argv[1], "-")) - movie = b_movie_new_from_file (argv[1], TRUE, &error); - else - movie = b_movie_new_from_fd (0, &error); - - if (!movie) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error opening '%s': %s\n", argv[1], error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - if (!b_movie_load (movie, &error)) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error parsing '%s': %s\n", - b_object_get_name (B_OBJECT (movie)), error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - g_printerr ("successfully loaded '%s' (%dx%d) with %d frame(s)\n", - movie->title ? - movie->title : b_object_get_name (B_OBJECT (movie)), - movie->width, movie->height, - g_list_length (movie->frames)); - - g_object_unref (movie); - - return EXIT_SUCCESS; -} diff --git a/blib-1.1.7/test/test-movie-player.c b/blib-1.1.7/test/test-movie-player.c deleted file mode 100644 index dc73f93..0000000 --- a/blib-1.1.7/test/test-movie-player.c +++ /dev/null @@ -1,126 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include - -#include "blib/blib.h" - - -static gboolean -paint (BModule *module, - guchar *buffer, - gpointer data) -{ - b_sender_send_frame (B_SENDER (data), buffer); - - return TRUE; -} - -int -main (int argc, - char *argv[]) -{ - GMainLoop *loop; - BModule *module; - BSender *sender; - BMovie *movie; - gint i; - GError *error = NULL; - - if (argc < 3) - { - g_print ("Usage: %s +\n", argv[0]); - return EXIT_FAILURE; - } - - b_init (); - - movie = b_movie_new_from_file (argv[1], TRUE, &error); - if (!movie) - { - g_print ("Error opening '%s': %s\n", argv[1], error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - g_print ("Creating BSender, "); - sender = b_sender_new (); - - b_sender_configure (sender, - movie->width, movie->height, movie->channels, 255); - - for (i = 2; i < argc; i++) - b_sender_add_recipient (sender, -1, argv[i], MCU_LISTENER_PORT, NULL); - - g_print (" added %d recipients.\n", i - 2); - - g_print ("Creating a BMoviePlayer for '%s' ... ", - b_object_get_name (B_OBJECT (movie))); - - module = b_module_new (B_TYPE_MOVIE_PLAYER, - movie->width, movie->height, NULL, - paint, sender, - &error); - - g_object_unref (movie); - - if (!module) - { - g_print ("failed: %s\n", error->message); - - g_object_unref (sender); - return EXIT_FAILURE; - } - g_print ("OK.\n"); - - g_print ("Preparing the BMoviePlayer module ... "); - - g_object_set (G_OBJECT (module), "movie", argv[1], NULL); - - if (!b_module_prepare (module, &error)) - { - g_print ("failed: %s\n", error->message); - - g_object_unref (module); - g_object_unref (sender); - - return EXIT_FAILURE; - } - g_print ("OK.\n"); - - loop = g_main_loop_new (NULL, FALSE); - - g_signal_connect_swapped (G_OBJECT (module), "stop", - G_CALLBACK (g_main_loop_quit), loop); - - g_print ("Start playing ...\n"); - - b_module_start (module); - - g_main_loop_run (loop); - g_main_loop_unref (loop); - - g_print ("Movie finished, quitting.\n"); - - g_object_unref (module); - g_object_unref (sender); - - return EXIT_SUCCESS; -} diff --git a/blib-1.1.7/test/test-movie-writer.c b/blib-1.1.7/test/test-movie-writer.c deleted file mode 100644 index eff12b9..0000000 --- a/blib-1.1.7/test/test-movie-writer.c +++ /dev/null @@ -1,87 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include -#include - -#include "blib/blib.h" - - -int -main (int argc, - char *argv[]) -{ - BMovie *movie; - GType type = G_TYPE_NONE; - GError *error = NULL; - - if (argc < 3) - { - g_printerr ("Usage: %s \n", argv[0]); - return EXIT_FAILURE; - } - - b_init (); - - if (g_strcasecmp (argv[1], "blm") == 0) - type = B_TYPE_MOVIE_BLM; - else if (g_strcasecmp (argv[1], "bml") == 0) - type = B_TYPE_MOVIE_BML; - else if (g_strcasecmp (argv[1], "gif") == 0) - type = B_TYPE_MOVIE_GIF; - else - g_printerr ("Unknown output format, " - "must be \"blm\", \"bml\" or \"gif\".\n"); - - if (!g_type_is_a (type, B_TYPE_MOVIE)) - return EXIT_FAILURE; - - if (strcmp (argv[2], "-")) - movie = b_movie_new_from_file (argv[2], FALSE, &error); - else - movie = b_movie_new_from_fd (0, &error); - - if (!movie) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error opening '%s': %s\n", argv[2], error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - if (!b_movie_save_as (movie, type, stdout, &error)) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error writing '%s': %s\n", - b_object_get_name (B_OBJECT (movie)), error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - g_printerr ("successfully wrote '%s' (%dx%d) as %s\n", - movie->title ? movie->title : b_object_get_name (B_OBJECT (movie)), - movie->width, movie->height, g_type_name (type)); - - g_object_unref (movie); - - return EXIT_SUCCESS; -} diff --git a/blib-1.1.7/test/test-receiver.c b/blib-1.1.7/test/test-receiver.c deleted file mode 100644 index e5ac95c..0000000 --- a/blib-1.1.7/test/test-receiver.c +++ /dev/null @@ -1,76 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * Daniel Mack - * - * 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. - */ - -#include - -#include "blib/blib.h" - - -static gboolean -callback (BReceiver *rec, - BPacket *packet, - gpointer callback_data) -{ - gint w, h; - - g_print ("\033[2J\033[H"); - g_print ("width %02d, height %02d, channels %02d, maxval %03d\n", - packet->header.mcu_frame_h.width, - packet->header.mcu_frame_h.height, - packet->header.mcu_frame_h.channels, - packet->header.mcu_frame_h.maxval); - - for (h = 0; h < packet->header.mcu_frame_h.height; h++) - { - for (w = 0; w < packet->header.mcu_frame_h.width; w++) - g_print ("%02x ", packet->data[h * packet->header.mcu_frame_h.width + w]); - g_print ("\n"); - } - - return TRUE; /* returning FALSE would stop reception of packets */ -} - -int -main (int argc, - char *argv[]) -{ - BReceiver *receiver; - GMainLoop *loop; - - b_init (); - - g_print ("creating receiver\n"); - receiver = b_receiver_new (callback, NULL); - g_assert (receiver); - - g_print ("making receiver listen\n"); - b_receiver_listen (receiver, 2323); - - g_print ("waiting for packets on port 2323, press ^C to stop\n"); - loop = g_main_loop_new (NULL, FALSE); - g_main_loop_run (loop); - g_main_loop_unref (loop); - loop = NULL; - - g_object_unref (receiver); - - return EXIT_SUCCESS; -} diff --git a/blib-1.1.7/test/test-sender.c b/blib-1.1.7/test/test-sender.c deleted file mode 100644 index 49b41dd..0000000 --- a/blib-1.1.7/test/test-sender.c +++ /dev/null @@ -1,67 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * Daniel Mack - * - * 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. - */ - -#include - -#include "blib/blib.h" - -int -main (int argc, - char *argv[]) -{ - BSender *sender; - guchar *data; - GError *error = NULL; - gint i; - - if (argc < 2) - { - g_printerr ("Usage: %s +\n", argv[0]); - return EXIT_FAILURE; - } - - b_init (); - - sender = b_sender_new (); - g_assert (sender); - - for (i = 1; i < argc; i++) - { - if (!b_sender_add_recipient (sender, -1, - argv[i], MCU_LISTENER_PORT, &error)) - { - g_printerr (error->message); - return EXIT_FAILURE; - } - } - - b_sender_configure (sender, 26, 20, 1, 255); - - data = g_new (guchar, 20 * 26); - - for (i = 0; i < 5; i++) - b_sender_send_frame (sender, data); - - g_free (data); - g_object_unref (sender); - - return EXIT_SUCCESS; -} diff --git a/blib-1.1.7/test/test-theme-parser.c b/blib-1.1.7/test/test-theme-parser.c deleted file mode 100644 index 000ba56..0000000 --- a/blib-1.1.7/test/test-theme-parser.c +++ /dev/null @@ -1,68 +0,0 @@ -/* blib - Library of useful things to hack the Blinkenlights - * - * Copyright (C) 2002 The Blinkenlights Crew - * Sven Neumann - * - * 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. - */ - -#include - -#include "blib/blib.h" - - -int -main (int argc, - char *argv[]) -{ - BTheme *theme; - GError *error = NULL; - - b_init (); - - if (argc < 2) - { - g_printerr ("Usage: %s \n", argv[0]); - return EXIT_FAILURE; - } - - theme = b_theme_new_from_file (argv[1], TRUE, &error); - - if (!theme) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error opening '%s': %s\n", argv[1], error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - if (!b_theme_load (theme, &error)) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error parsing '%s': %s\n", - b_object_get_name (B_OBJECT (theme)), error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - g_print ("successfully loaded '%s' (%dx%d)\n", - b_object_get_name (B_OBJECT (theme)), theme->width, theme->height); - - g_object_unref (theme); - - return EXIT_SUCCESS; -} diff --git a/blinkentools-2.9/AUTHORS b/blinkentools-2.9/AUTHORS deleted file mode 100644 index f9c576c..0000000 --- a/blinkentools-2.9/AUTHORS +++ /dev/null @@ -1,9 +0,0 @@ -Main Authors: - Sven Neumann - Daniel Mack - -HDL mode for gif2blm based on a patch from - Tino Schwarze - -HDL images for blm2gif taken by Dorit Guenter and Nadja Hannaske -and edited by Björn Barnekow. diff --git a/blinkentools-2.9/COPYING b/blinkentools-2.9/COPYING deleted file mode 100644 index d60c31a..0000000 --- a/blinkentools-2.9/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/blinkentools-2.9/ChangeLog b/blinkentools-2.9/ChangeLog deleted file mode 100644 index a1318cb..0000000 --- a/blinkentools-2.9/ChangeLog +++ /dev/null @@ -1,932 +0,0 @@ -2004-04-22 22:30 neo - - * ChangeLog: Really made 2.9 release. - -2004-04-22 22:29 neo - - * src/Makefile.am: fixed EXTRA_DIST - -2004-04-22 22:26 neo - - * ChangeLog: Made 2.9 release. - -2004-04-22 22:23 neo - - * NEWS, doc/blinkenproxy.1.in, src/blinkenproxy.c: document the - changed blinkenproxy command-line - -2004-04-14 20:16 neo - - * src/blinkenproxy.c: send the first heartbeat immidiately - -2004-04-14 18:59 neo - - * src/blinkenproxy.c: Use the new BProxyServer object. - -2004-04-14 05:17 neo - - * src/blinkenproxy.c: reverted last change, need to come up with a - proper fix - -2004-04-14 04:44 neo - - * src/blinkenproxy.c: don't bind the sender to an already used port - for no good reason - -2004-04-14 04:05 neo - - * src/blinkenproxy.c: only pull from an upstream proxy if there are - any clients - -2004-04-14 03:37 neo - - * src/blinkenproxy.c: Allow to specify a blinkenproxy host on the - command-line from which this blinkenproxy should request packages - from. - -2004-04-13 14:07 tim - - * src/.cvsignore: ignore .DS_Store - -2004-04-11 12:19 neo - - * src/b2image.c: Improved error handling for the case that the call - to link() failed. - -2004-04-09 01:10 neo - - * src/b2image.c: made the --format option mandatory when the tool - is called as b2image - -2004-04-09 00:59 neo - - * doc/b2image.1.in, scripts/b2avi, src/b2image.c, src/bplay.c: Made - the theme parameter for b2image optional. - -2004-04-08 23:12 neo - - * README, doc/b2image.1.in, src/b2image.c: renamed some - command-line options to make way for a --theme option - -2004-04-08 22:27 neo - - * doc/: Makefile.am, b2b.1.in, b2image.1.in: Install symlinks for - the alternative executable names. - -2004-04-08 13:41 neo - - * NEWS, src/b2image.c: fixed --type command-line option - -2004-04-08 13:30 tim - - * src/b2image.c: start numbering frames with 1 to be congruent to - BlinkenPaint an have it reflect the 'number of frames' for the - user - -2004-04-08 11:25 tim - - * src/b2image.c: change image count suffix to five digits because - it looks more professional ;) --- The Goddess Eris Prevails - -2004-04-08 11:23 tim - - * NEWS: update news for b2image - -2004-04-08 11:04 neo - - * src/b2image.c: Do actually parse the --type option and don't set - it to "image" when being called as "b2image". - -2004-04-08 10:58 tim - - * src/b2image.c: error message refered to unkown --theme option - - fixed - -2004-04-08 04:33 neo - - * configure.in, doc/.cvsignore, doc/Makefile.am, doc/b2b.1.in, - doc/b2image.1.in, doc/b2jpeg.1.in, doc/b2png.1.in, - src/.cvsignore, src/Makefile.am, src/b2image.c, src/b2jpeg.c, - src/b2png.c, src/bsnap.c: Combined b2png and b2jpeg into a single - binary b2image. - -2004-04-08 03:49 tim - - * doc/b2b.1.in: added --fps documentation - -2004-04-08 03:47 neo - - * doc/b2jpeg.1.in, doc/b2png.1.in, scripts/b2avi, src/Makefile.am, - src/b2jpeg.c, src/b2png.c, src/bsnap.c: Merged b2png.c and b2jpeg - into bsnap.c. Default not to create links, added --link option - and use it from b2avi. - -2004-04-08 03:36 tim - - * doc/b2b.1.in, src/b2b.c: change speed designation from - 'percentage' to 'factor' - -2004-04-08 02:28 neo - - * src/: b2jpeg.c, b2png.c: Create hardlinks for duplicate frames; - speeds up b2avi quite a bit. - -2004-04-08 01:44 tim - - * src/bmovie-mng.c: Changed tEXt element name from 'title' to - 'Title' as described in the MNG spec - -2004-04-07 20:25 neo - - * scripts/b2avi: minor improvements to the script - -2004-04-07 20:20 neo - - * ChangeLog, Makefile.am, doc/b2jpeg.1.in, doc/b2mng.1.in, - doc/b2png.1.in, doc/bsend.1.in, scripts/b2avi, src/b2jpeg.c, - src/b2png.c: Fixed bug in b2png and b2jpeg. Mention --verbose in - the man-pages. Added a simple shell script to create MPEG-4 AVI - files using blinkentools and mencoder. - -2004-04-07 19:25 neo - - * src/: b2jpeg.c, b2mng.c, b2png.c: document the --verbose - command-line option - -2004-04-07 19:06 neo - - * src/: b2jpeg.c, b2png.c: be verbose when --all and --verbose is - specified - -2004-04-07 18:47 neo - - * src/b2b.c: Added the new b2b option --fps. Allows to set a fixed - framerate. - -2004-04-07 18:44 neo - - * configure.in: output the blib version also - -2004-04-07 17:53 neo - - * configure.in, src/b2jpeg.c: Generate the b2jpeg man-page. - Corrected a minor problem with b2jpeg --all. - -2004-04-07 16:26 neo - - * NEWS, README, doc/.cvsignore, doc/Makefile.am, doc/b2jpeg.1.in, - doc/b2png.1.in, src/.cvsignore, src/Makefile.am, src/b2jpeg.c, - src/b2png.c, src/bmovie-mng.c: Changed b2png command-line - options. Added b2jpeg, basically a copy of b2png. - -2004-04-07 14:26 neo - - * doc/.cvsignore, src/b2png.c, src/bmovie-mng.c: Follow blib - changes. - -2004-04-07 01:54 neo - - * NEWS, README, configure.in, doc/.cvsignore, doc/Makefile.am, - doc/b2mng.1.in, doc/b2png.1.in, src/b2png.c: number frames - starting from 1 (?) added b2png man-page, updated NEWS and README - -2004-04-07 01:30 neo - - * src/b2png.c: Follow changes in BViewPixbuf. Added --all - command-line option to b2png. - -2004-04-07 00:19 neo - - * configure.in, src/.cvsignore, src/Makefile.am, src/b2png.c, - src/bmovie-mng.c: Depend on blib-1.1.7, use b_rectangle utilities - from bmovie-mng.c. Added rough prototype of b2png. - -2004-04-06 04:06 tim - - * doc/b2mng.1.in: typo fixed - -2004-04-06 03:46 neo - - * ChangeLog: Made 2.8 release. - -2004-04-06 03:19 tim - - * doc/b2mng.1.in: more highlighting for the command - -2004-04-06 03:11 neo - - * src/bmovie-mng.h: updated date in the header file - -2004-04-02 19:41 neo - - * NEWS, README, configure.in: Bumped version number to 2.8, updated - NEWS and README. - -2004-04-02 19:35 neo - - * doc/b2mng.1.in, src/b2mng.c, src/bmovie-mng.c, src/bmovie-mng.h: - Added --loops command-line option to b2mng similar to the bsend - options. - -2004-04-02 18:47 neo - - * configure.in, doc/.cvsignore, doc/Makefile.am, doc/b2b.1.in, - doc/b2mng.1.in: Added a manpage for b2mng. Mention b2mng(1) in - the b2b manpage. - -2004-04-02 17:47 neo - - * src/bmovie-mng.c: Clip the frame to the bounding box of changed - pixels and skip windows that fall completely outside the bounding - box. Makes a lot of our animations a good deal smaller. - -2004-04-01 12:48 neo - - * src/bmovie-mng.c: Store info about the loaded image and don't use - BASI/PAST if the loaded image is already a single window with - zero offsets. - -2004-04-01 12:25 neo - - * src/bmovie-mng.c: merged PNG and JNG parsers - -2004-04-01 11:48 neo - - * src/bmovie-mng.c: write an empty FRAM chunk when the delay does - _not_ change - -2004-03-31 23:19 neo - - * src/bmovie-mng.c: added support for JNG image data (w/o alpha - channel) - -2004-03-31 22:25 neo - - * src/bmovie-mng.c: use MNG_COLORTYPE_RGBA for more flexibility - -2004-03-31 19:45 neo - - * src/bmovie-mng.c: optimize using LOOP/ENDL - -2004-03-31 18:57 neo - - * src/bmovie-mng.c: prepare for optimizations using LOOP/ENDL, not - used yet - -2004-03-31 13:35 neo - - * src/bmovie-mng.c: Optimize the MNG file by doing the clipping - beforehand instead of doing it for each and every window. Cuts - down file-size quite a bit but seems to crash libmng :( - -2004-03-30 04:23 neo - - * src/b2mng.c: made the --verbose mode more verbose - -2004-03-30 04:13 neo - - * src/b2mng.c: added --verbose command-line option - -2004-03-30 04:01 neo - - * src/bmovie-mng.c: first working version :) - -2004-03-30 03:50 neo - - * src/bmovie-mng.c: redone large parts of BMovieMNG based on - suggestions by Gerard Juyn on mng-list - -2004-03-17 21:12 neo - - * src/bmovie-mng.c: corrected clipping parameters - -2004-03-17 12:55 neo - - * src/bmovie-mng.c: check PNG file signature before accessing PNG - chunks from a file - -2004-03-17 12:36 neo - - * src/bmovie-mng.c: Don't hide objects from the last frame. I don't - think it should be needed and at the moment, nothing is visible - anyway... - -2004-03-17 12:34 neo - - * src/bmovie-mng.c: better loop handling, don't start all from the - beginning - -2004-03-17 12:13 neo - - * src/bmovie-mng.c: further reduced file size by sorting before - compressing SHOW calls - -2004-03-17 02:30 neo - - * src/bmovie-mng.c: more cleanup before attempting a new - approach... - -2004-03-17 01:59 neo - - * src/bmovie-mng.c: minimal cleanup - -2004-03-17 01:30 neo - - * src/bmovie-mng.c: compress adjacent shows - -2004-03-17 00:37 neo - - * src/bmovie-mng.c: some fixes to the MNG header, don't specify a - wrong number of layers - -2004-03-17 00:30 neo - - * src/bmovie-mng.c: Don't set the background image invisible, - stupid! - -2004-03-17 00:25 neo - - * src/bmovie-mng.c: removed optimizations that only made the - created files larger :( - -2004-03-17 00:06 neo - - * configure.in: explicitely link zlib with libmng - -2004-03-16 23:57 neo - - * src/: b2mng.c, bmovie-mng.c: started to work on b2mng again ... - -2004-03-16 23:55 neo - - * src/b2b.c: fixed bug in short options string - -2004-03-10 00:10 neo - - * ChangeLog, NEWS, README: Make 2.7 release. - -2004-02-17 10:41 tim - - * doc/: b2b.1.in, blinkenproxy.1.in, bmultiplexer.1.in, bplay.1.in, - bsend.1.in: added home page link - -2004-02-17 09:21 tim - - * doc/.cvsignore: ignore more - -2004-02-17 08:57 tim - - * configure.in, doc/Makefile.am, doc/blinkenproxy.1.in, - doc/bmultiplexer.1.in: more man page updates - -2004-02-17 08:55 tim - - * .cvsignore: ignore mac stuff - -2004-02-17 06:07 tim - - * doc/bsend.1.in: typo fixed - -2004-02-17 04:24 tim - - * src/b2b.c: changed loop-hint options to x and X - -2004-02-17 04:21 tim - - * doc/: b2b.1.in, bplay.1.in, bsend.1.in: man page changes - -2004-02-17 03:46 neo - - * src/b2b.c: changed --loop command-line handling once more - -2004-02-17 03:30 neo - - * src/b2mng.c: removed leading newline from usage information - -2004-02-17 03:24 neo - - * src/: b2b.c, bplay.c, bsend.c: command-line cleanup - -2004-02-17 03:15 tim - - * Makefile.am, configure.in, doc/.cvsignore, doc/Makefile.am, - doc/b2b.1.in, doc/bplay.1.in, doc/bsend.1.in: new manual pages - -2004-02-17 03:14 neo - - * src/bsend.c: fixed implementation of loops - -2004-02-17 02:02 neo - - * ChangeLog, src/bsend.c: added speed and reverse command-line - arguments - -2004-02-17 01:50 neo - - * configure.in, src/bsend.c: Bumped version number to 2.7, depend - on blib-1.1.6. Set the BSender verbosity in bsend from the - command-line option. - -2004-02-17 01:44 neo - - * src/: b2b.c, b2mng.c, blinkenproxy.c, bplay.c, bsend.c: more - command-line cleanup - -2004-02-17 01:18 neo - - * src/: b2b.c, b2mng.c, blinkenproxy.c, bplay.c, bsend.c: - command-line options cleanup - -2004-02-16 23:23 neo - - * src/b2b.c: renamed --info to --meta to avoid a clash of the short - option with --invert - -2004-01-20 01:59 neo - - * ChangeLog, NEWS, README: Made 2.6 release. - -2004-01-07 21:11 neo - - * configure.in: bumped version to 2.6 - -2004-01-07 21:10 neo - - * src/bsend.c: On win32 use Sleep() instead of usleep(). - -2004-01-07 20:15 neo - - * src/bplay.c: same fix here - -2004-01-07 20:11 neo - - * src/blinkenproxy.c: moved variable inside the ifdefs so the code - compiles on win32 - -2004-01-06 23:49 neo - - * src/: blinkenproxy.c, bplay.c: Don't use UNIX signals on Win32. - -2003-12-31 04:14 neo - - * ChangeLog: Made 2.5 release. - -2003-12-31 04:13 neo - - * ChangeLog, NEWS, README, configure.in: Updates for the 2.5 - release. - -2003-12-31 03:42 neo - - * src/bplay.c: Install a signal handler to catch Ctrl-C and close - the aalib context. - -2003-12-31 03:30 neo - - * src/bplay.c: Implemented bplay --loop. - -2003-12-31 03:19 neo - - * configure.in, src/.cvsignore, src/Makefile.am, src/bplay.c: Added - a new tool named bplay, that plays movies on the console using - the new aa view. - -2003-12-25 21:10 neo - - * ChangeLog: Made 2.4 release. - -2003-12-25 21:09 neo - - * Makefile.am: Fixed EXTRA_DIST rule - -2003-12-25 21:05 neo - - * ChangeLog, Makefile.am, NEWS, README, configure.in: Added debian - files to EXTRA_DIST. Bumped the version to 2.4. Updated the - README and NEWS files. - -2003-12-25 20:40 neo - - * src/blinkenproxy.c: Cleaned up command-line handling. - -2003-12-25 19:38 neo - - * debian/: .cvsignore, changelog, control, copyright, dirs, docs, - rules: Added first draft of rules to build a debian package. - Needs more work. - -2003-12-24 00:41 neo - - * configure.in, src/blinkenproxy.c: Depend on blib-1.1.1. Check - the heartbeat protocol version. Sanity check values before - reconfiguring the sender. - -2003-12-22 13:46 neo - - * src/blinkenproxy.c: Print the number of clients when receiving - SIGUSR1. - -2003-12-22 13:38 neo - - * src/blinkenproxy.c: Fixed a stupid bug that caused clients to be - removed twice. Caused the proxy to crash pretty soon. - -2003-12-21 21:32 neo - - * ChangeLog: Made 2.3 (development) release. - -2003-12-21 20:41 neo - - * ChangeLog, NEWS, README, configure.in: Updates for the 2.3 - development release. - -2003-12-21 18:31 neo - - * src/blinkenproxy.c: Fixed a minor issue with the signal handler. - -2003-12-21 17:58 neo - - * src/blinkenproxy.c: Install a signal handler for SIGINT so you - can cleanly quit the proxy by pressing Ctrl-C. - -2003-12-21 17:49 neo - - * src/blinkenproxy.c: Need to create BSender before using it :-/ - Added some useful output and removed useless debugging stuff. - -2003-12-21 14:36 neo - - * src/blinkenproxy.c: Rewrote blinkenproxy: - - Keep a hash table of clients. For each client, register a timeout - that removes it after 12 * B_HEARTBEAT_INTERVAL. If a hearbeat - packet arrives, remove this timeout and set a new one. - -2003-12-21 13:53 neo - - * src/: b2b.c, b2mng.c, blinkenproxy.c, bsend.c: Made all tools - call b_init(), not g_type_init(). - -2003-12-21 13:43 neo - - * src/blinkenproxy.c: Follow BReceiver changes in blib. - -2003-12-21 12:12 neo - - * configure.in: We use the blib-1.1 API now, so depend on it. - -2003-12-21 12:09 neo - - * src/: blinkenproxy.c, bmultiplexer.c, bsend.c: Follow BSender API - change and pass -1 as source port. - -2003-12-19 23:48 neo - - * src/blinkenproxy.c: Check magic packet headers before accessing - the data. - -2003-12-19 03:32 neo - - * src/blinkenproxy.c: Follow blib API changes. - -2003-12-19 02:47 neo - - * configure.in: Removed unnecessary autoconf macro. - -2003-05-22 18:22 hannes - - * src/blinkenproxy.c: cleaned up code - -2003-05-21 02:02 hannes - - * src/: blinkenproxy.c, bmultiplexer.c: blinkenproxy - -2003-04-26 02:09 hannes - - * src/.cvsignore: added blinkenproxy - -2003-04-26 02:07 hannes - - * src/: Makefile.am, blinkenproxy.c: blinkenproxy - -2002-12-28 14:49 neo - - * ChangeLog: Made 2.2 release. - -2002-12-28 14:41 neo - - * NEWS, README: Updates for the 2.2. release. - -2002-12-28 03:20 neo - - * configure.in, src/Makefile.am, src/b2b.c: Allow to gamma adjust - movies using b2b --gamma . Requires blib >= 1.0.0. - -2002-12-27 19:05 neo - - * ChangeLog: Updated ChangeLog for 2.2 release. - -2002-12-27 15:30 neo - - * autogen.sh, configure.in, src/b2b.c, src/b2mng.c, src/bsend.c: - Warn if getopt_long is not available and mention that long - command-line options won't work. - -2002-12-08 16:25 neo - - * .cvsignore: updated .cvsignore for newer versions of automake - -2002-10-21 11:30 neo - - * NEWS, configure.in, src/bsend.c: bsend uses localhost if no host - is specified. Bumped version number to 2.2. - -2002-09-29 18:37 neo - - * ChangeLog: Made 2.1 Release. - -2002-09-29 18:34 neo - - * AUTHORS, README: updates - -2002-09-29 18:27 neo - - * ChangeLog, NEWS, configure.in, src/bmultiplexer.c: final touch - -2002-09-29 17:41 neo - - * src/b2b.c: Include number of frames in info output. - -2002-09-28 17:18 neo - - * src/b2b.c: improved output of --help - -2002-09-28 17:16 neo - - * src/b2b.c: Added --info command-line flag. - -2002-09-27 18:12 neo - - * NEWS, src/bmultiplexer.c: Use MCU_LISTENER_PORT as defined in - bprotocol.h. Updated NEWS. - -2002-09-27 18:06 neo - - * src/.cvsignore: shut up CVS - -2002-09-27 17:13 daniel - - * src/: fft.c, fft.h: wech. - -2002-09-27 16:58 daniel - - * configure.in: wech. - -2002-09-27 16:54 daniel - - * src/: Makefile.am, audio.c, audio.h, bsound.c, bsound.h, midi.c, - midi.h: removed bsound - will move to blinkenmedia - -2002-09-25 17:40 daniel - - * src/bmultiplexer.c: verbosity - -2002-09-25 17:36 daniel - - * src/: Makefile.am, bmultiplexer.c: added bmultiplex, a udp - multiplexer - -2002-09-23 13:17 neo - - * src/bsend.c: Use MCU_LISTENER_PORT as defined in - blib/bprotocol.h. - -2002-09-21 20:35 daniel - - * src/: bsound.c, bsound.h: started to rework bsound - -2002-09-19 19:26 neo - - * configure.in: Use AC_CHECK_LIB() to test for libesd. - -2002-09-19 14:12 neo - - * src/bsend.c: Ignore the movies loop flag. The new default is not - to loop; use --loop to loop the movie. - -2002-09-19 14:05 daniel - - * src/audio.c: fix - -2002-09-19 13:51 daniel - - * src/audio.c: fix - -2002-09-13 18:05 daniel - - * src/: audio.c, audio.h, bsound.c: more blinkensound - -2002-09-13 17:47 daniel - - * src/: audio.c, bsound.c: lots of work in bsound - -2002-09-10 15:51 neo - - * src/bsend.c: Changed output on error. - -2002-09-10 04:54 neo - - * README: typo - -2002-09-10 04:10 daniel - - * src/Makefile.am: -lm - -2002-09-10 04:08 daniel - - * configure.in, src/Makefile.am, src/audio.c: esd stuff - -2002-09-10 02:29 daniel - - * configure.in, src/.cvsignore, src/Makefile.am, src/audio.c, - src/audio.h, src/bsound.c, src/bsound.h, src/fft.c, src/fft.h, - src/midi.c, src/midi.h: copied sound stuff from old repository. - does not work at all, dont try this at home - -2002-09-09 17:00 daniel - - * src/: b2b.c, b2mng.c: include fixes - -2002-09-05 14:24 neo - - * configure.in, src/b2b.c, src/bsend.c: Use new parser functions - from blib. - -2002-09-04 18:41 neo - - * src/bsend.c: Better error reporting. - -2002-09-04 15:55 neo - - * src/bsend.c: Output more information about the movie that is - being played. - -2002-09-04 15:45 neo - - * src/bsend.c: Improved command-line handling. Allow to set/unset - the loop flag. Read from stdin when - is given as filename. Allow - to specify host:port. - -2002-09-04 05:27 neo - - * ChangeLog, README, configure.in: Made 0.5 release, depends on - blib >= 0.5. - -2002-09-04 04:08 neo - - * ChangeLog, NEWS, README, src/.cvsignore, src/Makefile.am, - src/bsend.c: Moved bsend utility from blinkensim to blinkentools. - -2002-09-03 17:36 neo - - * NEWS, src/bmovie-mng.c: misc minor changes - -2002-09-03 12:45 neo - - * src/bmovie-mng.c: Some code cleanup. - -2002-09-03 11:03 neo - - * ChangeLog, NEWS, README, src/Makefile.am, src/b2mng.c, - src/bmovie-mng.c, src/bmovie-mng.h: Moved MNG functions into a - seperate file. - -2002-09-03 02:35 neo - - * configure.in, src/b2b.c: Check for blib >= 0.4. When converting - from GIF to BML, default to bits = 4. - -2002-09-03 00:32 neo - - * README: Updated README. - -2002-09-03 00:25 neo - - * .cvsignore: shut up CVS - -2002-09-03 00:23 neo - - * src/b2b.c: Allow to set/unset the loop flag via --loop. - -2002-09-03 00:07 neo - - * src/b2mng.c: Added --loop command-line option to force looped - animations. - -2002-09-02 23:54 neo - - * src/b2mng.c: Improved b2mng. - -2002-09-02 22:42 neo - - * configure.in, src/.cvsignore, src/Makefile.am, src/b2mng.c: Added - first draft of b2mng. Still has timing problems and no theme - support. - -2002-09-02 22:03 daniel - - * src/: blm2gif.c, blmplay.c, gif2blm.c: included config.h in a - couple of files to make the old tools build again. - -2002-09-02 16:54 neo - - * src/b2b.c: Added a sanity checks so we catch the case that blib - doesn't set an error (which is a bug in blib of course). - -2002-09-02 12:33 neo - - * configure.in, src/b2b.c: Made support for long command-line - options optional. - -2002-08-30 16:16 neo - - * src/b2b.c: Added flip effect (unfortunately vertical flip is - broken in blib-0.3). - -2002-08-30 15:07 neo - - * src/b2b.c: Use the effects as provided by blib. - -2002-08-30 13:53 neo - - * configure.in, src/Makefile.am: Create symlinks b2blm, b2bml and - b2gif. - -2002-08-30 13:45 neo - - * configure.in, src/.cvsignore, src/Makefile.am, src/b2b.c: Bumped - version number to 2.0. Depend on blib >= 0.3. Added new tool b2b - which will replace the old ones. Left old code in place since it - doesn't collide and it has some special features not (yet) in - b2b. - -2002-01-31 13:35 tim - - * README: changed documentation on gif2blm --hdl feature - -2002-01-29 22:45 neo - - * AUTHORS, NEWS, README, src/Makefile.am, src/blm2gif.c, - src/gif2blm.c, src/hdl.h: Added --hdl mode to gif2blm based on a - patch by Tino Schwarze. Very cool feature ;-) - -2002-01-29 21:53 neo - - * NEWS, configure.in, src/.cvsignore, src/Makefile.am, - src/blm2gif.c, src/hdl-huge.h, src/hdl.h: Added --hdl-huge mode - to blm2gif. Bumped version number to 1.1. - -2001-11-29 17:19 neo - - * ChangeLog, NEWS, configure.in: Made 1.0 release. - -2001-11-21 19:55 neo - - * src/blmplay.c: Rewrote mysleep() function. Hopefully works better - on MacOS X now. - -2001-11-21 04:09 neo - - * ChangeLog, src/blmplay.c: 2001-11-21 Sven Neumann - - - * src/blmplay.c: improved frame timing. - -2001-11-21 02:34 neo - - * ChangeLog, NEWS, README, configure.in, src/.cvsignore, - src/Makefile.am, src/blm2gif.c, src/blmplay.c, src/blutils.c, - src/blutils.h: 2001-11-21 Sven Neumann - - * NEWS - * README - * configure.in: Made 0.9.2 release. - - * src/Makefile.am: - * src/blutils.[ch]: new files with common code to read - blm files. - - * src/blm2gif.c: use routine from blutils. - - * src/blmplay.c: new tool to play blm files on the text - console. - -2001-11-21 00:18 neo - - * .cvsignore, AUTHORS, ChangeLog, Makefile.am, NEWS, README, - autogen.sh, configure.in, src/.cvsignore, src/Makefile.am, - src/blm2gif.c, src/gif-load.c, src/gif-load.h, src/gif-save.c, - src/gif-save.h, src/gif2blm.c, src/hdl-large.h, src/hdl-medium.h, - src/hdl-small.h, src/hdl.h: Import of blinkentools version 0.9.1 - into CVS. - diff --git a/blinkentools-2.9/INSTALL b/blinkentools-2.9/INSTALL deleted file mode 100644 index 54caf7c..0000000 --- a/blinkentools-2.9/INSTALL +++ /dev/null @@ -1,229 +0,0 @@ -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - These are generic installation instructions. - - 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 only 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. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. 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. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. 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. - -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=c89 CFLAGS=-O2 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 must use a version of `make' that -supports the `VPATH' variable, such as 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 `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have 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. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' 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. - - 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'. - -Optional Features -================= - - 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. - -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 `--target=TYPE' option 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 - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--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. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/blinkentools-2.9/Makefile.am b/blinkentools-2.9/Makefile.am deleted file mode 100644 index 53f442a..0000000 --- a/blinkentools-2.9/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -## Makefile.am for blinkentools - -SUBDIRS = src doc - -EXTRA_DIST = \ - autogen.sh \ - debian/changelog \ - debian/control \ - debian/copyright \ - debian/dirs \ - debian/docs \ - debian/rules \ - scripts/b2avi diff --git a/blinkentools-2.9/Makefile.in b/blinkentools-2.9/Makefile.in deleted file mode 100644 index 25e3ae8..0000000 --- a/blinkentools-2.9/Makefile.in +++ /dev/null @@ -1,543 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -AA_CFLAGS = @AA_CFLAGS@ -AA_LIBS = @AA_LIBS@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_CFLAGS = @BLIB_CFLAGS@ -BLIB_LIBS = @BLIB_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_OLDTOOLS_FALSE = @ENABLE_OLDTOOLS_FALSE@ -ENABLE_OLDTOOLS_TRUE = @ENABLE_OLDTOOLS_TRUE@ -EXEEXT = @EXEEXT@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_LIBMNG_FALSE = @HAVE_LIBMNG_FALSE@ -HAVE_LIBMNG_TRUE = @HAVE_LIBMNG_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBMNG = @LIBMNG@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_CFLAGS = @PIXBUF_CFLAGS@ -PIXBUF_LIBS = @PIXBUF_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build_alias = @build_alias@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -SUBDIRS = src doc - -EXTRA_DIST = \ - autogen.sh \ - debian/changelog \ - debian/control \ - debian/copyright \ - debian/dirs \ - debian/docs \ - debian/rules \ - scripts/b2avi - -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = - -RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ - ps-recursive install-info-recursive uninstall-info-recursive \ - all-recursive install-data-recursive install-exec-recursive \ - installdirs-recursive install-recursive uninstall-recursive \ - check-recursive installcheck-recursive -DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \ - COPYING ChangeLog INSTALL Makefile.am NEWS aclocal.m4 \ - config.guess config.h.in config.sub configure configure.in \ - depcomp install-sh missing mkinstalldirs -DIST_SUBDIRS = $(SUBDIRS) -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: - -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) - -$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ - else :; fi - -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: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOHEADER) - touch $(srcdir)/config.h.in - -distclean-hdr: - -rm -f config.h stamp-h1 -uninstall-info-am: - -# 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. -$(RECURSIVE_TARGETS): - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; 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; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if (etags --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - else \ - include_option=--include; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = . -distdir = $(PACKAGE)-$(VERSION) - -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } - -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print - -distdir: $(DISTFILES) - $(am__remove_distdir) - mkdir $(distdir) - $(mkinstalldirs) $(distdir)/debian $(distdir)/doc $(distdir)/scripts - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -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 $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__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 - $(am__remove_distdir) - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(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 ../.. && $(mkinstalldirs) "$$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-gzip \ - && rm -f $(distdir).tar.gz \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @echo "$(distdir).tar.gz is ready for distribution" | \ - sed 'h;s/./=/g;p;x;p;x' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { 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: check-recursive -all-am: Makefile config.h -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -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 - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ - clean-generic clean-recursive ctags ctags-recursive dist \ - dist-all dist-gzip distcheck distclean distclean-generic \ - distclean-hdr distclean-recursive distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am dvi-recursive info \ - info-am info-recursive install install-am install-data \ - install-data-am install-data-recursive install-exec \ - install-exec-am install-exec-recursive install-info \ - install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \ - ps-recursive tags tags-recursive uninstall uninstall-am \ - uninstall-info-am uninstall-info-recursive uninstall-recursive - -# 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: diff --git a/blinkentools-2.9/NEWS b/blinkentools-2.9/NEWS deleted file mode 100644 index 77579a9..0000000 --- a/blinkentools-2.9/NEWS +++ /dev/null @@ -1,78 +0,0 @@ -Version 2.9 ------------ -- Let blinkenproxy use the new BProxyServer object from blib. -- Allow hierachical blinkenproxies. -- Added --fps command-line option for b2b. -- Added new tool b2image, based on BViewPixbuf. - Allows creation of PNG, JPEG and BMP still image files. -- Added example script b2avi. Uses b2b, b2image and mencoder to create - MPEG-4 movies from Blinkenlights Movie files. - -Version 2.8 ------------ -- Implemented theme mode for b2mng, added b2mng man-page. - -Version 2.7 ------------ -- Cleaned up command-line options, added some new ones. -- Added manpages (so that you know what changed...) - -Version 2.6 ------------ -- Added Win32 port. - -Version 2.5 ------------ -- Added bplay, a text console movie player based on blib-aa. - -Version 2.4 ------------ -- Fixed some bugs in blinkenproxy. -- Added rules to build a debian package. - -Version 2.3 (development release using blib-1.1) ------------ -- Added blinkenproxy. - -Version 2.2 ------------ -- Added --gamma option to b2b. -- Made bsend send to localhost if no host is specified. - -Version 2.1 ------------ -- Added bmultiplexer. -- Improved bsend and b2b. - -Version 2.0 - the next generation blinkentools ----------------------------------------------- -- Added b2b, the swiss army knife of blinkenlights. -- Added a first prototype of b2mng. -- Added bsend, a simple movie sender that works nicely with blinkensim. -- Declared the old tools blm2gif, gif2blm and blmplay as obsolete. - You can still build them by passing --enable-oldtools to configure. - - -Version 1.1 ------------ -- Added --hdl-huge mode to blm2gif. -- Added --hdl mode to gif2blm based on a patch from - Tino Schwarze . - -Version 1.0 ------------ -- Fixed blmplay timing. -- Declared code as stable. - -Version 0.9.2 -------------- -- Added blmplay. -- Moved common code into blutils.[ch]. - -Version 0.9.1 -------------- -- Improved GIF optimization of blm2gif. Up to 40% smaller files. - -Version 0.9 ------------ -- Initial public release, contains blm2gif and gif2blm. diff --git a/blinkentools-2.9/README b/blinkentools-2.9/README deleted file mode 100644 index 52f70dd..0000000 --- a/blinkentools-2.9/README +++ /dev/null @@ -1,66 +0,0 @@ -This is version 2.9 of blinkentools, the next generation set of -command-line utilities for Blinkenlights. - -Check out http://www.blinkenlights.de/ to learn more about the -Blinkenlights project. - -This release of blinkentools includes the following tools: - - b2b - a converter between the different formats for Blinkenlights movies. - It is best used thru one of its aliases: b2blm, b2bml and b2gif. - - b2mng - converts Blinkenlights movies to MNG files. - b2png - converts single Blinkenlights movie frames to PNG images. - b2jpeg - converts single Blinkenlights movie frames to JPEG images. - (these three tools use the same themes that blinkensim uses) - - blinkenproxy - an advanced multiplexer that acts as a server from which - clients can request a stream of Blinkenlights UDP packets - - bmultiplexer - forwards a stream of Blinkenlights UDP packets to multiple - recipients. - - bplay - shows Blinkenlights movies on the text console (needs aalib) - - bsend - reads Blinkenlights movies and sends them over the net using the - Blinkenlights network protocol. - -If you pass the --enable-oldtools option to configure, the following -obsoleted tools are built as well: - - blm2gif - creates animated GIFs from Blinkenlights movies - gif2blm - creates Blinkenlights movies from animated GIFs - blmplay - plays Blinkenlights movies to the text console - -More tools may be added in future releases. - - -The scripts directory holds a shell script called b2avi that uses b2b, -b2png and mencoder (from the mplayer package) to create a DivX4 from a -Blinkenlights movie. - - -blinkentools-2.9 depends on blib >= 1.1.7 and glib-2.0. The b2mng -utility depends on libmng-1.0 (the newer the better). You will also -need pkg-config in order to compile blinkentools. If you installed -blib into a different prefix than pkg-config, you may need to adapt -the PKG_CONFIG_PATH environment variable. See the pkg-config(1) -man-page. - -The file INSTALL has generic installation instructions. It all boils -down to calling './configure' in the toplevel dir, then 'make' followed -by 'make install'. - - -The code is released under the terms of the GNU General Public License -version 2 any later version. You will find a copy of this license in the -file COPYING. - - -Feel free to send questions, bug-reports, feature requests and patches -to the author Sven Neumann . - - -Have Blinkenfun, - - Sven Neumann diff --git a/blinkentools-2.9/aclocal.m4 b/blinkentools-2.9/aclocal.m4 deleted file mode 100644 index d554219..0000000 --- a/blinkentools-2.9/aclocal.m4 +++ /dev/null @@ -1,1066 +0,0 @@ -# generated automatically by aclocal 1.7.9 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# Do all the work for Automake. -*- Autoconf -*- - -# 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. - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 10 - -AC_PREREQ([2.54]) - -# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow -# the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl - -# 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_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -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], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])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) -AM_MISSING_PROG(AMTAR, tar) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -# We need awk for the "check" target. 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([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -]) -]) - - -# 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_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $1 | $1:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) - -# Copyright 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - -# 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. -AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.7.9])]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# _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], -[AC_FOREACH([_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])]) - -# -# Check to make sure that the build environment is sane. -# - -# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 3 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# 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 ( - 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 - rm -f conftest.file - 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 - - 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)]) - -# -*- Autoconf -*- - - -# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 3 - -# 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 supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# AM_AUX_DIR_EXPAND - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# 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. - -# Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50]) - -AC_DEFUN([AM_AUX_DIR_EXPAND], [ -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# AM_PROG_INSTALL_STRIP - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# 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="\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# -*- Autoconf -*- -# Copyright (C) 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 1 - -# 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])]) - -# serial 5 -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - - -# 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", "GCJ", or "OBJC". -# 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 - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$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'. - 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 - 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 - : > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - 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 - ;; - none) break ;; - esac - # 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. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} 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 - # (even with -Werror). So we grep stderr for any message - # that says an option was ignored. - if grep 'ignoring option' 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, -[ --disable-dependency-tracking Speeds up one-time builds - --enable-dependency-tracking Do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -#serial 2 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _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. FIXME. This creates each `.P' file that we will -# 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" ac_aux_dir="$ac_aux_dir"]) -]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 5 - -AC_PREREQ(2.52) - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -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])]) - -# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- - -# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_PREREQ([2.52]) - -# serial 6 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - -# Add --enable-maintainer-mode option to configure. -# From Jim Meyering - -# Copyright 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - - -# Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# @defmac AC_PROG_CC_STDC -# @maindex PROG_CC_STDC -# @ovindex CC -# If the C compiler in not in ANSI C mode by default, try to add an option -# to output variable @code{CC} to make it so. This macro tries various -# options that select ANSI C on some system or another. It considers the -# compiler to be in ANSI C mode if it handles function prototypes correctly. -# -# If you use this macro, you should check after calling it whether the C -# compiler has been set to accept ANSI C; if not, the shell variable -# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source -# code in ANSI C, you can make an un-ANSIfied copy of it by using the -# program @code{ansi2knr}, which comes with Ghostscript. -# @end defmac - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_REQUIRE([AC_PROG_CC]) -AC_BEFORE([$0], [AC_C_INLINE]) -AC_BEFORE([$0], [AC_C_CONST]) -dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require -dnl a magic option to avoid problems with ANSI preprocessor commands -dnl like #elif. -dnl FIXME: can't do this because then AC_AIX won't work due to a -dnl circular dependency. -dnl AC_BEFORE([$0], [AC_PROG_CPP]) -AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C]) -AC_CACHE_VAL(am_cv_prog_cc_stdc, -[am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - AC_TRY_COMPILE( -[#include -#include -#include -#include -/* 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; -} -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; -], [ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -], -[am_cv_prog_cc_stdc="$ac_arg"; break]) -done -CC="$ac_save_CC" -]) -if test -z "$am_cv_prog_cc_stdc"; then - AC_MSG_RESULT([none needed]) -else - AC_MSG_RESULT([$am_cv_prog_cc_stdc]) -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac -]) - -AU_DEFUN([fp_PROG_CC_STDC], [AM_PROG_CC_STDC]) - - -dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) -dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page -dnl also defines GSTUFF_PKG_ERRORS on error -AC_DEFUN(PKG_CHECK_MODULES, [ - succeeded=no - - if test -z "$PKG_CONFIG"; then - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - AC_MSG_CHECKING(for $2) - - if $PKG_CONFIG --exists "$2" ; then - AC_MSG_RESULT(yes) - succeeded=yes - - AC_MSG_CHECKING($1_CFLAGS) - $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` - AC_MSG_RESULT($$1_CFLAGS) - - AC_MSG_CHECKING($1_LIBS) - $1_LIBS=`$PKG_CONFIG --libs "$2"` - AC_MSG_RESULT($$1_LIBS) - else - $1_CFLAGS="" - $1_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` - ifelse([$4], ,echo $$1_PKG_ERRORS,) - fi - - AC_SUBST($1_CFLAGS) - AC_SUBST($1_LIBS) - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - ifelse([$3], , :, [$3]) - else - ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) - fi -]) - - - diff --git a/blinkentools-2.9/autogen.sh b/blinkentools-2.9/autogen.sh deleted file mode 100755 index dcc1855..0000000 --- a/blinkentools-2.9/autogen.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh -# Run this to generate all the initial makefiles, etc. - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd $srcdir -PROJECT="the Blinkenlights commandline tools" -TEST_TYPE=-f -FILE=src/blm2gif.c - -DIE=0 - -(autoconf --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have autoconf installed to compile $PROJECT." - echo "Download the appropriate package for your distribution," - echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1 -} - -(automake --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have automake installed to compile $PROJECT." - echo "Get ftp://ftp.cygnus.com/pub/home/tromey/automake-1.2d.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 -} - -echo "I am testing that you have the required versions of autoconf, automake." -echo - -echo "Testing autoconf... " -VER=`autoconf --version | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` -if expr $VER \>= 2.13 >/dev/null; then - echo "looks OK." -else - echo "too old! (Need 2.13, have $VER)" - DIE=1 -fi - -echo "Testing automake... " -VER=`automake --version | grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` -if expr $VER \>= 1.4 >/dev/null; then - echo "looks OK." -else - echo "too old! (Need 1.4, have $VER)" - DIE=1 -fi - -echo - -if test "$DIE" -eq 1; then - exit 1 -fi - -test $TEST_TYPE $FILE || { - echo "You must run this script in the top-level $PROJECT directory" - exit 1 -} - -if test -z "$*"; then - echo "I am going to run ./configure with no arguments - if you wish " - echo "to pass any to it, please specify them on the $0 command line." -fi - -case $CC in -*xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;; -esac - -if test -z "$ACLOCAL_FLAGS"; then - - acdir=`aclocal --print-ac-dir` - m4list="" - - for file in $m4list - do - if [ ! -f "$acdir/$file" ]; then - echo "WARNING: aclocal's directory is $acdir, but..." - echo " no file $acdir/$file" - echo " You may see fatal macro warnings below." - echo " If these files are installed in /some/dir, set the ACLOCAL_FLAGS " - echo " environment variable to \"-I /some/dir\", or install" - echo " $acdir/$file." - echo "" - fi - done -fi - -autogen_dirs="." - -for i in $autogen_dirs; do - echo "Processing $i..." - - cd $i - aclocal $ACLOCAL_FLAGS - - # optionally feature autoheader - if grep AM_CONFIG_HEADER configure.in >/dev/null ; then - (autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader - fi - - automake --add-missing $am_opt - autoconf -done - -cd $ORIGDIR - -$srcdir/configure --enable-maintainer-mode "$@" - -echo -echo "Now type 'make' to compile $PROJECT." diff --git a/blinkentools-2.9/config.guess b/blinkentools-2.9/config.guess deleted file mode 100755 index e8c6fc0..0000000 --- a/blinkentools-2.9/config.guess +++ /dev/null @@ -1,1432 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2004-01-05' - -# 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 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. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -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 ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -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 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # 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 - -trap 'exit 1' 1 2 15 - -# 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. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; 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) >/dev/null 2>&1 ; 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 - -# 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 tupples: *-*-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". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-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. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - 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 - # 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/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pegasos:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # 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 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. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - 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. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - 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'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - 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) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # 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:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* 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 \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - 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 [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 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 [ -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 [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - 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 [ ${HP_ARCH} = "hppa2.0w" ] - then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - 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 && $dummy && exit 0 - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - 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 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - 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/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - 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/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` 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 ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - 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. - echo i386-sequent-sysv4 - exit 0 ;; - 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. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /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 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - 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 i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 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) - 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 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *: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 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; - *:DRAGONFLY:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#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 - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#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 -# 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 - printf ("vax-dec-ultrix\n"); exit (0); -# 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 && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -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 - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/blinkentools-2.9/config.h.in b/blinkentools-2.9/config.h.in deleted file mode 100644 index 3f4c425..0000000 --- a/blinkentools-2.9/config.h.in +++ /dev/null @@ -1,55 +0,0 @@ -/* config.h.in. Generated from configure.in by autoheader. */ - -/* Define to 1 if your libc has support for getopt_long(). */ -#undef HAVE_GETOPT_LONG - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* 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 header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_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_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* 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 - -/* 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 version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION diff --git a/blinkentools-2.9/config.sub b/blinkentools-2.9/config.sub deleted file mode 100755 index 463186d..0000000 --- a/blinkentools-2.9/config.sub +++ /dev/null @@ -1,1537 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2004-01-05' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# 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 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. - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# 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. - -# 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. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -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 ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -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 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - 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 - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -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) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | msp430 \ - | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # 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) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32r-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - or32 | or32-*) - basic_machine=or32-unknown - os=-coff - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# 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) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -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. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -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 - ;; - -nsk*) - os=-nsk - ;; - # 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 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -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. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - 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 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - 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 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-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 - ;; - *-next) - os=-nextstep3 - ;; - *-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 - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -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 - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - 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 - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/blinkentools-2.9/configure b/blinkentools-2.9/configure deleted file mode 100755 index 4a8b80b..0000000 --- a/blinkentools-2.9/configure +++ /dev/null @@ -1,5777 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59. -# -# Copyright (C) 2003 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 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+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# 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'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="src/b2b.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S ENABLE_OLDTOOLS_TRUE ENABLE_OLDTOOLS_FALSE CPP EGREP PKG_CONFIG BLIB_CFLAGS BLIB_LIBS AA_CFLAGS AA_LIBS HAVE_AA_TRUE HAVE_AA_FALSE PIXBUF_CFLAGS PIXBUF_LIBS HAVE_PIXBUF_TRUE HAVE_PIXBUF_FALSE LIBMNG HAVE_LIBMNG_TRUE HAVE_LIBMNG_FALSE PACAKGE LIBOBJS LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# 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. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -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 - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -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 | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$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 ;; - - -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 ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - 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 ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=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 ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - 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'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -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 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - 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 - - -# 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 its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - 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 - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# 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 this package 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 \`..'] - -_ACEOF - - cat <<_ACEOF -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] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --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] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_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 -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --disable-dependency-tracking Speeds up one-time builds - --enable-dependency-tracking Do not reject slow dependency extractors - --enable-oldtools build old-fashioned and obsoleted tools - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --without-libmng don't build apps that need libmng (b2mng) - -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 - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style 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 - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd "$ac_popdir" - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright (C) 2003 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 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -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` -hostinfo = `(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=. - echo "PATH: $as_dir" -done - -} >&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_sep= -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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$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 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >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 - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - 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. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -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 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`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. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -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 - - - - - - - - - - - - - - - - - - - - -PACKAGE=blinkentools -VERSION=2.9 - -am__api_version="1.7" -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# 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. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_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 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -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. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$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' - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftest.file -# 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 ( - 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 - rm -f conftest.file - 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". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -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 $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 - - # test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -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=$PACKAGE - VERSION=$VERSION - - -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"} - - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. - - - - - ac_config_headers="$ac_config_headers config.h" - - -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi; - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" - -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -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 - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out 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. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; 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 | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$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 -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* 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 -std1 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 -std1. */ -int osf4_cc_array ['\x00' == 0 ? 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 -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f 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 -DEPDIR="${am__leading_dot}deps" - - ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -# Check whether --enable-dependency-tracking or --disable-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='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - - -depcc="$CC" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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'. - 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 - 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 - : > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - 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 - ;; - none) break ;; - esac - # 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. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} 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 - # (even with -Werror). So we grep stderr for any message - # that says an option was ignored. - if grep 'ignoring option' 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 -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$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 - - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - - - - - -echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5 -echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6 -if test "${am_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* 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; -} -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 -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_prog_cc_stdc="$ac_arg"; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -CC="$ac_save_CC" - -fi - -if test -z "$am_cv_prog_cc_stdc"; then - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 -else - echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6 -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac - - - -if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-Wall[\ \ ]*) ;; - *) CFLAGS="$CFLAGS -Wall" ;; - esac -fi - - -# Check whether --enable-oldtools or --disable-oldtools was given. -if test "${enable_oldtools+set}" = set; then - enableval="$enable_oldtools" - -fi; - - -if test "x$enable_oldtools" = "xyes"; then - ENABLE_OLDTOOLS_TRUE= - ENABLE_OLDTOOLS_FALSE='#' -else - ENABLE_OLDTOOLS_TRUE='#' - ENABLE_OLDTOOLS_FALSE= -fi - - - -# Check for getopt_long -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 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f 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 -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -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 - - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#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)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -if test "${ac_cv_header_getopt_h+set}" = set; then - echo "$as_me:$LINENO: checking for getopt.h" >&5 -echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6 -if test "${ac_cv_header_getopt_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5 -echo "${ECHO_T}$ac_cv_header_getopt_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking getopt.h usability" >&5 -echo $ECHO_N "checking getopt.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking getopt.h presence" >&5 -echo $ECHO_N "checking getopt.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: getopt.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: getopt.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: getopt.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: getopt.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: getopt.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: getopt.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: getopt.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: getopt.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for getopt.h" >&5 -echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6 -if test "${ac_cv_header_getopt_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_getopt_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5 -echo "${ECHO_T}$ac_cv_header_getopt_h" >&6 - -fi -if test $ac_cv_header_getopt_h = yes; then - echo "$as_me:$LINENO: checking for getopt_long" >&5 -echo $ECHO_N "checking for getopt_long... $ECHO_C" >&6 -if test "${ac_cv_func_getopt_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define getopt_long to an innocuous variant, in case declares getopt_long. - For example, HP-UX 11i declares gettimeofday. */ -#define getopt_long innocuous_getopt_long - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getopt_long (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef getopt_long - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getopt_long (); -/* 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_getopt_long) || defined (__stub___getopt_long) -choke me -#else -char (*f) () = getopt_long; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != getopt_long; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_getopt_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_getopt_long=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getopt_long" >&5 -echo "${ECHO_T}$ac_cv_func_getopt_long" >&6 -if test $ac_cv_func_getopt_long = yes; then - have_getopt_long=yes - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETOPT_LONG 1 -_ACEOF - -fi - -fi - - - -if test x$have_getopt_long != xyes; then - { echo "$as_me:$LINENO: WARNING: -*** Looks as if your libc doesn't have support for getopt_long(). *** -*** Long command-line options starting with two dashes won't work. *** -" >&5 -echo "$as_me: WARNING: -*** Looks as if your libc doesn't have support for getopt_long(). *** -*** Long command-line options starting with two dashes won't work. *** -" >&2;} -fi - - -# Check for blib - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for blib >= 1.1.7" >&5 -echo $ECHO_N "checking for blib >= 1.1.7... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "blib >= 1.1.7" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking BLIB_CFLAGS" >&5 -echo $ECHO_N "checking BLIB_CFLAGS... $ECHO_C" >&6 - BLIB_CFLAGS=`$PKG_CONFIG --cflags "blib >= 1.1.7"` - echo "$as_me:$LINENO: result: $BLIB_CFLAGS" >&5 -echo "${ECHO_T}$BLIB_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking BLIB_LIBS" >&5 -echo $ECHO_N "checking BLIB_LIBS... $ECHO_C" >&6 - BLIB_LIBS=`$PKG_CONFIG --libs "blib >= 1.1.7"` - echo "$as_me:$LINENO: result: $BLIB_LIBS" >&5 -echo "${ECHO_T}$BLIB_LIBS" >&6 - else - BLIB_CFLAGS="" - BLIB_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - BLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "blib >= 1.1.7"` - echo $BLIB_PKG_ERRORS - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - : - else - { { echo "$as_me:$LINENO: error: Library requirements (blib >= 1.1.7) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 -echo "$as_me: error: Library requirements (blib >= 1.1.7) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} - { (exit 1); exit 1; }; } - fi - -BLIB_VERSION=`$PKG_CONFIG --modversion blib` - -# Check for blib-aa - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for blib-aa = $BLIB_VERSION" >&5 -echo $ECHO_N "checking for blib-aa = $BLIB_VERSION... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "blib-aa = $BLIB_VERSION" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking AA_CFLAGS" >&5 -echo $ECHO_N "checking AA_CFLAGS... $ECHO_C" >&6 - AA_CFLAGS=`$PKG_CONFIG --cflags "blib-aa = $BLIB_VERSION"` - echo "$as_me:$LINENO: result: $AA_CFLAGS" >&5 -echo "${ECHO_T}$AA_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking AA_LIBS" >&5 -echo $ECHO_N "checking AA_LIBS... $ECHO_C" >&6 - AA_LIBS=`$PKG_CONFIG --libs "blib-aa = $BLIB_VERSION"` - echo "$as_me:$LINENO: result: $AA_LIBS" >&5 -echo "${ECHO_T}$AA_LIBS" >&6 - else - AA_CFLAGS="" - AA_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - AA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "blib-aa = $BLIB_VERSION"` - - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - have_aa=yes - else - have_aa=no - fi - - - -if test $have_aa = "yes"; then - HAVE_AA_TRUE= - HAVE_AA_FALSE='#' -else - HAVE_AA_TRUE='#' - HAVE_AA_FALSE= -fi - - -# Check for blib-pixbuf - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or set the PKG_CONFIG environment variable" - echo "*** to the full path to pkg-config." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for blib-pixbuf = $BLIB_VERSION" >&5 -echo $ECHO_N "checking for blib-pixbuf = $BLIB_VERSION... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "blib-pixbuf = $BLIB_VERSION" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking PIXBUF_CFLAGS" >&5 -echo $ECHO_N "checking PIXBUF_CFLAGS... $ECHO_C" >&6 - PIXBUF_CFLAGS=`$PKG_CONFIG --cflags "blib-pixbuf = $BLIB_VERSION"` - echo "$as_me:$LINENO: result: $PIXBUF_CFLAGS" >&5 -echo "${ECHO_T}$PIXBUF_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking PIXBUF_LIBS" >&5 -echo $ECHO_N "checking PIXBUF_LIBS... $ECHO_C" >&6 - PIXBUF_LIBS=`$PKG_CONFIG --libs "blib-pixbuf = $BLIB_VERSION"` - echo "$as_me:$LINENO: result: $PIXBUF_LIBS" >&5 -echo "${ECHO_T}$PIXBUF_LIBS" >&6 - else - PIXBUF_CFLAGS="" - PIXBUF_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - PIXBUF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "blib-pixbuf = $BLIB_VERSION"` - - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - have_pixbuf=yes - else - have_pixbuf=no - fi - - - -if test $have_pixbuf = "yes"; then - HAVE_PIXBUF_TRUE= - HAVE_PIXBUF_FALSE='#' -else - HAVE_PIXBUF_TRUE='#' - HAVE_PIXBUF_FALSE= -fi - - -# Check for libmng - -# Check whether --with-libmng or --without-libmng was given. -if test "${with_libmng+set}" = set; then - withval="$with_libmng" - -fi; -have_mng=no -if test x$with_libmng != xno && test -z "$LIBMNG"; then - echo "$as_me:$LINENO: checking for mng_create in -lmng" >&5 -echo $ECHO_N "checking for mng_create in -lmng... $ECHO_C" >&6 -if test "${ac_cv_lib_mng_mng_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmng -lz -lm $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mng_create (); -int -main () -{ -mng_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_mng_mng_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_mng_mng_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_mng_mng_create" >&5 -echo "${ECHO_T}$ac_cv_lib_mng_mng_create" >&6 -if test $ac_cv_lib_mng_mng_create = yes; then - if test "${ac_cv_header_libmng_h+set}" = set; then - echo "$as_me:$LINENO: checking for libmng.h" >&5 -echo $ECHO_N "checking for libmng.h... $ECHO_C" >&6 -if test "${ac_cv_header_libmng_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_libmng_h" >&5 -echo "${ECHO_T}$ac_cv_header_libmng_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking libmng.h usability" >&5 -echo $ECHO_N "checking libmng.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking libmng.h presence" >&5 -echo $ECHO_N "checking libmng.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: libmng.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: libmng.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: libmng.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: libmng.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: libmng.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: libmng.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: libmng.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: libmng.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: libmng.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: libmng.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: libmng.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: libmng.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: libmng.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: libmng.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: libmng.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: libmng.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for libmng.h" >&5 -echo $ECHO_N "checking for libmng.h... $ECHO_C" >&6 -if test "${ac_cv_header_libmng_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_libmng_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_libmng_h" >&5 -echo "${ECHO_T}$ac_cv_header_libmng_h" >&6 - -fi -if test $ac_cv_header_libmng_h = yes; then - have_mng=yes -else - { echo "$as_me:$LINENO: WARNING: *** b2mng will not be built (MNG header not found) ***" >&5 -echo "$as_me: WARNING: *** b2mng will not be built (MNG header not found) ***" >&2;} -fi - - -else - { echo "$as_me:$LINENO: WARNING: *** b2mng will not be built (MNG library not found) ***" >&5 -echo "$as_me: WARNING: *** b2mng will not be built (MNG library not found) ***" >&2;} -fi - - echo "$as_me:$LINENO: result: $have_mng" >&5 -echo "${ECHO_T}$have_mng" >&6 - if test "$have_mng" = yes; then - LIBMNG="-lmng -lz" - fi -fi - - - - -if test "$have_mng" = yes; then - HAVE_LIBMNG_TRUE= - HAVE_LIBMNG_FALSE='#' -else - HAVE_LIBMNG_TRUE='#' - HAVE_LIBMNG_FALSE= -fi - - - - - - - - ac_config_files="$ac_config_files Makefile doc/Makefile doc/b2b.1 doc/b2image.1 doc/b2mng.1 doc/bsend.1 doc/bplay.1 doc/bmultiplexer.1 doc/blinkenproxy.1 src/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, don't put newlines in cache variables' values. -# 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. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *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 \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - 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}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ 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[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${ENABLE_OLDTOOLS_TRUE}" && test -z "${ENABLE_OLDTOOLS_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"ENABLE_OLDTOOLS\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"ENABLE_OLDTOOLS\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_AA_TRUE}" && test -z "${HAVE_AA_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_AA\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_AA\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_PIXBUF_TRUE}" && test -z "${HAVE_PIXBUF_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_PIXBUF\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_PIXBUF\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_LIBMNG_TRUE}" && test -z "${HAVE_LIBMNG_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_LIBMNG\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_LIBMNG\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $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} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# 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+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# 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'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -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 - --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 commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -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=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - 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 -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "doc/b2b.1" ) CONFIG_FILES="$CONFIG_FILES doc/b2b.1" ;; - "doc/b2image.1" ) CONFIG_FILES="$CONFIG_FILES doc/b2image.1" ;; - "doc/b2mng.1" ) CONFIG_FILES="$CONFIG_FILES doc/b2mng.1" ;; - "doc/bsend.1" ) CONFIG_FILES="$CONFIG_FILES doc/bsend.1" ;; - "doc/bplay.1" ) CONFIG_FILES="$CONFIG_FILES doc/bplay.1" ;; - "doc/bmultiplexer.1" ) CONFIG_FILES="$CONFIG_FILES doc/bmultiplexer.1" ;; - "doc/blinkenproxy.1" ) CONFIG_FILES="$CONFIG_FILES doc/blinkenproxy.1" ;; - "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - 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_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 to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t -s,@MAINT@,$MAINT,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -s,@LN_S@,$LN_S,;t t -s,@ENABLE_OLDTOOLS_TRUE@,$ENABLE_OLDTOOLS_TRUE,;t t -s,@ENABLE_OLDTOOLS_FALSE@,$ENABLE_OLDTOOLS_FALSE,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@PKG_CONFIG@,$PKG_CONFIG,;t t -s,@BLIB_CFLAGS@,$BLIB_CFLAGS,;t t -s,@BLIB_LIBS@,$BLIB_LIBS,;t t -s,@AA_CFLAGS@,$AA_CFLAGS,;t t -s,@AA_LIBS@,$AA_LIBS,;t t -s,@HAVE_AA_TRUE@,$HAVE_AA_TRUE,;t t -s,@HAVE_AA_FALSE@,$HAVE_AA_FALSE,;t t -s,@PIXBUF_CFLAGS@,$PIXBUF_CFLAGS,;t t -s,@PIXBUF_LIBS@,$PIXBUF_LIBS,;t t -s,@HAVE_PIXBUF_TRUE@,$HAVE_PIXBUF_TRUE,;t t -s,@HAVE_PIXBUF_FALSE@,$HAVE_PIXBUF_FALSE,;t t -s,@LIBMNG@,$LIBMNG,;t t -s,@HAVE_LIBMNG_TRUE@,$HAVE_LIBMNG_TRUE,;t t -s,@HAVE_LIBMNG_FALSE@,$HAVE_LIBMNG_FALSE,;t t -s,@PACAKGE@,$PACAKGE,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - # 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. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #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. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # 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. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -# Compute $ac_file's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $ac_file | $ac_file:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X$ac_file | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'`/stamp-h$_am_stamp_count -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`(dirname "$mf") 2>/dev/null || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - else - continue - fi - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} - { (exit 1); exit 1; }; }; } - - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# 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 || { (exit 1); exit 1; } -fi - - -echo "$as_me:$LINENO: result: -Build options: - Version $VERSION - blib version $BLIB_VERSION - Install prefix $prefix - -Tools: - b2b yes - b2image $have_pixbuf - b2mng $have_mng - blinkenproxy yes - bmultiplexer yes - bplay $have_aa - bsend yes -" >&5 -echo "${ECHO_T} -Build options: - Version $VERSION - blib version $BLIB_VERSION - Install prefix $prefix - -Tools: - b2b yes - b2image $have_pixbuf - b2mng $have_mng - blinkenproxy yes - bmultiplexer yes - bplay $have_aa - bsend yes -" >&6 diff --git a/blinkentools-2.9/configure.in b/blinkentools-2.9/configure.in deleted file mode 100644 index 2e4ba88..0000000 --- a/blinkentools-2.9/configure.in +++ /dev/null @@ -1,114 +0,0 @@ -AC_INIT(src/b2b.c) - -PACKAGE=blinkentools -VERSION=2.9 - -AM_INIT_AUTOMAKE($PACKAGE,$VERSION) - -AM_CONFIG_HEADER(config.h) - -AM_MAINTAINER_MODE - -ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" - -AC_PROG_CC -AC_PROG_LN_S -AM_PROG_CC_STDC - - -changequote(,)dnl -if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-Wall[\ \ ]*) ;; - *) CFLAGS="$CFLAGS -Wall" ;; - esac -fi -changequote([,])dnl - - -AC_ARG_ENABLE(oldtools, - [ --enable-oldtools build old-fashioned and obsoleted tools]) -AM_CONDITIONAL(ENABLE_OLDTOOLS, test "x$enable_oldtools" = "xyes") - - -# Check for getopt_long -AC_CHECK_HEADER(getopt.h, - [AC_CHECK_FUNC(getopt_long, - have_getopt_long=yes - AC_DEFINE(HAVE_GETOPT_LONG, 1, - [Define to 1 if your libc has support for getopt_long().]))]) - -if test x$have_getopt_long != xyes; then - AC_MSG_WARN([ -*** Looks as if your libc doesn't have support for getopt_long(). *** -*** Long command-line options starting with two dashes won't work. *** -]) -fi - - -# Check for blib -PKG_CHECK_MODULES(BLIB, blib >= 1.1.7) -BLIB_VERSION=`$PKG_CONFIG --modversion blib` - -# Check for blib-aa -PKG_CHECK_MODULES(AA, blib-aa = $BLIB_VERSION, - have_aa=yes, have_aa=no) -AM_CONDITIONAL(HAVE_AA, test $have_aa = "yes") - -# Check for blib-pixbuf -PKG_CHECK_MODULES(PIXBUF, blib-pixbuf = $BLIB_VERSION, - have_pixbuf=yes, have_pixbuf=no) -AM_CONDITIONAL(HAVE_PIXBUF, test $have_pixbuf = "yes") - -# Check for libmng -AC_ARG_WITH(libmng, [ --without-libmng don't build apps that need libmng (b2mng)]) -have_mng=no -if test x$with_libmng != xno && test -z "$LIBMNG"; then - AC_CHECK_LIB(mng, mng_create, - [AC_CHECK_HEADER(libmng.h, - have_mng=yes, - [AC_MSG_WARN(*** b2mng will not be built (MNG header not found) ***)])], - [AC_MSG_WARN(*** b2mng will not be built (MNG library not found) ***)], - -lz -lm) - AC_MSG_RESULT($have_mng) - if test "$have_mng" = yes; then - LIBMNG="-lmng -lz" - fi -fi - -AC_SUBST(LIBMNG) -AM_CONDITIONAL(HAVE_LIBMNG, test "$have_mng" = yes) - - -AC_SUBST(PACAKGE) -AC_SUBST(VERSION) - - -AC_OUTPUT([ -Makefile -doc/Makefile -doc/b2b.1 -doc/b2image.1 -doc/b2mng.1 -doc/bsend.1 -doc/bplay.1 -doc/bmultiplexer.1 -doc/blinkenproxy.1 -src/Makefile -]) - -AC_MSG_RESULT([ -Build options: - Version $VERSION - blib version $BLIB_VERSION - Install prefix $prefix - -Tools: - b2b yes - b2image $have_pixbuf - b2mng $have_mng - blinkenproxy yes - bmultiplexer yes - bplay $have_aa - bsend yes -]) diff --git a/blinkentools-2.9/debian/changelog b/blinkentools-2.9/debian/changelog deleted file mode 100644 index 5e3489d..0000000 --- a/blinkentools-2.9/debian/changelog +++ /dev/null @@ -1,5 +0,0 @@ -blinkentools (2.3.0) unstable; urgency=low - - * unofficial debian packages - - -- Sven Neumann Tue, 23 Dec 2003 05:12:00 +0100 diff --git a/blinkentools-2.9/debian/control b/blinkentools-2.9/debian/control deleted file mode 100644 index d9f9e89..0000000 --- a/blinkentools-2.9/debian/control +++ /dev/null @@ -1,11 +0,0 @@ -Source: blinkentools -Priority: optional -Maintainer: Sven Neumann -Build-Depends: debhelper (>> 3.0.0), autoconf -Standards-Version: 3.5.6 - -Package: blinkentools -Section: utils -Architecture: any -Depends: libblib -Description: command-line utilities for Blinkenlights diff --git a/blinkentools-2.9/debian/copyright b/blinkentools-2.9/debian/copyright deleted file mode 100644 index 2d02824..0000000 --- a/blinkentools-2.9/debian/copyright +++ /dev/null @@ -1,29 +0,0 @@ -This package was debianized by Sven Neumann -Mon Dec 22 20:22:42 CET 2003 - -It was downloaded from http://sven.gimp.org/blinkenlights - -Upstream Authors: - - Sven Neumann - Michael Natterer - Daniel Mack - -Copyright: - - 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. - -On Debian GNU/Linux systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. diff --git a/blinkentools-2.9/debian/dirs b/blinkentools-2.9/debian/dirs deleted file mode 100644 index e772481..0000000 --- a/blinkentools-2.9/debian/dirs +++ /dev/null @@ -1 +0,0 @@ -usr/bin diff --git a/blinkentools-2.9/debian/docs b/blinkentools-2.9/debian/docs deleted file mode 100644 index ba8894c..0000000 --- a/blinkentools-2.9/debian/docs +++ /dev/null @@ -1,2 +0,0 @@ -README - diff --git a/blinkentools-2.9/debian/rules b/blinkentools-2.9/debian/rules deleted file mode 100755 index 95f77f4..0000000 --- a/blinkentools-2.9/debian/rules +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/make -f - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -# This is the debhelper compatability version to use. -export DH_COMPAT=3 - -DEVPACKAGE=$(shell dh_listpackages | grep -- -udeb.*dev$$) -VERSION=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2) -ARCH=$(shell dpkg --print-architecture) - - -configure: configure-dist - -configure-dist: $(BUILD_DIST)/configure-stamp - - -$(BUILD_DIST)/configure-stamp: - dh_testdir - - mkdir -p $(BUILD_DIST) - - cd $(BUILD_DIST) && \ - ../configure --prefix=/usr --disable-gtk-doc - - touch $@ - -build: build-dist - -build-dist: configure-dist $(BUILD_DIST)/build-stamp - -$(BUILD_DIST)/build-stamp: - dh_testdir - - $(MAKE) -C $(BUILD_DIST) - - touch $@ - -clean: - dh_testdir - dh_testroot - - -$(MAKE) distclean - -rm -f install-test-stamp - -rm -rf $(BUILD_DIST) - - dh_clean - -install: install-dist - -install-test: install-test-stamp -install-test-stamp: - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - touch $@ - -install-dist: build-dist install-test - - $(MAKE) -C $(BUILD_DIST) install prefix=$(CURDIR)/debian/tmp/usr - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - - dh_movefiles - dh_installdocs - dh_installchangelogs ChangeLog - dh_link - dh_strip - dh_compress - dh_fixperms - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/blinkentools-2.9/depcomp b/blinkentools-2.9/depcomp deleted file mode 100755 index edb5d38..0000000 --- a/blinkentools-2.9/depcomp +++ /dev/null @@ -1,479 +0,0 @@ -#! /bin/sh - -# depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 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. - -# Originally written by Alexandre Oliva . - -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 -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -fi - -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# 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 - -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. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## 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). -## - 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 -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## 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. - tr ' ' ' -' < "$tmpdepfile" | -## 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. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -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 -eq 0; then : - else - 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 ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -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. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=$? - - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname="$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - 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" - ;; - -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. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - tmpdepfile1="$dir.libs/$base.lo.d" - tmpdepfile2="$dir.libs/$base.d" - "$@" -Wc,-MD - else - tmpdepfile1="$dir$base.o.d" - tmpdepfile2="$dir$base.d" - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - if test -f "$tmpdepfile1"; then - tmpdepfile="$tmpdepfile1" - else - tmpdepfile="$tmpdepfile2" - fi - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#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 $1 != '--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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - 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 $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - 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. - -*|$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" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - 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 $1 != '--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 '/^# [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, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 diff --git a/blinkentools-2.9/doc/Makefile.am b/blinkentools-2.9/doc/Makefile.am deleted file mode 100644 index 5d87994..0000000 --- a/blinkentools-2.9/doc/Makefile.am +++ /dev/null @@ -1,47 +0,0 @@ -## Makefile.am for doc - -if HAVE_AA -bplay = bplay.1 -endif - -if HAVE_LIBMNG -b2mng = b2mng.1 -endif - -if HAVE_PIXBUF -b2image = b2image.1 -endif - -man_MANS = \ - b2b.1 \ - bsend.1 \ - bmultiplexer.1 \ - blinkenproxy.1 \ - $(b2image) \ - $(b2mng) \ - $(bplay) - - -install-data-hook: - cd $(DESTDIR)$(mandir)/man1; \ - for i in b2blm b2bml b2gif; do \ - rm -f $$i.1; \ - $(LN_S) b2b.1 $$i.1; \ - done -if HAVE_PIXBUF - cd $(DESTDIR)$(mandir)/man1; \ - for i in b2jpeg b2png; do \ - rm -f $$i.1; \ - $(LN_S) b2image.1 $$i.1; \ - done -endif - -uninstall-local: - for i in b2blm b2bml b2gif; do \ - rm -f $(DESTDIR)$(mandir)/man1/$$i.1; \ - done -if HAVE_PIXBUF - for i in b2jpeg b2png; do \ - rm -f $(DESTDIR)$(mandir)/man1/$$i.1; \ - done -endif diff --git a/blinkentools-2.9/doc/Makefile.in b/blinkentools-2.9/doc/Makefile.in deleted file mode 100644 index 1a23e15..0000000 --- a/blinkentools-2.9/doc/Makefile.in +++ /dev/null @@ -1,374 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -AA_CFLAGS = @AA_CFLAGS@ -AA_LIBS = @AA_LIBS@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_CFLAGS = @BLIB_CFLAGS@ -BLIB_LIBS = @BLIB_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_OLDTOOLS_FALSE = @ENABLE_OLDTOOLS_FALSE@ -ENABLE_OLDTOOLS_TRUE = @ENABLE_OLDTOOLS_TRUE@ -EXEEXT = @EXEEXT@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_LIBMNG_FALSE = @HAVE_LIBMNG_FALSE@ -HAVE_LIBMNG_TRUE = @HAVE_LIBMNG_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBMNG = @LIBMNG@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_CFLAGS = @PIXBUF_CFLAGS@ -PIXBUF_LIBS = @PIXBUF_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build_alias = @build_alias@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -@HAVE_AA_TRUE@bplay = bplay.1 - -@HAVE_LIBMNG_TRUE@b2mng = b2mng.1 - -@HAVE_PIXBUF_TRUE@b2image = b2image.1 - -man_MANS = \ - b2b.1 \ - bsend.1 \ - bmultiplexer.1 \ - blinkenproxy.1 \ - $(b2image) \ - $(b2mng) \ - $(bplay) - -subdir = doc -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = b2b.1 b2image.1 b2mng.1 bsend.1 bplay.1 \ - bmultiplexer.1 blinkenproxy.1 -DIST_SOURCES = - -NROFF = nroff -MANS = $(man_MANS) -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am b2b.1.in b2image.1.in \ - b2mng.1.in blinkenproxy.1.in bmultiplexer.1.in bplay.1.in \ - bsend.1.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -b2b.1: $(top_builddir)/config.status b2b.1.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -b2image.1: $(top_builddir)/config.status b2image.1.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -b2mng.1: $(top_builddir)/config.status b2mng.1.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -bsend.1: $(top_builddir)/config.status bsend.1.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -bplay.1: $(top_builddir)/config.status bplay.1.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -bmultiplexer.1: $(top_builddir)/config.status bmultiplexer.1.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -blinkenproxy.1: $(top_builddir)/config.status blinkenproxy.1.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -uninstall-info-am: - -man1dir = $(mandir)/man1 -install-man1: $(man1_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(man1dir) - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \ - $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \ - done -uninstall-man1: - @$(NORMAL_UNINSTALL) - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \ - rm -f $(DESTDIR)$(man1dir)/$$inst; \ - done -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(MANS) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(man1dir) -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: install-man - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-data-hook - -install-exec-am: - -install-info: install-info-am - -install-man: install-man1 - -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 - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am uninstall-local uninstall-man - -uninstall-man: uninstall-man1 - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-man1 install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ - uninstall-am uninstall-info-am uninstall-local uninstall-man \ - uninstall-man1 - - -install-data-hook: - cd $(DESTDIR)$(mandir)/man1; \ - for i in b2blm b2bml b2gif; do \ - rm -f $$i.1; \ - $(LN_S) b2b.1 $$i.1; \ - done -@HAVE_PIXBUF_TRUE@ cd $(DESTDIR)$(mandir)/man1; \ -@HAVE_PIXBUF_TRUE@ for i in b2jpeg b2png; do \ -@HAVE_PIXBUF_TRUE@ rm -f $$i.1; \ -@HAVE_PIXBUF_TRUE@ $(LN_S) b2image.1 $$i.1; \ -@HAVE_PIXBUF_TRUE@ done - -uninstall-local: - for i in b2blm b2bml b2gif; do \ - rm -f $(DESTDIR)$(mandir)/man1/$$i.1; \ - done -@HAVE_PIXBUF_TRUE@ for i in b2jpeg b2png; do \ -@HAVE_PIXBUF_TRUE@ rm -f $(DESTDIR)$(mandir)/man1/$$i.1; \ -@HAVE_PIXBUF_TRUE@ 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: diff --git a/blinkentools-2.9/doc/b2b.1.in b/blinkentools-2.9/doc/b2b.1.in deleted file mode 100644 index 72a8433..0000000 --- a/blinkentools-2.9/doc/b2b.1.in +++ /dev/null @@ -1,135 +0,0 @@ -.\" b2b man page -.\" -.\" Project Blinkenlights 2004 -.\" -.Dd February 24, 2004 -.Dt B2B 1 -.Os -.Sh NAME -.Nm b2b , -.Nm b2bml , -.Nm b2blm , -.Nm b2gif -.Nd convert Blinkenlights movies -.Sh SYNOPSIS -.Nm -.Op Fl options -.Op Ar filename -.Sh DESCRIPTION -.Nm -is designed to read, write and convert Blinkenlights movies in various -file formats. You can use it as a filter program reading movies in all -supported formats from standard input and writing it to standard output -in another format. The supported file types are BML, BLM and GIF. -.Nm -automatically detects the file type by looking at the incoming data. -.Pp -If -.Ar filename -is omitted, the data is read via standard input. The output is sent to -standard output unless an output file is given via the command line. -.Sh OPTIONS -The following options are recognized by b2b. -.Pp -.Bl -tag -width "--concatenate" -compact -.It Fl o Ar outfile -.It Fl -output Ar outfile -Send output to -.Ar outfile -instead of standard output. -.Pp -.It Fl t Ar [blm|bml|gif] -.It Fl -type Ar [blm|bml|gif] -Specifies output file type. If -.Nm -has been invoked as -.Nm b2bml , -.Nm b2blm , -or -.Nm b2gif -the corresdonding output format is assumed automatically. The option -can then be omitted. -.Pp -.It Fl b Ar number -.It Fl -bits Ar number -Specify movie resoultion in bits. -.Pp -.It Fl B Ar value -.It Fl -maxval Ar value -Specify maximum movie resolution in value -.Pp -.It Fl i -.It Fl -invert -Invert the file. This works for both monochrome and greyscale movies. -.Pp -.It Fl g Ar factor -.It Fl -gamma Ar factor -Change gamma value. -.Pp -.It Fl f -.It Fl -hflip -Flip the movie horizontally -.Pp -.It Fl F -.It Fl -vflip -Flip the movie vertically -.Pp -.It Fl r -.It Fl -reverse -Reverse playback of the file. -.Pp -.It Fl s Ar factor -.It Fl -speed Ar factor -Changes the playback speed of the file. Speed is stated as a factor relative -to the current playback speed. For example, a value of 0.5 slows down -playback of the movie to 50%. A value of 2 bumps playback speed to 200%. -.Pp -.It Fl c Ar frames-per-second -.It Fl -fps Ar frames-per-second -Reformats the movie to fixed-duration frames. The duration is defined by -.Ar frames-per-second -which specifies how many frames per seconds will be created. This option -can be used in combination with the single image converter -.Xr b2image -to create images for movie compression. -A low -.Fl frames-per-second -together with short frame durations in the source movie might skip certain -frames effectively removing them from the movie. -.Pp -.It Fl x -.It Fl -loop-hint -Generate a loop hint information in the output file. If the output file format -is GIF, a endlessly repeating GIF animation is created. In case of BLM and BML -a loop hint is included in the file. -.It Fl X -.It Fl -no-loop-hint -Generate a loop hint information in the output file. If the output file format -is GIF, a endlessly repeating GIF animation is created. In case of BLM and BML -a loop hint is included in the file. -.Ar number -times -.Pp -.It Fl m -.It Fl -meta -Display meta information of the file -.Pp -.It Fl ? -.It Fl -help -Display help -.Pp -.It Fl V -.It Fl -version -Display version number and quit immediately. -.El -.Sh AUTHOR -.An Sven Neumann Aq sven@gimp.org -.Sh SEE ALSO -Project Blinkenlights Home Page http://www.blinkenlights.de/ -.Pp -.Xr b2image 1 , -.Xr b2mng 1 , -.Xr bsend 1 , -.Xr blib 3 -.Sh DIAGNOSTICS -.Ex -std diff --git a/blinkentools-2.9/doc/b2image.1.in b/blinkentools-2.9/doc/b2image.1.in deleted file mode 100644 index 8901c12..0000000 --- a/blinkentools-2.9/doc/b2image.1.in +++ /dev/null @@ -1,103 +0,0 @@ -.\" b2image man page -.\" -.\" Project Blinkenlights 2004 -.\" -.Dd April 8, 2004 -.Dt B2IMAGE 1 -.Os -.Sh NAME -.Nm b2image , -.Nm b2jpeg , -.Nm b2png -.Nd renders an image from a Blinkenlights movie frame -.Sh SYNOPSIS -.Nm -.Op Fl options -.Op Ar filename -.Sh DESCRIPTION -.Nm -takes a Blinkenlights movie (in BML, BLM or GIF format) and creates an -image of a single frame. -.Nm -can also use blinkenthemes and create -the same output that blinkensim diplays. -.Nm -automatically detects the file type by looking at the incoming data. -.Pp -If -.Ar filename -is omitted, the data is read via standard input. The output is written to -the specified output file. -.Nm -can not (yet) write to stdout. -.Sh OPTIONS -The following options are recognized by -.Nm . -.Pp -.Bl -tag -width "--concatenate" -compact -.It Fl o Ar outfile -.It Fl -output Ar outfile -Send output to -.Ar outfile . -When the --all option is used, this value is used as a prefix for all -output files. -.Pp -.It Fl t Ar name -.It Fl -theme Ar name -Use the theme with the given -.Ar name . -Themes are searched in the blib themes directory or in the directories -specified in the B_THEME_PATH environment variable. -.Pp -.It Fl f Ar [png|jpeg] -.It Fl -format Ar [png|jpeg] -Specifies output file format. If -.Nm -has been invoked as -.Nm b2jpeg -or -.Nm b2png -the corresdonding output format is assumed automatically. The option -can then be omitted. -.Pp -.It Fl i -.It Fl -index Ar number -Create an image from the frame with the given index. Frames are numbered -starting with 1. If this options is omitted the first frame is used. -.Pp -.It Fl a -.It Fl -all -Create a numbered sequence of images from all frames in the movie. -.Pp -.It Fl q -.It Fl -quality Ar number -Controls the JPEG compression factor. This is a value between 0 and 100, -the default quality is 75. -.Pp -.It Fl l -.It Fl -link -Use hardlinks for duplicate frames. Saves time and disk space. -.Pp -.It Fl v -.It Fl -verbose -Be more verbose. -.Pp -.It Fl ? -.It Fl -help -Display help -.Pp -.It Fl V -.It Fl -version -Display version number and quit immediately. -.El -.Sh AUTHOR -.An Sven Neumann Aq sven@gimp.org -.Sh SEE ALSO -Project Blinkenlights Home Page http://www.blinkenlights.de/ -.Pp -.Xr b2b 1 , -.Xr b2mng 1 , -.Xr blinkensim 1 , -.Xr blib 3 -.Sh DIAGNOSTICS -.Ex -std diff --git a/blinkentools-2.9/doc/b2mng.1.in b/blinkentools-2.9/doc/b2mng.1.in deleted file mode 100644 index 89cbce7..0000000 --- a/blinkentools-2.9/doc/b2mng.1.in +++ /dev/null @@ -1,81 +0,0 @@ -.\" b2mng man page -.\" -.\" Project Blinkenlights 2004 -.\" -.Dd April 2, 2004 -.Dt B2MNG 1 -.Os -.Sh NAME -.Nm b2mng -.Nd convert Blinkenlights movies to MNG animations -.Sh SYNOPSIS -.Nm -.Op Fl options -.Op Ar filename -.Sh DESCRIPTION -.Nm -takes a Blinkenlights movie (in BML, BLM or GIF format) and creates a -MNG (Multiple-image Network Graphics) animation from it. By default -the generated animation is a simple grayscale movie where a pixel -represents a window. But -.Nm -can also use blinkenthemes and create -the same output that blinkensim diplays. -.Nm -automatically detects the file type by looking at the incoming data. -.Pp -If -.Ar filename -is omitted, the data is read via standard input. The output is sent to -standard output unless an output file is given via the command line. -.Sh OPTIONS -The following options are recognized by -.Nm . -.Pp -.Bl -tag -width "--concatenate" -compact -.It Fl o Ar outfile -.It Fl -output Ar outfile -Send output to -.Ar outfile -instead of standard output. -.Pp -.It Fl t Ar name -.It Fl -theme Ar name -Use the theme with the given -.Ar name . -Themes are searched in the blib themes directory or in the directories -specified in the B_THEME_PATH environment variable. -.Pp -.It Fl l -.It Fl -loop -Create an animation that loops forever. -.Pp -.It Fl L Ar number -.It Fl -loops Ar number -Create an animation that loops -.Ar number -times. -.Pp -.It Fl v -.It Fl -verbose -Be more verbose. -.Pp -.It Fl ? -.It Fl -help -Display help -.Pp -.It Fl V -.It Fl -version -Display version number and quit immediately. -.El -.Sh AUTHOR -.An Sven Neumann Aq sven@gimp.org -.Sh SEE ALSO -Project Blinkenlights Home Page http://www.blinkenlights.de/ -.Pp -.Xr b2b 1 , -.Xr b2png 1 , -.Xr blinkensim 1 , -.Xr blib 3 -.Sh DIAGNOSTICS -.Ex -std diff --git a/blinkentools-2.9/doc/blinkenproxy.1.in b/blinkentools-2.9/doc/blinkenproxy.1.in deleted file mode 100644 index c0a5298..0000000 --- a/blinkentools-2.9/doc/blinkenproxy.1.in +++ /dev/null @@ -1,78 +0,0 @@ -.\" blinkenproxy man page -.\" -.\" Project Blinkenlights 2004 -.\" -.Dd April 22, 2004 -.Dt BLINKENPROXY 1 -.Os -.Sh NAME -.Nm blinkenproxy -.Nd redistribute Blinkenlights Protocol streams on request -.Sh SYNOPSIS -.Nm -.Op Fl options -.Op Ar hostname[:port] -.Op Ar receive-port -.Op Ar heartbeat-port -.Sh DESCRIPTION -.Nm -receives a Blinkenlights Protocol data stream and redistributes it to multiple hosts -on request. Any host that wants to receive a copy of the stream has to send a -Blinkenlights Protocol Heartbeat Packet at least once a minute. -.Nm -in return sends a copy of the data stream to the requesting host. -.Pp -Support for -.Nm -is built into -.Xr blinkensim 1 -to have the simulator receive a permanent stream from an unkown source via -.Nm -.Pp -.Nm -is similar to -.Xr bmultiplexer 1 -but does redistribution on-demand instead of explicitly. -.Pp -.Ar hostname[:port] -specifies an upstream blinkenproxy to request the stream from. -.Pp -.Ar receive-port -is the port where -.Nm -receives Blinkenlights Protocol data packets. If -.Ar receive-port -is omitted, the default port (2323) is used. Don't use this option if -you specified an upstream proxy already. -.Pp -.Ar heartbeat-port -is the port where -.Nm -waits for new requests to arrive. If -.Ar heartbeat-port -is omitted, the default port (4242) is used. -.Sh OPTIONS -The following options are recognized by -.Nm -. -.Bl -tag -width "--concatenate" -compact -.Pp -.It Fl ? -.It Fl -help -Display help -.Pp -.It Fl V -.It Fl -version -Display version number and quit immediately. -.El -.Sh AUTHOR -.An Sven Neumann Aq sven@gimp.org -.Sh SEE ALSO -Project Blinkenlights Home Page http://www.blinkenlights.de/ -.Pp -.Xr bmultiplexer 1 , -.Xr bsend 1 , -.Xr blinkensim 1 , -.Xr blib 3 -.Sh DIAGNOSTICS -.Ex -std diff --git a/blinkentools-2.9/doc/bmultiplexer.1.in b/blinkentools-2.9/doc/bmultiplexer.1.in deleted file mode 100644 index 969cdd8..0000000 --- a/blinkentools-2.9/doc/bmultiplexer.1.in +++ /dev/null @@ -1,62 +0,0 @@ -.\" bmultiplexer man page -.\" -.\" Project Blinkenlights 2004 -.\" -.Dd February 24, 2004 -.Dt BMULTIPLEXER 1 -.Os -.Sh NAME -.Nm bmultiplexer -.Nd receive Blinkenlights Protocol streams and forward them to multiple hosts -.Sh SYNOPSIS -.Nm -.Op Fl options -.Ar receive-port -.Ar host Ns Op : Ns port -.Ar ... -.Sh DESCRIPTION -.Nm -redistributes a Blinkenlights Protocol data stream to multiple hosts. Each -packet received is instantly passed to every host that is specified on the -command line. -.Pp -.Ar receive-port -is the UDP port where -.Nm -waits for Blinkenlights Protocol data packets to arrive. -If -.Ar port -is not specified, -.Ar receive-port -will be used for redistribution to the specified host. -.Pp -.Nm -is similar to -.Xr blinkenproxy 1 -but does redistribution explicity instead of on-demand. -.Sh OPTIONS -The following options are recognized by -.Nm -. -.Pp -.Bl -tag -width "--concatenate" -compact -.Pp -.It Fl ? -.It Fl -help -Display help -.Pp -.It Fl V -.It Fl -version -Display version number and quit immediately. -.El -.Sh AUTHOR -.An Daniel Mack Aq daniel@yoobay.net -.Sh SEE ALSO -Project Blinkenlights Home Page http://www.blinkenlights.de/ -.Pp -.Xr blinkenproxy 1 , -.Xr bsend 1 , -.Xr blinkensim 1 , -.Xr blib 3 -.Sh DIAGNOSTICS -.Ex -std diff --git a/blinkentools-2.9/doc/bplay.1.in b/blinkentools-2.9/doc/bplay.1.in deleted file mode 100644 index ef30577..0000000 --- a/blinkentools-2.9/doc/bplay.1.in +++ /dev/null @@ -1,54 +0,0 @@ -.\" bplay man page -.\" -.\" Project Blinkenlights 2004 -.\" -.Dd February 24, 2004 -.Dt BPLAY 1 -.Os -.Sh NAME -.Nm bplay -.Nd playback Blinkenlights movies using AA-Lib -.Sh SYNOPSIS -.Nm -.Op Fl options -.Op Ar filename -.Sh DESCRIPTION -.Nm -is designed to read Blinkenlights movies in various file formats and -to play them back on the console using AA-Lib. -.Pp -.Nm -automatically detects the file type by looking at the incoming data. -.Pp -If -.Ar filename -is omitted, the data is read via standard input. The output is sent to -standard output unless an output file is given via the command line. -.Sh OPTIONS -The following options are recognized by b2b. -.Pp -.Bl -tag -width "--concatenate" -compact -.Pp -.It Fl l -.It Fl -loop -Loop the movie playback forever. -.Ar number -times. -.Pp -.It Fl ? -.It Fl -help -Display help -.Pp -.It Fl V -.It Fl -version -Display version number and quit immediately. -.El -.Sh AUTHOR -.An Sven Neumann Aq sven@gimp.org -.Sh SEE ALSO -Project Blinkenlights Home Page http://www.blinkenlights.de/ -.Pp -.Xr b2b 1 , -.Xr blib 3 -.Sh DIAGNOSTICS -.Ex -std diff --git a/blinkentools-2.9/doc/bsend.1.in b/blinkentools-2.9/doc/bsend.1.in deleted file mode 100644 index 56cc0d9..0000000 --- a/blinkentools-2.9/doc/bsend.1.in +++ /dev/null @@ -1,104 +0,0 @@ -.\" bsend man page -.\" -.\" Project Blinkenlights 2004 -.\" -.Dd February 24, 2004 -.Dt BSEND 1 -.Os -.Sh NAME -.Nm bsend -.Nd send Blinkenlights movies using the Blinkenlights Protocol -.Sh SYNOPSIS -.Nm -.Op Fl options -.Op Ar filename -.Sh DESCRIPTION -.Nm -is designed to read Blinkenlights movies in various file formats and -to send them to one or more hosts using the UDP-based Blinkenlights protocol. The -receiver could be Matrix Control Unit, the blinkensim Blinkenlights Simulator -or any other device or program compatible with the Blinkenlights Protocol. -.Pp -.Nm -automatically detects the file type by looking at the incoming data. -.Pp -If -.Ar filename -is omitted, the data is read via standard input. The output is sent to -standard output unless an output file is given via the command line. -.Sh OPTIONS -The following options are recognized by b2b. -.Pp -.Bl -tag -width "--concatenate" -compact -.It Fl h Xo -.Ar hostname : Ns Op port -.Xc -.It Fl -host Xo -.Ar hostname : Ns Op port -.Xc -Send movie to -.Ar hostname -at to port -.Ar port -If -.Ar port -is not specified, use the port number by the -.Fl -port -option. If no -.Fl -host -option is given, use localhost (127.0.0.1). If multiple -.Fl -host -options are given, send the data stream to all hosts at the same time. -.Pp -.It Fl p Ar port -.It Fl -port Ar port -Use -.Ar port -as the default port for all hosts given with the -.Fl -host -option. If no -.Fl -port -option is given and no ports are specified with a -.Fl -host -option, then use the default port value (2323). -.Pp -.It Fl s Ar percentage -.It Fl -speed Ar percentage -Changes the playback speed of the file. For example, a value of 50 slows down -playback to 50% speed. -.Pp -.It Fl r -.It Fl -reverse -Reverse playback of the file. -.Pp -.It Fl l -.It Fl -loop -Loop the movie playback forever. -.Pp -.It Fl L Ar number -.It Fl -loops Ar number -Loop the movie playback -.Ar number -times. -.Pp -.It Fl v -.It Fl -verbose -Be more verbose. -.Pp -.It Fl ? -.It Fl -help -Display help -.Pp -.It Fl V -.It Fl -version -Display version number and quit immediately. -.El -.Sh AUTHOR -.An Sven Neumann Aq sven@gimp.org -.Sh SEE ALSO -Project Blinkenlights Home Page http://www.blinkenlights.de/ -.Pp -.Xr b2b 1 , -.Xr blib 3 -.Sh DIAGNOSTICS -.Ex -std diff --git a/blinkentools-2.9/install-sh b/blinkentools-2.9/install-sh deleted file mode 100755 index 6ce63b9..0000000 --- a/blinkentools-2.9/install-sh +++ /dev/null @@ -1,294 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# 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 -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd=$cpprog - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "$0: no input file specified" >&2 - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d "$dst" ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "$0: $src does not exist" >&2 - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "$0: no destination specified" >&2 - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dst" ] - then - dst=$dst/`basename "$src"` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-$defaultIFS}" - -oIFS=$IFS -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS=$oIFS - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp=$pathcomp$1 - shift - - if [ ! -d "$pathcomp" ] ; - then - $mkdirprog "$pathcomp" - else - : - fi - - pathcomp=$pathcomp/ -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd "$dst" && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename "$dst"` - else - dstfile=`basename "$dst" $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename "$dst"` - else - : - fi - -# Make a couple of temp file names in the proper directory. - - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - -# Trap to clean up temp files at exit. - - trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 - trap '(exit $?); exit' 1 2 13 15 - -# Move or copy the file name to the temp name - - $doit $instcmd "$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 $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && - -# 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. - -{ - if [ -f "$dstdir/$dstfile" ] - then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || - $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || - { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit - } - else - : - fi -} && - -# Now rename the file to the real destination. - - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - -fi && - -# The final little trick to "correctly" pass the exit status to the exit trap. - -{ - (exit 0); exit -} diff --git a/blinkentools-2.9/missing b/blinkentools-2.9/missing deleted file mode 100755 index fc54c64..0000000 --- a/blinkentools-2.9/missing +++ /dev/null @@ -1,336 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. -# Originally 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, 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. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/blinkentools-2.9/mkinstalldirs b/blinkentools-2.9/mkinstalldirs deleted file mode 100755 index d2d5f21..0000000 --- a/blinkentools-2.9/mkinstalldirs +++ /dev/null @@ -1,111 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -errstatus=0 -dirmode="" - -usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" 1>&2 - exit 0 - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -case $dirmode in - '') - if mkdir -p -- . 2>/dev/null; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - fi - ;; - *) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - fi - ;; -esac - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# End: -# mkinstalldirs ends here diff --git a/blinkentools-2.9/scripts/b2avi b/blinkentools-2.9/scripts/b2avi deleted file mode 100755 index e568184..0000000 --- a/blinkentools-2.9/scripts/b2avi +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# -# Simple script to create an MPEG-4 from a Blinkenlights movie. -# Needs b2b, b2png and mencoder. -# -# Usage: b2avi - -theme=$1 -movie=$2 - -verbose="--verbose" -fps="25" -codec="-ovc lavc -lavcopts vcodec=mpeg4" - -output=`mktemp -t bmovieXXXXXX` - -(b2b --fps $fps $movie | \ - b2png $verbose --all --link --output $output --theme $theme) || exit -1 - -movie=`basename $movie .bml`.avi - -rm -f divx2pass.log - -echo "Encoding (pass 1)" -mencoder "mf://$output*.png" -mf fps=$fps -o $movie $codec:vpass=1 || exit -1 - -echo "Encoding (pass 2)" -mencoder "mf://$output*.png" -mf fps=$fps -o $movie $codec:vpass=2 || exit -1 - -echo "Wrote $movie" - -echo -n "Removing temporary files... " - -rm divx2pass.log -rm $output*.png - -echo "done" diff --git a/blinkentools-2.9/src/Makefile.am b/blinkentools-2.9/src/Makefile.am deleted file mode 100644 index e368649..0000000 --- a/blinkentools-2.9/src/Makefile.am +++ /dev/null @@ -1,100 +0,0 @@ -## Makefile.am for blinkentools/src - -INCLUDES = \ - @BLIB_CFLAGS@ \ - @PIXBUF_CFLAGS@ \ - @AA_CFLAGS@ - -if HAVE_AA -aa_programs = bplay -endif - -if HAVE_LIBMNG -mng_programs = b2mng -endif - -if HAVE_PIXBUF -pixbuf_programs = b2image -endif - -if ENABLE_OLDTOOLS -oldtools = blm2gif blmplay gif2blm -endif - -bin_PROGRAMS = \ - b2b \ - bsend \ - bmultiplexer \ - blinkenproxy \ - $(aa_programs) \ - $(mng_programs) \ - $(pixbuf_programs) \ - $(oldtools) - -blutils_sources = blutils.h blutils.c - -blimage_sources = \ - hdl.h \ - hdl-small.h \ - hdl-medium.h \ - hdl-large.h \ - hdl-huge.h - -blm2gif_SOURCES = \ - blm2gif.c \ - gif-save.c \ - gif-save.h \ - $(blimage_sources) \ - $(blutils_sources) - -blmplay_SOURCES = \ - blmplay.c \ - $(blutils_sources) - -gif2blm_SOURCES = \ - gif2blm.c \ - gif-load.c \ - gif-load.h \ - $(blimage_sources) - -bmultiplexer_SOURCES = \ - bmultiplexer.c -bmultiplexer_LDADD = @BLIB_LIBS@ - -b2b_SOURCES = b2b.c -b2b_LDADD = @BLIB_LIBS@ -lm - -b2image_SOURCES = b2image.c -b2image_LDADD = @PIXBUF_LIBS@ - -b2mng_SOURCES = b2mng.c bmovie-mng.c bmovie-mng.h -b2mng_LDADD = @LIBMNG@ @BLIB_LIBS@ - -bsend_SOURCES = bsend.c -bsend_LDADD = @BLIB_LIBS@ - -bplay_SOURCES = bplay.c -bplay_LDADD = @AA_LIBS@ - -blinkenproxy_SOURCES = blinkenproxy.c -blinkenproxy_LDADD = @BLIB_LIBS@ - - -install-exec-hook: - cd $(DESTDIR)$(bindir) \ - && rm -f b2blm b2bml b2gif \ - && $(LN_S) b2b b2blm && $(LN_S) b2b b2bml && $(LN_S) b2b b2gif -if HAVE_PIXBUF - cd $(DESTDIR)$(bindir) \ - && rm -f b2jpeg b2png \ - && $(LN_S) b2image b2jpeg && $(LN_S) b2image b2png -endif - -uninstall-local: - rm -f $(DESTDIR)$(bindir)/b2blm \ - $(DESTDIR)$(bindir)/b2bml \ - $(DESTDIR)$(bindir)/b2gif -if HAVE_PIXBUF - rm -f $(DESTDIR)$(bindir)/b2jpeg\ - $(DESTDIR)$(bindir)/b2png -endif diff --git a/blinkentools-2.9/src/Makefile.in b/blinkentools-2.9/src/Makefile.in deleted file mode 100644 index 1f6cb3b..0000000 --- a/blinkentools-2.9/src/Makefile.in +++ /dev/null @@ -1,710 +0,0 @@ -# Makefile.in generated by automake 1.7.9 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -# 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@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -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 = : -AA_CFLAGS = @AA_CFLAGS@ -AA_LIBS = @AA_LIBS@ -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLIB_CFLAGS = @BLIB_CFLAGS@ -BLIB_LIBS = @BLIB_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_OLDTOOLS_FALSE = @ENABLE_OLDTOOLS_FALSE@ -ENABLE_OLDTOOLS_TRUE = @ENABLE_OLDTOOLS_TRUE@ -EXEEXT = @EXEEXT@ -HAVE_AA_FALSE = @HAVE_AA_FALSE@ -HAVE_AA_TRUE = @HAVE_AA_TRUE@ -HAVE_LIBMNG_FALSE = @HAVE_LIBMNG_FALSE@ -HAVE_LIBMNG_TRUE = @HAVE_LIBMNG_TRUE@ -HAVE_PIXBUF_FALSE = @HAVE_PIXBUF_FALSE@ -HAVE_PIXBUF_TRUE = @HAVE_PIXBUF_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBMNG = @LIBMNG@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACAKGE = @PACAKGE@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXBUF_CFLAGS = @PIXBUF_CFLAGS@ -PIXBUF_LIBS = @PIXBUF_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -bindir = @bindir@ -build_alias = @build_alias@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -INCLUDES = \ - @BLIB_CFLAGS@ \ - @PIXBUF_CFLAGS@ \ - @AA_CFLAGS@ - - -@HAVE_AA_TRUE@aa_programs = bplay - -@HAVE_LIBMNG_TRUE@mng_programs = b2mng - -@HAVE_PIXBUF_TRUE@pixbuf_programs = b2image - -@ENABLE_OLDTOOLS_TRUE@oldtools = blm2gif blmplay gif2blm - -bin_PROGRAMS = \ - b2b \ - bsend \ - bmultiplexer \ - blinkenproxy \ - $(aa_programs) \ - $(mng_programs) \ - $(pixbuf_programs) \ - $(oldtools) - - -blutils_sources = blutils.h blutils.c - -blimage_sources = \ - hdl.h \ - hdl-small.h \ - hdl-medium.h \ - hdl-large.h \ - hdl-huge.h - - -blm2gif_SOURCES = \ - blm2gif.c \ - gif-save.c \ - gif-save.h \ - $(blimage_sources) \ - $(blutils_sources) - - -blmplay_SOURCES = \ - blmplay.c \ - $(blutils_sources) - - -gif2blm_SOURCES = \ - gif2blm.c \ - gif-load.c \ - gif-load.h \ - $(blimage_sources) - - -bmultiplexer_SOURCES = \ - bmultiplexer.c - -bmultiplexer_LDADD = @BLIB_LIBS@ - -b2b_SOURCES = b2b.c -b2b_LDADD = @BLIB_LIBS@ -lm - -b2image_SOURCES = b2image.c -b2image_LDADD = @PIXBUF_LIBS@ - -b2mng_SOURCES = b2mng.c bmovie-mng.c bmovie-mng.h -b2mng_LDADD = @LIBMNG@ @BLIB_LIBS@ - -bsend_SOURCES = bsend.c -bsend_LDADD = @BLIB_LIBS@ - -bplay_SOURCES = bplay.c -bplay_LDADD = @AA_LIBS@ - -blinkenproxy_SOURCES = blinkenproxy.c -blinkenproxy_LDADD = @BLIB_LIBS@ -subdir = src -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2mng$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2mng$(EXEEXT) -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bplay$(EXEEXT) -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2mng$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_FALSE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2mng$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ gif2blm$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ gif2blm$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2mng$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ gif2blm$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2mng$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_FALSE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ gif2blm$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ bplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_TRUE@ gif2blm$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ bplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_FALSE@@HAVE_PIXBUF_FALSE@ gif2blm$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ bplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2mng$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ b2image$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_TRUE@ gif2blm$(EXEEXT) -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@bin_PROGRAMS = \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2b$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bsend$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bmultiplexer$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blinkenproxy$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ bplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ b2mng$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blm2gif$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ blmplay$(EXEEXT) \ -@ENABLE_OLDTOOLS_TRUE@@HAVE_AA_TRUE@@HAVE_LIBMNG_TRUE@@HAVE_PIXBUF_FALSE@ gif2blm$(EXEEXT) -PROGRAMS = $(bin_PROGRAMS) - -am_b2b_OBJECTS = b2b.$(OBJEXT) -b2b_OBJECTS = $(am_b2b_OBJECTS) -b2b_DEPENDENCIES = -b2b_LDFLAGS = -am_b2image_OBJECTS = b2image.$(OBJEXT) -b2image_OBJECTS = $(am_b2image_OBJECTS) -b2image_DEPENDENCIES = -b2image_LDFLAGS = -am_b2mng_OBJECTS = b2mng.$(OBJEXT) bmovie-mng.$(OBJEXT) -b2mng_OBJECTS = $(am_b2mng_OBJECTS) -b2mng_DEPENDENCIES = -b2mng_LDFLAGS = -am_blinkenproxy_OBJECTS = blinkenproxy.$(OBJEXT) -blinkenproxy_OBJECTS = $(am_blinkenproxy_OBJECTS) -blinkenproxy_DEPENDENCIES = -blinkenproxy_LDFLAGS = -am__objects_1 = -am__objects_2 = blutils.$(OBJEXT) -am_blm2gif_OBJECTS = blm2gif.$(OBJEXT) gif-save.$(OBJEXT) \ - $(am__objects_1) $(am__objects_2) -blm2gif_OBJECTS = $(am_blm2gif_OBJECTS) -blm2gif_LDADD = $(LDADD) -blm2gif_DEPENDENCIES = -blm2gif_LDFLAGS = -am_blmplay_OBJECTS = blmplay.$(OBJEXT) $(am__objects_2) -blmplay_OBJECTS = $(am_blmplay_OBJECTS) -blmplay_LDADD = $(LDADD) -blmplay_DEPENDENCIES = -blmplay_LDFLAGS = -am_bmultiplexer_OBJECTS = bmultiplexer.$(OBJEXT) -bmultiplexer_OBJECTS = $(am_bmultiplexer_OBJECTS) -bmultiplexer_DEPENDENCIES = -bmultiplexer_LDFLAGS = -am_bplay_OBJECTS = bplay.$(OBJEXT) -bplay_OBJECTS = $(am_bplay_OBJECTS) -bplay_DEPENDENCIES = -bplay_LDFLAGS = -am_bsend_OBJECTS = bsend.$(OBJEXT) -bsend_OBJECTS = $(am_bsend_OBJECTS) -bsend_DEPENDENCIES = -bsend_LDFLAGS = -am_gif2blm_OBJECTS = gif2blm.$(OBJEXT) gif-load.$(OBJEXT) \ - $(am__objects_1) -gif2blm_OBJECTS = $(am_gif2blm_OBJECTS) -gif2blm_LDADD = $(LDADD) -gif2blm_DEPENDENCIES = -gif2blm_LDFLAGS = - -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/b2b.Po ./$(DEPDIR)/b2image.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/b2mng.Po ./$(DEPDIR)/blinkenproxy.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/blm2gif.Po ./$(DEPDIR)/blmplay.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/blutils.Po ./$(DEPDIR)/bmovie-mng.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/bmultiplexer.Po ./$(DEPDIR)/bplay.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/bsend.Po ./$(DEPDIR)/gif-load.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/gif-save.Po ./$(DEPDIR)/gif2blm.Po -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DIST_SOURCES = $(b2b_SOURCES) $(b2image_SOURCES) $(b2mng_SOURCES) \ - $(blinkenproxy_SOURCES) $(blm2gif_SOURCES) $(blmplay_SOURCES) \ - $(bmultiplexer_SOURCES) $(bplay_SOURCES) $(bsend_SOURCES) \ - $(gif2blm_SOURCES) -DIST_COMMON = $(srcdir)/Makefile.in Makefile.am -SOURCES = $(b2b_SOURCES) $(b2image_SOURCES) $(b2mng_SOURCES) $(blinkenproxy_SOURCES) $(blm2gif_SOURCES) $(blmplay_SOURCES) $(bmultiplexer_SOURCES) $(bplay_SOURCES) $(bsend_SOURCES) $(gif2blm_SOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/Makefile -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(bindir) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ - else :; fi; \ - done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ - rm -f $(DESTDIR)$(bindir)/$$f; \ - done - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -b2b$(EXEEXT): $(b2b_OBJECTS) $(b2b_DEPENDENCIES) - @rm -f b2b$(EXEEXT) - $(LINK) $(b2b_LDFLAGS) $(b2b_OBJECTS) $(b2b_LDADD) $(LIBS) -b2image$(EXEEXT): $(b2image_OBJECTS) $(b2image_DEPENDENCIES) - @rm -f b2image$(EXEEXT) - $(LINK) $(b2image_LDFLAGS) $(b2image_OBJECTS) $(b2image_LDADD) $(LIBS) -b2mng$(EXEEXT): $(b2mng_OBJECTS) $(b2mng_DEPENDENCIES) - @rm -f b2mng$(EXEEXT) - $(LINK) $(b2mng_LDFLAGS) $(b2mng_OBJECTS) $(b2mng_LDADD) $(LIBS) -blinkenproxy$(EXEEXT): $(blinkenproxy_OBJECTS) $(blinkenproxy_DEPENDENCIES) - @rm -f blinkenproxy$(EXEEXT) - $(LINK) $(blinkenproxy_LDFLAGS) $(blinkenproxy_OBJECTS) $(blinkenproxy_LDADD) $(LIBS) -blm2gif$(EXEEXT): $(blm2gif_OBJECTS) $(blm2gif_DEPENDENCIES) - @rm -f blm2gif$(EXEEXT) - $(LINK) $(blm2gif_LDFLAGS) $(blm2gif_OBJECTS) $(blm2gif_LDADD) $(LIBS) -blmplay$(EXEEXT): $(blmplay_OBJECTS) $(blmplay_DEPENDENCIES) - @rm -f blmplay$(EXEEXT) - $(LINK) $(blmplay_LDFLAGS) $(blmplay_OBJECTS) $(blmplay_LDADD) $(LIBS) -bmultiplexer$(EXEEXT): $(bmultiplexer_OBJECTS) $(bmultiplexer_DEPENDENCIES) - @rm -f bmultiplexer$(EXEEXT) - $(LINK) $(bmultiplexer_LDFLAGS) $(bmultiplexer_OBJECTS) $(bmultiplexer_LDADD) $(LIBS) -bplay$(EXEEXT): $(bplay_OBJECTS) $(bplay_DEPENDENCIES) - @rm -f bplay$(EXEEXT) - $(LINK) $(bplay_LDFLAGS) $(bplay_OBJECTS) $(bplay_LDADD) $(LIBS) -bsend$(EXEEXT): $(bsend_OBJECTS) $(bsend_DEPENDENCIES) - @rm -f bsend$(EXEEXT) - $(LINK) $(bsend_LDFLAGS) $(bsend_OBJECTS) $(bsend_LDADD) $(LIBS) -gif2blm$(EXEEXT): $(gif2blm_OBJECTS) $(gif2blm_DEPENDENCIES) - @rm -f gif2blm$(EXEEXT) - $(LINK) $(gif2blm_LDFLAGS) $(gif2blm_OBJECTS) $(gif2blm_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/b2b.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/b2image.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/b2mng.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blinkenproxy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blm2gif.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blmplay.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blutils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmovie-mng.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmultiplexer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bplay.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsend.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif-load.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif-save.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif2blm.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ -@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ -@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ -@am__fastdepCC_TRUE@ fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` -uninstall-info-am: - -ETAGS = etags -ETAGSFLAGS = - -CTAGS = ctags -CTAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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: - $(mkinstalldirs) $(DESTDIR)$(bindir) -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: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f $(CONFIG_CLEAN_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-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-exec-hook - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-local - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am info \ - info-am install install-am install-binPROGRAMS install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS uninstall-info-am \ - uninstall-local - - -install-exec-hook: - cd $(DESTDIR)$(bindir) \ - && rm -f b2blm b2bml b2gif \ - && $(LN_S) b2b b2blm && $(LN_S) b2b b2bml && $(LN_S) b2b b2gif -@HAVE_PIXBUF_TRUE@ cd $(DESTDIR)$(bindir) \ -@HAVE_PIXBUF_TRUE@ && rm -f b2jpeg b2png \ -@HAVE_PIXBUF_TRUE@ && $(LN_S) b2image b2jpeg && $(LN_S) b2image b2png - -uninstall-local: - rm -f $(DESTDIR)$(bindir)/b2blm \ - $(DESTDIR)$(bindir)/b2bml \ - $(DESTDIR)$(bindir)/b2gif -@HAVE_PIXBUF_TRUE@ rm -f $(DESTDIR)$(bindir)/b2jpeg\ -@HAVE_PIXBUF_TRUE@ $(DESTDIR)$(bindir)/b2png -# 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: diff --git a/blinkentools-2.9/src/b2b.c b/blinkentools-2.9/src/b2b.c deleted file mode 100644 index 8f0e7ec..0000000 --- a/blinkentools-2.9/src/b2b.c +++ /dev/null @@ -1,431 +0,0 @@ -/* b2b.c - * Converts between various formats for Blinkenlights movies. - * - * Copyright (C) 2001-2004 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#include -#include - -#ifdef HAVE_GETOPT_LONG -#define _GNU_SOURCE -#include -#endif - -#include - - -#ifdef HAVE_GETOPT_LONG -static const struct option options[] = -{ - { "type", required_argument, NULL, 't' }, - { "output", required_argument, NULL, 'o' }, - { "bits", required_argument, NULL, 'b' }, - { "invert", no_argument, NULL, 'i' }, - { "gamma", required_argument, NULL, 'g' }, - { "hflip", no_argument, NULL, 'f' }, - { "vflip", no_argument, NULL, 'F' }, - { "reverse", no_argument, NULL, 'r' }, - { "speed", required_argument, NULL, 's' }, - { "fps", required_argument, NULL, 'c' }, - { "loop-hint", no_argument, NULL, 'x' }, - { "no-loop-hint", no_argument, NULL, 'X' }, - { "meta", no_argument, NULL, 'm' }, - { "help", no_argument, NULL, '?' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; -#endif - -static const gchar *option_str = "t:o:b:g:ifFrs:c:xXm?V"; - - -static void b_movie_apply_gamma (BMovie *movie, - gdouble gamma); -static void b_movie_set_fixed_framerate (BMovie *movie, - double fps); - -static void -usage (const gchar *name) -{ - g_printerr ("b2b - a format converter for Blinkenlights movies.\n"); - g_printerr ("Check http://www.blinkenlights.de/ for more information.\n\n"); - g_printerr ("Usage: %s [options] \n", name); - g_printerr ("Options:\n"); - g_printerr (" -o, --output write to file instead of stdout\n"); - g_printerr (" -t, --type [blm|bml|gif] specifies output type\n"); - g_printerr (" -b, --bits number of significant bits in output\n"); - g_printerr (" -i, --invert invert movie\n"); - g_printerr (" -g, --gamma gamma-adjust all frames\n"); - g_printerr (" -f, --hflip flip movie horizontally\n"); - g_printerr (" -F, --vflip flip movie vertically\n"); - g_printerr (" -x, --loop-hint set loop flag\n"); - g_printerr (" -X, --no-loop-hint unset loop flag\n"); - g_printerr (" -r, --reverse reverse movie\n"); - g_printerr (" -s, --speed adjust movie speed\n"); - g_printerr (" -c, --fps generate frames per second\n"); - g_printerr (" -m, --meta show info about the movie, don't convert it\n"); - g_printerr (" -?, --help output usage information\n"); - g_printerr (" -V, --version output version information\n"); - g_printerr ("\n"); - -#ifndef HAVE_GETOPT_LONG - g_printerr ("This version of b2b was compiled without support for long command-line\n"); - g_printerr ("options. Only the short, one-letter options will work.\n\n"); -#endif -} - -static GType -b2b_type_from_name (const gchar *name) -{ - if (g_ascii_strcasecmp (name, "blm") == 0) - return B_TYPE_MOVIE_BLM; - if (g_ascii_strcasecmp (name, "bml") == 0) - return B_TYPE_MOVIE_BML; - if (g_ascii_strcasecmp (name, "gif") == 0) - return B_TYPE_MOVIE_GIF; - - return G_TYPE_NONE; -} - -int -main (int argc, - char *argv[]) -{ - const gchar *filename = NULL; - const gchar *output = NULL; - FILE *stream = NULL; - BEffects *effects = NULL; - gboolean reverse = FALSE; - gboolean meta = FALSE; - gdouble gamma = 1.0; - gdouble speed = 1.0; - gdouble fps = 0.0; - gboolean success; - gint loop = -1; - gint bits = -1; - gint c; - BMovie *movie; - GType type = G_TYPE_NONE; - GError *error = NULL; - - b_init (); - -#ifdef HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, option_str, options, NULL)) >= 0) -#else - while ((c = getopt (argc, argv, option_str)) >= 0) -#endif - { - switch (c) - { - case 't': - type = b2b_type_from_name (optarg); - if (type == G_TYPE_NONE) - { - usage (argv[0]); - return EXIT_FAILURE; - } - break; - - case 'o': - output = optarg; - break; - - case 'b': - if (! b_parse_int (optarg, &bits) || bits < 1 || bits > 8) - { - g_printerr ("Invalid argument (bits)\n"); - return EXIT_FAILURE; - } - break; - - case 'i': - if (! effects) - effects = b_effects_new (); - effects->invert = B_EFFECT_SCOPE_ALL; - break; - - case 'g': - if (! b_parse_double (optarg, &gamma) || gamma < 0.0) - { - g_printerr ("Invalid argument (gamma)\n"); - return EXIT_FAILURE; - } - break; - - case 'f': - if (! effects) - effects = b_effects_new (); - effects->hflip = B_EFFECT_SCOPE_ALL; - break; - - case 'F': - if (! effects) - effects = b_effects_new (); - effects->vflip = B_EFFECT_SCOPE_ALL; - break; - - case 'r': - reverse = TRUE; - break; - - case 's': - if (! b_parse_double (optarg, &speed) || speed < 0.0) - { - g_printerr ("Invalid argument (speed)\n"); - return EXIT_FAILURE; - } - break; - - case 'c': - if (! b_parse_double (optarg, &fps) || fps < 0.0) - { - g_printerr ("Invalid argument (fps)\n"); - return EXIT_FAILURE; - } - break; - - case 'l': - loop = FALSE; - break; - - case 'L': - loop = TRUE; - break; - - case 'm': - meta = TRUE; - break; - - case '?': - usage (argv[0]); - return EXIT_SUCCESS; - - case 'V': - g_printerr ("b2b (%s version %s)\n", PACKAGE, VERSION); - return EXIT_SUCCESS; - - default: - usage (argv[0]); - return EXIT_FAILURE; - } - } - - if (optind < argc) - filename = argv[optind]; - - if (type == G_TYPE_NONE) - { - gchar *basename = g_path_get_basename (argv[0]); - - if (strlen (basename) == 5) - type = b2b_type_from_name (basename + 2); - - g_free (basename); - } - - if (! meta) - { - if (output && *output) - { - if (type == G_TYPE_NONE) - { - gint len = strlen (output); - - if (len > 4 && output[len-4] == '.') - type = b2b_type_from_name (output + len - 3); - } - - stream = fopen (output, "w"); - } - else - { - stream = stdout; - } - - if (! stream) - { - g_printerr ("Can't write to '%s': %s", output, g_strerror (errno)); - return EXIT_FAILURE; - } - } - - if (! filename || (strcmp (filename, "-") == 0)) - { - movie = b_movie_new_from_fd (0, &error); - filename = ""; - } - else - { - movie = b_movie_new_from_file (filename, FALSE, &error); - } - - if (! movie) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error opening '%s': %s\n", filename, error->message); - return EXIT_FAILURE; - } - - if (bits > 0) - { - b_movie_normalize (movie, (1 << bits) - 1); - } - /* when converting from GIF to BML, default to bits = 4 */ - else if (B_IS_MOVIE_GIF (movie) && type == B_TYPE_MOVIE_BML) - { - b_movie_normalize (movie, (1 << 4) - 1); - } - - if (gamma != 1.0) - b_movie_apply_gamma (movie, gamma); - - if (effects || reverse || speed != 1.0) - b_movie_apply_effects (movie, effects, reverse, speed); - - if (loop != -1) - movie->loop = (loop != FALSE); - - if (meta) - { - const gchar *type_name = G_OBJECT_TYPE_NAME (G_OBJECT (movie)); - - if (strncmp (type_name, "BMovie", 6) == 0) - type_name += 6; - - g_print ("Blinkenlights Movie (%s) %dx%d " - "channels=%d maxval=%d frames=%d duration=%dms\n", type_name, - movie->width, movie->height, - movie->channels, movie->maxval, - movie->n_frames, movie->duration); - - success = TRUE; - } - else - { - if (fps > 0.0) - b_movie_set_fixed_framerate (movie, fps); - - if (type != G_TYPE_NONE) - success = b_movie_save_as (movie, type, stream, &error); - else - success = b_movie_save (movie, stream, &error); - - if (output && *output) - fclose (stream); - - if (! success) - { - g_return_val_if_fail (error != NULL, EXIT_FAILURE); - - g_printerr ("Error saving movie '%s': %s\n", - (movie->title ? - movie->title : b_object_get_name (B_OBJECT (movie))), - error->message); - } - } - - g_object_unref (movie); - - if (effects) - g_object_unref (effects); - - return success ? EXIT_SUCCESS : EXIT_FAILURE; -} - -static void -b_movie_apply_gamma (BMovie *movie, - gdouble gamma) -{ - gdouble ind; - guchar *map; - gint i; - - if (gamma == 0.0 || movie->maxval < 1) - return; - - map = g_new (guchar, movie->maxval + 1); - - gamma = 1.0 / gamma; - - for (i = 0; i <= movie->maxval; i++) - { - ind = (gdouble) i / (gdouble) movie->maxval; - map[i] = - (guchar) (gint) ((gdouble) movie->maxval * pow (ind, gamma) + 0.5); - } - - b_movie_apply_colormap (movie, map); - - g_free (map); -} - -static void -b_movie_set_fixed_framerate (BMovie *movie, - gdouble fps) -{ - GList *list = NULL; - GList *frames = NULL; - gint duration = (1000.0 / fps); - gint t; - - for (t = 0; t < movie->duration; t += duration) - { - list = b_movie_get_frame_at_time (movie, list, t); - - if (list) - { - BMovieFrame *frame = list->data; - - frames = g_list_prepend (frames, - g_memdup (frame->data, - movie->width * movie->height)); - } - } - - for (list = movie->frames; list; list = g_list_next (list)) - { - BMovieFrame *frame = list->data; - - g_free (frame->data); - g_free (frame); - } - - g_list_free (movie->frames); - - movie->duration = 0; - movie->n_frames = 0; - movie->frames = NULL; - - for (list = frames; list; list = list->next) - { - b_movie_prepend_frame (movie, duration, list->data); - g_free (list->data); - } - - g_list_free (frames); -} diff --git a/blinkentools-2.9/src/b2image.c b/blinkentools-2.9/src/b2image.c deleted file mode 100644 index 81deb02..0000000 --- a/blinkentools-2.9/src/b2image.c +++ /dev/null @@ -1,478 +0,0 @@ -/* b2image - * Renders an image from a Blinkenlights frame. - * - * Copyright (C) 2002-2004 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include -#include -#include - -#ifdef HAVE_GETOPT_LONG -#define _GNU_SOURCE -#include -#endif - -#include -#include - - -#ifdef HAVE_GETOPT_LONG -static const struct option options[] = -{ - { "theme", required_argument, NULL, 't' }, - { "output", required_argument, NULL, 'o' }, - { "format", required_argument, NULL, 'f' }, - { "index", required_argument, NULL, 'i' }, - { "all", no_argument, NULL, 'a' }, - { "link", no_argument, NULL, 'l' }, - { "quality", required_argument, NULL, 'q' }, - { "verbose", no_argument, NULL, 'v' }, - { "help", no_argument, NULL, '?' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; -#endif - -static const gchar *option_str = "t:o:f:i:alq:v?V"; - -static void -usage (const gchar *name) -{ - g_printerr ("b2image - renders an image from a Blinkenlights frame.\n"); - g_printerr ("Check http://www.blinkenlights.de/ for more information.\n\n"); - g_printerr ("Usage: %s [options] \n", name); - g_printerr ("Options:\n"); - g_printerr (" -t, --theme specifies theme\n"); - g_printerr (" -o, --output write to file \n"); - g_printerr (" -f, --format [png|jpeg] specifies output file format\n"); - g_printerr (" -i, --index dump frame (default: 0)\n"); - g_printerr (" -a, --all dump all frame\n"); - g_printerr (" -l, --link link duplicate frames\n"); - g_printerr (" -q, --quality set JPEG quality (0-100)\n"); - g_printerr (" -v, --verbose be verbose\n"); - g_printerr (" -?, --help output usage information\n"); - g_printerr (" -V, --version output version information\n"); - g_printerr ("\n"); - -#ifndef HAVE_GETOPT_LONG - g_printerr ("This version of b2image was compiled without support for long command-line\n"); - g_printerr ("options. Only the short, one-letter options will work.\n\n"); -#endif -} - - -static BTheme * -load_theme (const gchar *name) -{ - BTheme *theme; - GError *error = NULL; - - g_return_val_if_fail (name != NULL, NULL); - - if (g_file_test (name, G_FILE_TEST_IS_REGULAR)) - { - theme = b_theme_new_from_file (name, TRUE, &error); - if (!theme) - { - g_printerr ("Error opening '%s': %s\n", name, error->message); - return NULL; - } - } - else - { - theme = b_themes_lookup_theme (name, NULL, &error); - if (!theme) - { - g_printerr ("\n%s\n", error->message); - g_printerr ("Fix your spelling or try setting the " - "B_THEME_PATH environment variable.\n"); - return NULL; - } - if (!b_theme_load (theme, &error)) - { - g_printerr ("Error loading theme '%s': %s\n", - b_object_get_name (B_OBJECT (theme)), error->message); - return NULL; - } - } - - return theme; -} - -/* copied from gdk-pixbuf-io.c */ -static void -collect_save_options (va_list opts, - gchar ***keys, - gchar ***vals) -{ - gchar *key; - gchar *val; - gchar *next; - gint count = 0; - - *keys = NULL; - *vals = NULL; - - next = va_arg (opts, gchar *); - while (next) - { - key = next; - val = va_arg (opts, gchar *); - - ++count; - - *keys = g_renew (gchar *, *keys, count + 1); - *vals = g_renew (gchar *, *vals, count + 1); - - (*keys)[count - 1] = g_strdup (key); - (*vals)[count - 1] = g_strdup (val); - - (*keys)[count] = NULL; - (*vals)[count] = NULL; - - next = va_arg (opts, gchar *); - } -} - -static gboolean -b_view_pixbuf_save_frame_v (BViewPixbuf *view, - BMovieFrame *frame, - const gchar *filename, - gboolean verbose, - const gchar *type, - gchar **option_keys, - gchar **option_values, - GError **error) -{ - const GdkPixbuf *pixbuf; - - if (! frame) - return TRUE; - - pixbuf = b_view_pixbuf_render (view, frame->data, NULL, error); - - if (pixbuf && - gdk_pixbuf_savev ((GdkPixbuf *) pixbuf, - filename, type, - option_keys, option_values, - error)) - { - if (verbose) - g_printerr ("Wrote %s\n", filename); - - return TRUE; - } - - return FALSE; -} - -static gboolean -b_view_pixbuf_save_frame (BViewPixbuf *view, - BMovieFrame *frame, - const gchar *filename, - const gchar *type, - gboolean verbose, - GError **error, - ...) -{ - gchar **keys = NULL; - gchar **values = NULL; - gboolean success; - va_list args; - - va_start (args, error); - collect_save_options (args, &keys, &values); - va_end (args); - - success = b_view_pixbuf_save_frame_v (view, - frame, filename, verbose, type, - keys, values, - error); - - g_strfreev (keys); - g_strfreev (values); - - return success; -} - -static gboolean -b_view_pixbuf_save_movie (BViewPixbuf *view, - BMovie *movie, - const gchar *basename, - const gchar *type, - gboolean hardlink, - gboolean verbose, - GError **error, - ...) -{ - static const gchar *last_data = NULL; - - gsize len = strlen (basename); - gchar *filename = g_alloca (len + 16 + strlen (type)); - gchar *oldname = g_alloca (len + 16 + strlen (type)); - gchar *suffix = filename + len; - gchar *oldfix = oldname + len; - gchar **keys = NULL; - gchar **values = NULL; - GList *list; - gint n; - va_list args; - - strcpy (filename, basename); - strcpy (oldname, basename); - - va_start (args, error); - collect_save_options (args, &keys, &values); - va_end (args); - - for (list = movie->frames, n = 1; list; list = list->next, n++) - { - BMovieFrame *frame = list->data; - - sprintf (suffix, ".%05d.%s", n, type); - - if (hardlink && - last_data && - memcmp (frame->data, last_data, movie->width * movie->height) == 0) - { - sprintf (oldfix, ".%05d.%s", n - 1, type); - - if (link (oldname, filename) != 0) - { - g_set_error (error, 0, 0, - "Could not create link for '%s': %s\n" - "Perhaps try again without the --link option.", - filename, g_strerror (errno)); - return FALSE; - } - } - else - { - if (! b_view_pixbuf_save_frame_v (view, - list->data, - filename, verbose, type, - keys, values, - error)) - return FALSE; - } - - last_data = frame->data; - } - - g_strfreev (keys); - g_strfreev (values); - - return TRUE; -} - -int -main (int argc, - char *argv[]) -{ - const gchar *movie_name = NULL; - const gchar *theme_name = NULL; - const gchar *output = NULL; - const gchar *quality = NULL; - const gchar *format = NULL; - gboolean success; - gboolean hardlink = FALSE; - gboolean verbose = FALSE; - gboolean all = FALSE; - gint index = 1; - gint c; - BViewPixbuf *view = NULL; - BMovie *movie; - BTheme *theme = NULL; - GError *error = NULL; - gchar *basename = g_path_get_basename (argv[0]); - - if (strcmp (basename, "b2image") && - strlen (basename) > 4 && - basename[0] == 'b' && basename[1] == '2') - { - format = basename + 2; - } - - b_init (); - -#ifdef HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, option_str, options, NULL)) >= 0) -#else - while ((c = getopt (argc, argv, option_str)) >= 0) -#endif - { - switch (c) - { - case 't': - theme_name = optarg; - break; - - case 'o': - output = optarg; - break; - - case 'f': - format = optarg; - break; - - case 'i': - b_parse_int (optarg, &index); - break; - - case 'a': - all = TRUE; - break; - - case 'q': - quality = optarg; - break; - - case 'l': - hardlink = TRUE; - break; - - case 'v': - verbose = TRUE; - break; - - case '?': - usage (argv[0]); - return EXIT_SUCCESS; - - case 'V': - g_printerr ("b2mng (%s version %s)\n", PACKAGE, VERSION); - return EXIT_SUCCESS; - - default: - usage (argv[0]); - return EXIT_FAILURE; - } - } - - if (optind < argc) - movie_name = argv[optind]; - - if (! output) - { - g_printerr ("Need to specify an output file using the --output command-line option.\n"); - return EXIT_FAILURE; - } - - if (! format) - { - g_printerr ("Need to specify an output file format using the --format command-line option.\n"); - return EXIT_FAILURE; - } - - if (theme_name) - { - theme = load_theme (theme_name); - if (!theme) - return EXIT_FAILURE; - - if (verbose) - g_printerr ("Loaded theme '%s' (%dx%d, %d levels) at size %dx%d\n", - b_object_get_name (B_OBJECT (theme)), - theme->columns, theme->rows, theme->maxval + 1, - theme->width, theme->height); - } - - if (! movie_name || (strcmp (movie_name, "-") == 0)) - { - movie = b_movie_new_from_fd (0, &error); - movie_name = ""; - } - else - { - movie = b_movie_new_from_file (movie_name, FALSE, &error); - } - - if (! movie) - { - g_printerr ("Error opening '%s': %s\n", movie_name, error->message); - return EXIT_FAILURE; - } - - if (verbose) - g_printerr ("Loaded movie '%s' (%dx%d) maxval=%d (%d frames, %d.%d s)\n", - movie->title ? - movie->title : b_object_get_name (B_OBJECT (movie)), - movie->width, movie->height, movie->maxval, - movie->n_frames, - movie->duration / 1000, (movie->duration % 1000) / 10); - - b_movie_normalize (movie, 255); - - if (theme) - { - if (movie->width != theme->columns || movie->height != theme->rows) - { - g_printerr ("Movie and theme dimensions do not match!\n"); - return EXIT_FAILURE; - } - - view = b_view_pixbuf_new_theme (theme, FALSE, &error); - } - else - { - view = b_view_pixbuf_new (movie->height, movie->width, movie->channels, - &error); - } - - if (! view) - { - g_printerr ("%s\n", error->message); - return EXIT_FAILURE; - } - - if (all) - success = b_view_pixbuf_save_movie (view, - movie, - output, format, hardlink, verbose, - &error, - quality ? "quality" : NULL, quality, - NULL); - else - success = b_view_pixbuf_save_frame (view, - g_list_nth_data (movie->frames, - index - 1), - output, format, verbose, - &error, - quality ? "quality" : NULL, quality, - "quality", quality, - NULL); - - if (! success) - { - g_printerr ("Error saving movie '%s': %s\n", - (movie->title ? - movie->title : b_object_get_name (B_OBJECT (movie))), - error->message); - } - - g_object_unref (movie); - if (theme) - g_object_unref (theme); - - return success ? EXIT_SUCCESS : EXIT_FAILURE; -} diff --git a/blinkentools-2.9/src/b2mng.c b/blinkentools-2.9/src/b2mng.c deleted file mode 100644 index 75d356a..0000000 --- a/blinkentools-2.9/src/b2mng.c +++ /dev/null @@ -1,254 +0,0 @@ -/* b2mng - * Creates MNG animations from Blinkenlights movies. - * - * Copyright (C) 2002-2004 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include -#include - -#include -#include - -#ifdef HAVE_GETOPT_LONG -#define _GNU_SOURCE -#include -#endif - -#include - -#include "bmovie-mng.h" - - -#ifdef HAVE_GETOPT_LONG -static const struct option options[] = -{ - { "theme", required_argument, NULL, 't' }, - { "output", required_argument, NULL, 'o' }, - { "loop", no_argument, NULL, 'l' }, - { "loops", required_argument, NULL, 'L' }, - { "verbose", no_argument, NULL, 'v' }, - { "help", no_argument, NULL, '?' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; -#endif - -static const gchar *option_str = "t:o:lL:v?V"; - -static void -usage (const gchar *name) -{ - g_printerr ("b2mng - creates MNG animations from Blinkenlights movies.\n"); - g_printerr ("Check http://www.blinkenlights.de/ for more information.\n\n"); - g_printerr ("Usage: %s [options] \n", name); - g_printerr ("Options:\n"); - g_printerr (" -t, --theme specifies theme\n"); - g_printerr (" -o, --output write to file instead of stdout\n"); - g_printerr (" -l, --loop create endlessly looping animation\n"); - g_printerr (" -L, --loops loop animation as often as specified\n"); - g_printerr (" -v, --verbose be verbose\n"); - g_printerr (" -?, --help output usage information\n"); - g_printerr (" -v, --version output version information\n"); - g_printerr ("\n"); - -#ifndef HAVE_GETOPT_LONG - g_printerr ("This version of b2mng was compiled without support for long command-line\n"); - g_printerr ("options. Only the short, one-letter options will work.\n\n"); -#endif -} - - -static BTheme * -load_theme (const gchar *name) -{ - BTheme *theme; - GError *error = NULL; - - g_return_val_if_fail (name != NULL, NULL); - - if (g_file_test (name, G_FILE_TEST_IS_REGULAR)) - { - theme = b_theme_new_from_file (name, TRUE, &error); - if (!theme) - { - g_printerr ("Error opening '%s': %s\n", name, error->message); - return NULL; - } - } - else - { - theme = b_themes_lookup_theme (name, NULL, &error); - if (!theme) - { - g_printerr ("\n%s\n", error->message); - g_printerr ("Fix your spelling or try setting the " - "B_THEME_PATH environment variable.\n"); - return NULL; - } - if (!b_theme_load (theme, &error)) - { - g_printerr ("Error loading theme '%s': %s\n", - b_object_get_name (B_OBJECT (theme)), error->message); - return NULL; - } - } - - return theme; -} - -int -main (int argc, - char *argv[]) -{ - const gchar *movie_name = NULL; - const gchar *theme_name = NULL; - const gchar *output = NULL; - FILE *stream; - gboolean success; - gboolean verbose = FALSE; - gint loops = 1; - gint c; - BMovie *movie; - BTheme *theme = NULL; - GError *error = NULL; - - b_init (); - -#ifdef HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, option_str, options, NULL)) >= 0) -#else - while ((c = getopt (argc, argv, option_str)) >= 0) -#endif - { - switch (c) - { - case 't': - theme_name = optarg; - break; - - case 'o': - output = optarg; - break; - - case 'l': - loops = -1; - break; - - case 'L': - b_parse_int (optarg, &loops); - break; - - case 'v': - verbose = TRUE; - break; - - case '?': - usage (argv[0]); - return EXIT_SUCCESS; - - case 'V': - g_printerr ("b2mng (%s version %s)\n", PACKAGE, VERSION); - return EXIT_SUCCESS; - - default: - usage (argv[0]); - return EXIT_FAILURE; - } - } - - if (optind < argc) - movie_name = argv[optind]; - - if (theme_name) - { - theme = load_theme (theme_name); - - if (!theme) - return EXIT_FAILURE; - - if (verbose) - g_printerr ("Loaded theme '%s' (%dx%d, %d levels) at size %dx%d\n", - b_object_get_name (B_OBJECT (theme)), - theme->columns, theme->rows, theme->maxval + 1, - theme->width, theme->height); - } - - if (output && *output) - stream = fopen (output, "w"); - else - stream = stdout; - - if (! stream) - { - g_printerr ("Can't write to '%s': %s", output, g_strerror (errno)); - return EXIT_FAILURE; - } - - if (! movie_name || (strcmp (movie_name, "-") == 0)) - { - movie = b_movie_new_from_fd (0, &error); - movie_name = ""; - } - else - { - movie = b_movie_new_from_file (movie_name, FALSE, &error); - } - - if (! movie) - { - g_printerr ("Error opening '%s': %s\n", movie_name, error->message); - return EXIT_FAILURE; - } - - if (verbose) - g_printerr ("Loaded movie '%s' (%dx%d) maxval=%d (%d frames, %d.%d s)\n", - movie->title ? - movie->title : b_object_get_name (B_OBJECT (movie)), - movie->width, movie->height, movie->maxval, - movie->n_frames, - movie->duration / 1000, (movie->duration % 1000) / 10); - - b_movie_normalize (movie, 255); - - success = b_movie_save_as_mng (movie, theme, stream, loops, &error); - - if (output && *output) - fclose (stream); - - if (success) - { - if (verbose) - g_printerr ("Successfully created MNG\n"); - } - else - { - g_printerr ("Error saving movie '%s': %s\n", - (movie->title ? - movie->title : b_object_get_name (B_OBJECT (movie))), - error->message); - } - - g_object_unref (movie); - if (theme) - g_object_unref (theme); - - return success ? EXIT_SUCCESS : EXIT_FAILURE; -} diff --git a/blinkentools-2.9/src/blinkenproxy.c b/blinkentools-2.9/src/blinkenproxy.c deleted file mode 100644 index 3a58e65..0000000 --- a/blinkentools-2.9/src/blinkenproxy.c +++ /dev/null @@ -1,298 +0,0 @@ -/* blinkenproxy - forwards Blinkenlights packets - * - * Copyright (c) 2003-2004 Hannes Mehnert - * Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include - -#ifdef HAVE_GETOPT_LONG -#define _GNU_SOURCE -#include -#endif - -#include - -#ifdef G_OS_WIN32 -#include -#else -#include -#include -#include -#include -#endif - - -#ifdef HAVE_GETOPT_LONG -static const struct option options[] = -{ - { "help", no_argument, NULL, '?' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; -#endif - -static const gchar *option_str = "?V"; - - -static BProxyServer *server = NULL; -static GMainLoop *loop = NULL; -static guint heartbeat = 0; - - -#define HEARTBEAT_TIMEOUT (B_HEARTBEAT_INTERVAL * 12) - - -static void -usage (const gchar *name) -{ - g_printerr ("\n"); - g_printerr ("blinkenproxy - forwards Blinkenlights package to its clients.\n"); - g_printerr ("Check http://www.blinkenlights.de/ for more information.\n\n"); - - g_printerr ("Usage: %s [options] [hostname[:port]|receive-port] [heartbeat-port]\n", name); - g_printerr ("Options:\n"); - g_printerr (" -?, --help output usage information\n"); - g_printerr (" -V, --version output version information\n"); - g_printerr ("\n"); -} - -static gboolean -frame_callback (BReceiver *receiver, - BPacket *packet, - gpointer data) -{ - BProxyServer *server = B_PROXY_SERVER (data); - - if (packet->header.mcu_frame_h.magic != MAGIC_MCU_FRAME) - return TRUE; - - b_proxy_server_send_packet (server, packet); - - return TRUE; -} - -static void -server_client_added (BProxyServer *server, - const gchar *host, - gint port, - BProxyClient *client) -{ - gint num = b_proxy_server_num_clients (server); - - g_print ("client added (%d): %s:%d\n", num, host, port); - - if (client && !heartbeat) - { - b_proxy_client_send_heartbeat (client); - - heartbeat = g_timeout_add (B_HEARTBEAT_INTERVAL, - (GSourceFunc) b_proxy_client_send_heartbeat, - client); - } -} - -static void -server_client_removed (BProxyServer *server, - const gchar *host, - gint port, - BProxyClient *client) -{ - gint num = b_proxy_server_num_clients (server); - - g_print ("client removed (%d): %s:%d\n", num, host, port); - - if (client && heartbeat && num == 0) - { - g_source_remove (heartbeat); - heartbeat = 0; - } -} - -#ifndef G_OS_WIN32 -static void -sigusr1_handler (gint signum) -{ - if (server) - g_print ("I have %u clients.\n", b_proxy_server_num_clients (server)); -} - -static void -sigint_handler (gint signum) -{ - sigset_t sigset; - - sigemptyset (&sigset); - sigprocmask (SIG_SETMASK, &sigset, NULL); - - g_print ("Received signal %d, exiting ...\n", signum); - - if (loop) - g_main_loop_quit (loop); -} -#endif /* !G_OS_WIN32 */ - - -int -main (int argc, - char *argv[]) -{ - BReceiver *receiver; - BProxyClient *client = NULL; - const gchar *host = NULL; - gint bml_port = MCU_LISTENER_PORT; - gint hb_port = B_HEARTBEAT_PORT; - gint c; - GError *error = NULL; - - g_printerr ("blinkenproxy version " VERSION "\n"); - - b_init (); - -#ifdef HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, option_str, options, NULL)) >= 0) -#else - while ((c = getopt (argc, argv, option_str)) >= 0) -#endif - { - switch (c) - { - case '?': - usage (argv[0]); - return EXIT_SUCCESS; - - case 'V': - g_printerr ("blinkenproxy (%s version %s)\n", PACKAGE, VERSION); - return EXIT_SUCCESS; - - default: - usage (argv[0]); - return EXIT_FAILURE; - } - } - - switch (argc - optind) - { - case 0: - break; - - case 1: - b_parse_int (argv[optind], &bml_port) || (host = argv[optind]); - break; - - case 2: - b_parse_int (argv[optind], &bml_port) || (host = argv[optind]); - b_parse_int (argv[optind + 1], &hb_port); - break; - - default: - usage (argv[0]); - return EXIT_FAILURE; - } - - if (host) - { - gchar *name = g_strdup (host); - gchar *colon = strrchr (name, ':'); - - bml_port = B_HEARTBEAT_PORT; - - if (colon) - { - b_parse_int (colon + 1, &bml_port); - *colon = '\0'; - } - - host = name; - } - - server = b_proxy_server_new (hb_port, &error); - if (! server) - { - g_printerr ("Couldn't create proxy server: %s\n", error->message); - return EXIT_FAILURE; - } - - g_print ("Listening for client heartbeat on port %d.\n", hb_port); - - if (host) - { - g_print ("Forwarding stream from blinkenproxy at %s:%d\n", - host, bml_port); - - client = b_proxy_client_new (host, bml_port, -1, - frame_callback, server, - &error); - - if (! client) - { - g_printerr ("Couldn't setup proxy connection: %s\n", error->message); - return EXIT_FAILURE; - } - - receiver = B_RECEIVER (client); - } - else - { - receiver = b_receiver_new (frame_callback, server); - - if (! b_receiver_listen (receiver, bml_port)) - { - g_printerr ("Unable to listen on port %d!\n", bml_port); - return EXIT_FAILURE; - } - - g_print ("Listening for Blinkenlights packages on port %d.\n", bml_port); - } - - g_signal_connect (server, "client_added", - G_CALLBACK (server_client_added), - client); - g_signal_connect (server, "client_removed", - G_CALLBACK (server_client_removed), - client); - - loop = g_main_loop_new (NULL, FALSE); - -#ifndef G_OS_WIN32 - { - struct sigaction sa; - - /* handle SIGINT */ - sigfillset (&sa.sa_mask); - sa.sa_handler = sigint_handler; - sa.sa_flags = SA_RESTART; - sigaction (SIGINT, &sa, NULL); - - /* handle SIGUSR1 */ - sigfillset (&sa.sa_mask); - sa.sa_handler = sigusr1_handler; - sa.sa_flags = SA_RESTART; - sigaction (SIGUSR1, &sa, NULL); - } -#endif /* !G_OS_WIN32 */ - - g_main_loop_run (loop); - g_main_loop_unref (loop); - - g_object_unref (server); - - return EXIT_SUCCESS; -} diff --git a/blinkentools-2.9/src/blm2gif.c b/blinkentools-2.9/src/blm2gif.c deleted file mode 100644 index d3af795..0000000 --- a/blinkentools-2.9/src/blm2gif.c +++ /dev/null @@ -1,394 +0,0 @@ -/* blm2gif.c - * Creates GIF animations from BlinkenLights movies. - * - * Copyright (C) 2001 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include "blutils.h" -#include "gif-save.h" - -#include "hdl.h" - - -#ifndef FALSE -#define FALSE 0 -#define TRUE (!FALSE) -#endif - - -static void -write_image (FILE *gif, - unsigned char *data, - int pitch, - int left, - int top, - int width, - int height, - int delay, - HdlInfo *hdl) -{ - static char *image = NULL; - char *src, *dest; - int first = FALSE; - int i, x, y; - - /* if the frame is empty, create a dummy frame to keep the timing intact */ - if (width <= 0 || height <= 0) - { - left = top = 0; - width = height = 1; - } - - GIFEncodeGraphicControlExt (gif, DISPOSE_COMBINE, delay, TRUE, hdl->trans); - - if (!image) - { - image = malloc (hdl->width * hdl->height); - memcpy (image, hdl->off, hdl->width * hdl->height); - dest = image + hdl->width * (hdl->offy + top * hdl->dy); - first = TRUE; - } - else - { - dest = image; - } - - data += top * pitch; - - for (y = top; y < top + height; y++) - { - for (i = 0; i < hdl->dy; i++) - { - if (first) - dest += hdl->offx + left * hdl->dy; - - for (x = left; x < left + width; x++) - { - if (hdl->trans != -1 && (data[x] & 0x02) && !first) - { - memset (dest, hdl->trans, hdl->dx); - } - else - { - src = (data[x] & 0x1) ? hdl->on : hdl->off; - src += hdl->width * (hdl->offy + y * hdl->dy + i); - src += hdl->offx + x * hdl->dx; - - memcpy (dest, src, hdl->dx); - } - - dest += hdl->dx; - } - - if (first) - dest += hdl->width - (hdl->offx + x * hdl->dx); - } - - data += pitch; - } - - if (first) - GIFEncodeImageData (gif, hdl->width, hdl->height, hdl->cbits, 0, 0, image); - else - GIFEncodeImageData (gif, - width * hdl->dx, height * hdl->dy, hdl->cbits, - hdl->offx + left * hdl->dx, hdl->offy + top * hdl->dy, - image); -} - -int -main (int argc, - char *argv[]) -{ - unsigned char *data = NULL; - FILE *blm = NULL; - char *filename = NULL; - char *comment = NULL; - char buf[4096]; - int comment_len = 0; - int width, height; - int x1, x2, y1, y2; - int lc; - int line; - int len, i; - int duration; - int help; - int version; - int loop = -1; - - HdlInfo hdls[LAST_IMAGE] = - { - hdl_plain, - hdl_small, - hdl_medium, - hdl_large, - hdl_huge - }; - ImageType type = IMAGE_PLAIN; - HdlInfo *hdl; - - - for (i = 1, help = FALSE, version = FALSE; - i < argc && !help && !version; - i++) - { - if (strncmp (argv[i], "--", 2) == 0) - { - if (strcmp (argv[i], "--hdl-small") == 0) - type = IMAGE_HDL_SMALL; - else if (strcmp (argv[i], "--hdl") == 0 || - strcmp (argv[i], "--hdl-medium") == 0) - type = IMAGE_HDL_MEDIUM; - else if (strcmp (argv[i], "--hdl-large") == 0) - type = IMAGE_HDL_LARGE; - else if (strcmp (argv[i], "--hdl-huge") == 0) - type = IMAGE_HDL_HUGE; - else if (strcmp (argv[i], "--loop") == 0) - { - loop = 0; - if (i + 1 < argc && sscanf (argv[i+1], "%d", &loop) == 1) - i++; - } - else if (strcmp (argv[i], "--version") == 0) - version = TRUE; - else - help = TRUE; - } - else if (!filename) - filename = argv[i]; - } - - if (version) - { - fprintf (stderr, "blm2gif version %s\n", VERSION); - return 0; - } - - if (help || !filename) - { - fprintf (stderr, "\nblm2gif creates animated GIFs from Blinkenlights Movies.\n\n"); - fprintf (stderr, "Usage: blm2gif [options] \n\n"); - fprintf (stderr, "Options:\n"); - fprintf (stderr, " --hdl-small Haus des Lehrers (%dx%d).\n", - hdls[IMAGE_HDL_SMALL].width, hdls[IMAGE_HDL_SMALL].height); - fprintf (stderr, " --hdl-medium Haus des Lehrers (%dx%d).\n", - hdls[IMAGE_HDL_MEDIUM].width, hdls[IMAGE_HDL_MEDIUM].height); - fprintf (stderr, " --hdl-large Haus des Lehrers (%dx%d).\n", - hdls[IMAGE_HDL_LARGE].width, hdls[IMAGE_HDL_LARGE].height); - fprintf (stderr, " --hdl-huge Haus des Lehrers (%dx%d).\n", - hdls[IMAGE_HDL_HUGE].width, hdls[IMAGE_HDL_HUGE].height); - fprintf (stderr, " --loop [n] Loop (infinitely or as specified).\n"); - fprintf (stderr, " --help Output usage information.\n"); - fprintf (stderr, " --version Output version information.\n"); - fprintf (stderr, "\nCheck http://www.blinkenlights.de/ for more information.\n\n"); - - return (help ? 0 : -1); - } - - if (isatty (1)) - { - fprintf (stderr, "Not writing to : it's a terminal\n"); - return -1; - } - - if (strcmp (filename, "-") == 0) - blm = stdin; - else - blm = fopen (filename, "r"); - - if (!blm) - { - fprintf (stderr, "Can't open '%s': %s\n", filename, strerror (errno)); - return -1; - } - - lc = 1; - if (!bl_fgets (buf, sizeof (buf), blm) && lc++) - goto blerror; - - if (buf[0] != '#') - goto blerror; - - i = 1; - while (isspace (buf[i])) - i++; - - if (strncasecmp (buf + i, "BlinkenLights Movie", 19) != 0) - goto blerror; - - if (sscanf (buf + i + 19, "%dx%d", &width, &height) != 2) - { - fprintf (stderr, - "Blinkenlights files should declare width and height in the first line.\n" - "This one doesn't but I'll assume %d x %d and try to continue.\n", - BLINKEN_WIDTH, BLINKEN_HEIGHT); - - width = BLINKEN_WIDTH; - height = BLINKEN_HEIGHT; - } - - if (type != IMAGE_PLAIN && - ((width != BLINKEN_WIDTH) || (height != BLINKEN_HEIGHT))) - { - fprintf (stderr, "Sorry, HDL mode is only available for size %dx%d.\n", - BLINKEN_WIDTH, BLINKEN_HEIGHT); - return -1; - } - - hdl = &hdls[type]; - - if (type == IMAGE_PLAIN) - { - hdl->width = width; - hdl->height = height; - hdl->on = malloc (width * height); - memset (hdl->on, 1, width * height); - hdl->off = malloc (width * height); - memset (hdl->off, 0, width * height); - } - - GIFEncodeHeader (stdout, TRUE, - hdl->width, hdl->height, 0, hdl->cbits, hdl->colors); - - if (loop >= 0) - GIFEncodeLoopExt (stdout, loop); - - data = calloc (width * height, sizeof (unsigned char)); - - line = -1; - x1 = y1 = 0; - x2 = width; - y2 = height; - - while (bl_fgets (buf, sizeof (buf), blm) && lc++) - { - len = strlen (buf); - - if (len == 0) - continue; - - if (buf[0] == '#' && comment_len < 240) - { - len--; - if (comment_len + len > 240) - len = 240 - comment_len; - comment = realloc (comment, comment_len + len + 1); - strncpy (comment + comment_len, buf + 1, len); - comment_len += len; - continue; - } - - break; - } - - if (feof (blm)) - goto blerror; - - if (comment) - { - GIFEncodeCommentExt (stdout, comment); - free (comment); - } - - do - { - len = strlen (buf); - - if (len == 0) - continue; - - if (line == -1) - { - if (buf[0] == '@') - { - if (sscanf (buf+1, "%d", &duration) == 1 && duration > 0) - line = 0; - } - } - else - { - /* special case last line */ - if (feof (blm)) - len++; - - if (buf[0] == '@' || len - 1 < width) - { - fprintf (stderr, "Invalid frame, skipping (line %d).\n", lc); - line = -1; - } - else - { - unsigned char *dest = data + width * line; - - for (i = 0; i < width; i++, dest++) - { - unsigned char pixel = (buf[i] == '0' ? 0x0 : 0x1); - - if ((*dest & 0x01) == pixel) - { - *dest |= 0x02; - } - else - { - if (x1 > i) x1 = i; - if (x2 < i + 1) x2 = i + 1; - if (y1 > line) y1 = line; - if (y2 < line + 1) y2 = line + 1; - - *dest = pixel; - } - } - - if (++line == height) - { - write_image (stdout, data, width, - x1, y1, x2 - x1, y2 - y1, duration / 10, hdl); - - x1 = width; - y1 = height; - x2 = y2 = 0; - line = -1; - } - } - } - } - while (bl_fgets (buf, sizeof (buf), blm) && lc++); - - free (data); - fclose (blm); - GIFEncodeClose (stdout); - - return 0; - - blerror: - fprintf (stderr, "Error parsing BlinkenLights movie '%s' (line %d).\n", - filename, lc); - if (data) - free (data); - fclose (blm); - fclose (stdout); - return -1; -} diff --git a/blinkentools-2.9/src/blmplay.c b/blinkentools-2.9/src/blmplay.c deleted file mode 100644 index da744b7..0000000 --- a/blinkentools-2.9/src/blmplay.c +++ /dev/null @@ -1,149 +0,0 @@ -/* blmplay.c - * Plays BlinkenLights movies on the text console. - * - * Copyright (C) 2001 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "blutils.h" - -static void -mysleep (long pause) -{ - static struct timeval last = { 0, 0 }; - struct timeval now; - long expired; - - pause *= 1000; - - gettimeofday (&now, NULL); - if (last.tv_sec != 0) - expired = ((now.tv_sec - last.tv_sec) * 1000000 + - (now.tv_usec - last.tv_usec)); - else - expired = 0; - - if (pause - expired > 0) - usleep (pause - expired); - - gettimeofday (&last, NULL); -} - -int -main (int argc, - char *argv[]) -{ - FILE *blm = NULL; - char *filename = NULL; - char buf[4096]; - int lc; - int len, i; - int duration; - - if (argc != 2) - { - fprintf (stderr, "blmplay version %s\n", VERSION); - fprintf (stderr, "Usage: blmplay \n"); - return -1; - } - - filename = argv[1]; - - if (strcmp (filename, "-") == 0) - blm = stdin; - else - blm = fopen (filename, "r"); - - if (!blm) - { - fprintf (stderr, "Can't open '%s': %s\n", filename, strerror (errno)); - return -1; - } - - lc = 1; - if (!bl_fgets (buf, sizeof (buf), blm) && lc++) - goto blerror; - - if (buf[0] != '#') - goto blerror; - - i = 1; - while (isspace (buf[i])) - i++; - - if (strncasecmp (buf + i, "BlinkenLights Movie", 19) != 0) - goto blerror; - - while (bl_fgets (buf, sizeof (buf), blm) && lc++) - { - len = strlen (buf); - - if (len == 0) - continue; - - if (buf[0] == '#') - continue; - - if (buf[0] == '@') - { - fflush (stdout); - mysleep (duration); - - if (sscanf (buf+1, "%d", &duration) != 1 || duration < 0) - duration = 0; - - printf ("\033[2J\033[H"); - } - else - { - /* skip empty lines */ - for (i = 0; i < len; i++) - if (!isspace (buf[i])) - break; - if (i == len) - continue; - - /* special case last line */ - if (feof (blm)) - len++; - - for (i = 0; i < len - 1; i++) - putchar (buf[i] == '0' ? ' ' : '#'); - - putchar ('\n'); - } - } - - fclose (blm); - mysleep (duration); - return 0; - - blerror: - fprintf (stderr, "Error parsing BlinkenLights movie '%s' (line %d).\n", - filename, lc); - fclose (blm); - return -1; -} diff --git a/blinkentools-2.9/src/blutils.c b/blinkentools-2.9/src/blutils.c deleted file mode 100644 index d1ccb28..0000000 --- a/blinkentools-2.9/src/blutils.c +++ /dev/null @@ -1,59 +0,0 @@ -/* blutils.c - * Common routines to handle BlinkenLights movies. - * - * Copyright (C) 2001 Sven Neumann - * - * 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. - */ - -#include - -#include "blutils.h" - - -char * -bl_fgets (char *s, - int size, - FILE *stream) -{ - int i = 0; - int c = 0; - - if (!s || size < 2) - return NULL; - - while (i < size - 1) - { - c = fgetc (stream); - if (c == EOF || c == '\r') - break; - s[i++] = (char) c; - if (c == '\n') - break; - } - - if (c == '\r') - { - c = fgetc (stream); - if (c != '\n' && c != EOF) - ungetc (c, stream); - s[i++] = '\n'; - } - - if (i) - s[i++] = '\0'; - - return i > 0 ? s : NULL; -} diff --git a/blinkentools-2.9/src/blutils.h b/blinkentools-2.9/src/blutils.h deleted file mode 100644 index 005ae49..0000000 --- a/blinkentools-2.9/src/blutils.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __BLUTILS_H__ -#define __BLUTILS_H__ - -char * bl_fgets (char *buf, - int buf_size, - FILE *stream); - - -#endif /* __BLUTILS_H__ */ diff --git a/blinkentools-2.9/src/bmovie-mng.c b/blinkentools-2.9/src/bmovie-mng.c deleted file mode 100644 index 70c5303..0000000 --- a/blinkentools-2.9/src/bmovie-mng.c +++ /dev/null @@ -1,878 +0,0 @@ -/* b2mng - * Creates MNG animations from Blinkenlights movies. - * - * Copyright (C) 2002-2004 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include -#include - -#include - -#define MNG_SUPPORT_WRITE -#define MNG_ACCESS_CHUNKS -#include - -#include - -#include "bmovie-mng.h" - - -typedef struct -{ - FILE *stream; -} UserData; - -static mng_bool -mng_cb_writedata (mng_handle hMNG, - mng_ptr pBuf, - mng_uint32 iSize, - mng_uint32 *iWritten) -{ - UserData *data = (UserData *) mng_get_userdata (hMNG); - - *iWritten = fwrite (pBuf, 1, iSize, data->stream); - - return MNG_TRUE; -} - -static mng_ptr -mng_cb_alloc (mng_size_t iSize) -{ - return (mng_ptr) g_malloc0 (iSize); -} - -static void -mng_cb_free (mng_ptr pPtr, - mng_size_t iSize) -{ - g_free (pPtr); -} - -static mng_bool -mng_cb_openstream (mng_handle hMNG) -{ - return MNG_TRUE; -} - -static mng_bool -mng_cb_closestream (mng_handle hMNG) -{ - return MNG_TRUE; -} - -static gpointer -zlib_compress_frame (const guchar *data, - gint width, - gint height, - gint rowstride, - gulong *len) -{ - static gchar *z_in = NULL; - static gchar *z_out = NULL; - static gulong z_len = 0; - gulong size; - gint row; - guchar *dest; - - size = (width + 1) * height; - - if (size > z_len) - { - z_len = size; - z_in = g_realloc (z_in, z_len); - z_out = g_realloc (z_out, z_len + 20); - } - - *len = z_len + 20; - - for (row = 0, dest = z_in; row < height; row++) - { - *dest = 0; /* zero filter-byte */ - dest++; - - memcpy (dest, data, width); - - data += rowstride; - dest += width; - } - - compress2 (z_out, len, z_in, z_len, Z_BEST_COMPRESSION); - - return z_out; -} - -static void -mng_put_simple_frame_data (mng_handle hMNG, - BMovie *movie, - BRectangle *rect, - const guchar *data) -{ - gpointer idat; - gulong len; - BRectangle area = { 0, 0, movie->width, movie->height }; - - if (rect) - area = *rect; - - if (area.w < 1 || area.h < 1) - return; - - mng_putchunk_defi (hMNG, - 0, - MNG_DONOTSHOW_VISIBLE, - MNG_ABSTRACT, - MNG_TRUE, area.x, area.y, - MNG_FALSE, 0, 0, 0, 0); - - if (mng_putchunk_ihdr (hMNG, - area.w, area.h, 8, MNG_COLORTYPE_GRAY, - MNG_COMPRESSION_DEFLATE, MNG_FILTER_ADAPTIVE, - MNG_INTERLACE_NONE)) - g_warning ("mng_putchunk_ihdr() failed"); - - idat = zlib_compress_frame (data + area.y * movie->width + area.x, - area.w, area.h, movie->width, &len); - - mng_putchunk_idat (hMNG, len, idat); - mng_putchunk_iend (hMNG); -} - -static void -mng_put_image_data (mng_handle hMNG, - FILE *file, - gint *width, - gint *height) -{ - guint32 chunksize; - guchar chunkname[9]; - guchar *chunkbuffer; - - while (! feof (file)) - { - chunkbuffer = NULL; - - if (fread (&chunksize, 1, 4, file) != 4) - break; - chunksize = g_ntohl (chunksize); - - if (fread (chunkname, 1, 4, file) != 4) - break; - chunkname[4] = 0; - - if (chunksize > 0) - { - chunkbuffer = g_new (guchar, chunksize); - - if (fread (chunkbuffer, 1, chunksize, file) != chunksize) - break; - } - - if (strncmp (chunkname, "IHDR", 4) == 0) - { - guint32 chunkwidth = g_ntohl (*((guint32 *) chunkbuffer)); - guint32 chunkheight = g_ntohl (*((guint32 *) chunkbuffer + 1)); - - mng_putchunk_ihdr (hMNG, - chunkwidth, chunkheight, - chunkbuffer[8], chunkbuffer[9], - chunkbuffer[10], chunkbuffer[11], - chunkbuffer[12]); - - if (width) *width = chunkwidth; - if (height) *height = chunkheight; - } - else if (strncmp (chunkname, "JHDR", 4) == 0) - { - guint32 chunkwidth = g_ntohl (*((guint32 *) chunkbuffer)); - guint32 chunkheight = g_ntohl (*((guint32 *) chunkbuffer + 1)); - - mng_putchunk_jhdr (hMNG, - chunkwidth, chunkheight, - chunkbuffer[8], chunkbuffer[9], - chunkbuffer[10], chunkbuffer[11], - 0, 0, 0, 0); - - if (width) *width = chunkwidth; - if (height) *height = chunkheight; - } - else if (strncmp (chunkname, "IDAT", 4) == 0) - { - mng_putchunk_idat (hMNG, - chunksize, chunkbuffer); - } - else if (strncmp (chunkname, "JDAT", 4) == 0) - { - mng_putchunk_jdat (hMNG, - chunksize, chunkbuffer); - } - else if (strncmp (chunkname, "JSEP", 4) == 0) - { - mng_putchunk_jsep (hMNG); - } - else if (strncmp (chunkname, "IEND", 4) == 0) - { - mng_putchunk_iend (hMNG); - } - else if (strncmp (chunkname, "PLTE", 4) == 0) - { - mng_putchunk_plte (hMNG, - chunksize / 3, (mng_palette8e *) chunkbuffer); - } - else if (strncmp (chunkname, "tRNS", 4) == 0) - { - mng_putchunk_trns (hMNG, - 0, 0, 3, chunksize, - (mng_uint8 *) chunkbuffer, 0, 0, 0, 0, - 0, - (mng_uint8 *) chunkbuffer); - } - - if (chunksize > 0) - g_free (chunkbuffer); - - /* read 4 bytes after the chunk */ - fread (chunkname, 1, 4, file); - } -} - -static gboolean -mng_put_image (mng_handle hMNG, - guint16 id, - const gchar *filename, - gboolean visible, - gint *width, - gint *height, - GError **error) -{ - FILE *file; - gchar buf[8]; - - g_return_val_if_fail (filename != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - file = fopen (filename, "rb"); - - if (! file) - { - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (errno), - "Error reading file '%s': %s", - filename, g_strerror (errno)); - return FALSE; - } - - if (fread (buf, 1, 8, file) == 8 && - (strncmp (buf, "\211PNG\r\n\032\n", 8) == 0 || - strncmp (buf, "\213JNG\r\n\032\n", 8) == 0)) - { - mng_putchunk_defi (hMNG, - id, - (visible ? - MNG_DONOTSHOW_VISIBLE : MNG_DONOTSHOW_NOTVISIBLE), - MNG_ABSTRACT, - MNG_FALSE, 0, 0, - MNG_FALSE, 0, 0, 0, 0); - - mng_put_image_data (hMNG, file, width, height); - - fclose (file); - return TRUE; - } - else - { - g_set_error (error, 0, 0, "Unsupported fileformat in '%s'", filename); - - fclose (file); - return FALSE; - } -} - -static void -mng_put_loop (mng_handle hMNG, - gint loops) -{ - mng_putchunk_save (hMNG, MNG_TRUE, 0, 0); - - if (loops < 0) - mng_putchunk_term (hMNG, - MNG_TERMACTION_REPEAT, MNG_ITERACTION_LASTFRAME, - 0, 0x7fffffff); - else if (loops > 1) - mng_putchunk_term (hMNG, - MNG_TERMACTION_REPEAT, MNG_ITERACTION_LASTFRAME, - 0, loops); - else - mng_putchunk_term (hMNG, - MNG_TERMACTION_LASTFRAME, MNG_ITERACTION_LASTFRAME, - 0, 0); - - mng_putchunk_seek (hMNG, 0, MNG_NULL); -} - -static void -b_movie_mng_header (BMovie *movie, - BTheme *theme, - mng_handle hMNG) -{ - if (mng_putchunk_mhdr (hMNG, - theme ? theme->width : movie->width, - theme ? theme->height : movie->height, - 1000, - 0, - movie->n_frames, - movie->duration, - (MNG_SIMPLICITY_VALID | - MNG_SIMPLICITY_SIMPLEFEATURES | - MNG_SIMPLICITY_COMPLEXFEATURES | - MNG_SIMPLICITY_JNG))) - g_warning ("mng_putchunk_mhdr() failed"); - - mng_putchunk_text (hMNG, - 5, "Title", 19, "Blinkenlights Movie"); -} - -static void -b_movie_write_simple_mng (BMovie *movie, - gint loops, - mng_handle hMNG) -{ - GList *list = movie->frames; - BMovieFrame *frame = list->data; - gint delay = frame->duration; - - if (mng_putchunk_back (hMNG, - 0, 0, 0, MNG_BACKGROUNDCOLOR_MANDATORY, - 0, MNG_BACKGROUNDIMAGE_NOTILE)) - g_warning ("mng_putchunk_back() failed"); - - mng_put_loop (hMNG, loops); - - mng_putchunk_fram (hMNG, - MNG_FALSE, MNG_FRAMINGMODE_1, - 0, MNG_NULL, - MNG_CHANGEDELAY_DEFAULT, - MNG_CHANGETIMOUT_NO, - MNG_CHANGECLIPPING_NO, - MNG_CHANGESYNCID_NO, - delay, 0, 0, - 0, 0, 0, 0, - 0, 0); - mng_put_simple_frame_data (hMNG, movie, NULL, frame->data); - - for (list = list->next; list; list = list->next) - { - frame = list->data; - - if (frame->duration != delay) - { - delay = frame->duration; - - mng_putchunk_fram (hMNG, - MNG_FALSE, MNG_FRAMINGMODE_NOCHANGE, - 0, MNG_NULL, - MNG_CHANGEDELAY_DEFAULT, - MNG_CHANGETIMOUT_NO, - MNG_CHANGECLIPPING_NO, - MNG_CHANGESYNCID_NO, - delay, 0, 0, - 0, 0, 0, 0, - 0, 0); - } - - mng_put_simple_frame_data (hMNG, movie, NULL, frame->data); - } -} - -typedef struct -{ - guint id; - gint width; - gint height; -} Image; - -typedef struct -{ - guint image; - gint x; - gint y; - gint w; - gint h; -} Window; - -static guint -window_hash (const Window *window) -{ - return (g_int_hash (&window->image) + - g_int_hash (&window->x) + - g_int_hash (&window->y) + - g_int_hash (&window->w) + - g_int_hash (&window->h)); -} - -static gboolean -window_equal (const Window *a, - const Window *b) -{ - return (a->image == b->image && - a->x == b->x && - a->y == b->y && - a->w == b->w && - a->h == b->h); -} - -static Image * -load_image (mng_handle hMNG, - GHashTable *images, - guint *next_id, - const gchar *filename, - gboolean visible) -{ - Image *image = g_hash_table_lookup (images, filename); - - if (! image) - { - GError *error = NULL; - gint width = 0; - gint height = 0; - guint id = *next_id; - - if (! mng_put_image (hMNG, - id, filename, visible, &width, &height, &error)) - { - g_warning ("%s\n", error->message); - g_error_free (error); - return FALSE; - } - - image = g_new0 (Image, 1); - image->id = id; - image->width = width; - image->height = height; - - g_hash_table_insert (images, (gpointer) filename, image); - *next_id = id + 1; - } - - return image; -} - -static guint -load_window (mng_handle hMNG, - GHashTable *windows, - guint *next_id, - Image *image, - BWindow *window) -{ - Window win = { image->id, - window->src_x, - window->src_y, - window->rect.w, - window->rect.h }; - - guint id = GPOINTER_TO_UINT (g_hash_table_lookup (windows, &win)); - - if (! id) - { - if (win.x == 0 && - win.y == 0 && - win.w == image->width && - win.h == image->height) - { - id = image->id; - } - else - { - id = *next_id; - *next_id = id + 1; - - mng_putchunk_defi (hMNG, - id, - MNG_DONOTSHOW_NOTVISIBLE, - MNG_ABSTRACT, - MNG_FALSE, 0, 0, - MNG_FALSE, 0, 0, 0, 0); - - mng_putchunk_basi (hMNG, - win.w, win.h, - MNG_BITDEPTH_8, - MNG_COLORTYPE_RGBA, - MNG_COMPRESSION_DEFLATE, - MNG_FILTER_ADAPTIVE, - MNG_INTERLACE_NONE, - 0x0, 0x0, 0x0, 0x0, - MNG_VIEWABLE); - - mng_putchunk_iend (hMNG); - - mng_putchunk_past (hMNG, - id, - MNG_TARGET_ABSOLUTE, 0, 0, - 1); - mng_putchunk_past_src (hMNG, - 0, - image->id, - MNG_COMPOSITE_REPLACE, - MNG_ORIENTATION_SAME, - MNG_OFFSET_ABSOLUTE, - win.x, - win.y, - MNG_BOUNDARY_ABSOLUTE, 0, win.w, 0, win.h); - } - - g_hash_table_insert (windows, - g_memdup (&win, sizeof (Window)), - GUINT_TO_POINTER (id)); - } - - return id; -} - -static void -mng_load_theme_frame (mng_handle hMNG, - BTheme *theme, - GHashTable *images, - GHashTable *windows, - guint *next_id, - const guchar *frame_data) -{ - GList *list; - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - - if (overlay->image) - { - GList *iter; - Image *image; - guint value; - - image = load_image (hMNG, images, next_id, overlay->image, FALSE); - - for (iter = overlay->windows; iter; iter = iter->next) - { - BWindow *window = iter->data; - - value = frame_data[window->column + - window->row * theme->columns]; - - if (value) - { - window += (value * theme->maxval) / 256; - - load_window (hMNG, windows, next_id, image, window); - } - } - } - } -} - -static void -mng_put_window (mng_handle hMNG, - guint id, - gint x, - gint y, - gint repeat, - gint dx, - gint dy) -{ - mng_putchunk_move (hMNG, id, id, MNG_LOCATION_ABSOLUTE, x, y); - mng_putchunk_show (hMNG, MNG_FALSE, id, id, MNG_SHOWMODE_0); - - switch (repeat) - { - case 0: - return; - case 1: - break; - default: - mng_putchunk_loop (hMNG, 0, repeat, - MNG_TERMINATION_DETERMINISTIC_C, - 0, 0, 0, MNG_NULL); - break; - } - - mng_putchunk_move (hMNG, id, id, MNG_LOCATION_RELATIVE, dx, dy); - mng_putchunk_show (hMNG, MNG_FALSE, id, id, MNG_SHOWMODE_0); - - if (repeat > 1) - mng_putchunk_endl (hMNG, 0); -} - -static void -mng_put_theme_frame (mng_handle hMNG, - BTheme *theme, - GHashTable *images, - GHashTable *windows, - const guchar *frame_data, - BRectangle *clip) -{ - GList *list; - GList *iter; - - for (list = theme->overlays; list; list = list->next) - { - BOverlay *overlay = list->data; - Image *image = NULL; - Window last_win = { 0, 0, 0, 0, 0 }; - gint x = 0; - gint y = 0; - gint dx = 0; - gint dy = 0; - gint repeat = 0; - guint id; - - if (overlay->image) - image = g_hash_table_lookup (images, overlay->image); - - if (! image) - continue; - - for (iter = overlay->windows; iter; iter = iter->next) - { - BWindow *window = iter->data; - guint value = frame_data[window->column + - window->row * theme->columns]; - - window += (value * theme->maxval) / 256; - - if (value) - { - Window win = { image->id, - window->src_x, window->src_y, - window->rect.w, window->rect.h }; - - if (clip && ! b_rectangle_intersect (&window->rect, clip, NULL)) - continue; - - if (window_equal (&win, &last_win)) - { - if (repeat) - { - if ((window->rect.x - x == (repeat + 1) * dx) && - (window->rect.y - y == (repeat + 1) * dy)) - { - repeat++; - continue; - } - } - else - { - dx = window->rect.x - x; - dy = window->rect.y - y; - - repeat++; - continue; - } - } - - if (last_win.image) - { - id = GPOINTER_TO_UINT (g_hash_table_lookup (windows, - &last_win)); - mng_put_window (hMNG, id, x, y, repeat, dx, dy); - - repeat = 0; - } - - memcpy (&last_win, &win, sizeof (Window)); - - x = window->rect.x; - y = window->rect.y; - } - } - - if (last_win.image) - { - id = GPOINTER_TO_UINT (g_hash_table_lookup (windows, &last_win)); - mng_put_window (hMNG, id, x, y, repeat, dx, dy); - } - } -} - -static void -b_movie_write_themed_mng (BMovie *movie, - BTheme *theme, - gint loops, - mng_handle hMNG) -{ - GHashTable *images; - GHashTable *windows; - GList *list; - BMovieFrame *frame; - BRectangle prev_clip = { 0, 0, theme->width, theme->height }; - guint8 mandatory = MNG_BACKGROUNDCOLOR_MANDATORY; - guint id = 0; - guint next_id = 1; - - images = g_hash_table_new (g_str_hash, g_str_equal); - - if (theme->bg_image) - { - Image *image = load_image (hMNG, - images, &next_id, theme->bg_image, TRUE); - if (image) - { - id = image->id; - mandatory |= MNG_BACKGROUNDIMAGE_MANDATORY; - } - } - - if (mng_putchunk_back (hMNG, - ((theme->bg_color.r << 8) | theme->bg_color.r), - ((theme->bg_color.g << 8) | theme->bg_color.g), - ((theme->bg_color.b << 8) | theme->bg_color.b), - mandatory, id, MNG_BACKGROUNDIMAGE_NOTILE)) - g_warning ("mng_putchunk_back() failed"); - - windows = g_hash_table_new ((GHashFunc) window_hash, - (GEqualFunc) window_equal); - - for (list = movie->frames; list; list = list->next) - { - frame = list->data; - - mng_load_theme_frame (hMNG, - theme, images, windows, &next_id, frame->data); - } - - mng_put_loop (hMNG, loops); - - list = movie->frames; - frame = list->data; - - mng_putchunk_fram (hMNG, - MNG_FALSE, - MNG_FRAMINGMODE_4, - 0, MNG_NULL, - MNG_CHANGEDELAY_DEFAULT, - MNG_CHANGETIMOUT_NO, - MNG_CHANGECLIPPING_NO, - MNG_CHANGESYNCID_NO, - frame->duration, 0, - MNG_BOUNDARY_ABSOLUTE, 0, 0, 0, 0, - 0, 0); - mng_put_theme_frame (hMNG, theme, images, windows, frame->data, NULL); - - for (list = list->next; list; list = list->next) - { - BMovieFrame *prev_frame; - BRectangle clip; - gboolean delay_changed; - gboolean clip_changed; - - prev_frame = list->prev->data; - frame = list->data; - - b_theme_frame_diff_boundary (theme, - prev_frame->data, frame->data, &clip); - - delay_changed = prev_frame->duration != frame->duration; - clip_changed = (clip.x != prev_clip.x || clip.y != prev_clip.y || - clip.w != prev_clip.w || clip.h != prev_clip.h); - - mng_putchunk_fram (hMNG, - !delay_changed && !clip_changed, - MNG_FRAMINGMODE_NOCHANGE, - 0, MNG_NULL, - (delay_changed ? - MNG_CHANGEDELAY_DEFAULT : MNG_CHANGEDELAY_NO), - MNG_CHANGETIMOUT_NO, - (clip_changed ? - MNG_CHANGECLIPPING_DEFAULT : MNG_CHANGECLIPPING_NO), - MNG_CHANGESYNCID_NO, - frame->duration, 0, - MNG_BOUNDARY_ABSOLUTE, - clip.x, clip.x + clip.w, clip.y, clip.y + clip.h, - 0, 0); - mng_put_theme_frame (hMNG, theme, images, windows, frame->data, &clip); - - prev_clip = clip; - } -} - -gboolean -b_movie_save_as_mng (BMovie *movie, - BTheme *theme, - FILE *stream, - gint loops, - GError **error) -{ - mng_handle hMNG; - UserData data; - - g_return_val_if_fail (B_IS_MOVIE (movie), FALSE); - g_return_val_if_fail (theme == NULL || B_IS_THEME (theme), FALSE); - g_return_val_if_fail (stream != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - - if (theme && theme->channels != 1) - { - g_set_error (error, 0, 0, - "Sorry, themes with channel != 1 are not (yet) supported."); - return FALSE; - } - - if (theme && - (movie->width != theme->columns || movie->height != theme->rows)) - { - g_set_error (error, 0, 0, - "Movie and theme dimensions do not match."); - return FALSE; - } - - data.stream = stream; - - hMNG = mng_initialize ((mng_ptr) &data, mng_cb_alloc, mng_cb_free, MNG_NULL); - if (! hMNG) - goto error; - - if (mng_setcb_openstream (hMNG, mng_cb_openstream) || - mng_setcb_closestream (hMNG, mng_cb_closestream) || - mng_setcb_writedata (hMNG, mng_cb_writedata)) - goto error; - - if (mng_create (hMNG)) - goto error; - - b_movie_mng_header (movie, theme, hMNG); - - if (movie->frames) - { - if (theme) - b_movie_write_themed_mng (movie, theme, loops, hMNG); - else - b_movie_write_simple_mng (movie, loops, hMNG); - } - - if (mng_putchunk_mend (hMNG)) - goto error; - - if (mng_write (hMNG)) - goto error; - - mng_cleanup (&hMNG); - - return TRUE; - - error: - g_set_error (error, 0, 0, "Unexpected problems creating the MNG."); - return FALSE; -} diff --git a/blinkentools-2.9/src/bmovie-mng.h b/blinkentools-2.9/src/bmovie-mng.h deleted file mode 100644 index 89f7584..0000000 --- a/blinkentools-2.9/src/bmovie-mng.h +++ /dev/null @@ -1,30 +0,0 @@ -/* b2mng - * Creates MNG animations from Blinkenlights movies. - * - * Copyright (C) 2002-2004 Sven Neumann - * - * 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. - */ - -#ifndef __B_MOVIE_MNG_H__ -#define __B_MOVIE_MNG_H__ - -gboolean b_movie_save_as_mng (BMovie *movie, - BTheme *theme, - FILE *stream, - gint loops, - GError **error); - -#endif /* __BLUTILS_H__ */ diff --git a/blinkentools-2.9/src/bmultiplexer.c b/blinkentools-2.9/src/bmultiplexer.c deleted file mode 100644 index 0d51d0c..0000000 --- a/blinkentools-2.9/src/bmultiplexer.c +++ /dev/null @@ -1,128 +0,0 @@ -/* bmultiplex - receive udp packets and forward them to multiple hosts - * - * Copyright (C) 2002 The Blinkenlights Crew - * Daniel Mack - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include "blib/blib.h" - -#define HASH 0 - -static gint width = -1; -static gint height = -1; -static gint channels = -1; -static gint maxval = -1; - - -static gboolean -callback (BReceiver *rec, - BPacket *packet, - gpointer callback_data) -{ - BSender *sender = B_SENDER (callback_data); - - if (packet->header.mcu_frame_h.width != width || - packet->header.mcu_frame_h.height != height || - packet->header.mcu_frame_h.channels != channels || - packet->header.mcu_frame_h.maxval != maxval) - { - width = packet->header.mcu_frame_h.width; - height = packet->header.mcu_frame_h.height; - channels = packet->header.mcu_frame_h.channels; - maxval = packet->header.mcu_frame_h.maxval; - - b_sender_configure (sender, width, height, channels, maxval); - } - -#ifdef HASH - g_print ("#"); -#endif - - b_sender_send_frame (sender, packet->data); - - return TRUE; -} - - -int -main (int argc, - char *argv[]) -{ - BSender *sender; - BReceiver *receiver; - GError *error = NULL; - gint i, port, listen_port; - gchar *colon; - GMainLoop *main_loop; - - if (argc < 3) - { - g_printerr ("bmultiplexer (%s version %s)\n\n", PACKAGE, VERSION); - g_printerr ("Usage: %s +\n", argv[0]); - return EXIT_FAILURE; - } - - b_init (); - - sender = b_sender_new (); - g_assert (sender); - - receiver = b_receiver_new (callback, sender); - - if (!b_parse_int (argv[1], &listen_port)) - { - g_printerr ("Invalid listen port: '%s'\n", argv[1]); - return EXIT_FAILURE; - } - - if (!b_receiver_listen (receiver, listen_port)) - { - g_printerr ("Unable to make receiver listen on port %d!\n", listen_port); - return EXIT_FAILURE; - } - - for (i = 2; i < argc; i++) - { - port = MCU_LISTENER_PORT; - - if ((colon = strchr (argv[i], ':')) != NULL) - { - *colon = '\0'; - colon++; - b_parse_int (colon, &port); - } - if (!b_sender_add_recipient (sender, -1, argv[i], port, &error)) - { - g_printerr (error->message); - return EXIT_FAILURE; - } - } - - g_print ("Waiting for udp packets arriving on port %d ...\n", listen_port); - - main_loop = g_main_loop_new (NULL, FALSE); - g_main_loop_run (main_loop); - - g_object_unref (sender); - - return EXIT_SUCCESS; -} diff --git a/blinkentools-2.9/src/bplay.c b/blinkentools-2.9/src/bplay.c deleted file mode 100644 index 820fa9c..0000000 --- a/blinkentools-2.9/src/bplay.c +++ /dev/null @@ -1,235 +0,0 @@ -/* bplay - plays Blinkenlights movie files on the console - * - * Copyright (c) 2001-2003 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include - -#include - -#ifdef HAVE_GETOPT_LONG -#define _GNU_SOURCE -#include -#endif - -#include -#include - -#ifndef G_OS_WIN32 -#include -#endif - -#ifdef HAVE_GETOPT_LONG -static const struct option options[] = -{ - { "loop", no_argument, NULL, 'l' }, - { "help", no_argument, NULL, '?' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; -#endif - -static const gchar *option_str = "l?V"; - -static GMainLoop *main_loop = NULL; - - -static void -usage (const gchar *name) -{ - g_printerr ("bplay - plays Blinkenlights movies on the text console.\n"); - g_printerr ("Check http://www.blinkenlights.de/ for more information.\n\n"); - g_printerr ("Usage: %s [options] \n", - name); - g_printerr ("Options:\n"); - g_printerr (" -l, --loop repeat the movie in an endless loop\n"); - g_printerr (" -?, --help output usage information\n"); - g_printerr (" -V, --version output version information\n"); - g_printerr ("\n"); - -#ifndef HAVE_GETOPT_LONG - g_printerr ("This version of bplay was compiled without support for long command-line\n"); - g_printerr ("options. Only the short, one-letter options will work.\n\n"); -#endif -} - -static gboolean -paint (BModule *module, - guchar *buffer, - gpointer data) -{ - b_view_aa_update (B_VIEW_AA (data), buffer); - - return TRUE; -} - -#ifndef G_OS_WIN32 -static void -sigint_handler (gint signum) -{ - sigset_t sigset; - - sigemptyset (&sigset); - sigprocmask (SIG_SETMASK, &sigset, NULL); - - if (main_loop) - g_main_loop_quit (main_loop); -} -#endif - -int -main (int argc, - char *argv[]) -{ - BModule *module; - BMovie *movie; - BViewAA *view; - aa_context *context; - const gchar *filename; - GError *error = NULL; - gboolean loop = FALSE; - gint c; - - b_init (); - -#ifdef HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, option_str, options, NULL)) >= 0) -#else - while ((c = getopt (argc, argv, option_str)) >= 0) -#endif - { - switch (c) - { - case 'l': - loop = TRUE; - break; - - case '?': - usage (argv[0]); - return EXIT_SUCCESS; - - case 'V': - g_printerr ("bplay (%s version %s)\n", PACKAGE, VERSION); - return EXIT_SUCCESS; - - default: - usage (argv[0]); - return EXIT_FAILURE; - } - } - - if (argc - optind < 1) - { - usage (argv[0]); - return EXIT_FAILURE; - } - - filename = argv[optind]; - - if (strcmp (filename, "-") == 0) - { - filename = ""; - movie = b_movie_new_from_fd (0, &error); - } - else - { - movie = b_movie_new_from_file (filename, FALSE, &error); - } - - if (!movie) - { - g_printerr ("Error opening '%s': %s\n", filename, error->message); - return EXIT_FAILURE; - } - - context = aa_autoinit (&aa_defparams); - if (!context) - { - g_printerr ("Error creating an aalib context\n"); - return EXIT_FAILURE; - } - - aa_hidecursor (context); - aa_autoinitkbd (context, 0); - aa_resizehandler (context, (void *) aa_resize); - - view = b_view_aa_new (context, - movie->height, movie->width, movie->channels, &error); - if (!context) - { - g_printerr ("%s\n", error->message); - return EXIT_FAILURE; - } - - module = b_module_new (B_TYPE_MOVIE_PLAYER, - movie->width, movie->height, NULL, - paint, view, - &error); - - if (!module) - { - g_printerr ("%s\n", error->message); - return EXIT_FAILURE; - } - - g_object_set (module, "movie", filename, NULL); - - /* hack! there should be an API to do this */ - B_MOVIE_PLAYER (module)->movie = movie; - module->ready = TRUE; - - main_loop = g_main_loop_new (NULL, FALSE); - - if (loop) - { - g_signal_connect (G_OBJECT (module), "stop", - G_CALLBACK (b_module_start), - NULL); - } - else - { - g_signal_connect_swapped (G_OBJECT (module), "stop", - G_CALLBACK (g_main_loop_quit), - main_loop); - } - -#ifndef G_OS_WIN32 - { - struct sigaction sa; - - /* handle SIGINT */ - sigfillset (&sa.sa_mask); - sa.sa_handler = sigint_handler; - sa.sa_flags = SA_RESTART; - sigaction (SIGINT, &sa, NULL); - } -#endif - - b_module_start (module); - - g_main_loop_run (main_loop); - - g_main_loop_unref (main_loop); - g_object_unref (module); - aa_close (context); - g_object_unref (view); - - return EXIT_SUCCESS; -} diff --git a/blinkentools-2.9/src/bsend.c b/blinkentools-2.9/src/bsend.c deleted file mode 100644 index a16c3fe..0000000 --- a/blinkentools-2.9/src/bsend.c +++ /dev/null @@ -1,263 +0,0 @@ -/* bsend - plays Blinkenlights movie files over the net - * - * Copyright (c) 2001-2002 Sven Neumann - * - * 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. - */ - -#include "config.h" - -#include -#include -#include - -#ifdef HAVE_GETOPT_LONG -#define _GNU_SOURCE -#include -#endif - -#include - -#ifdef G_OS_WIN32 -#include -#endif - - -#ifdef HAVE_GETOPT_LONG -static const struct option options[] = -{ - { "host", required_argument, NULL, 'h' }, - { "port", required_argument, NULL, 'p' }, - { "loop", no_argument, NULL, 'l' }, - { "loops", required_argument, NULL, 'L' }, - { "reverse", no_argument, NULL, 'r' }, - { "speed", required_argument, NULL, 's' }, - { "verbose", no_argument, NULL, 'v' }, - { "help", no_argument, NULL, '?' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; -#endif - -static const gchar *option_str = "h:p:lL:rs:v?V"; - - -static void -usage (const gchar *name) -{ - g_printerr ("\n"); - g_printerr ("bsend - reads Blinkenlights movies and sends them over the net.\n"); - g_printerr ("Check http://www.blinkenlights.de/ for more information.\n\n"); - g_printerr ("Usage: %s [options] ...\n", - name); - g_printerr ("Options:\n"); - g_printerr (" -h, --host [:port] destination host\n"); - g_printerr (" -p, --port default destination port\n"); - g_printerr (" -r, --reverse play movie backwards\n"); - g_printerr (" -l, --loop repeat the movie in an endless loop\n"); - g_printerr (" -L, --loops repeat the movie as often as specified\n"); - g_printerr (" -s, --speed adjust movie speed\n"); - g_printerr (" -v, --verbose be verbose\n"); - g_printerr (" -?, --help output usage information\n"); - g_printerr (" -V, --version output version information\n"); - g_printerr ("\n"); - -#ifndef HAVE_GETOPT_LONG - g_printerr ("This version of bsend was compiled without support for long command-line\n"); - g_printerr ("options. Only the short, one-letter options will work.\n\n"); -#endif -} - - -int -main (int argc, - char *argv[]) -{ - BSender *sender; - BMovie *movie; - const gchar *hostname = NULL; - gint default_port = MCU_LISTENER_PORT; - GError *error = NULL; - gdouble speed = 1.0; - gint loops = 1; - gboolean reverse = FALSE; - gboolean verbose = FALSE; - gint n = 0; - gint i, c; - - b_init (); - - sender = b_sender_new (); - -#ifdef HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, option_str, options, NULL)) >= 0) -#else - while ((c = getopt (argc, argv, option_str)) >= 0) -#endif - { - switch (c) - { - case 'h': - { - gchar *colon; - gint port = default_port; - - hostname = optarg; - - if ((colon = strchr (optarg, ':')) != NULL) - { - *colon = '\0'; - colon++; - b_parse_int (colon, &port); - } - - if (b_sender_add_recipient (sender, -1, optarg, port, &error)) - { - n++; - } - else - { - g_printerr (error->message); - return EXIT_FAILURE; - } - } - - case 'p': - b_parse_int (optarg, &default_port); - break; - - case 'l': - loops = -1; - break; - - case 'L': - b_parse_int (optarg, &loops); - break; - - case 'r': - reverse = TRUE; - break; - - case 's': - if (!b_parse_double (optarg, &speed) || speed < 0.0) - { - g_printerr ("Invalid argument (speed)\n"); - return EXIT_FAILURE; - } - break; - - case 'v': - verbose = TRUE; - break; - - case '?': - usage (argv[0]); - return EXIT_SUCCESS; - - case 'V': - g_printerr ("bsend (%s version %s)\n", PACKAGE, VERSION); - return EXIT_SUCCESS; - - default: - usage (argv[0]); - return EXIT_FAILURE; - } - } - - b_sender_set_verbose (sender, verbose); - - if (! hostname) - { - if (verbose) - g_print ("No host specified, using localhost.\n"); - - if (b_sender_add_recipient (sender, -1, - "localhost", MCU_LISTENER_PORT, NULL)) - n++; - } - - if (! n) - { - g_printerr ("All hosts failed, exiting\n"); - g_object_unref (sender); - return EXIT_FAILURE; - } - - for (n = 0; n == 0 || optind < argc; n++, optind++) - { - const gchar *filename = optind < argc ? argv[optind] : NULL; - - if ((n== 0 && ! filename) || strcmp (filename, "-") == 0) - { - movie = b_movie_new_from_fd (0, &error); - filename = ""; - } - else - { - movie = b_movie_new_from_file (filename, FALSE, &error); - } - - if (! movie) - { - g_printerr ("Error opening '%s': %s\n", filename, error->message); - g_clear_error (&error); - continue; - } - - if (reverse || speed != 1.0) - { - BEffects *effects = b_effects_new (); - - b_movie_apply_effects (movie, effects, reverse, speed); - - g_object_unref (effects); - } - - if (verbose) - g_print ("Loaded '%s' (%dx%d) channels=%d maxval=%d (%d frames, %d.%d s)\n", - movie->title ? movie->title : b_object_get_name (B_OBJECT (movie)), - movie->width, movie->height, movie->channels, movie->maxval, - movie->n_frames, - movie->duration / 1000, (movie->duration % 1000) / 10); - - b_sender_configure (sender, - movie->width, movie->height, - movie->channels, movie->maxval); - - for (i = 0; loops < 0 || i < loops; i++) - { - GList *list; - - for (list = movie->frames; list; list = list->next) - { - BMovieFrame *frame = list->data; - - b_sender_send_frame (sender, frame->data); - -#ifdef G_OS_WIN32 - Sleep (frame->duration); -#else - usleep (frame->duration * 1000); -#endif - } - } - - g_object_unref (movie); - } - - g_object_unref (sender); - - return EXIT_SUCCESS; -} diff --git a/blinkentools-2.9/src/gif-load.c b/blinkentools-2.9/src/gif-load.c deleted file mode 100644 index 8680eb0..0000000 --- a/blinkentools-2.9/src/gif-load.c +++ /dev/null @@ -1,602 +0,0 @@ -/* GIF loading routines stripped out of the GIF loading filter for The GIMP. - * - * Modified for blinkentools by Sven Neumann - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for code which this plugin was long ago derived from */ -/* +-------------------------------------------------------------------+ */ -/* | Copyright 1990, 1991, 1993, David Koblas. (koblas@netcom.com) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +-------------------------------------------------------------------+ */ - -#include -#include -#include - -#include "gif-load.h" - - -#define MAX_LZW_BITS 12 - -#define INTERLACE 0x40 -#define LOCALCOLORMAP 0x80 -#define BitSet(byte, bit) (((byte) & (bit)) == (bit)) - -#define ReadOK(file,buffer,len) (fread(buffer, len, 1, file) != 0) -#define LM_to_uint(a,b) (((b)<<8)|(a)) - - -static int ReadColorMap (FILE *fd, - int number, - unsigned char *buffer); -static int GetDataBlock (FILE *fd, - unsigned char *buf); -static int GetCode (FILE *fd, - int code_size, - int flag); -static int LZWReadByte (FILE *fd, - int flag, - int input_code_size); - - -int -GIFDecodeHeader (FILE *fd, - int *Width, - int *Height, - int *Background, - int *colors, - unsigned char **cmap) -{ - int AspectRatio; - unsigned char buf[16]; - char version[4]; - - if (!ReadOK (fd, buf, 6)) - { - fprintf (stderr, "GIF: error reading magic number\n"); - return 0; - } - - if (strncmp ((char *) buf, "GIF", 3) != 0) - { - fprintf (stderr, "GIF: not a GIF file\n"); - return 0; - } - - strncpy (version, (char *) buf + 3, 3); - version[3] = '\0'; - - if ((strcmp (version, "87a") != 0) && (strcmp (version, "89a") != 0)) - { - fprintf (stderr, "GIF: bad version number, not '87a' or '89a'\n"); - return 0; - } - - if (!ReadOK (fd, buf, 7)) - { - fprintf (stderr, "GIF: failed to read screen descriptor\n"); - return 0; - } - - *Width = LM_to_uint (buf[0], buf[1]); - *Height = LM_to_uint (buf[2], buf[3]); - *colors = 2 << (buf[4] & 0x07); - if (Background) - *Background = buf[5]; - - AspectRatio = buf[6]; - if (AspectRatio != 0 && AspectRatio != 49) - fprintf (stderr, "GIF: warning - non-square pixels\n"); - - *cmap = NULL; - - if (BitSet (buf[4], LOCALCOLORMAP)) - { - unsigned char *colormap; - - colormap = calloc (3 * *colors, 1); - - /* Global Colormap */ - if (!ReadColorMap (fd, *colors, colormap)) - { - fprintf (stderr, "GIF: error reading global colormap\n"); - free (colormap); - return 0; - } - - *cmap = colormap; - } - - return 1; -} - -int -GIFDecodeRecordType (FILE *fd, - GIFRecordType *type) -{ - unsigned char c; - - if (!ReadOK (fd, &c, 1)) - { - fprintf (stderr, "GIF: EOF / read error on image data\n"); - return 0; - } - - switch (c) - { - case ',': - *type = IMAGE; - return 1; - - case '!': - if (!ReadOK (fd, &c, 1)) - { - fprintf (stderr, "GIF: EOF / read error on extension function code\n"); - return 0; - } - - switch (c) - { - case 0xf9: - *type = GRAPHIC_CONTROL_EXTENSION; - break; - case 0xfe: - *type = COMMENT_EXTENSION; - break; - case 0x01: /* PLAINTEXT_EXTENSION */ - case 0xff: /* APPLICATION_EXTENSION */ - *type = UNKNOWN_EXTENSION; - break; - default: - return 0; - } - - return 1; - - case ';': - *type = TERMINATOR; - return 1; - - default: - fprintf (stderr, "GIF: bogus character 0x%02x, ignoring\n", c); - return GIFDecodeRecordType (fd, type); - } - - return 0; -} - -int -GIFDecodeImage (FILE *fd, - int *Width, - int *Height, - int *offx, - int *offy, - int *colors, - unsigned char **cmap, - unsigned char *data) -{ - unsigned char buf[16]; - unsigned char c; - unsigned char *dest; - int local_cmap; - int interlace; - int v; - int width, height; - int xpos = 0, ypos = 0, pass = 0; - - if (!ReadOK (fd, buf, 9)) - { - fprintf (stderr, "GIF: couldn't read image data\n"); - return 0; - } - - *colors = 0; - *cmap = NULL; - - local_cmap = BitSet (buf[8], LOCALCOLORMAP); - - if (local_cmap) - { - unsigned char *colormap; - - *colors = 2 << (buf[8] & 0x07); - colormap = calloc (3 * *colors, 1); - - if (!ReadColorMap (fd, *colors, colormap)) - { - free (colormap); - fprintf (stderr, "GIF: error reading global colormap\n"); - return 0; - } - - *cmap = colormap; - } - - *Width = width = LM_to_uint (buf[4], buf[5]); - *Height = height = LM_to_uint (buf[6], buf[7]); - *offx = LM_to_uint (buf[0], buf[1]); - *offy = LM_to_uint (buf[2], buf[3]); - - interlace = BitSet (buf[8], INTERLACE); - - if (!ReadOK (fd, &c, 1)) - { - fprintf (stderr, "GIF: EOF / read error on image data\n"); - goto error; - } - - if (LZWReadByte (fd, 1, c) < 0) - { - fprintf (stderr, "GIF: error while reading\n"); - goto error; - } - - while ((v = LZWReadByte (fd, 0, c)) >= 0) - { - dest = data + (ypos * width) + xpos; - *dest = (unsigned char) v; - - xpos++; - if (xpos == width) - { - xpos = 0; - if (interlace) - { - switch (pass) - { - case 0: - case 1: - ypos += 8; - break; - case 2: - ypos += 4; - break; - case 3: - ypos += 2; - break; - } - - if (ypos >= height) - { - pass++; - switch (pass) - { - case 1: - ypos = 4; - break; - case 2: - ypos = 2; - break; - case 3: - ypos = 1; - break; - default: - goto fini; - } - } - } - else - { - ypos++; - } - } - if (ypos >= height) - break; - } - - fini: - if (LZWReadByte (fd, 0, c) >= 0) - fprintf (stderr, "GIF: too much input data, ignoring extra...\n"); - - return 1; - - error: - if (*cmap) - free (*cmap); - *cmap = NULL; - return 0; -} - -int -GIFDecodeGraphicControlExt (FILE *fd, - GIFDisposeType *Disposal, - int *Delay, - int *Transparent) -{ - unsigned char buf[256]; - - if (GetDataBlock (fd, buf) < 4) - return 0; - - *Disposal = (buf[0] >> 2) & 0x7; - *Delay = LM_to_uint (buf[1], buf[2]); - - if ((buf[0] & 0x1) != 0) - *Transparent = buf[3]; - else - *Transparent = -1; - - while (GetDataBlock (fd, buf) > 0) - ; - - return 1; -} - -int -GIFDecodeCommentExt (FILE *fd, - char **comment) -{ - char buf[256]; - int comment_len; - int len; - - *comment = NULL; - comment_len = 0; - - while ((len = GetDataBlock (fd, (unsigned char *) buf)) > 0) - { - *comment = realloc (*comment, comment_len + len + 1); - strncpy (*comment + comment_len, buf, len); - comment_len += len; - } - - return 1; -} - -void -GIFDecodeUnknownExt (FILE *fd) -{ - char buf[256]; - - while (GetDataBlock (fd, buf) > 0) - ; -} - -static int -ReadColorMap (FILE *fd, - int number, - unsigned char *cmap) -{ - int i; - unsigned char rgb[3]; - - for (i = 0; i < number; ++i) - { - if (!ReadOK (fd, rgb, sizeof (rgb))) - { - fprintf (stderr, "GIF: bad colormap\n"); - return 0; - } - - *cmap++ = rgb[0]; - *cmap++ = rgb[1]; - *cmap++ = rgb[2]; - } - - return 1; -} - - -int ZeroDataBlock = 0; - -static int -GetDataBlock (FILE *fd, - unsigned char *buf) -{ - unsigned char count; - - if (!ReadOK (fd, &count, 1)) - { - fprintf (stderr, "GIF: error in getting DataBlock size\n"); - return -1; - } - - ZeroDataBlock = count == 0; - - if ((count != 0) && (!ReadOK (fd, buf, count))) - { - fprintf (stderr, "GIF: error in reading DataBlock\n"); - return -1; - } - - return count; -} - -static int -GetCode (FILE *fd, - int code_size, - int flag) -{ - static unsigned char buf[280]; - static int curbit, lastbit, done, last_byte; - int i, j, ret; - unsigned char count; - - if (flag) - { - curbit = 0; - lastbit = 0; - done = 0; - last_byte = 2; - return 0; - } - - if ((curbit + code_size) >= lastbit) - { - if (done) - { - if (curbit >= lastbit) - fprintf (stderr, "GIF: ran off the end of my bits\n"); - - return -1; - } - - buf[0] = buf[last_byte - 2]; - buf[1] = buf[last_byte - 1]; - - if ((count = GetDataBlock (fd, &buf[2])) <= 0) - done = 1; - - last_byte = 2 + count; - curbit = (curbit - lastbit) + 16; - lastbit = (2 + count) * 8; - } - - ret = 0; - for (i = curbit, j = 0; j < code_size; ++i, ++j) - ret |= ((buf[i / 8] & (1 << (i % 8))) != 0) << j; - - curbit += code_size; - - return ret; -} - -static int -LZWReadByte (FILE *fd, - int flag, - int input_code_size) -{ - static int fresh = 0; - int code, incode; - static int code_size, set_code_size; - static int max_code, max_code_size; - static int firstcode, oldcode; - static int clear_code, end_code; - static int table[2][(1 << MAX_LZW_BITS)]; - static int stack[(1 << (MAX_LZW_BITS)) * 2], *sp; - register int i; - - if (flag) - { - set_code_size = input_code_size; - code_size = set_code_size + 1; - clear_code = 1 << set_code_size; - end_code = clear_code + 1; - max_code_size = 2 * clear_code; - max_code = clear_code + 2; - - GetCode (fd, 0, 1); - - fresh = 1; - - for (i = 0; i < clear_code; ++i) - { - table[0][i] = 0; - table[1][i] = i; - } - for (; i < (1 << MAX_LZW_BITS); ++i) - table[0][i] = table[1][0] = 0; - - sp = stack; - - return 0; - } - else if (fresh) - { - fresh = 0; - do - { - firstcode = oldcode = - GetCode (fd, code_size, 0); - } - while (firstcode == clear_code); - return firstcode; - } - - if (sp > stack) - return *--sp; - - while ((code = GetCode (fd, code_size, 0)) >= 0) - { - if (code == clear_code) - { - for (i = 0; i < clear_code; ++i) - { - table[0][i] = 0; - table[1][i] = i; - } - for (; i < (1 << MAX_LZW_BITS); ++i) - table[0][i] = table[1][i] = 0; - code_size = set_code_size + 1; - max_code_size = 2 * clear_code; - max_code = clear_code + 2; - sp = stack; - firstcode = oldcode = - GetCode (fd, code_size, 0); - return firstcode; - } - else if (code == end_code) - { - int count; - unsigned char buf[260]; - - if (ZeroDataBlock) - return -2; - - while ((count = GetDataBlock (fd, buf)) > 0) - ; - - if (count != 0) - fprintf (stderr, - "GIF: missing EOD in data stream (common occurence)"); - return -2; - } - - incode = code; - - if (code >= max_code) - { - *sp++ = firstcode; - code = oldcode; - } - - while (code >= clear_code) - { - *sp++ = table[1][code]; - if (code == table[0][code]) - { - fprintf (stderr, "GIF: circular table entry BIG ERROR\n"); - return -2; - } - code = table[0][code]; - } - - *sp++ = firstcode = table[1][code]; - - if ((code = max_code) < (1 << MAX_LZW_BITS)) - { - table[0][code] = oldcode; - table[1][code] = firstcode; - ++max_code; - if ((max_code >= max_code_size) && - (max_code_size < (1 << MAX_LZW_BITS))) - { - max_code_size *= 2; - ++code_size; - } - } - - oldcode = incode; - - if (sp > stack) - return *--sp; - } - return code; -} diff --git a/blinkentools-2.9/src/gif-load.h b/blinkentools-2.9/src/gif-load.h deleted file mode 100644 index c371951..0000000 --- a/blinkentools-2.9/src/gif-load.h +++ /dev/null @@ -1,73 +0,0 @@ -/* GIF loading routines stripped out of the GIF loading filter for The GIMP. - * - * Modified for blinkentools by Sven Neumann - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for code which this plugin was long ago derived from */ -/* +-------------------------------------------------------------------+ */ -/* | Copyright 1990, 1991, 1993, David Koblas. (koblas@netcom.com) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +-------------------------------------------------------------------+ */ - -#ifndef __GIF_LOAD_H__ -#define __GIF_LOAD_H__ - - -typedef enum -{ - DISPOSE_UNSPECIFIED, - DISPOSE_COMBINE, - DISPOSE_REPLACE -} GIFDisposeType; - -typedef enum -{ - IMAGE, - GRAPHIC_CONTROL_EXTENSION, - COMMENT_EXTENSION, - UNKNOWN_EXTENSION, - TERMINATOR -} GIFRecordType; - -int GIFDecodeHeader (FILE *fd, - int *Width, - int *Height, - int *Background, - int *colors, - unsigned char **cmap); -int GIFDecodeRecordType (FILE *fd, - GIFRecordType *type); -int GIFDecodeImage (FILE *fd, - int *Width, - int *Height, - int *offx, - int *offy, - int *colors, - unsigned char **cmap, - unsigned char *data); -int GIFDecodeGraphicControlExt (FILE *fd, - GIFDisposeType *Disposal, - int *Delay, - int *Transparent); -int GIFDecodeCommentExt (FILE *fd, - char **comment); -void GIFDecodeUnknownExt (FILE *fd); - - -#endif /* __GIF_LOAD_H__ */ diff --git a/blinkentools-2.9/src/gif-save.c b/blinkentools-2.9/src/gif-save.c deleted file mode 100644 index ffd604c..0000000 --- a/blinkentools-2.9/src/gif-save.c +++ /dev/null @@ -1,720 +0,0 @@ -/* GIF savinging routines stripped out of the GIF saving filter for The GIMP. - * - * Modified for blinkentools by Sven Neumann - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for code which this plugin was long ago derived from */ -/* +-------------------------------------------------------------------+ */ -/* | Copyright 1990, 1991, 1993, David Koblas. (koblas@netcom.com) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +-------------------------------------------------------------------+ */ - - -#include -#include -#include -#include - -#include "gif-save.h" - - -static int GIFNextPixel (void); - -/* - * a code_int must be able to hold 2**BITS values of type int, and also -1 - */ -typedef int code_int; -typedef long int count_int; - - -unsigned char *pixels; - -static void Putword (int, FILE *); -static void compress (int, FILE *); -static void output (code_int); -static void cl_block (void); -static void cl_hash (count_int); -static void writeerr (void); -static void char_init (void); -static void char_out (int); -static void flush_char (void); - - -static long CountDown; - -/* - * Return the next pixel from the image - */ -int -GIFNextPixel (void) -{ - if (CountDown == 0) - return EOF; - - --CountDown; - - return *pixels++; -} - -/* public */ - -void -GIFEncodeHeader (FILE *fp, - int gif89, - int Width, - int Height, - int Background, - int BitsPerPixel, - char *cmap) -{ - int B; - int Resolution; - int ColorMapSize; - int i; - - ColorMapSize = 1 << BitsPerPixel; - - Resolution = BitsPerPixel; - - /* - * Write the Magic header - */ - fwrite (gif89 ? "GIF89a" : "GIF87a", 1, 6, fp); - - /* - * Write out the screen width and height - */ - Putword (Width, fp); - Putword (Height, fp); - - /* - * Indicate that there is a global colour map - */ - B = 0x80; /* Yes, there is a color map */ - - /* - * OR in the resolution - */ - B |= (Resolution - 1) << 5; - - /* - * OR in the Bits per Pixel - */ - B |= (BitsPerPixel - 1); - - /* - * Write it out - */ - fputc (B, fp); - - /* - * Write out the Background colour - */ - fputc (Background, fp); - - /* - * Byte of 0's (future expansion) - */ - fputc (0, fp); - - /* - * Write out the Global Colour Map - */ - for (i = 0; i < 3 * ColorMapSize; i++) - fputc (cmap[i], fp); -} - -void -GIFEncodeGraphicControlExt (FILE *fp, - GIFDisposeType Disposal, - int Delay, - int Animation, - int Transparent) -{ - /* - * Write out extension for transparent colour index, if necessary. - */ - if ( (Transparent >= 0) || (Animation) ) - { - /* Extension Introducer - fixed. */ - fputc ('!', fp); - /* Graphic Control Label - fixed. */ - fputc (0xf9, fp); - /* Block Size - fixed. */ - fputc (4, fp); - - /* Packed Fields - XXXdddut (d=disposal, u=userInput, t=transFlag) */ - /* s8421 */ - fputc ( ((Transparent >= 0) ? 0x01 : 0x00) /* TRANSPARENCY */ - - /* DISPOSAL */ - | (Animation ? (Disposal << 2) : 0x00), - /* 0x03 or 0x01 build frames cumulatively */ - /* 0x02 clears frame before drawing */ - /* 0x00 'don't care' */ - - fp); - - fputc (Delay & 255, fp); - fputc ((Delay>>8) & 255, fp); - - fputc (Transparent, fp); - fputc (0, fp); - } -} - -void -GIFEncodeImageData (FILE *fp, - int Width, - int Height, - int BitsPerPixel, - int offset_x, - int offset_y, - char *data) -{ - int Resolution; - int ColorMapSize; - int InitCodeSize; - - ColorMapSize = 1 << BitsPerPixel; - - Resolution = BitsPerPixel; - - /* - * Calculate number of bits we are expecting - */ - CountDown = (long) Width * (long) Height; - pixels = data; - - /* - * The initial code size - */ - if (BitsPerPixel <= 1) - InitCodeSize = 2; - else - InitCodeSize = BitsPerPixel; - - /* - * Write an Image separator - */ - fputc (',', fp); - - /* - * Write the Image header - */ - Putword (offset_x, fp); - Putword (offset_y, fp); - Putword (Width, fp); - Putword (Height, fp); - - /* no interlacing */ - fputc (0x0, fp); - - /* - * Write out the initial code size - */ - fputc (InitCodeSize, fp); - - /* - * Go and actually compress the data - */ - compress (InitCodeSize + 1, fp); - - /* - * Write out a Zero-length packet (to end the series) - */ - fputc (0x0, fp); -} - -void -GIFEncodeClose (FILE *fp) -{ - /* - * Write the GIF file terminator - */ - fputc (';', fp); - - /* - * And close the file - */ - fclose (fp); -} - -void -GIFEncodeLoopExt (FILE *fp, - int num_loops) -{ - fputc(0x21,fp); - fputc(0xff,fp); - fputc(0x0b,fp); - fputs("NETSCAPE2.0",fp); - fputc(0x03,fp); - fputc(0x01,fp); - Putword(num_loops,fp); - fputc(0x00,fp); - - /* NOTE: num_loops==0 means 'loop infinitely' */ -} - - -void -GIFEncodeCommentExt (FILE *fp, - char *comment) -{ - if (!comment || !*comment) - return; - - if (strlen(comment)>240) - { - fprintf (stderr, - "GIF: warning: comment too large - comment block not written.\n"); - return; - } - - fputc(0x21,fp); - fputc(0xfe,fp); - fputc(strlen(comment),fp); - fputs((const char *)comment,fp); - fputc(0x00,fp); -} - - - -/* - * Write out a word to the GIF file - */ -static void -Putword (int w, - FILE *fp) -{ - fputc (w & 0xff, fp); - fputc ((w / 256) & 0xff, fp); -} - - -/*************************************************************************** - * - * GIFCOMPR.C - GIF Image compression routines - * - * Lempel-Ziv compression based on 'compress'. GIF modifications by - * David Rowley (mgardi@watdcsu.waterloo.edu) - * - ***************************************************************************/ - -/* - * General DEFINEs - */ - -#define GIF_BITS 12 - -#define HSIZE 5003 /* 80% occupancy */ - -#ifdef NO_UCHAR -typedef char char_type; -#else /*NO_UCHAR */ -typedef unsigned char char_type; -#endif /*NO_UCHAR */ - -/* - - * GIF Image compression - modified 'compress' - * - * Based on: compress.c - File compression ala IEEE Computer, June 1984. - * - * By Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas) - * Jim McKie (decvax!mcvax!jim) - * Steve Davies (decvax!vax135!petsd!peora!srd) - * Ken Turkowski (decvax!decwrl!turtlevax!ken) - * James A. Woods (decvax!ihnp4!ames!jaw) - * Joe Orost (decvax!vax135!petsd!joe) - * - */ -#include - -#define ARGVAL() (*++(*argv) || (--argc && *++argv)) - -static int n_bits; /* number of bits/code */ -static int maxbits = GIF_BITS; /* user settable max # bits/code */ -static code_int maxcode; /* maximum code, given n_bits */ -static code_int maxmaxcode = (code_int) 1 << GIF_BITS; /* should NEVER generate this code */ -#ifdef COMPATIBLE /* But wrong! */ -#define MAXCODE(Mn_bits) ((code_int) 1 << (Mn_bits) - 1) -#else /*COMPATIBLE */ -#define MAXCODE(Mn_bits) (((code_int) 1 << (Mn_bits)) - 1) -#endif /*COMPATIBLE */ - -static count_int htab[HSIZE]; -static unsigned short codetab[HSIZE]; -#define HashTabOf(i) htab[i] -#define CodeTabOf(i) codetab[i] - -const code_int hsize = HSIZE; /* the original reason for this being - variable was "for dynamic table sizing", - but since it was never actually changed - I made it const --Adam. */ - -/* - * To save much memory, we overlay the table used by compress() with those - * used by decompress(). The tab_prefix table is the same size and type - * as the codetab. The tab_suffix table needs 2**GIF_BITS characters. We - * get this from the beginning of htab. The output stack uses the rest - * of htab, and contains characters. There is plenty of room for any - * possible stack (stack used to be 8000 characters). - */ - -#define tab_prefixof(i) CodeTabOf(i) -#define tab_suffixof(i) ((char_type*)(htab))[i] -#define de_stack ((char_type*)&tab_suffixof((code_int)1< 0) - goto probe; - nomatch: - output ((code_int) ent); - ++out_count; - ent = c; - - if (free_ent < maxmaxcode) - { - CodeTabOf (i) = free_ent++; /* code -> hashtable */ - HashTabOf (i) = fcode; - } - else - cl_block (); - } - /* - * Put out the final code. - */ - output ((code_int) ent); - ++out_count; - output ((code_int) EOFCode); -} - -/***************************************************************** - * TAG( output ) - * - * Output the given code. - * Inputs: - * code: A n_bits-bit integer. If == -1, then EOF. This assumes - * that n_bits =< (long)wordsize - 1. - * Outputs: - * Outputs code to the file. - * Assumptions: - * Chars are 8 bits long. - * Algorithm: - * Maintain a GIF_BITS character long buffer (so that 8 codes will - * fit in it exactly). Use the VAX insv instruction to insert each - * code in turn. When the buffer fills up empty it and start over. - */ - -static void -output (code_int code) -{ - cur_accum &= masks[cur_bits]; - - if (cur_bits > 0) - cur_accum |= ((long) code << cur_bits); - else - cur_accum = code; - - cur_bits += n_bits; - - while (cur_bits >= 8) - { - char_out ((unsigned int) (cur_accum & 0xff)); - cur_accum >>= 8; - cur_bits -= 8; - } - - /* - * If the next entry is going to be too big for the code size, - * then increase it, if possible. - */ - if (free_ent > maxcode || clear_flg) - { - if (clear_flg) - { - - maxcode = MAXCODE (n_bits = g_init_bits); - clear_flg = 0; - - } - else - { - - ++n_bits; - if (n_bits == maxbits) - maxcode = maxmaxcode; - else - maxcode = MAXCODE (n_bits); - } - } - - if (code == EOFCode) - { - /* - * At EOF, write the rest of the buffer. - */ - while (cur_bits > 0) - { - char_out ((unsigned int) (cur_accum & 0xff)); - cur_accum >>= 8; - cur_bits -= 8; - } - - flush_char (); - - fflush (g_outfile); - - if (ferror (g_outfile)) - writeerr (); - } -} - -/* - * Clear out the hash table - */ -static void -cl_block () /* table clear for block compress */ -{ - - cl_hash ((count_int) hsize); - free_ent = ClearCode + 2; - clear_flg = 1; - - output ((code_int) ClearCode); -} - -static void -cl_hash (register count_int hsize) /* reset code table */ -{ - - register count_int *htab_p = htab + hsize; - - register long i; - register long m1 = -1; - - i = hsize - 16; - do - { /* might use Sys V memset(3) here */ - *(htab_p - 16) = m1; - *(htab_p - 15) = m1; - *(htab_p - 14) = m1; - *(htab_p - 13) = m1; - *(htab_p - 12) = m1; - *(htab_p - 11) = m1; - *(htab_p - 10) = m1; - *(htab_p - 9) = m1; - *(htab_p - 8) = m1; - *(htab_p - 7) = m1; - *(htab_p - 6) = m1; - *(htab_p - 5) = m1; - *(htab_p - 4) = m1; - *(htab_p - 3) = m1; - *(htab_p - 2) = m1; - *(htab_p - 1) = m1; - htab_p -= 16; - } - while ((i -= 16) >= 0); - - for (i += 16; i > 0; --i) - *--htab_p = m1; -} - -static void -writeerr () -{ - fprintf (stderr, "GIF: error writing output file\n"); - return; -} - -/****************************************************************************** - * - * GIF Specific routines - * - ******************************************************************************/ - -/* - * Number of characters so far in this 'packet' - */ -static int a_count; - -/* - * Set up the 'byte output' routine - */ -static void -char_init () -{ - a_count = 0; -} - -/* - * Define the storage for the packet accumulator - */ -static char accum[256]; - -/* - * Add a character to the end of the current packet, and if it is 254 - * characters, flush the packet to disk. - */ -static void -char_out (int c) -{ - accum[a_count++] = c; - if (a_count >= 254) - flush_char (); -} - -/* - * Flush the packet to disk, and reset the accumulator - */ -static void -flush_char (void) -{ - if (a_count > 0) - { - fputc (a_count, g_outfile); - fwrite (accum, 1, a_count, g_outfile); - a_count = 0; - } -} diff --git a/blinkentools-2.9/src/gif-save.h b/blinkentools-2.9/src/gif-save.h deleted file mode 100644 index 335f542..0000000 --- a/blinkentools-2.9/src/gif-save.h +++ /dev/null @@ -1,65 +0,0 @@ -/* GIF savinging routines stripped out of the GIF saving filter for The GIMP. - * - * Modified for blinkentools by Sven Neumann - * - * GIMP plug-in written by Adam D. Moss - * - * Based around original GIF code by David Koblas. - * - * This filter uses code taken from the "giftopnm" and "ppmtogif" programs - * which are part of the "netpbm" package. - * - * "The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated." - */ - -/* Copyright notice for code which this plugin was long ago derived from */ -/* +-------------------------------------------------------------------+ */ -/* | Copyright 1990, 1991, 1993, David Koblas. (koblas@netcom.com) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +-------------------------------------------------------------------+ */ - -#ifndef __GIF_SAVE_H__ -#define __GIF_SAVE_H__ - - -typedef enum -{ - DISPOSE_UNSPECIFIED, - DISPOSE_COMBINE, - DISPOSE_REPLACE -} GIFDisposeType; - -void GIFEncodeHeader (FILE *fp, - int gif89, - int Width, - int Height, - int Background, - int BitsPerPixel, - char *cmap); -void GIFEncodeGraphicControlExt (FILE *fp, - GIFDisposeType Disposal, - int Delay, - int Animation, - int Transparent); -void GIFEncodeImageData (FILE *fp, - int Width, - int Height, - int BitsPerPixel, - int offset_x, - int offset_y, - char *data); -void GIFEncodeClose (FILE *fp); -void GIFEncodeCommentExt (FILE *fp, - char *comment); -void GIFEncodeLoopExt (FILE *fp, - int num_loops); - - -#endif /* __GIF_SAVE_H__ */ diff --git a/blinkentools-2.9/src/gif2blm.c b/blinkentools-2.9/src/gif2blm.c deleted file mode 100644 index 6a50904..0000000 --- a/blinkentools-2.9/src/gif2blm.c +++ /dev/null @@ -1,325 +0,0 @@ -/* gif2blm.c - * Converts GIF animations to BlinkenLights movies. - * - * Copyright (C) 2001 Sven Neumann - * Enhanced by Tino Schwarze - * - * 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. - */ - -#include "config.h" - -#include -#include -#include - -#include "gif-load.h" -#include "hdl.h" - - -#ifndef FALSE -#define FALSE 0 -#define TRUE (!FALSE) -#endif - -#define DEFAULT_DELAY 10 /* 1/100 sec */ - - -int -main (int argc, - char *argv[]) -{ - FILE *gif; - GIFRecordType type; - unsigned char *image; - unsigned char *frame; - unsigned char *cmap; - char *data; - char *filename = NULL; - int i; - int help; - int version; - int width, height, colors; - int delay, transparent; - int invert = FALSE; - int hdl_mode = FALSE; - GIFDisposeType disposal; - HdlInfo hdls[LAST_IMAGE] = - { - hdl_plain, - hdl_small, - hdl_medium, - hdl_large, - hdl_huge - }; - HdlInfo *hdl = NULL; - int dx, dy; - int offx, offy; - int bl_width, bl_height; - - disposal = DISPOSE_COMBINE; - transparent = -1; - delay = DEFAULT_DELAY; - - for (i = 1, help = FALSE, version = FALSE; - i < argc && !help && !version; - i++) - { - if (strncmp (argv[i], "--", 2) == 0) - { - if (strcmp (argv[i], "--invert") == 0) - invert = TRUE; - else if (strcmp (argv[i], "--hdl") == 0) - hdl_mode = TRUE; - else if (strcmp (argv[i], "--version") == 0) - version = TRUE; - else - help = TRUE; - } - else if (!filename) - filename = argv[i]; - } - - if (version) - { - fprintf (stderr, "gif2blm version %s\n", VERSION); - return 0; - } - - if (help || !filename) - { - fprintf (stderr, "\ngif2blm creates Blinkenlights Movies from animated GIFs.\n\n"); - fprintf (stderr, "Usage: gif2blm [options] \n\n"); - fprintf (stderr, "Options:\n"); - fprintf (stderr, " --invert Invert output.\n"); - fprintf (stderr, " --hdl Use HDL images as input.\n"); - fprintf (stderr, " --help Output usage information.\n"); - fprintf (stderr, " --version Output version information.\n"); - fprintf (stderr, "\nCheck http://www.blinkenlights.de/ for more information.\n\n"); - - return (help ? 0 : -1); - } - - if (strcmp (filename, "-") == 0) - gif = stdin; - else - gif = fopen (filename, "rb"); - - if (!gif) - { - fprintf (stderr, "Error opening GIF file '%s'\n", filename); - return -1; - } - - if (!GIFDecodeHeader (gif, &width, &height, NULL, &colors, &cmap)) - return -1; - - if (hdl_mode) - { - for (i = 1; i < LAST_IMAGE; i++) - { - if ((width == hdls[i].width) && (height == hdls[i].height)) - hdl = &hdls[i]; - } - - if (hdl == NULL) - { - fprintf (stderr, - "Error: The hdl mode only understand pictures created by blm2gif.\n"); - fprintf (stderr, "The following resolutions are supported:\n"); - for (i = 1; i < LAST_IMAGE; i++) - fprintf (stderr, "%d x %d\n", hdls[i].width, hdls[i].height); - - return -1; - } - - bl_width = BLINKEN_WIDTH; - bl_height = BLINKEN_HEIGHT; - dx = hdl->dx; - dy = hdl->dy; - offx = hdl->offx; - offy = hdl->offy; - } - else - { - bl_width = width; - bl_height = height; - dx = 1; - dy = 1; - offx = 0; - offy = 0; - } - - printf ("# BlinkenLights Movie %dx%d\n", bl_width, bl_height); - - data = malloc (bl_width * bl_height); - memset (data, (invert ? '1' : '0'), bl_width * bl_height); - - image = calloc (width * height, 1); - frame = malloc (width * height); - - while (GIFDecodeRecordType (gif, &type)) - { - switch (type) - { - case GRAPHIC_CONTROL_EXTENSION: - if (!GIFDecodeGraphicControlExt (gif, - &disposal, &delay, &transparent)) - return -1; - break; - - case IMAGE: - { - unsigned char *lcmap, *effective_cmap; - unsigned char *src, *win_src; - unsigned char *img_dest; - char *dest; - unsigned char value; - unsigned char *cme; - int x, y, xw, yw; - int frame_width, frame_height; - int left, top; - int lcolors; - int trans; - int sum, count; - - if (!GIFDecodeImage (gif, - &frame_width, &frame_height, &left, &top, - &lcolors, &lcmap, frame)) - return -1; - - if (lcmap) - effective_cmap = lcmap; - else - effective_cmap = cmap; - - src = frame; - img_dest = image + top*width + left; - - /* merge last frame with new (possibly combined) frame */ - for (y = 0; y < frame_height; y++) - { - for (x = 0; x < frame_width; x++, src++) - { - value = *src; - - trans = (transparent > -1) && (value == transparent); - - switch (disposal) - { - case DISPOSE_COMBINE: - if (!trans) - img_dest[x] = value; - break; - default: - img_dest[x] = value; - break; - } - } - img_dest += width; - } - - src = image + offy*width + offx; - dest = data; - - /* now figure out the black and white patterns */ - for (y = 0; y < bl_height; y++) - { - for (x = 0; x < bl_width; x++, dest++) - { - sum = count = 0; - - win_src = src + x*dx; - - /* sum up intensities of whole window */ - for (yw = 0; yw < dy; yw++) - { - for (xw = 0; xw < dx; xw++) - { - /* only count non-transparent pixels */ - if ((transparent < 0) || (win_src[xw] != transparent)) - { - /* calc address of colormap entry */ - cme = effective_cmap + (int)win_src[xw]*3; - sum += cme[0] * 30 + cme[1] * 59 + cme[2] * 11; - count++; - } - - } - win_src += width; - } - - /* we consider all transparent as black */ - if (count == 0) - *dest = (invert ? '1' : '0' ); - else - *dest = ((sum/count/100) < 50 ? (invert ? '1' : '0') : (invert ? '0' : '1')); - - } - - src += dy * width; - } - - printf ("\n@%d\n", delay * 10); - - dest = data; - for (y = 0; y < bl_height; y++) - { - for (x = 0; x < bl_width; x++, dest++) - putchar (*dest); - putchar ('\n'); - } - - if (lcmap) - free (lcmap); - } - break; - - case COMMENT_EXTENSION: - { - char *comment; - int len; - - if (!GIFDecodeCommentExt (gif, &comment)) - return -1; - - if (comment && (len = strlen (comment)) > 0) - { - putchar ('#'); - for (i = 0; i < len; i++) - { - putchar (comment[i]); - if (comment[i] == '\n' && i+1 < len) - putchar ('#'); - } - free (comment); - putchar ('\n'); - } - } - break; - - case UNKNOWN_EXTENSION: - GIFDecodeUnknownExt (gif); - break; - - case TERMINATOR: - fclose (gif); - return 0; - } - } - - fprintf (stderr, "GIFDecodeRecordType() failed\n"); - return -1; -} diff --git a/blinkentools-2.9/src/hdl-huge.h b/blinkentools-2.9/src/hdl-huge.h deleted file mode 100644 index 3fa5ede..0000000 --- a/blinkentools-2.9/src/hdl-huge.h +++ /dev/null @@ -1,31378 +0,0 @@ -#include "hdl.h" - -static char hdl_huge_colors[256][3] = { - { 2, 2, 3}, - { 23,119, 13}, - { 18, 86, 11}, - { 30, 42,147}, - { 31, 42,141}, - { 96, 6, 7}, - {211,181, 58}, - { 12, 16,112}, - { 9, 9, 60}, - {172,162,126}, - { 61, 8, 9}, - {201,119, 5}, - { 7, 6, 43}, - {168,117,101}, - { 41, 15, 15}, - { 50, 48, 86}, - { 41, 54,149}, - { 6, 6, 36}, - { 98, 82, 62}, - {162,136, 97}, - { 48, 39, 72}, - {107, 88, 88}, - { 29, 9, 13}, - {158,133, 99}, - { 43, 21, 44}, - { 68, 69,161}, - { 4, 2, 27}, - {178,176,150}, - {130, 98, 86}, - { 42, 34, 70}, - {154,102,103}, - { 86, 45, 37}, - {225,219,206}, - {105, 81,108}, - { 37, 30, 69}, - { 35, 19, 47}, - { 60, 71,158}, - { 22, 8, 12}, - { 87, 67,105}, - { 94, 90,170}, - { 16, 15, 14}, - {121, 55, 38}, - { 4, 2, 22}, - {132,104, 96}, - { 32, 26, 68}, - {222,200,154}, - { 32, 20, 36}, - { 27, 24, 49}, - { 54, 40, 46}, - { 17, 16, 90}, - { 15, 5, 9}, - {175,156,143}, - {174,163,148}, - {218,201,163}, - { 51, 54,155}, - { 87, 61, 80}, - { 5, 4, 18}, - { 41, 50,132}, - {106,102,171}, - { 24, 17, 47}, - {224,158,100}, - { 22, 2, 38}, - {111, 53, 31}, - { 53, 60,155}, - { 26, 22, 67}, - {166,140,104}, - {131,111,154}, - { 16, 15, 80}, - { 45, 48,152}, - { 33, 46,142}, - {246,218,141}, - { 80, 79,164}, - {117, 92,111}, - { 57, 26, 16}, - { 88, 81,167}, - { 22, 13, 28}, - {174,162,163}, - {183,176,177}, - { 4, 3, 14}, - { 99, 67, 49}, - { 30, 42,132}, - { 34,120, 26}, - {173, 21, 10}, - {118,116,180}, - { 56, 25, 43}, - {208,207,184}, - {149,128,117}, - {111, 98, 90}, - {103, 85,163}, - { 98, 98,171}, - {201,154,104}, - { 18, 2, 42}, - { 42, 24, 14}, - {160, 88, 27}, - { 10, 5, 6}, - { 16, 15, 36}, - { 49, 53,142}, - { 18, 12, 28}, - {232,205,137}, - { 20, 18, 66}, - { 95, 81,168}, - { 16, 12, 74}, - { 86, 73,157}, - { 87, 56, 66}, - { 31, 23, 24}, - { 55, 66,156}, - {149,145,194}, - {170,158,130}, - {113,110,178}, - { 14, 10, 52}, - {236,188,126}, - { 15, 9, 36}, - { 20, 88, 18}, - { 86, 19, 21}, - { 81, 91,166}, - {247,254,251}, - {206,143, 16}, - {246,250,242}, - {169,151,121}, - {102,102,170}, - { 66, 74,158}, - { 37, 50,147}, - { 3, 3, 10}, - { 87, 54, 35}, - { 14, 71, 14}, - { 40, 46,140}, - { 14, 9, 28}, - {100, 91,161}, - {209,168,108}, - { 68, 49, 64}, - { 72, 31, 36}, - {124, 26, 27}, - { 8, 10, 38}, - { 72, 62,121}, - {117, 98,157}, - { 61, 41, 64}, - {158,153,193}, - { 68, 41, 17}, - {127, 90, 54}, - { 16, 11, 70}, - { 88, 86,168}, - { 9, 14, 49}, - { 36, 29, 48}, - {107, 94,159}, - { 76, 86,164}, - { 27, 26,100}, - {168,138,142}, - {180,174,189}, - {176,169,185}, - {162,137,145}, - { 8, 10, 45}, - { 67, 55, 98}, - { 47, 45,127}, - {110, 98,169}, - { 66, 30, 66}, - { 62, 62,158}, - {138, 94, 97}, - {192,199,217}, - { 34, 30,104}, - {110,103,165}, - {202, 65, 8}, - {132,129,184}, - { 6, 2, 4}, - { 18, 9, 22}, - { 30, 15, 11}, - {221,194,132}, - { 10, 10, 28}, - {100, 57, 34}, - { 66, 32, 35}, - { 96, 86,169}, - {214,190,146}, - { 46, 40,100}, - { 45, 39, 49}, - { 70, 58, 47}, - { 37, 43,150}, - {110, 32, 38}, - {149,142,178}, - { 54, 32, 44}, - { 54, 26, 58}, - {158,131,137}, - { 12, 58, 10}, - { 96,103,204}, - { 15, 14, 62}, - { 6, 7, 22}, - {110,102,171}, - {182,176,124}, - { 66, 58,120}, - { 10, 6, 36}, - { 99, 90,171}, - {184,188,212}, - { 44, 36, 33}, - { 41, 54,140}, - { 36, 34,100}, - {200,210,212}, - {223,207,179}, - {199,148, 85}, - { 23, 87, 22}, - {112, 73,101}, - {190,174,134}, - { 29, 38,129}, - { 24, 16, 36}, - {106, 66, 80}, - { 35, 44,133}, - { 22, 15, 17}, - {214,178,119}, - { 38, 42,141}, - { 72, 29, 16}, - {100, 94,171}, - { 45, 59,152}, - { 41, 17, 36}, - { 58, 61,158}, - { 14, 10, 60}, - { 15, 10, 12}, - { 45, 48,162}, - { 29, 26, 94}, - { 9, 10, 14}, - {132, 67, 40}, - { 62, 66,161}, - {106, 93,170}, - { 5, 6, 28}, - {112, 71, 51}, - { 6, 6, 4}, - { 68, 41, 46}, - { 44, 29, 47}, - { 18, 14, 46}, - { 33, 30, 97}, - { 42, 26, 32}, - { 10, 10, 18}, - { 83, 53, 56}, - { 66, 50, 81}, - {200,129, 68}, - {218,190,122}, - {176,167,171}, - { 84, 35, 29}, - { 37, 37,124}, - { 21, 22, 93}, - {103, 98,170}, - {114, 66, 31}, - { 39, 50,139}, - { 14, 9, 22}, - {112,106,177}, - { 29, 16, 25}, - {126, 90, 98}, - { 9, 10, 54}, - { 68, 80,161}, - { 62, 54,119}, - { 10, 10, 7}, - {128,114,207}, - { 74, 74,163}, - {101, 44, 29}, - {141,123,111}, - { 72, 50, 40}, - {136,137,227}, - { 57, 34, 61}, - { 14, 15, 48}, - {255,255,255} - }; -static char hdl_huge_on[] = { - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,213,213,68,213,213,68,213,213,68,213,68,68,213,68,68, - 68,68,68,68,68,68,68,68,68,68,125,68,68,68,68,68, - 68,68,125,68,68,125,68,68,125,68,68,68,68,68,68,68, - 68,68,68,125,68,68,213,213,174,121,213,174,213,213,213,213, - 213,213,213,213,213,213,174,213,213,213,213,213,213,213,174,213, - 213,213,213,174,213,152,213,205,205,213,213,213,205,213,68,174, - 213,205,68,205,68,125,213,68,125,213,125,213,125,213,68,125, - 174,213,125,213,174,125,68,125,125,174,174,213,125,68,125,125, - 125,68,125,174,68,125,125,125,68,174,205,174,205,68,205,125, - 68,68,68,205,125,68,68,205,213,68,125,68,125,125,125,68, - 205,205,205,174,125,174,205,125,174,205,125,205,125,205,125,125, - 205,205,125,125,125,205,125,125,125,125,125,125,4,205,202,205, - 202,205,205,205,125,202,205,205,152,205,202,205,202,202,125,202, - 205,202,202,234,205,205,202,205,202,234,125,205,202,234,205,205, - 205,202,205,202,234,202,234,202,205,234,205,202,80,69,205,80, - 202,205,80,80,205,205,202,80,205,80,205,80,80,234,234,205, - 4,145,80,205,80,202,69,80,205,69,80,80,80,199,234,234, - 80,80,202,80,205,80,80,4,80,199,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,202,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,69,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,4,80,80,4,80,80,80,80,80,80,80,80, - 80,80,69,80,69,80,69,80,69,80,80,69,80,69,80,80, - 80,80,80,69,69,80,69,80,69,80,69,80,202,69,202,202, - 202,80,69,202,202,69,202,202,202,69,202,202,238,202,69,69, - 238,69,202,238,238,238,238,238,202,121,202,238,57,69,69,191, - 69,69,191,69,191,69,191,69,191,80,238,202,69,202,202,238, - 238,69,238,69,69,69,69,80,69,69,69,69,69,69,80,69, - 69,69,69,69,69,69,69,69,69,69,69,69,80,69,69,69, - 69,69,69,69,69,69,80,69,69,69,69,69,80,69,69,69, - 3,3,69,3,69,3,69,80,69,3,80,69,3,3,3,3, - 3,3,3,3,3,3,199,3,3,3,3,3,3,3,3,3, - 3,3,199,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4, - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,68,68,213,213,68,213,213,125,213,125,213,213,125,213,213, - 125,174,213,125,213,174,174,174,174,174,68,213,125,68,213,121, - 68,68,213,174,125,213,125,68,68,68,68,68,96,54,96,68, - 68,68,68,68,213,125,174,213,121,213,213,16,213,16,213,213, - 213,213,213,213,174,213,213,174,213,213,213,213,213,213,213,174, - 213,174,213,213,213,174,213,213,213,68,205,68,68,213,205,213, - 68,68,213,68,213,68,213,174,68,213,174,125,213,125,174,68, - 68,68,174,125,213,125,213,174,68,68,68,125,68,174,68,68, - 68,125,68,125,125,174,213,205,205,68,68,68,68,205,68,68, - 125,125,125,68,68,205,125,68,125,125,68,125,125,68,125,205, - 68,125,125,125,205,125,125,205,205,125,205,125,205,125,125,125, - 125,125,125,125,205,125,205,205,69,125,125,205,125,125,125,202, - 152,202,125,125,205,205,205,205,205,234,202,205,205,202,205,202, - 125,205,205,125,202,205,202,205,205,205,202,80,205,125,202,202, - 202,205,80,205,202,205,202,202,80,202,80,205,202,202,80,202, - 202,205,202,202,202,205,80,205,234,202,80,234,205,4,80,4, - 4,235,80,205,80,80,80,80,202,80,205,80,205,80,69,69, - 205,80,80,234,80,234,234,4,234,4,199,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 202,205,80,202,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,205,80,205,80,202,125,80, - 125,80,202,205,80,202,202,205,80,80,205,80,80,4,80,4, - 80,4,80,80,80,80,80,80,80,80,69,69,80,69,69,69, - 69,80,121,80,80,69,80,202,80,202,69,202,202,202,202,69, - 202,202,202,202,202,202,238,202,238,238,238,238,202,238,202,69, - 202,121,57,202,69,238,202,121,238,238,69,57,69,191,69,57, - 238,238,69,57,69,238,202,238,238,238,69,238,202,121,238,69, - 238,69,69,121,69,69,69,69,121,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,80,69,69,69,69,69,69, - 69,69,69,69,69,69,69,80,69,69,3,69,69,69,69,80, - 69,80,69,80,69,3,69,3,69,3,69,80,3,80,3,3, - 80,3,3,3,3,3,3,3,3,199,3,3,3,3,3,3, - 3,3,199,3,3,3,3,199,3,3,3,3,3,3,3,3, - 3,3,3,3,3,69,3,69,3,3,69,4,3,69,69,69, - 213,213,213,213,213,213,213,213,213,213,213,68,213,68,213,68, - 213,213,213,68,174,213,68,213,213,213,174,213,125,213,125,213, - 213,213,125,213,213,68,213,213,213,68,125,213,68,125,213,68, - 68,121,68,213,68,121,213,68,125,68,96,68,68,68,68,68, - 68,68,68,125,213,213,68,213,213,125,213,16,213,54,213,213, - 213,213,213,213,213,213,213,213,174,213,213,68,213,213,213,213, - 213,213,205,213,213,68,68,125,213,68,213,213,68,68,213,68, - 174,68,68,125,68,125,213,68,68,68,213,68,121,213,213,125, - 213,68,205,213,174,125,68,125,213,125,68,125,68,125,125,68, - 125,68,205,68,68,205,68,68,125,125,125,125,68,125,125,68, - 68,68,125,125,68,68,125,68,125,125,68,205,205,205,68,205, - 125,125,68,125,205,68,125,68,205,125,125,125,125,125,125,125, - 125,125,4,125,125,125,125,125,205,205,125,205,125,4,125,125, - 125,80,205,125,202,152,80,205,125,205,205,152,205,205,152,80, - 205,202,80,205,125,202,205,202,125,202,152,80,80,202,234,205, - 234,205,205,202,80,80,202,234,80,205,202,234,202,234,205,234, - 80,202,234,205,80,202,80,202,202,234,202,80,205,202,205,80, - 80,235,202,80,205,80,205,80,80,202,80,202,202,80,80,80, - 202,202,202,205,80,80,205,69,80,80,80,202,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,171,80,202,80, - 202,202,80,205,205,80,205,80,205,80,205,80,125,80,205,205, - 202,125,80,202,80,202,202,202,202,202,202,202,80,80,202,80, - 80,80,202,80,202,80,80,80,202,80,205,202,125,80,205,202, - 202,80,202,80,69,69,69,202,69,80,80,202,80,80,80,80, - 238,80,80,238,80,202,202,69,202,202,238,202,69,238,202,238, - 238,69,238,238,238,80,238,80,69,202,69,238,69,57,121,238, - 202,238,121,238,202,238,202,238,69,57,238,69,57,69,57,69, - 69,57,69,238,57,69,238,202,238,238,238,121,202,238,69,69, - 57,69,69,69,238,69,69,191,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,3,69,69,80,69,69,80,69, - 69,69,69,69,69,3,69,69,69,80,69,3,69,3,3,69, - 3,69,3,69,80,69,80,69,3,69,3,69,3,80,3,3, - 3,80,3,3,3,3,3,3,3,199,3,199,3,3,3,3, - 3,3,3,3,3,3,3,3,3,199,3,3,3,199,3,3, - 3,3,3,69,3,4,3,69,4,3,69,4,3,3,3,69, - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,121,213,213,213,125,213,213,174,213,213,213,213,213,174,213, - 125,213,68,213,125,213,68,125,213,174,68,68,213,68,68,68, - 68,68,213,125,68,213,125,213,68,68,68,16,16,54,68,68, - 125,68,213,68,68,125,68,205,68,68,125,68,96,54,16,213, - 174,213,213,213,213,213,213,213,213,213,68,213,213,68,68,213, - 152,213,213,205,68,68,213,213,68,213,68,174,68,213,205,68, - 213,68,213,68,213,68,68,213,125,213,125,68,68,68,125,213, - 125,68,68,205,68,68,68,68,125,68,174,68,68,68,174,68, - 68,125,68,125,125,68,125,125,205,68,205,68,68,205,68,125, - 125,125,68,68,205,205,68,125,68,205,125,68,152,68,125,125, - 68,205,205,152,68,205,205,205,125,205,125,125,125,125,125,125, - 125,125,125,125,125,125,125,205,125,125,125,125,205,125,125,125, - 4,152,125,205,125,205,205,125,205,205,125,205,202,125,205,205, - 125,205,202,205,80,152,125,205,80,205,80,152,205,205,125,80, - 125,205,80,205,202,205,205,202,202,202,202,205,202,205,80,125, - 234,202,202,80,205,234,202,80,205,202,202,202,80,202,205,205, - 80,99,202,202,80,202,80,80,202,80,202,80,80,202,80,202, - 80,80,202,80,202,202,80,199,202,205,202,80,80,202,80,202, - 80,80,80,171,80,202,80,80,80,171,80,202,80,202,80,202, - 80,202,202,202,80,202,80,80,171,80,202,80,80,80,202,80, - 202,202,202,202,80,202,80,202,80,202,80,202,80,80,80,202, - 80,80,80,202,202,80,80,202,80,202,80,80,202,205,202,202, - 202,202,80,125,80,202,202,202,202,80,202,80,80,80,202,202, - 202,202,202,202,80,80,80,202,202,80,238,80,238,80,238,80, - 69,80,202,80,238,202,202,202,202,69,202,238,80,202,69,202, - 202,238,202,69,202,238,69,57,69,57,202,69,238,202,202,69, - 238,202,238,202,238,238,238,69,238,238,69,57,238,238,202,57, - 69,57,69,69,238,238,202,238,69,238,69,238,238,69,238,238, - 238,69,191,69,69,238,69,69,69,69,121,69,69,121,69,69, - 121,69,69,69,69,69,69,69,69,69,69,3,69,69,69,69, - 69,69,69,69,69,69,80,69,69,69,69,80,69,69,3,80, - 69,80,69,3,69,3,69,3,3,69,3,69,3,3,80,3, - 3,3,80,3,3,3,3,3,3,3,199,3,3,3,3,199, - 3,3,3,3,199,3,3,3,3,3,3,199,3,3,3,3, - 3,3,3,3,80,3,4,4,4,4,3,69,4,4,4,3, - 213,213,213,213,213,213,213,213,213,213,68,213,213,174,213,174, - 213,213,68,213,213,68,213,68,174,205,213,205,68,213,125,213, - 68,174,68,68,213,68,213,68,213,213,125,68,68,68,174,68, - 68,125,213,68,68,68,125,68,125,68,68,68,54,68,68,68, - 213,125,68,68,68,213,68,68,174,68,68,213,68,68,96,213, - 213,213,213,213,213,213,213,213,213,213,125,213,213,213,213,213, - 174,213,213,174,213,205,68,205,68,205,213,68,205,213,213,205, - 213,125,213,125,68,125,68,68,68,68,213,68,68,68,125,68, - 205,174,68,68,174,205,68,68,174,68,125,174,125,68,125,68, - 125,68,68,68,125,68,68,68,68,68,125,68,68,125,205,68, - 68,125,68,68,68,152,68,152,125,68,68,125,125,68,152,205, - 125,68,205,205,68,152,125,68,125,205,125,125,125,125,125,125, - 125,125,125,125,125,125,125,125,125,4,125,125,125,205,205,125, - 125,69,202,205,125,125,205,125,125,205,125,125,205,125,125,202, - 205,152,202,205,205,80,205,205,205,152,4,80,205,80,205,205, - 80,152,205,202,202,202,202,202,202,202,205,202,202,202,234,80, - 205,202,202,202,202,205,202,205,80,202,234,205,202,80,202,202, - 202,235,205,202,234,234,205,202,202,202,202,202,202,202,202,202, - 202,80,202,202,202,234,205,80,80,80,202,202,80,202,234,202, - 202,202,202,80,202,171,80,202,202,202,80,80,80,171,80,202, - 80,80,80,171,202,80,80,202,80,80,202,202,80,202,202,80, - 202,80,80,202,80,202,80,202,80,202,80,202,202,202,202,202, - 202,202,202,80,202,202,80,202,202,202,202,202,202,202,80,202, - 202,202,80,202,80,80,80,202,80,202,202,202,202,202,202,69, - 202,202,202,125,202,202,202,202,80,202,80,69,202,202,80,69, - 202,238,80,202,80,238,80,238,69,202,80,238,202,238,238,202, - 202,69,202,238,202,69,202,238,202,238,69,202,238,238,57,238, - 238,69,238,238,238,238,238,238,238,238,238,202,238,238,238,238, - 238,238,191,202,238,238,238,238,202,238,202,238,238,69,202,121, - 238,69,69,238,69,191,69,191,69,238,69,69,121,69,69,69, - 69,121,69,69,69,69,69,69,69,80,69,69,69,69,69,69, - 69,69,69,69,80,69,69,80,69,69,3,69,69,80,3,69, - 3,80,3,69,80,69,80,69,80,3,3,69,80,3,3,3, - 80,3,3,3,3,3,3,3,3,3,3,3,3,3,199,3, - 3,3,3,3,3,3,199,3,3,3,3,3,3,3,3,80, - 3,80,3,3,80,3,4,69,4,4,4,69,3,69,4,4, - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,125,213,213,68,213,68,213,213,213,68,213,213,68,213,68, - 213,68,213,68,68,68,68,68,68,213,68,68,174,68,68,174, - 213,68,68,174,68,68,68,68,68,68,68,54,68,96,16,68, - 68,68,68,68,68,125,68,68,68,68,68,96,54,54,68,54, - 68,213,213,213,213,213,213,213,213,213,213,68,68,68,213,152, - 213,213,68,213,213,213,213,213,213,213,68,213,213,68,68,213, - 68,213,68,68,213,68,68,213,125,213,205,68,213,68,68,213, - 68,68,68,68,68,68,213,125,68,68,213,68,68,68,174,68, - 68,125,68,125,68,68,125,125,125,68,68,125,68,68,68,152, - 68,68,152,68,68,125,125,125,68,152,125,125,68,125,125,68, - 205,205,125,125,205,125,68,205,205,125,125,125,205,125,205,125, - 125,125,125,205,125,125,125,125,125,125,125,125,125,125,125,125, - 125,205,125,125,205,205,152,205,205,125,205,202,125,202,205,205, - 125,205,125,125,125,125,152,125,125,4,152,202,125,152,202,202, - 205,80,202,202,202,202,202,205,234,202,202,205,234,202,125,202, - 205,234,202,202,202,202,202,202,205,202,202,202,202,202,205,202, - 202,99,125,205,125,202,202,202,202,202,202,202,202,202,202,202, - 202,202,205,234,202,202,202,80,202,202,80,234,202,202,80,202, - 234,202,80,202,80,69,171,80,202,80,202,202,202,202,202,80, - 202,202,80,202,80,171,80,80,80,171,80,80,202,80,202,80, - 202,80,202,202,202,202,202,80,202,80,202,80,80,202,202,202, - 80,202,171,202,202,80,202,80,202,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,80,202,202,202,202,80, - 202,202,202,80,202,202,202,69,238,202,202,80,202,202,80,202, - 202,80,238,80,238,80,202,80,238,238,69,202,238,69,80,238, - 238,238,238,202,238,238,238,202,238,202,238,57,69,69,69,202, - 238,238,238,202,69,238,238,238,238,238,238,69,238,69,238,69, - 238,238,202,191,69,238,121,238,238,121,238,238,238,238,191,202, - 238,69,191,69,191,80,69,69,69,69,121,69,121,69,121,69, - 69,121,69,69,69,69,69,69,69,69,69,69,80,69,69,69, - 69,80,69,69,69,3,69,3,69,69,69,80,69,69,80,69, - 80,69,80,3,69,3,69,3,69,80,69,3,3,3,80,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,199,3,199,3,3,3,3,3,3,3,3,3,3,80,3, - 3,3,80,3,69,4,4,3,69,4,69,3,69,4,3,69, - 213,213,54,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,213,213,121,213,213,68,68,68,213,68,68,213,68,68,68, - 213,125,213,68,213,68,68,68,68,125,213,68,213,68,68,125, - 213,68,68,68,174,68,68,68,68,68,68,54,68,68,68,68, - 68,213,125,213,68,68,68,68,68,68,68,68,96,54,68,213, - 68,213,213,213,213,213,213,213,68,213,174,213,213,213,213,213, - 213,213,152,213,68,68,68,68,68,68,68,68,213,68,68,68, - 205,213,68,68,68,68,125,213,125,213,125,68,68,68,68,68, - 68,68,205,213,68,125,68,68,68,205,68,68,205,68,68,125, - 68,125,68,125,68,68,68,68,125,125,68,125,68,125,125,125, - 68,125,125,125,238,68,125,125,125,68,68,125,68,205,125,68, - 57,68,125,68,125,205,68,152,125,125,125,125,205,125,125,125, - 125,125,125,205,205,205,125,125,125,125,125,205,125,125,205,205, - 152,69,205,125,202,205,125,202,205,202,205,205,205,125,125,80, - 125,205,205,205,205,125,80,205,125,125,125,202,80,125,125,152, - 125,202,205,152,205,202,202,202,205,202,202,202,205,80,202,202, - 202,205,202,202,152,234,205,202,202,202,202,234,205,80,202,202, - 69,99,202,80,202,202,202,234,205,202,152,234,205,202,152,234, - 205,202,202,205,202,202,202,202,80,202,202,205,202,202,202,202, - 202,234,202,234,80,80,80,80,202,80,80,80,202,80,202,80, - 80,202,171,80,80,205,202,202,69,80,80,202,80,171,80,202, - 80,202,202,202,202,202,202,202,202,202,80,202,202,202,202,202, - 202,202,69,80,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,202,238,202,202,80,238,80,238,80,80,238,80, - 238,80,202,69,238,238,69,80,202,69,57,80,238,238,202,202, - 202,80,238,202,80,69,238,238,238,202,238,238,238,57,57,69, - 202,238,238,238,238,238,238,238,238,238,238,238,238,238,191,238, - 238,191,238,191,238,238,238,238,121,238,238,69,238,202,191,238, - 238,202,238,80,191,238,69,69,238,69,121,69,121,69,69,69, - 69,69,69,121,69,69,69,69,69,69,69,69,69,69,80,69, - 69,69,69,80,69,69,80,69,80,69,69,69,69,3,3,80, - 69,3,3,69,80,69,3,69,3,69,3,69,80,3,3,3, - 80,3,3,80,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,80,3,3,3,80, - 80,3,3,3,69,3,4,3,69,3,3,4,4,69,3,4, - 54,54,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,68,213,213,213,68,213,213,174,68,213,213,68,68,213,213, - 68,213,68,213,68,213,125,213,213,213,125,68,68,68,213,68, - 68,68,68,68,68,213,125,68,68,68,96,68,54,54,68,68, - 213,68,213,125,68,68,125,68,68,68,68,54,68,54,96,54, - 68,68,213,213,213,213,213,213,213,213,213,213,68,213,213,152, - 213,213,213,213,213,68,213,68,68,213,68,68,68,68,213,213, - 213,68,68,68,68,213,213,68,213,68,68,213,125,68,68,68, - 68,68,68,68,68,68,68,68,125,68,68,68,68,68,68,68, - 68,68,125,68,125,68,68,68,68,68,68,68,125,68,68,68, - 125,68,68,68,68,68,68,68,68,68,125,68,125,68,125,152, - 125,152,68,205,205,125,205,125,68,68,205,68,125,68,205,125, - 125,125,68,125,68,125,205,125,125,125,125,125,202,125,125,125, - 69,152,125,80,125,125,205,125,202,152,202,125,125,205,205,152, - 205,202,125,202,125,4,152,125,202,205,69,152,202,205,80,202, - 125,202,205,202,202,205,152,202,205,202,202,125,80,152,205,80, - 152,202,205,205,80,125,80,234,152,202,202,202,152,202,202,125, - 80,235,125,202,202,205,152,202,202,205,80,202,202,205,80,202, - 202,202,202,202,202,152,202,202,202,202,202,80,152,202,202,202, - 205,202,202,202,202,202,202,202,202,202,202,202,202,202,80,202, - 202,80,202,202,202,80,80,80,80,202,202,202,80,202,202,80, - 202,80,80,202,202,80,202,202,80,80,171,80,80,202,202,202, - 202,202,80,202,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,202,202,69,202,202,202, - 69,238,202,202,202,80,202,202,69,202,80,202,238,80,202,69, - 80,202,238,80,80,202,238,202,202,69,202,69,202,202,69,238, - 238,238,69,57,238,69,238,80,238,238,238,202,69,69,238,238, - 238,238,238,238,69,238,238,69,191,69,238,238,238,238,238,238, - 238,238,238,238,69,238,69,191,238,238,202,238,121,191,238,238, - 238,238,238,238,238,69,238,69,121,69,121,69,121,121,69,121, - 69,69,69,69,121,69,69,69,69,69,69,69,80,69,69,69, - 80,69,69,69,80,69,69,69,3,69,69,3,69,69,3,69, - 3,80,80,69,3,69,3,69,3,69,3,69,3,3,80,3, - 3,3,3,3,3,3,3,3,3,3,3,80,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,80,3,3, - 3,80,3,80,3,69,69,4,3,4,4,4,3,4,4,4, - 213,213,54,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,213,68,68,213,68,213,213,213,152,213,213,68,68,68,68, - 68,68,68,68,68,213,68,68,68,213,213,125,213,68,68,68, - 68,68,68,68,125,213,68,68,68,68,96,68,68,54,68,68, - 68,68,68,213,68,213,68,68,68,68,125,54,68,54,68,54, - 213,68,213,213,213,213,213,213,68,213,68,213,213,213,213,213, - 213,152,213,68,68,68,213,68,68,213,68,213,68,68,68,68, - 68,68,68,68,125,68,68,68,68,68,125,213,68,205,68,68, - 205,68,68,68,68,125,68,68,68,68,205,68,125,68,125,125, - 68,68,68,68,125,68,125,68,125,125,68,68,68,68,125,68, - 238,68,68,68,125,68,125,152,125,68,152,68,125,68,238,68, - 125,125,152,238,68,57,125,125,125,125,125,68,125,125,125,125, - 125,125,125,125,125,152,125,57,125,125,125,125,125,125,125,125, - 125,205,125,125,125,125,125,125,125,125,125,125,202,125,125,125, - 125,80,125,205,125,125,202,125,125,125,125,125,125,152,125,80, - 152,125,202,205,202,202,205,202,152,205,80,152,80,125,202,125, - 205,202,202,202,125,202,125,205,205,202,202,80,205,202,202,125, - 202,99,57,125,80,202,125,202,202,152,202,205,202,202,152,205, - 152,202,202,202,202,202,202,202,202,152,202,202,202,202,152,80, - 202,202,202,202,202,202,202,80,202,202,202,80,202,202,171,202, - 202,202,202,234,205,202,202,202,202,202,80,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,80,202,202,202,202,202,202,202,202,57,202,202, - 202,202,202,202,202,202,202,202,57,202,202,202,202,202,57,202, - 80,202,238,238,202,238,202,238,80,238,202,80,238,238,80,238, - 238,80,238,238,202,202,202,238,69,57,69,238,69,238,202,80, - 238,69,238,238,238,202,238,69,238,202,238,238,238,202,238,238, - 69,202,238,238,238,238,238,238,69,191,238,69,238,69,57,121, - 69,69,238,191,191,121,69,191,69,191,238,121,238,202,121,238, - 238,238,238,80,191,238,238,69,238,238,238,121,69,121,121,69, - 121,121,69,69,69,121,69,69,69,69,69,69,69,69,69,69, - 69,69,3,69,69,69,80,69,69,69,80,69,69,80,69,80, - 69,3,3,80,3,80,69,80,69,80,69,80,3,80,3,3, - 3,80,3,3,3,80,3,80,3,3,3,3,80,3,3,3, - 3,3,3,3,3,80,3,3,3,80,3,80,3,69,69,69, - 3,3,69,3,4,3,69,3,4,69,4,4,3,4,4,3, - 213,54,213,54,54,213,54,213,213,54,54,213,213,213,213,213, - 68,213,213,213,213,213,68,213,213,213,213,68,68,213,68,213, - 68,213,68,213,68,68,213,213,68,68,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,54,63,68,54,68, - 68,68,68,68,68,68,68,68,68,68,68,54,96,68,208,68, - 54,213,68,213,213,213,213,213,213,213,213,213,213,68,68,213, - 213,213,213,213,213,68,68,68,213,68,213,68,213,68,68,68, - 213,213,174,213,68,68,68,68,68,213,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, - 125,68,238,238,68,125,68,68,68,68,152,68,125,125,152,68, - 68,152,68,68,57,68,68,238,68,68,238,125,152,68,68,125, - 125,125,57,68,68,125,152,68,68,238,152,125,125,125,125,125, - 125,125,152,125,125,238,125,125,125,125,125,125,125,125,125,125, - 205,125,125,205,205,125,205,125,125,125,205,205,125,202,125,125, - 69,152,205,125,125,125,125,125,125,205,205,202,202,125,125,125, - 202,202,125,152,202,205,152,205,80,125,125,80,152,80,152,80, - 125,80,152,202,205,202,202,80,202,202,205,152,202,202,205,202, - 121,235,125,202,152,202,202,205,205,202,202,202,152,205,202,202, - 202,202,152,202,152,202,202,152,202,202,80,152,202,202,202,205, - 171,202,205,171,205,171,202,152,80,152,80,152,80,202,202,80, - 202,202,202,202,202,152,80,152,80,171,202,202,202,202,80,202, - 202,202,202,202,202,202,80,202,80,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,238,202,202,80,57,202, - 57,202,202,57,202,202,57,202,80,57,202,202,238,202,202,202, - 202,238,202,202,238,80,238,202,57,202,238,69,202,202,69,202, - 202,69,80,202,238,238,238,80,238,202,238,80,238,202,238,238, - 80,238,238,80,238,238,238,238,80,238,121,238,202,57,69,238, - 238,238,238,238,238,202,238,238,191,202,57,191,69,191,69,191, - 191,191,69,69,69,191,121,238,121,191,191,238,238,238,238,238, - 238,238,238,238,238,69,191,69,238,69,121,238,69,121,69,121, - 69,69,121,69,69,69,69,121,69,69,69,69,69,69,69,80, - 69,69,69,3,69,69,69,80,69,69,69,80,69,69,69,3, - 3,69,3,80,69,3,3,69,3,69,3,3,3,3,3,80, - 3,3,80,3,3,3,3,3,80,3,80,3,3,3,3,3, - 80,3,3,80,3,3,3,80,3,3,69,3,69,3,3,3, - 69,69,3,69,80,3,4,69,69,3,3,4,4,4,4,4, - 213,54,213,213,54,213,54,54,213,213,54,54,213,54,213,213, - 213,68,213,68,68,213,68,213,68,68,213,213,68,213,68,213, - 68,213,68,213,68,125,213,68,213,213,68,68,68,68,68,68, - 68,213,68,68,68,68,68,68,68,96,54,68,54,68,68,68, - 68,213,68,68,68,68,68,68,68,54,68,16,54,68,63,68, - 54,54,54,213,213,213,213,68,213,68,213,68,213,213,68,213, - 68,68,68,68,213,68,213,68,68,68,68,68,68,68,213,68, - 68,213,68,68,68,68,68,68,68,68,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,125,68,68,68, - 68,68,68,68,68,68,125,68,68,238,68,68,68,68,68,68, - 238,68,68,68,152,125,68,57,68,68,68,238,68,125,68,68, - 68,125,125,125,68,238,125,125,152,125,68,125,57,68,152,125, - 125,125,68,125,125,125,125,125,125,125,125,125,125,125,125,125, - 125,125,125,125,125,125,125,202,125,125,125,125,125,125,125,125, - 125,125,202,205,125,202,205,125,202,125,125,202,125,202,125,125, - 202,205,202,205,125,202,205,202,202,205,152,69,125,125,125,205, - 152,80,205,125,202,152,125,202,152,80,205,202,205,202,202,205, - 202,99,202,125,205,125,202,202,152,125,125,202,125,202,125,202, - 152,80,202,202,202,152,202,202,152,202,202,202,152,205,202,202, - 205,202,202,202,202,125,80,202,202,202,202,202,202,202,202,202, - 202,202,202,202,80,202,202,202,202,80,202,202,80,202,202,202, - 202,202,57,202,202,202,202,202,202,202,202,202,202,202,202,80, - 202,202,202,202,202,57,202,57,202,202,202,238,202,80,202,202, - 202,57,80,57,202,202,202,202,202,202,57,80,238,202,238,238, - 202,202,202,202,238,202,202,202,80,202,238,57,69,57,238,69, - 57,69,238,202,202,202,238,202,238,80,238,202,238,80,238,69, - 57,202,238,202,238,202,238,238,238,238,238,238,121,238,69,238, - 238,238,238,238,238,238,238,238,191,238,238,191,57,69,57,69, - 238,191,191,191,191,191,121,191,69,69,121,69,121,238,238,238, - 238,238,238,69,57,238,238,191,69,191,69,238,121,69,121,69, - 121,121,69,121,121,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,3,69,69,3,69,69,69,80,69,69, - 80,80,3,3,80,69,80,69,80,69,80,3,69,80,3,3, - 3,3,3,3,3,3,3,3,3,3,3,80,69,80,3,3, - 80,3,3,3,80,3,3,80,69,3,80,3,80,3,80,3, - 80,3,3,69,69,69,4,3,4,69,69,4,4,4,4,3, - 54,213,54,54,213,54,54,213,54,54,213,213,54,213,54,213, - 54,213,68,213,213,68,213,68,213,213,68,68,213,68,68,68, - 68,68,68,68,213,68,68,68,68,68,68,68,68,213,68,68, - 213,125,68,68,68,68,68,68,54,68,68,96,54,54,54,68, - 68,68,68,68,68,68,68,68,68,68,68,68,54,54,68,54, - 68,213,213,54,54,213,54,213,54,213,68,213,68,68,213,68, - 213,213,213,213,68,213,68,213,213,68,213,68,213,68,68,68, - 68,68,68,68,68,213,68,68,68,68,68,68,68,68,68,96, - 68,68,68,68,68,68,57,68,68,68,68,68,213,238,68,68, - 68,68,68,68,68,57,68,68,125,68,68,68,68,238,125,68, - 68,68,125,68,238,68,68,68,68,152,68,68,125,68,152,238, - 57,68,125,152,125,68,125,68,125,238,125,152,68,125,57,68, - 68,125,125,152,68,125,152,125,125,125,152,125,125,125,152,125, - 125,152,125,125,125,125,125,125,125,125,125,125,125,205,125,125, - 205,125,125,125,205,125,125,205,125,125,202,238,238,202,125,125, - 57,202,152,125,80,152,125,152,205,202,125,125,202,202,202,69, - 202,152,125,202,152,125,80,205,80,152,202,152,125,152,202,125, - 238,235,125,125,202,202,202,125,202,202,202,125,202,152,202,125, - 202,125,152,202,205,202,202,125,202,125,152,202,202,202,152,202, - 202,205,202,125,202,80,152,202,202,152,80,152,202,202,152,205, - 171,202,152,202,202,152,202,202,202,202,202,202,202,202,202,202, - 57,202,80,202,202,202,202,202,57,80,57,202,202,202,57,202, - 202,57,202,202,202,80,69,80,57,80,202,80,57,202,57,202, - 238,202,202,202,57,202,238,238,202,238,202,202,202,238,202,202, - 202,238,238,202,202,202,238,238,238,238,202,80,238,202,80,238, - 202,238,202,69,238,238,202,238,80,57,69,238,202,238,80,238, - 202,238,238,238,202,238,80,238,238,202,80,238,57,238,238,238, - 238,202,238,69,238,238,238,238,238,238,69,238,57,69,238,191, - 69,121,69,191,69,69,191,69,191,191,191,121,191,69,238,238, - 238,238,238,191,69,238,69,238,191,69,238,121,238,69,121,69, - 69,191,69,121,69,69,69,69,69,121,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,3,69,69,69,80, - 69,3,80,69,3,3,3,69,3,69,3,80,3,3,3,80, - 3,3,80,3,80,3,3,80,3,80,3,3,3,69,80,3, - 3,3,80,3,3,69,3,3,69,3,69,3,3,69,69,69, - 3,69,69,3,4,3,4,4,4,4,3,69,69,4,3,69, - 54,54,54,54,54,213,208,213,54,54,54,213,54,213,54,213, - 213,54,213,68,213,54,213,68,213,54,54,68,213,213,213,213, - 68,213,68,68,68,68,213,68,68,213,68,68,68,68,68,68, - 68,213,68,68,68,68,68,68,68,68,54,54,96,54,54,68, - 68,68,68,68,68,68,68,68,68,68,54,68,54,63,54,54, - 96,54,213,54,54,213,54,213,213,54,213,213,213,54,213,68, - 213,54,68,54,68,54,68,54,213,68,68,68,68,68,213,68, - 68,68,213,68,68,68,213,68,68,68,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, - 152,68,57,68,68,68,152,68,68,125,68,152,68,68,125,68, - 57,96,68,68,68,152,68,152,238,125,68,152,68,238,68,68, - 57,68,238,68,125,152,125,238,68,125,125,125,68,125,125,125, - 57,125,125,125,68,238,68,125,125,125,125,125,125,125,125,125, - 125,125,125,125,125,125,125,125,125,125,125,202,57,125,152,238, - 125,125,125,125,125,125,125,202,125,57,202,125,57,125,202,125, - 57,125,202,125,205,80,205,125,125,202,205,202,152,202,125,125, - 125,202,125,125,80,152,125,152,202,202,125,202,202,57,125,125, - 202,235,202,57,125,152,202,152,125,202,205,202,202,125,80,152, - 202,202,202,152,125,202,202,152,202,202,202,152,202,125,202,152, - 202,152,202,152,125,202,202,171,202,202,202,202,202,202,202,202, - 205,80,202,202,202,202,202,152,202,202,202,202,152,202,202,80, - 202,202,202,202,202,202,57,80,202,202,202,57,80,202,202,57, - 80,202,57,202,202,202,202,202,202,57,202,202,57,202,57,80, - 202,57,202,202,202,202,202,57,80,202,57,202,202,202,202,57, - 202,202,238,202,238,202,202,202,202,238,57,69,57,69,57,69, - 202,238,238,202,202,202,238,238,202,238,80,238,202,57,57,238, - 238,202,238,69,238,238,238,202,191,238,69,202,238,69,69,238, - 238,69,57,238,238,238,238,238,238,191,238,238,191,238,238,191, - 191,238,69,191,238,238,191,238,69,191,238,69,191,69,238,69, - 69,69,238,238,238,191,238,202,191,238,69,238,121,121,121,121, - 69,191,69,121,121,121,69,69,121,69,69,69,121,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 3,3,69,80,69,69,80,69,3,69,3,69,80,80,3,3, - 80,3,3,3,3,3,3,3,3,3,80,69,3,3,3,3, - 80,3,3,80,69,3,80,69,3,3,80,3,3,3,3,80, - 3,3,80,3,4,3,4,69,3,3,3,3,4,69,4,4, - 54,213,54,54,213,63,213,54,213,54,54,54,54,213,54,213, - 54,213,68,213,68,213,68,213,68,213,213,213,68,68,68,68, - 213,54,68,68,213,68,68,54,68,68,68,213,68,213,68,213, - 68,68,68,68,96,68,68,68,68,16,96,68,54,68,96,54, - 213,68,54,68,68,68,96,68,68,54,68,54,54,96,54,54, - 68,213,54,213,213,213,54,213,213,213,68,68,68,213,68,213, - 213,68,213,54,213,68,213,68,54,68,213,68,213,68,54,68, - 213,68,68,213,68,68,68,68,213,68,68,68,68,68,68,68, - 68,68,96,68,96,68,68,68,96,57,68,68,68,68,68,68, - 238,68,68,57,68,68,238,68,68,68,68,68,152,68,68,96, - 68,68,68,57,68,68,68,68,68,68,68,68,125,68,68,152, - 68,57,68,125,68,121,152,68,125,68,68,125,125,68,238,152, - 68,68,238,68,125,125,125,68,57,238,125,152,125,125,57,125, - 125,57,125,125,125,125,125,125,152,125,125,57,125,202,125,125, - 125,125,125,125,125,125,125,57,202,125,125,125,125,125,125,125, - 125,202,125,125,202,152,202,202,125,125,202,125,125,202,125,202, - 125,202,125,80,125,125,80,125,125,125,202,125,125,202,202,202, - 57,235,57,202,125,238,125,202,125,57,125,57,57,57,202,125, - 202,152,202,202,202,202,125,57,202,152,125,202,202,202,57,202, - 125,57,202,202,202,152,125,125,202,152,57,152,202,152,202,202, - 202,152,202,152,202,202,152,80,202,152,202,202,202,202,202,152, - 202,202,57,202,57,202,80,202,57,80,202,80,57,80,202,202, - 202,202,202,202,57,202,57,80,57,202,238,80,202,202,202,69, - 238,202,238,202,238,202,202,202,69,57,80,57,202,238,238,202, - 80,238,202,57,202,202,238,238,69,57,202,69,57,238,80,57, - 69,202,202,238,238,238,202,202,69,238,238,202,238,238,202,238, - 202,238,238,238,238,238,69,57,69,238,238,191,202,57,238,238, - 57,238,238,238,202,69,238,238,238,238,238,238,202,57,69,69, - 57,191,191,69,238,191,57,238,191,57,191,191,238,191,238,238, - 238,191,202,238,238,238,202,191,80,238,238,238,69,238,238,69, - 191,69,69,121,69,121,69,121,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,80,69,69,80,69, - 69,80,3,69,80,69,3,69,80,69,80,69,69,69,80,3, - 69,80,3,80,3,69,3,3,69,3,3,69,3,69,80,3, - 69,69,3,3,69,3,69,3,3,80,3,3,80,3,3,69, - 80,3,3,4,4,4,3,4,4,4,4,4,4,4,3,69, - 54,54,54,54,213,54,54,54,213,213,213,213,54,213,213,213, - 54,213,213,54,213,54,213,213,68,54,54,68,54,213,54,54, - 213,54,54,54,54,54,68,54,68,54,68,54,68,68,68,68, - 68,54,68,68,68,96,68,68,68,68,54,54,63,54,54,54, - 68,68,54,68,54,68,54,68,68,96,68,68,54,54,54,63, - 54,54,54,54,54,213,54,213,54,213,54,213,54,213,68,54, - 213,68,54,68,54,68,213,68,54,54,68,54,54,68,54,54, - 54,68,54,68,54,68,213,68,68,54,68,96,68,68,68,68, - 68,68,68,68,68,96,68,68,68,68,96,68,68,68,68,68, - 68,68,68,68,68,68,68,125,68,57,238,68,68,68,68,96, - 68,96,68,68,68,57,68,57,96,152,238,96,68,57,238,68, - 68,57,57,68,152,238,68,57,152,125,57,68,125,152,125,125, - 125,152,125,152,125,68,125,152,125,68,238,68,57,68,152,125, - 125,57,125,125,125,125,125,125,125,238,125,125,57,238,125,125, - 57,125,125,125,125,125,125,57,125,202,125,202,125,202,125,202, - 125,202,125,57,125,125,125,202,202,125,202,205,57,125,125,125, - 57,80,152,69,125,202,125,202,202,202,125,202,202,152,238,125, - 202,64,238,238,202,125,125,202,125,202,202,202,125,57,125,57, - 202,152,57,152,57,125,202,57,125,202,152,57,125,202,57,125, - 202,57,57,125,57,202,57,202,202,202,202,57,125,202,125,202, - 202,202,202,202,152,202,202,202,202,202,152,202,202,152,202,202, - 57,202,57,202,238,202,57,202,57,57,69,202,57,57,202,57, - 57,80,57,202,57,80,202,202,202,202,57,202,57,202,57,202, - 202,202,57,202,57,69,202,57,202,57,202,57,80,202,57,238, - 202,57,69,238,238,202,202,57,202,238,57,69,57,69,57,69, - 57,69,202,202,202,238,238,238,202,238,69,238,202,238,69,57, - 238,202,238,238,238,238,238,238,57,238,69,57,238,121,202,238, - 238,238,238,191,238,238,202,238,238,238,238,191,238,191,191,57, - 238,238,191,191,69,238,238,69,238,69,57,238,238,238,69,238, - 202,191,238,238,80,191,238,238,238,69,69,238,69,238,69,238, - 69,191,69,238,121,69,121,69,121,69,69,69,121,69,69,121, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 3,69,3,3,69,80,69,3,69,3,69,69,3,69,3,3, - 3,69,3,3,3,3,69,3,80,3,69,3,69,3,3,80, - 69,3,80,69,3,3,3,80,3,69,80,3,3,3,3,3, - 3,69,69,69,3,4,3,3,4,4,3,69,3,4,3,69, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,213, - 54,213,68,213,68,213,54,68,213,213,213,54,213,54,68,68, - 68,213,68,68,213,68,213,213,213,54,68,68,54,68,54,54, - 68,68,68,68,54,68,68,96,68,54,68,54,96,54,96,68, - 54,68,68,54,68,54,68,96,68,68,54,96,54,54,96,54, - 68,54,213,54,54,213,54,213,213,213,213,213,213,213,54,213, - 213,54,213,213,54,213,54,213,68,213,54,68,68,68,213,68, - 213,54,68,68,54,68,54,96,213,68,68,54,68,96,68,68, - 68,68,54,68,96,68,96,68,96,68,68,96,238,96,68,68, - 57,68,96,68,57,68,68,68,68,68,68,68,57,68,125,68, - 68,68,96,68,68,96,68,68,68,68,96,57,68,68,68,152, - 68,68,152,68,238,68,125,68,238,68,152,125,68,125,238,68, - 68,238,68,121,152,125,238,125,68,125,125,125,68,125,238,238, - 152,125,125,57,152,125,125,125,125,125,125,238,125,125,57,57, - 202,125,125,125,125,125,125,125,125,57,125,125,125,57,125,125, - 125,57,125,125,202,125,125,202,125,125,57,125,202,125,125,202, - 125,57,202,152,125,57,125,57,125,152,202,125,125,57,202,238, - 238,235,125,125,202,202,125,152,125,57,125,152,202,202,202,202, - 125,57,202,125,202,202,152,202,202,202,125,202,202,152,202,202, - 125,202,202,57,202,57,125,57,57,125,57,80,202,152,202,202, - 152,125,152,202,202,202,202,152,202,57,202,202,202,57,202,152, - 80,202,202,202,202,57,202,202,202,202,69,57,80,80,57,80, - 202,57,202,202,202,152,202,202,57,69,202,238,202,57,57,80, - 238,57,80,57,202,57,57,80,57,202,238,202,57,238,202,202, - 238,202,238,202,202,57,238,80,238,202,80,191,80,238,80,238, - 238,238,238,69,57,238,80,238,238,202,57,202,238,57,238,238, - 202,238,238,238,202,238,238,238,238,57,238,238,238,238,191,69, - 238,69,57,238,238,69,238,238,238,238,238,238,238,238,238,238, - 238,57,69,57,191,238,238,191,57,69,238,238,202,238,238,238, - 191,202,238,238,238,69,238,69,191,69,191,69,191,69,238,202, - 191,69,121,69,121,69,121,69,69,69,69,121,69,69,121,69, - 69,69,69,69,69,69,69,69,69,69,69,80,69,69,3,69, - 80,69,80,69,3,69,80,69,80,69,80,69,69,3,69,80, - 3,69,80,3,3,80,3,3,3,3,69,3,80,69,3,3, - 3,69,3,3,69,69,3,69,3,3,69,80,3,80,3,80, - 69,3,3,3,80,3,4,4,4,69,4,3,4,69,4,3, - 54,54,54,54,54,54,54,54,54,54,213,54,213,213,54,213, - 54,213,213,213,68,213,54,213,54,54,213,68,213,213,54,68, - 68,213,68,68,68,54,68,54,68,54,68,96,213,68,68,54, - 68,54,68,68,54,54,68,54,68,96,68,54,54,54,54,68, - 54,68,68,68,68,54,54,54,96,68,54,68,96,54,54,63, - 68,54,54,213,54,54,213,54,54,213,68,245,213,213,213,54, - 213,213,54,213,68,68,54,213,68,213,68,54,68,68,54,68, - 68,54,68,68,68,68,54,68,68,54,68,68,54,68,96,54, - 54,68,54,68,68,68,96,68,96,68,68,68,68,68,96,68, - 68,238,68,68,96,68,96,68,68,68,96,68,68,68,68,96, - 68,68,96,96,68,96,68,57,96,238,68,68,57,96,191,68, - 57,68,68,68,57,68,152,68,57,238,68,57,68,68,57,57, - 68,125,152,238,68,68,57,125,152,68,125,125,152,125,68,125, - 68,152,125,238,68,125,125,125,125,125,125,125,125,125,125,57, - 57,125,125,125,57,125,125,125,125,125,57,125,202,125,125,202, - 125,125,202,57,125,125,57,125,202,125,202,152,202,125,202,125, - 125,57,125,202,125,125,202,125,57,202,125,202,202,202,202,125, - 202,235,191,152,57,125,238,202,125,202,57,152,125,57,152,238, - 202,125,238,202,202,57,125,57,57,125,152,57,202,57,57,125, - 202,57,202,57,202,202,202,202,202,202,57,202,57,125,57,125, - 202,57,125,152,125,202,202,57,202,152,202,57,202,202,57,202, - 202,57,57,202,202,202,57,202,202,202,202,202,57,80,202,202, - 202,202,57,80,57,202,202,202,57,57,202,57,80,202,238,202, - 202,57,202,202,202,80,57,80,238,202,57,202,80,57,238,202, - 238,202,238,57,202,238,57,238,57,57,202,57,57,238,57,238, - 57,238,238,202,202,238,202,57,238,238,238,238,202,69,202,57, - 238,238,202,191,238,69,191,238,238,238,238,238,202,238,238,202, - 191,238,69,191,191,191,238,238,238,238,238,238,238,238,238,238, - 238,191,57,238,69,238,238,238,191,238,238,238,238,238,238,238, - 191,238,69,238,238,80,238,80,238,202,238,202,69,191,69,69, - 238,191,69,238,69,121,69,69,121,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,80,69,80, - 69,69,69,80,69,3,69,3,3,3,80,69,3,69,3,69, - 3,69,3,69,69,3,3,80,3,3,69,3,69,3,80,3, - 69,3,80,69,80,3,3,69,80,3,3,3,3,80,3,3, - 80,3,80,3,3,4,69,3,3,69,69,69,3,69,4,4, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,213,54, - 213,54,68,54,54,213,54,213,68,54,68,54,68,54,213,54, - 54,54,54,54,54,68,54,54,213,54,213,68,54,96,68,68, - 54,68,54,54,68,68,96,213,96,54,54,68,54,54,54,54, - 68,54,68,54,54,16,96,68,54,54,68,96,54,54,54,54, - 54,54,54,54,213,54,54,213,54,213,54,213,54,68,213,54, - 68,54,213,54,213,213,54,68,54,68,54,213,54,54,213,54, - 54,68,54,68,54,68,68,54,213,96,213,54,68,54,68,96, - 68,96,68,96,54,96,68,54,68,96,96,96,68,96,68,68, - 96,68,96,96,68,68,68,57,68,68,238,68,68,96,57,68, - 68,68,68,68,68,238,96,96,68,96,96,96,68,68,68,96, - 57,68,57,57,68,68,238,57,68,68,57,68,238,152,68,68, - 125,68,238,68,57,125,68,152,57,125,152,68,238,68,125,57, - 125,68,152,125,125,152,57,57,125,57,152,125,125,125,125,152, - 125,57,125,57,125,125,57,125,125,125,125,57,57,125,125,57, - 125,125,125,125,57,202,125,125,57,125,238,57,202,125,57,125, - 125,202,125,125,125,202,125,202,125,57,125,125,152,57,152,57, - 191,235,202,57,125,202,125,202,125,57,202,57,125,125,57,202, - 238,57,202,57,57,202,202,125,202,202,57,125,57,202,202,238, - 57,202,238,202,57,238,57,57,57,57,152,57,202,202,202,125, - 57,202,125,202,202,57,57,125,202,57,57,202,152,57,202,57, - 57,202,202,57,57,57,202,57,57,57,202,57,202,57,57,57, - 202,238,202,57,202,57,57,57,202,80,57,238,57,57,202,57, - 57,202,57,57,57,238,202,57,202,238,202,57,69,57,202,238, - 202,57,238,57,69,57,238,80,57,238,57,69,57,238,57,238, - 202,202,238,238,238,238,238,238,238,69,57,69,57,238,238,238, - 238,238,191,202,238,69,57,69,238,238,238,238,191,57,238,191, - 238,57,191,57,238,238,238,238,238,238,238,238,238,238,238,238, - 238,238,238,57,191,191,238,238,238,238,238,238,238,238,238,69, - 69,238,238,238,191,69,238,191,69,238,238,69,191,80,191,69, - 238,69,69,121,69,121,69,69,121,69,121,69,69,69,69,69, - 69,69,121,69,69,69,69,69,69,69,80,69,69,3,69,69, - 3,69,69,69,69,80,69,80,80,69,3,80,69,80,69,80, - 69,3,69,80,3,69,3,3,80,3,3,80,3,80,3,3, - 80,3,69,3,3,80,3,3,3,3,69,69,3,3,80,3, - 3,3,3,80,3,69,4,69,4,4,4,3,4,4,3,69, - 54,54,54,54,54,210,54,54,54,54,54,54,213,54,54,213, - 54,54,213,54,213,54,213,54,213,54,213,54,213,68,213,68, - 68,68,213,68,54,68,68,54,68,54,68,54,213,54,68,68, - 68,68,68,54,54,54,54,16,54,68,96,68,96,54,54,54, - 68,54,68,68,213,213,54,68,96,16,54,68,54,96,54,63, - 54,54,54,213,54,54,213,54,213,54,54,213,54,213,54,213, - 68,68,54,54,68,54,213,68,54,213,68,213,68,54,213,68, - 54,68,54,68,54,68,96,68,54,68,54,68,68,54,68,54, - 68,96,213,68,68,54,68,68,68,68,68,96,68,96,54,68, - 96,68,68,96,96,68,96,96,68,68,68,68,68,96,68,96, - 96,68,96,96,68,68,68,96,68,68,57,96,68,96,68,68, - 57,96,68,68,57,96,68,68,57,57,152,68,238,68,57,57, - 57,68,57,68,57,125,238,125,68,57,125,125,125,152,125,125, - 57,238,68,57,238,68,68,152,125,125,125,125,152,125,125,125, - 125,57,125,125,125,125,57,125,57,125,125,152,238,57,125,125, - 125,57,125,125,57,125,57,125,125,125,125,57,57,125,125,125, - 125,125,125,202,152,202,57,125,202,125,202,57,69,57,202,238, - 202,47,121,202,57,125,57,125,202,152,69,57,125,202,125,202, - 202,238,125,202,152,57,125,202,57,125,202,125,152,125,202,202, - 57,202,238,125,202,202,125,152,202,57,202,57,57,152,202,202, - 202,202,57,57,125,202,125,152,202,202,152,125,202,57,202,202, - 57,238,202,202,238,57,202,202,202,57,202,57,202,202,202,57, - 202,57,202,57,202,202,202,57,238,202,202,202,202,238,202,202, - 238,80,202,80,202,57,202,238,80,57,57,57,202,238,202,57, - 202,202,238,57,202,57,69,57,202,238,238,57,238,202,238,238, - 238,202,57,238,202,238,202,202,238,202,57,238,238,238,202,202, - 57,69,57,238,238,238,191,57,69,57,238,238,238,238,238,238, - 238,238,69,57,238,238,57,238,238,238,238,238,238,238,238,238, - 191,191,238,238,238,238,238,238,238,238,238,238,238,69,238,57, - 202,238,238,238,238,238,69,238,238,69,238,202,238,202,238,238, - 69,238,69,238,69,121,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,3,69,69,69,69,80,80, - 69,69,3,69,3,80,3,69,3,80,3,69,3,69,3,69, - 3,69,3,69,3,80,3,69,3,69,3,69,3,3,80,69, - 3,3,80,3,3,69,80,3,80,3,80,3,80,3,3,80, - 80,3,69,3,4,3,80,69,3,4,4,4,4,69,3,4, - 54,155,54,210,54,210,54,54,155,213,54,54,54,54,213,54, - 213,54,213,54,213,54,54,213,54,213,54,213,54,54,54,54, - 213,54,68,54,68,54,213,54,54,68,54,96,68,54,54,213, - 54,54,54,68,68,213,96,68,68,54,54,54,54,96,54,54, - 54,68,54,54,54,96,54,54,54,54,68,54,54,54,54,54, - 54,54,54,54,54,213,54,54,213,54,213,54,54,54,54,213, - 54,213,54,213,54,213,54,68,213,54,54,54,54,68,54,54, - 213,54,54,213,54,213,54,54,68,54,68,54,54,68,54,96, - 54,54,54,96,16,68,16,54,16,54,54,68,68,68,68,68, - 68,96,68,68,68,96,68,68,96,96,68,96,68,68,96,68, - 238,96,68,57,96,96,96,68,96,57,68,68,96,152,68,152, - 96,68,57,68,68,152,57,68,68,68,238,57,68,57,68,68, - 152,57,68,152,68,68,68,57,125,68,57,68,68,238,125,152, - 125,125,125,152,125,125,125,238,125,125,152,57,238,57,238,125, - 152,125,125,57,57,125,125,57,125,57,125,57,125,125,57,57, - 57,125,125,125,125,125,125,125,125,125,125,125,125,125,202,125, - 57,125,125,57,238,57,125,125,125,238,57,125,125,125,57,191, - 158,254,238,57,125,125,202,125,238,57,152,202,125,57,57,57, - 57,202,57,57,57,202,125,57,125,202,152,202,57,125,57,57, - 202,57,202,238,57,238,57,57,57,202,57,202,125,125,57,152, - 57,57,125,152,202,152,202,57,125,152,202,125,202,125,57,57, - 202,202,57,57,202,202,57,57,238,57,57,202,57,57,238,238, - 238,238,57,69,57,57,57,202,202,57,238,57,238,202,238,57, - 202,57,238,57,69,238,57,57,69,238,202,202,57,238,57,238, - 57,238,80,238,57,202,238,202,57,57,238,202,202,238,202,238, - 57,238,238,202,57,202,238,57,238,191,202,238,202,238,238,238, - 202,238,238,238,57,238,80,238,191,191,238,238,238,57,69,238, - 238,57,238,191,191,191,238,238,121,238,191,238,238,238,238,238, - 238,238,191,238,238,238,238,238,121,238,238,238,238,191,121,238, - 238,238,238,202,121,238,238,238,69,238,238,238,238,69,238,238, - 238,238,69,238,69,121,69,69,121,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,80,69,69,69,3, - 69,69,80,69,69,3,80,3,69,3,80,69,80,69,3,69, - 3,69,80,69,3,3,80,69,3,80,3,69,80,69,3,3, - 69,69,3,80,3,3,3,69,69,3,3,3,3,80,3,3, - 3,80,3,69,4,3,69,3,4,3,69,69,3,4,4,4, - 54,54,210,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,213,54,213,54,213,54,213,54,68,213,68,213,54, - 213,54,213,54,68,54,68,54,54,213,54,54,213,54,54,68, - 68,68,54,54,96,213,54,54,96,54,16,54,54,54,54,54, - 54,68,68,68,54,68,54,54,16,54,54,16,54,16,54,54, - 54,54,54,54,54,54,54,213,54,54,213,54,213,213,54,213, - 54,213,54,213,96,54,54,68,54,68,68,68,54,68,54,68, - 54,68,54,54,68,54,213,54,68,54,68,68,54,54,68,54, - 68,96,213,54,54,68,68,68,68,68,54,16,96,68,96,68, - 68,54,96,16,68,68,96,68,68,96,68,96,68,68,96,54, - 68,96,68,96,68,191,96,238,96,96,96,68,96,68,96,68, - 68,152,96,96,191,68,96,57,96,152,68,57,68,96,152,238, - 68,68,57,68,57,152,68,57,68,152,68,57,152,68,238,125, - 68,152,238,68,152,125,68,68,57,238,68,68,152,68,152,238, - 68,57,125,125,238,125,125,125,125,57,125,57,238,125,125,125, - 125,57,57,125,125,125,202,57,125,202,57,125,202,57,125,125, - 57,57,125,125,125,125,125,202,152,125,125,125,152,202,125,16, - 235,235,57,125,125,152,125,125,125,57,57,125,152,202,125,57, - 57,125,125,57,57,57,202,125,57,57,238,57,238,202,238,57, - 125,57,202,57,238,202,125,125,57,125,57,125,57,202,57,125, - 125,202,125,57,238,238,202,57,57,57,238,57,202,57,57,238, - 238,238,238,238,238,202,238,238,202,238,238,202,57,238,202,57, - 202,238,57,202,57,238,238,57,202,202,238,202,57,238,57,238, - 238,238,57,238,202,57,80,191,57,57,238,238,202,238,80,238, - 57,238,202,57,238,238,238,57,238,238,57,191,238,191,57,238, - 57,238,57,238,238,238,238,202,238,57,238,238,202,238,238,238, - 238,238,238,238,69,191,191,57,69,57,238,238,238,191,57,238, - 191,191,69,57,69,191,191,191,191,238,238,238,191,238,191,69, - 191,238,191,238,238,238,238,238,238,238,238,238,238,238,238,238, - 69,238,238,238,238,238,238,238,238,238,238,69,191,238,80,238, - 238,69,191,69,238,69,69,121,69,80,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 80,69,3,69,80,69,69,80,69,3,69,3,69,80,69,80, - 3,3,69,3,3,3,3,3,3,69,3,80,69,3,3,69, - 3,3,3,80,3,80,3,3,3,80,80,69,69,3,80,4, - 3,4,3,69,69,3,4,69,69,3,3,4,3,4,4,3, - 54,155,54,155,54,54,155,54,54,54,54,54,54,54,54,213, - 54,213,54,54,54,213,54,54,54,54,213,54,54,54,54,68, - 54,54,54,213,54,54,213,54,54,68,54,68,54,68,54,54, - 54,54,54,68,54,54,96,54,68,54,68,54,54,63,54,54, - 54,54,54,54,54,54,54,54,213,96,54,68,54,54,54,54, - 54,54,54,54,54,54,54,54,54,213,54,54,54,213,54,54, - 54,213,54,54,213,54,213,54,213,54,54,54,68,54,54,54, - 54,213,54,68,54,54,54,68,54,68,54,54,54,68,54,68, - 54,54,96,68,96,54,96,54,54,96,68,68,68,96,54,96, - 96,68,68,68,96,54,68,54,68,68,96,68,54,96,68,68, - 96,54,96,68,96,68,96,54,68,96,96,96,68,96,57,68, - 96,68,68,68,68,96,57,68,238,96,96,57,68,125,68,96, - 57,57,68,57,68,238,152,68,238,57,125,68,238,57,68,57, - 68,238,152,68,238,57,125,125,125,152,125,125,125,125,57,125, - 125,125,57,57,125,57,125,238,152,238,57,125,125,57,57,57, - 57,125,125,57,57,125,57,125,57,57,152,125,57,152,57,125, - 125,125,125,125,57,57,125,57,57,125,125,125,57,57,125,96, - 141,235,238,57,57,57,125,202,125,125,125,57,125,57,125,125, - 202,125,125,202,152,125,57,57,125,125,125,125,125,57,202,125, - 57,125,57,202,125,57,57,57,202,57,152,125,125,57,202,125, - 202,57,238,202,202,202,57,125,57,57,202,57,57,238,57,238, - 57,238,202,57,238,57,57,202,191,202,57,238,57,202,191,202, - 238,57,202,57,238,202,238,57,57,57,80,57,238,202,202,57, - 80,238,202,57,238,57,238,202,80,238,57,202,57,57,69,57, - 238,238,57,238,57,202,238,238,202,69,57,80,57,238,238,238, - 238,238,238,238,57,69,238,238,202,238,202,238,191,238,191,238, - 238,238,238,57,191,238,238,57,191,238,238,238,191,57,238,238, - 238,57,191,191,191,191,238,57,238,191,238,191,238,191,57,191, - 238,191,238,191,238,238,238,238,121,191,238,238,238,238,238,238, - 238,238,238,238,238,69,238,238,57,69,238,57,69,238,238,238, - 69,191,80,238,69,238,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,69,80,69, - 3,69,80,69,69,3,69,3,69,80,69,3,69,3,80,69, - 80,3,80,3,80,3,69,80,3,80,69,3,3,69,3,80, - 3,80,3,69,3,3,80,3,69,69,3,4,3,4,3,3, - 69,3,69,80,3,3,69,3,4,4,4,4,4,4,4,4, - 54,54,155,54,54,155,213,155,54,155,213,155,213,54,54,54, - 54,54,213,54,54,54,213,54,213,54,213,54,213,54,54,213, - 54,213,54,213,54,68,54,54,213,54,54,54,54,68,54,213, - 54,68,54,213,54,54,68,54,68,54,68,96,54,54,96,54, - 54,54,96,54,54,96,54,63,54,54,63,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,54,213,54,54,54,213,54, - 54,54,213,54,213,54,54,54,213,54,54,54,213,54,213,54, - 54,54,54,68,54,68,54,54,54,68,54,68,54,54,16,96, - 213,96,54,68,96,54,96,68,54,54,54,54,68,68,54,54, - 16,54,54,68,96,96,68,96,96,68,96,68,68,96,96,96, - 238,54,96,96,96,96,68,208,68,96,68,96,96,68,96,68, - 96,152,68,57,68,68,96,68,68,57,96,96,57,96,125,68, - 68,57,68,57,68,57,68,152,68,57,68,57,68,57,68,57, - 68,238,125,68,152,68,152,68,57,68,68,57,68,125,68,152, - 68,125,125,57,152,68,152,238,68,68,96,96,68,68,68,68, - 96,96,238,57,96,68,57,238,68,96,191,57,16,238,96,57, - 238,57,96,57,238,191,68,238,16,191,57,238,68,191,96,208, - 80,235,57,125,125,57,57,57,125,125,202,57,125,57,125,57, - 57,57,57,57,125,125,125,202,57,57,57,125,202,57,57,125, - 57,57,57,57,57,125,202,96,202,57,57,125,152,57,57,57, - 152,57,238,57,57,57,57,202,57,57,57,238,57,238,57,57, - 202,191,57,238,238,238,57,202,191,57,57,57,191,202,191,57, - 202,191,57,238,57,57,57,238,238,238,57,202,191,57,57,238, - 57,238,202,238,202,57,238,57,57,202,191,57,202,191,57,202, - 238,57,202,238,238,238,202,191,57,57,238,57,238,238,238,238, - 57,57,202,238,238,238,238,57,238,191,57,238,191,238,191,238, - 57,238,238,69,57,69,191,57,121,191,191,191,191,191,191,191, - 191,191,191,191,191,191,191,191,191,191,191,191,191,191,208,191, - 191,191,191,191,208,191,191,208,191,191,191,16,16,208,208,191, - 191,16,191,191,191,16,121,191,16,191,191,16,191,191,121,191, - 121,238,238,69,191,69,69,191,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,80,69,69,80, - 69,3,80,69,69,80,69,3,69,3,69,80,80,69,3,3, - 80,69,3,3,3,3,3,3,69,3,3,80,69,3,3,69, - 3,69,3,69,80,3,3,3,3,69,3,69,69,69,69,3, - 69,3,69,3,80,3,4,3,4,4,69,4,4,4,4,3, - 54,155,54,155,54,54,155,54,54,54,54,54,155,54,54,54, - 54,54,54,213,54,54,54,54,213,54,54,213,54,213,54,54, - 213,54,54,54,54,54,54,213,54,213,54,68,54,54,68,63, - 68,54,54,96,54,68,54,96,54,54,96,54,68,54,63,54, - 54,68,54,68,54,54,54,54,54,68,54,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,54,54,213,54,54,54,213, - 54,213,54,54,54,54,54,213,54,213,54,213,54,54,213,54, - 213,54,68,54,54,54,68,54,68,63,68,54,54,54,54,54, - 54,16,54,54,213,96,213,96,68,96,96,16,54,96,68,68, - 96,68,68,16,54,68,54,54,68,54,68,96,96,54,68,68, - 96,213,16,96,54,96,96,96,96,96,96,96,68,96,96,96, - 68,57,68,96,96,96,152,96,68,96,68,68,96,57,68,152, - 96,57,96,68,57,68,57,68,57,68,96,57,68,152,68,152, - 57,68,57,125,57,68,238,152,57,57,57,68,57,68,152,57, - 68,57,57,68,238,57,125,57,125,125,80,202,238,202,57,238, - 202,69,57,125,202,202,125,125,202,202,202,125,125,205,69,125, - 69,125,202,125,125,202,57,125,202,205,125,125,202,69,69,16, - 57,235,57,57,57,125,57,125,57,57,57,125,57,125,57,57, - 125,125,125,202,57,57,125,57,152,125,125,57,57,57,125,125, - 125,57,57,57,125,57,57,57,57,57,125,238,57,57,125,57, - 57,125,57,238,57,125,125,57,125,57,202,57,57,238,238,57, - 191,238,57,57,238,57,57,191,57,57,57,57,57,191,57,57, - 191,57,238,238,57,238,57,238,57,57,57,191,238,238,202,238, - 57,57,238,57,191,238,57,238,57,191,202,238,191,202,238,57, - 238,238,57,238,57,57,57,238,57,238,238,191,57,191,238,238, - 238,238,191,238,191,238,191,57,238,238,57,238,238,69,57,191, - 69,57,57,191,191,191,69,191,191,69,80,80,121,69,69,191, - 69,69,191,121,238,238,238,121,80,121,121,121,69,191,80,238, - 80,69,121,69,80,69,69,69,69,69,80,80,80,80,80,80, - 80,80,80,80,80,80,69,69,80,69,121,69,69,69,238,80, - 80,238,238,69,202,191,69,202,69,69,69,121,69,69,69,121, - 69,69,69,69,69,69,69,69,69,69,69,69,3,69,69,69, - 3,69,3,80,69,80,69,3,80,80,3,69,3,80,3,80, - 3,3,3,80,3,80,3,80,3,69,3,3,69,3,69,80, - 69,80,3,3,69,69,69,3,80,3,80,3,4,3,80,3, - 80,3,3,69,69,4,4,4,69,3,3,69,69,4,3,69, - 54,155,54,155,54,155,213,155,54,155,213,54,54,54,54,54, - 54,213,54,54,54,213,54,54,54,54,54,54,54,213,54,54, - 54,68,54,68,54,213,54,54,54,54,54,68,54,54,68,54, - 54,54,16,68,208,54,54,16,68,54,54,54,96,54,54,54, - 63,54,208,54,96,54,96,54,63,54,54,54,63,54,54,54, - 54,54,54,54,54,54,54,54,54,213,54,54,54,213,54,54, - 54,54,54,213,54,213,54,54,54,54,54,54,68,54,54,54, - 54,68,54,96,54,54,68,63,68,54,54,96,68,54,68,54, - 68,54,54,96,54,54,54,54,54,54,213,96,54,16,54,68, - 54,96,96,68,96,96,16,54,238,54,68,54,68,96,54,96, - 54,68,54,96,68,96,68,96,54,16,96,96,96,68,68,96, - 96,96,68,152,68,68,57,96,152,152,96,68,152,96,68,57, - 96,68,96,57,68,57,96,68,57,152,68,96,238,57,238,68, - 152,68,57,68,57,68,191,68,68,152,68,152,57,238,125,125, - 152,68,125,152,68,57,68,57,68,192,17,187,132,122,17,150, - 187,187,132,219,166,132,219,166,166,166,132,227,183,187,166,187, - 187,166,132,17,187,219,219,187,166,219,219,166,17,166,183,158, - 202,141,238,57,57,125,57,125,152,57,57,125,57,125,125,57, - 57,57,57,152,125,57,57,57,238,57,125,57,125,57,57,57, - 125,57,57,57,57,57,57,57,57,57,57,57,125,57,57,57, - 238,57,57,125,57,57,57,57,57,57,57,57,57,57,238,57, - 238,57,238,57,57,57,238,57,238,191,57,57,57,57,57,57, - 57,57,57,238,57,57,191,57,238,57,238,57,57,191,57,57, - 191,57,238,57,57,238,57,238,238,191,57,57,191,57,57,238, - 57,57,238,238,57,57,238,191,238,191,57,191,69,191,57,238, - 191,238,191,238,57,238,191,191,57,191,238,191,191,191,238,191, - 191,191,238,57,191,191,191,191,191,56,183,132,219,215,219,183, - 132,183,183,219,183,219,219,183,183,183,183,183,132,132,132,219, - 183,183,183,183,219,215,56,56,183,215,183,219,219,42,183,26, - 219,219,219,183,132,183,219,219,219,219,219,122,219,132,215,0, - 199,191,69,69,238,69,57,238,69,238,69,80,121,69,69,69, - 69,69,69,69,69,69,69,69,69,69,80,69,69,69,80,69, - 69,80,3,3,3,3,80,69,3,80,69,80,3,69,3,80, - 3,80,3,3,69,3,3,80,3,3,80,69,3,80,3,3, - 3,3,80,3,3,80,69,3,3,69,3,3,69,3,4,3, - 4,80,3,3,69,69,4,4,69,3,3,3,4,69,4,4, - 155,155,155,54,155,54,155,54,155,54,54,155,54,155,54,54, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54, - 213,54,54,54,54,54,54,68,54,68,54,63,54,54,63,54, - 54,54,54,63,54,54,54,54,54,54,54,54,54,54,96,54, - 96,54,54,54,54,54,54,54,54,54,54,54,54,54,210,210, - 210,54,54,155,54,155,54,54,54,54,54,54,54,54,54,54, - 54,54,54,54,54,54,54,213,54,213,54,54,54,54,213,54, - 54,54,54,54,54,54,63,68,63,54,54,54,208,54,54,96, - 63,68,54,208,68,54,96,16,54,68,54,54,68,54,96,54, - 96,54,213,96,54,68,213,96,54,68,96,68,96,68,68,54, - 96,54,16,54,96,96,96,96,68,96,68,54,96,96,96,96, - 68,68,96,68,96,96,96,68,96,96,68,68,96,68,96,57, - 68,96,57,68,96,96,57,57,68,96,68,152,68,152,68,57, - 68,57,57,68,96,57,68,57,57,68,125,238,57,68,57,68, - 57,68,57,238,125,152,68,152,57,80,182,67,211,12,99,99, - 99,182,67,67,99,182,67,99,67,99,67,67,182,182,67,67, - 99,99,182,182,99,182,109,67,182,67,99,67,141,211,109,235, - 80,99,68,125,125,57,125,238,57,125,57,57,125,57,57,125, - 125,125,57,57,57,57,57,57,125,125,57,152,57,125,57,125, - 57,57,57,57,57,57,57,57,125,57,57,57,57,57,125,57, - 57,57,125,57,125,125,125,125,125,57,57,57,57,57,57,57, - 57,191,125,191,191,57,238,57,57,238,238,238,57,57,238,57, - 238,57,57,191,57,191,57,238,191,57,57,57,191,57,57,57, - 57,191,191,57,57,238,57,57,57,57,57,238,57,57,191,57, - 57,191,57,191,57,191,57,57,191,69,191,57,191,57,191,191, - 57,238,238,191,191,191,238,238,191,238,191,57,191,57,191,191, - 191,57,191,191,191,57,57,208,80,26,17,141,243,8,243,67, - 243,211,141,8,182,182,243,67,12,243,49,141,243,12,243,182, - 182,182,182,182,8,67,182,182,182,139,243,182,67,49,49,49, - 67,182,141,67,182,67,211,8,139,243,8,243,17,8,8,26, - 80,121,238,238,202,238,202,80,238,80,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,80,69,69,80, - 3,3,80,80,69,3,3,69,80,3,69,3,80,3,80,3, - 3,3,80,3,80,3,3,3,80,69,3,3,69,69,69,80, - 3,69,3,3,69,3,3,69,3,4,4,69,4,69,69,3, - 69,4,4,3,3,3,3,3,4,4,4,4,4,4,3,69, - 210,210,210,155,54,155,54,54,54,54,155,213,54,54,54,54, - 155,54,54,54,54,54,213,54,54,54,54,54,54,213,54,54, - 54,54,54,213,54,54,54,54,54,54,54,54,54,54,96,54, - 54,54,54,68,54,54,54,54,96,16,54,16,68,63,54,54, - 54,54,54,54,54,208,63,54,54,54,54,54,63,54,54,54, - 210,210,54,54,54,54,54,54,54,54,54,54,54,54,54,213, - 213,54,54,54,213,54,54,54,54,54,213,54,68,54,54,54, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,68, - 54,54,54,54,96,54,54,68,63,96,54,96,68,96,54,96, - 96,54,96,96,54,54,68,96,54,54,16,54,96,96,68,96, - 96,68,54,96,208,54,54,208,54,96,96,16,96,96,68,208, - 96,68,96,68,68,68,96,68,57,96,96,57,96,96,152,68, - 57,96,96,152,68,68,68,68,57,68,191,68,96,68,152,57, - 68,152,68,125,68,152,68,68,96,57,68,152,68,57,57,68, - 152,68,57,68,57,238,57,68,152,192,182,67,182,243,49,67, - 49,67,224,99,99,67,67,182,139,67,67,67,182,99,182,182, - 67,67,99,67,182,67,224,67,109,67,99,67,99,49,182,219, - 80,235,191,57,152,57,57,57,57,125,125,57,57,152,57,57, - 57,152,57,57,57,57,57,57,57,57,57,68,57,57,57,125, - 152,57,96,57,96,57,57,191,57,57,57,57,57,191,57,57, - 57,191,57,57,57,57,191,191,57,57,57,57,57,57,57,191, - 96,80,199,191,191,57,191,191,57,191,191,57,238,191,191,57, - 191,191,57,191,57,191,191,57,191,57,57,57,57,191,57,191, - 192,80,191,191,191,191,57,238,238,191,238,57,238,238,57,191, - 57,191,57,191,57,57,238,191,191,57,191,191,191,191,191,191, - 191,191,57,191,238,191,191,191,191,191,191,57,191,57,238,57, - 191,191,191,57,191,191,191,208,235,219,182,8,183,12,42,12, - 219,12,150,150,12,17,219,243,219,141,243,182,12,12,12,8, - 141,8,8,141,12,182,243,12,243,67,67,49,132,12,17,17, - 182,8,243,8,141,141,182,8,243,17,67,8,26,8,182,12, - 69,121,191,69,238,121,238,69,238,238,69,69,121,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 69,3,69,80,3,80,80,3,69,80,3,80,69,80,3,80, - 3,3,80,3,69,3,80,3,3,3,80,3,3,3,69,69, - 3,69,80,3,69,3,80,69,3,69,3,69,3,3,69,3, - 69,3,4,4,80,3,4,3,4,4,3,69,3,4,3,69, - 210,155,54,155,54,155,155,54,155,54,54,210,54,210,54,54, - 54,54,54,54,54,54,63,54,54,54,54,54,213,54,54,54, - 213,54,54,54,54,54,54,54,54,54,54,96,54,54,54,54, - 96,54,213,208,54,16,54,54,54,54,54,54,63,68,208,54, - 54,54,54,54,54,54,54,63,63,63,63,54,54,210,54,210, - 54,54,54,210,54,155,54,155,54,54,54,54,54,54,54,54, - 63,54,54,54,54,54,54,54,54,54,54,54,63,54,213,54, - 213,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,54,68,54,54,54,68,54,68,54,54,54,68,54, - 54,96,54,68,96,54,54,16,54,68,54,68,16,54,96,54, - 96,54,96,208,54,96,96,96,96,96,96,68,96,96,96,96, - 96,96,96,96,96,96,57,68,96,96,96,96,68,68,96,96, - 96,68,68,96,57,96,96,96,68,57,96,96,57,68,57,68, - 96,68,57,96,96,57,125,254,192,68,96,68,68,152,96,57, - 68,57,68,57,68,68,57,68,57,199,182,49,182,211,235,99, - 67,99,67,49,99,67,99,49,99,99,99,99,99,67,49,99, - 99,235,67,182,99,182,8,49,91,235,235,67,182,235,182,42, - 121,145,63,96,208,96,68,54,96,96,96,96,68,16,96,96, - 96,16,96,96,96,68,96,96,96,96,191,96,96,68,96,96, - 208,96,191,96,96,96,208,96,208,96,96,96,63,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,96,208,208,208, - 63,202,199,105,208,191,96,208,208,191,191,208,191,191,191,191, - 191,191,208,208,208,208,191,208,191,208,191,208,208,191,208,105, - 199,191,105,191,191,208,208,191,208,191,191,208,208,191,208,191, - 208,191,208,191,208,191,208,191,191,191,208,191,191,191,191,191, - 191,191,191,191,191,191,191,191,191,191,191,208,191,208,208,208, - 208,191,191,208,191,208,208,105,139,8,67,49,67,211,67,139, - 67,67,99,67,8,67,182,67,67,211,211,49,182,141,67,67, - 67,67,67,8,139,8,67,182,67,67,49,141,0,0,0,122, - 8,8,67,49,101,182,67,67,26,139,7,182,17,12,12,12, - 208,208,16,16,16,16,121,16,121,121,191,121,191,191,121,121, - 16,121,121,121,121,121,121,69,121,121,121,121,121,69,69,80, - 69,3,69,3,80,69,3,80,3,69,80,3,3,3,80,3, - 80,3,3,3,80,3,3,80,3,3,3,80,80,3,3,80, - 3,3,69,69,4,3,3,4,3,4,4,3,69,4,80,3, - 3,69,69,80,3,3,4,4,4,69,4,3,4,69,4,3, - 210,54,155,155,155,54,155,54,155,54,155,54,54,54,54,54, - 54,54,54,54,54,54,213,54,54,54,54,63,54,54,54,63, - 54,54,54,54,54,54,54,54,54,54,54,54,54,208,54,54, - 54,63,68,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,208,54,54,54,54,54,54,54,63,54,54,210,54,63, - 210,210,54,210,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,213,63,54,213,54,54,54,54,213,54,54,54,54,63, - 54,54,54,54,54,63,54,54,96,54,54,16,54,54,16,54, - 68,54,54,16,54,68,96,54,96,63,54,96,54,96,68,54, - 16,68,96,54,96,54,68,54,96,68,54,68,68,96,16,63, - 96,54,68,96,208,96,54,96,208,54,54,96,96,16,96,96, - 96,96,96,68,96,96,96,68,68,57,96,96,96,96,96,96, - 54,96,96,96,68,68,57,96,68,57,68,96,96,68,96,57, - 96,68,57,125,68,208,215,0,95,68,191,57,238,68,57,57, - 152,152,57,57,57,57,191,238,57,202,187,49,182,67,49,99, - 67,67,67,67,235,49,49,99,49,49,145,67,99,49,67,67, - 67,99,67,49,49,99,99,235,12,99,49,99,49,99,139,0, - 121,145,191,121,121,191,238,69,238,238,238,57,57,121,238,238, - 238,238,238,69,57,69,69,238,121,238,238,121,57,69,202,202, - 202,125,238,121,191,57,202,202,191,121,191,238,69,238,121,202, - 202,121,238,238,121,202,57,121,238,238,238,191,238,57,238,191, - 191,80,225,69,57,69,80,57,57,202,57,57,69,57,69,57, - 57,57,80,57,80,57,57,57,69,69,80,80,57,57,69,238, - 199,238,191,69,57,80,57,57,57,57,80,80,57,80,202,80, - 57,80,57,80,57,80,57,69,57,80,69,69,69,57,69,57, - 69,57,69,69,69,69,57,80,69,80,80,80,80,80,80,199, - 199,80,80,80,80,80,80,238,26,12,150,243,243,150,243,12, - 150,243,243,141,8,243,243,8,141,17,243,8,12,12,243,243, - 243,243,243,12,141,243,243,150,141,211,211,17,0,0,0,0, - 12,243,243,243,12,12,8,141,122,12,26,26,26,12,12,12, - 69,69,80,199,225,199,145,80,80,199,199,80,80,80,80,80, - 199,80,80,199,199,199,199,80,199,199,199,80,199,199,80,69, - 80,69,80,69,3,80,3,69,80,3,3,80,69,80,3,3, - 3,80,80,3,3,3,3,3,80,3,3,3,69,3,80,3, - 80,3,3,80,3,4,4,69,4,69,80,4,69,3,69,4, - 4,3,3,3,80,69,3,4,3,69,69,69,3,69,4,4, - 155,155,210,155,210,155,155,54,155,54,155,54,210,54,210,54, - 54,54,54,54,54,54,210,54,54,54,54,54,54,213,54,54, - 54,213,54,54,54,54,54,54,54,213,208,54,54,54,54,54, - 63,68,63,54,54,54,54,54,54,54,54,54,63,54,63,63, - 54,63,54,63,54,63,63,63,63,63,54,63,63,54,210,54, - 54,54,210,54,210,210,210,155,54,54,54,54,54,54,210,54, - 54,54,54,54,54,54,54,54,54,54,63,54,54,54,54,54, - 54,54,54,54,68,54,54,54,208,68,54,54,54,54,63,54, - 208,54,54,54,54,54,208,54,16,54,54,54,68,54,54,54, - 68,96,54,96,54,68,63,68,54,54,54,54,54,54,68,54, - 208,68,54,54,68,208,54,96,54,96,96,54,96,96,68,96, - 96,96,57,96,68,68,96,96,96,96,68,68,96,238,96,152, - 254,99,254,254,59,141,254,141,59,141,95,141,166,141,141,111, - 141,141,95,254,254,132,219,183,187,141,254,254,254,254,224,182, - 254,254,254,111,109,111,111,132,111,111,166,111,187,187,111,109, - 187,224,111,109,183,187,109,132,187,219,26,111,187,187,132,111, - 187,12,111,219,224,150,12,132,187,183,254,187,132,109,150,17, - 150,132,141,246,141,187,219,166,132,166,150,132,166,187,132,132, - 17,132,17,215,132,166,166,132,183,132,166,187,166,187,166,111, - 166,132,183,215,219,219,183,215,221,221,42,183,221,219,219,215, - 56,122,183,183,219,166,219,219,219,132,132,17,132,132,215,56, - 215,183,221,132,215,215,215,215,56,215,56,56,215,183,215,183, - 219,215,215,183,183,215,215,215,215,215,215,215,183,215,215,215, - 215,132,215,215,183,183,215,219,215,219,215,215,183,215,215,215, - 183,215,183,215,183,215,0,215,215,215,215,215,215,215,215,183, - 215,56,215,215,215,215,215,215,215,215,183,215,215,221,221,215, - 215,221,221,221,221,221,219,17,187,254,109,111,150,111,109,254, - 109,211,187,187,12,150,150,150,187,132,187,109,150,109,12,187, - 150,150,109,109,12,211,12,109,187,150,141,139,109,8,211,109, - 211,187,243,150,243,109,109,12,211,150,243,243,243,243,243,12, - 132,56,42,42,219,219,221,42,122,221,56,183,183,183,219,183, - 183,221,219,183,183,219,183,219,219,219,219,26,122,215,3,69, - 3,69,3,80,69,3,3,80,69,80,80,3,69,3,80,80, - 3,3,3,80,3,80,3,3,3,80,3,80,3,3,3,3, - 3,80,3,4,69,3,80,3,3,4,3,3,3,69,4,69, - 4,4,69,4,3,4,4,69,4,4,4,3,4,4,3,69, - 155,210,155,54,155,54,210,54,210,54,54,210,54,210,54,54, - 54,54,54,54,54,54,54,54,54,54,54,63,63,54,54,54, - 63,54,54,54,54,54,54,63,63,54,54,54,54,63,54,54, - 63,54,63,54,54,54,54,54,63,54,54,54,63,54,54,63, - 54,54,54,63,54,54,54,54,54,63,54,54,63,63,63,210, - 210,54,210,54,54,54,54,210,210,54,54,54,54,54,54,54, - 54,210,213,54,210,54,54,54,54,213,54,54,54,54,54,54, - 54,54,63,63,54,54,54,54,63,68,54,63,54,54,54,54, - 96,54,54,96,54,54,54,54,54,54,54,208,54,96,54,63, - 54,54,16,54,63,68,54,96,96,54,96,96,96,54,96,54, - 63,96,54,208,96,96,96,68,54,96,96,96,54,96,96,96, - 96,54,96,96,96,96,96,68,57,96,96,96,96,96,208,96, - 56,122,243,243,187,122,182,26,109,219,12,17,109,211,182,187, - 139,17,26,254,187,42,67,67,182,122,42,26,26,91,182,109, - 211,139,109,12,182,182,67,182,182,211,67,99,182,49,182,99, - 67,235,99,99,17,17,211,150,139,109,219,182,182,67,99,49, - 99,235,182,26,64,235,99,99,182,42,99,182,99,182,99,49, - 99,211,99,187,150,109,67,99,67,111,12,99,67,67,182,67, - 99,182,182,211,12,182,139,182,243,182,182,99,182,67,224,67, - 99,182,182,182,139,99,182,99,139,132,26,182,8,99,49,99, - 67,254,139,182,211,182,182,182,139,211,182,211,182,99,150,182, - 17,109,99,182,182,67,182,182,182,99,182,211,139,182,182,182, - 99,67,182,182,211,182,67,182,99,182,182,99,67,182,99,243, - 99,141,182,182,141,99,8,211,182,8,182,182,182,67,139,182, - 67,182,182,182,211,182,141,67,243,182,243,211,182,182,182,182, - 182,182,99,99,67,182,182,182,182,182,67,182,211,182,139,211, - 182,8,67,67,182,99,182,243,139,99,235,99,99,67,67,99, - 67,182,49,49,67,99,67,67,235,99,67,182,67,99,49,67, - 67,182,49,99,67,99,49,99,182,67,182,49,99,67,182,67, - 67,211,49,182,67,67,67,182,182,99,99,67,67,182,67,182, - 141,182,182,67,243,67,141,67,67,182,182,182,141,182,67,182, - 67,182,141,67,182,141,67,182,182,182,182,67,17,12,69,69, - 69,3,3,69,80,69,69,3,3,3,80,80,80,69,3,3, - 80,3,3,80,69,3,80,3,3,3,3,3,69,80,3,69, - 3,4,4,4,69,69,3,4,3,69,69,80,4,69,3,4, - 4,4,4,69,3,69,3,69,3,4,4,4,4,69,3,4, - 155,210,155,155,155,155,54,210,155,54,54,210,54,54,54,54, - 210,54,210,54,54,54,54,210,54,54,54,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,63,54,63,54,63,54,63,63,210,54,63,63,63, - 63,63,63,54,54,210,63,63,63,54,210,210,54,210,54,210, - 54,210,54,210,210,155,210,54,54,54,210,54,54,54,54,54, - 54,54,210,54,54,54,54,54,54,54,63,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,63,54,54,54,54,54,54, - 54,54,54,54,54,54,96,54,54,96,54,54,54,208,54,96, - 54,96,54,96,96,54,96,54,54,96,54,54,54,96,54,96, - 96,54,96,54,54,54,96,63,54,96,96,54,96,208,54,96, - 54,96,96,96,96,96,68,96,96,96,96,96,96,68,96,96, - 219,243,139,99,211,26,49,182,182,182,211,211,211,182,243,109, - 182,243,26,243,99,182,12,12,141,91,26,67,243,219,12,150, - 150,182,182,187,182,182,235,67,211,67,99,139,99,99,99,182, - 182,211,99,67,12,26,182,67,182,182,182,139,67,182,182,67, - 182,99,139,42,8,235,235,99,109,42,17,109,67,26,182,254, - 67,99,211,67,26,26,64,182,109,187,26,99,139,59,59,67, - 99,224,67,182,99,182,182,211,109,139,67,139,59,182,99,182, - 182,243,64,182,99,211,219,67,67,99,132,219,67,99,182,99, - 99,67,182,99,99,67,182,182,182,182,99,182,211,17,243,182, - 26,141,99,182,99,109,219,150,67,99,182,182,182,182,99,182, - 182,182,182,99,243,99,182,182,67,182,182,243,99,99,243,254, - 109,67,182,182,182,182,182,182,182,182,211,182,182,182,224,182, - 109,109,211,182,141,182,211,182,254,67,141,99,67,182,182,211, - 182,182,182,182,99,8,243,243,99,182,109,182,141,182,182,141, - 182,182,254,67,182,182,182,109,109,182,67,141,182,99,211,211, - 182,150,109,99,211,12,182,99,139,243,150,150,182,141,99,182, - 139,67,182,182,182,8,67,182,150,211,211,99,182,8,243,211, - 182,243,211,211,182,141,182,243,17,8,67,8,182,182,8,8, - 182,67,8,141,8,182,243,182,8,67,8,8,67,141,67,141, - 67,67,182,8,67,182,182,8,8,141,67,8,17,12,69,69, - 69,80,3,80,3,80,80,80,80,3,3,3,80,3,69,80, - 3,69,3,3,3,3,3,80,3,80,69,80,3,3,80,3, - 69,69,69,80,3,3,80,69,80,3,4,4,3,3,69,69, - 69,69,69,4,3,3,69,4,4,3,69,69,3,4,4,4, - 155,155,155,210,210,210,155,54,155,54,155,54,210,54,54,54, - 54,54,210,54,210,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,63,54,63,54,63,54,63, - 54,54,54,54,54,63,54,54,63,54,54,210,210,210,63,210, - 54,54,210,210,54,54,210,54,210,54,54,210,54,210,63,210, - 210,210,54,54,210,210,210,210,155,54,54,155,54,54,210,54, - 54,54,54,54,54,54,54,54,54,54,54,63,54,54,63,54, - 63,54,54,54,63,54,54,54,54,54,54,54,54,54,96,54, - 208,54,54,208,54,63,54,54,54,96,54,54,54,54,54,96, - 208,54,54,54,96,54,54,54,54,16,96,96,54,68,54,54, - 63,63,54,96,54,63,96,96,208,54,96,96,96,96,96,68, - 96,54,96,96,96,96,96,96,96,96,96,96,96,96,54,208, - 219,67,67,141,211,182,99,182,67,139,182,182,182,67,182,211, - 99,182,211,67,139,99,211,67,182,219,109,109,183,219,182,99, - 12,17,150,150,67,211,224,132,211,67,182,8,211,8,182,182, - 182,211,211,182,109,109,64,99,99,139,182,182,67,182,99,64, - 99,235,187,187,162,42,254,26,187,99,109,109,99,187,211,12, - 211,99,109,59,187,67,67,64,99,111,224,214,182,49,99,99, - 99,67,182,59,99,67,99,109,182,109,99,64,67,64,99,99, - 99,26,99,211,182,182,182,99,99,49,99,182,182,99,182,182, - 99,99,99,67,109,182,187,182,99,67,182,182,99,99,111,67, - 12,182,67,211,182,182,224,111,67,99,182,182,99,182,235,182, - 99,182,182,99,67,99,99,99,99,182,254,182,99,182,211,182, - 182,99,99,109,254,182,182,67,182,99,109,182,99,99,59,99, - 182,182,182,67,182,182,182,182,182,182,182,182,99,182,211,182, - 182,211,182,211,99,182,150,17,182,99,211,182,99,12,182,99, - 182,211,182,182,254,67,182,182,211,182,67,254,182,182,182,182, - 182,182,211,182,211,243,8,182,254,243,211,182,182,182,182,182, - 182,67,182,67,182,182,67,211,67,182,211,211,182,211,182,182, - 182,182,182,211,182,139,67,8,8,8,67,67,67,182,182,211, - 182,67,8,182,67,139,182,67,182,182,182,8,182,8,67,8, - 67,8,67,139,182,67,182,141,101,8,8,243,12,12,69,3, - 3,80,69,3,3,3,3,3,80,80,3,80,3,80,3,80, - 69,80,80,69,80,3,3,3,3,3,69,3,69,3,4,4, - 4,3,3,3,80,3,3,69,3,80,3,69,69,80,3,80, - 3,3,3,69,80,4,3,69,69,3,3,4,3,4,4,3, - 217,210,155,155,210,155,210,155,54,155,54,155,54,155,155,210, - 210,54,54,54,54,54,54,210,54,210,54,54,54,54,54,54, - 54,54,63,54,54,63,54,63,63,54,54,54,63,54,63,54, - 54,63,54,63,63,54,63,210,54,210,210,210,54,210,210,63, - 155,210,54,63,210,210,210,210,54,210,210,54,210,210,54,210, - 54,210,210,210,54,210,210,54,155,54,210,54,54,210,54,54, - 54,54,54,54,54,54,54,54,63,54,54,54,54,54,54,63, - 54,54,54,63,54,54,63,54,54,208,54,54,54,54,54,63, - 54,63,54,54,54,54,54,54,54,208,54,96,54,96,54,63, - 54,54,96,54,208,54,96,96,54,54,208,96,208,208,96,54, - 96,54,54,54,96,54,54,96,54,96,96,63,54,96,208,63, - 96,96,208,96,96,96,96,96,54,16,96,96,208,96,208,54, - 78,26,42,0,150,182,8,182,99,99,182,99,182,139,182,182, - 109,99,182,67,99,99,182,67,150,42,99,235,224,67,99,99, - 99,150,99,99,254,99,187,182,182,111,211,99,254,109,182,99, - 182,182,182,99,67,67,235,99,67,99,67,99,182,99,235,139, - 109,26,78,187,26,187,187,187,187,211,221,187,139,182,99,99, - 235,182,99,182,59,67,44,67,99,182,139,64,109,139,64,99, - 99,99,99,67,99,67,59,182,99,182,109,187,99,99,67,182, - 99,141,182,99,99,182,99,150,17,99,99,67,224,139,59,187, - 109,99,187,111,99,224,109,111,182,111,132,182,182,67,99,99, - 99,109,67,59,182,182,67,99,99,59,109,109,182,224,182,182, - 182,182,182,182,182,182,99,182,182,99,211,182,99,99,182,67, - 99,99,182,254,12,99,182,111,99,99,182,59,182,182,67,99, - 224,99,182,59,99,99,182,99,182,182,182,67,139,182,182,224, - 182,182,182,182,182,99,182,182,109,254,182,182,182,182,182,182, - 224,182,99,109,122,224,182,182,224,109,139,182,182,182,211,182, - 67,182,182,182,99,99,109,182,182,211,182,243,224,182,182,224, - 182,182,254,139,99,182,243,42,182,182,182,182,182,182,8,211, - 182,182,182,182,211,182,8,182,99,182,141,26,17,182,139,182, - 182,182,182,182,8,182,182,141,67,67,182,182,8,182,211,182, - 211,182,141,182,8,8,8,8,8,182,182,8,12,12,69,69, - 69,3,69,80,3,80,80,80,3,3,80,3,80,3,69,3, - 80,3,3,69,3,80,3,80,69,80,3,69,4,69,3,4, - 3,3,4,4,3,80,3,3,3,3,69,3,3,69,69,69, - 3,80,3,4,3,3,69,3,4,4,4,4,4,4,4,4, - 217,210,155,155,155,210,210,155,210,210,54,155,54,54,54,54, - 210,210,54,210,54,210,54,210,54,54,210,210,54,54,54,54, - 210,54,63,54,54,210,54,54,63,63,54,54,54,54,63,63, - 54,63,54,54,63,63,63,210,210,210,54,210,210,210,210,63, - 210,210,210,54,210,54,210,210,63,63,210,54,210,210,210,210, - 210,54,210,210,54,210,210,54,210,54,210,54,54,54,210,54, - 210,210,54,210,54,54,54,54,54,210,54,210,54,54,54,54, - 63,63,54,54,63,54,54,54,54,63,54,54,54,63,54,54, - 54,63,54,54,54,54,96,54,54,54,54,54,54,54,54,68, - 54,208,54,54,63,54,54,54,54,54,54,54,54,63,96,54, - 54,54,54,54,54,54,54,54,96,54,96,54,96,54,96,54, - 96,54,208,96,208,96,96,96,96,96,96,96,96,96,210,210, - 215,99,211,109,211,254,211,99,235,67,67,139,67,99,67,182, - 211,182,99,235,235,67,67,99,99,12,182,67,211,99,235,64, - 67,49,64,139,211,235,109,182,12,42,12,67,99,99,49,99, - 99,99,99,99,99,64,235,224,111,99,67,99,99,214,109,78, - 187,187,187,187,132,187,12,141,12,187,182,224,99,109,139,182, - 182,219,187,26,187,187,187,26,187,219,26,211,26,78,211,235, - 59,67,64,67,99,99,235,99,214,64,26,42,211,64,139,99, - 64,99,99,99,235,187,26,17,26,182,109,67,219,187,182,42, - 26,150,132,219,182,187,17,187,132,187,49,235,99,219,99,211, - 99,99,99,49,99,109,182,109,64,211,67,99,99,67,99,235, - 64,182,182,182,109,182,99,235,99,99,150,182,67,99,99,64, - 67,64,67,211,109,214,99,99,64,99,99,99,67,64,67,109, - 187,99,49,99,99,99,67,99,99,99,182,99,99,99,99,99, - 99,99,99,182,99,67,187,150,99,67,67,99,99,150,182,12, - 99,235,109,211,26,42,139,99,99,99,49,224,99,49,67,99, - 99,182,67,67,67,67,187,67,67,182,182,67,67,99,49,99, - 67,67,99,211,139,99,17,42,99,67,99,67,211,99,49,99, - 49,182,67,182,67,99,67,67,182,67,99,42,187,67,182,139, - 67,67,67,67,67,49,67,67,49,67,67,67,67,49,67,67, - 182,67,67,67,67,67,67,67,67,8,49,17,182,243,16,121, - 3,69,3,69,80,3,3,3,80,3,3,80,3,80,80,3, - 69,80,3,80,3,3,69,3,3,3,80,3,3,4,4,69, - 3,69,3,69,3,4,4,69,69,80,3,80,3,3,3,69, - 3,69,3,69,3,4,4,3,4,4,69,4,4,4,4,3, - 155,217,155,210,210,210,210,210,54,210,210,210,155,54,210,54, - 54,54,210,54,54,54,54,54,54,210,54,54,54,210,210,63, - 54,63,54,210,63,54,54,54,54,54,54,63,63,63,54,54, - 63,54,54,210,54,54,210,210,54,210,155,210,210,210,210,210, - 210,210,210,210,210,210,63,210,54,210,210,210,54,210,210,54, - 210,155,54,210,210,210,155,210,54,210,54,210,54,210,54,210, - 54,54,210,54,210,210,54,210,63,54,63,54,210,63,63,63, - 54,54,54,54,54,54,63,63,54,54,54,208,54,54,54,54, - 54,54,63,54,54,54,54,63,54,54,63,54,208,54,54,63, - 208,54,96,54,96,63,96,96,54,54,96,54,96,96,63,54, - 210,245,63,54,63,245,63,54,63,96,54,96,63,96,96,96, - 54,96,96,54,68,96,96,96,96,96,96,68,96,96,63,191, - 219,109,49,182,182,243,219,139,64,67,111,109,182,109,67,99, - 235,211,211,187,182,132,182,109,182,183,187,67,182,211,139,99, - 187,224,235,59,150,211,99,109,150,132,187,67,99,145,64,109, - 67,67,235,99,109,91,139,182,187,99,67,211,64,224,111,12, - 243,8,109,12,12,243,150,12,243,17,254,99,64,111,243,182, - 166,26,12,109,12,150,132,150,187,211,150,187,109,187,109,139, - 182,187,67,64,182,224,8,99,67,64,12,187,109,111,219,211, - 49,64,235,182,67,111,187,150,166,111,111,182,26,150,187,8, - 12,187,12,12,166,12,8,12,150,187,254,182,254,219,12,187, - 26,67,67,99,64,182,111,17,99,219,99,99,182,150,64,67, - 49,99,99,17,8,99,182,99,182,99,182,99,109,187,182,187, - 12,99,182,109,12,99,49,99,49,99,99,182,182,99,59,99, - 78,109,99,211,64,99,67,99,235,224,109,139,99,235,99,67, - 67,99,67,99,99,187,26,187,99,99,99,235,64,26,182,150, - 99,99,166,17,132,187,150,49,49,235,99,26,109,109,235,99, - 111,162,67,182,67,99,182,99,49,182,182,182,49,182,187,12, - 99,99,49,150,17,67,12,12,235,49,139,211,17,243,182,182, - 182,8,99,141,67,182,67,141,8,211,67,139,182,67,211,182, - 99,67,67,182,182,99,67,141,67,219,49,99,67,67,182,67, - 182,67,67,182,243,132,12,67,67,182,8,141,8,8,69,80, - 69,80,69,80,3,80,3,80,3,80,3,3,80,3,3,80, - 69,69,3,69,80,3,3,80,3,69,3,4,4,69,4,3, - 69,4,4,4,69,69,80,3,4,3,4,4,3,3,80,3, - 69,4,4,4,69,4,4,4,69,3,3,69,69,4,3,69, - 155,210,217,210,155,210,210,210,210,54,210,54,210,210,54,210, - 54,54,54,210,54,210,54,54,54,54,210,54,54,54,54,63, - 54,210,54,54,63,63,210,54,63,63,54,54,54,210,63,54, - 63,63,54,210,210,54,210,210,210,210,210,210,210,210,210,155, - 210,210,210,210,210,210,210,210,210,210,54,155,210,210,210,210, - 210,210,54,155,210,54,210,155,210,54,54,54,54,54,54,54, - 54,54,54,54,54,210,54,54,210,54,63,54,54,54,54,63, - 54,63,63,54,63,54,54,63,54,63,54,63,54,63,54,54, - 54,54,63,63,63,54,54,54,54,54,54,54,63,96,54,54, - 96,63,54,54,96,63,54,54,54,63,54,63,54,54,245,54, - 63,54,63,245,63,54,54,54,63,245,54,54,96,210,54,54, - 245,54,96,63,96,54,96,208,96,63,96,208,63,54,211,7, - 235,49,235,7,49,7,49,7,49,49,49,67,139,67,49,67, - 67,67,211,139,49,49,49,101,49,101,8,101,49,49,49,235, - 7,67,7,49,49,49,49,7,8,67,7,49,7,7,49,49, - 49,49,49,7,49,67,67,8,7,49,139,49,7,67,67,49, - 67,49,67,49,139,8,7,49,49,49,7,49,7,49,235,7, - 7,235,7,49,49,49,49,49,49,49,67,49,49,49,7,49, - 235,49,67,7,67,67,67,49,67,101,49,139,67,139,67,67, - 8,49,67,49,49,49,49,67,67,49,49,49,101,49,67,182, - 235,49,49,7,49,49,235,7,235,7,235,7,7,235,7,7, - 67,49,49,7,49,7,49,7,7,7,49,7,49,7,49,49, - 7,7,67,49,235,7,7,49,7,7,49,7,49,49,67,7, - 67,67,67,67,49,7,49,49,49,101,7,49,49,7,49,49, - 67,7,182,49,49,49,49,67,101,7,67,101,101,7,139,67, - 67,7,67,139,101,7,12,101,7,139,101,8,7,67,7,139, - 49,8,7,8,101,8,49,67,101,101,7,7,67,67,7,7, - 7,49,49,101,49,49,49,67,7,67,7,7,49,7,7,7, - 7,67,8,101,101,67,8,101,8,8,8,8,8,101,8,8, - 8,7,8,8,101,8,101,8,7,8,8,67,8,7,8,7, - 7,101,7,7,7,8,7,7,67,8,8,8,8,141,8,8, - 8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8, - 121,3,69,3,69,3,80,3,3,80,69,80,3,80,3,69, - 3,69,3,3,69,3,3,3,80,3,69,3,80,3,4,4, - 3,69,4,4,3,69,3,4,4,69,69,3,69,3,80,3, - 80,3,80,3,69,69,4,4,69,3,3,3,4,69,4,4, - 217,217,210,217,210,210,210,155,210,210,210,210,210,54,210,54, - 210,210,210,54,210,54,210,210,54,210,54,54,210,54,210,54, - 63,54,54,210,54,54,54,63,54,54,54,63,210,54,54,210, - 63,54,210,54,63,210,63,210,210,210,155,155,155,155,155,210, - 155,210,210,210,210,210,210,210,210,210,155,210,210,210,210,210, - 155,210,155,210,210,155,210,54,210,210,210,210,54,210,210,54, - 210,210,54,210,54,54,54,210,54,54,54,54,210,63,63,54, - 63,54,54,63,54,54,63,54,63,54,54,54,63,54,63,54, - 63,54,54,54,54,63,54,63,63,63,54,63,54,63,63,54, - 63,54,54,63,54,96,54,96,63,54,245,54,54,54,54,54, - 96,54,54,54,54,54,63,54,54,96,63,54,63,245,54,54, - 54,96,54,96,54,96,63,96,96,96,63,96,54,155,243,8, - 67,49,67,49,49,67,49,67,67,49,7,8,12,67,67,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,150,150,243,12,17,243,12,26,12,150,150,12,12,12,12, - 12,12,12,17,12,12,26,12,17,12,12,26,12,12,12,12, - 17,17,150,243,12,26,12,150,12,17,150,150,8,12,8,12, - 12,26,12,12,12,26,26,12,26,17,8,17,150,150,12,26, - 12,17,26,26,26,12,26,26,26,26,26,12,17,219,17,26, - 26,26,26,219,219,17,26,26,26,17,150,26,219,12,26,12, - 12,243,150,12,8,150,12,150,12,150,12,243,150,17,219,219, - 26,17,26,219,132,219,17,26,219,26,219,219,219,17,219,132, - 219,132,12,12,17,132,17,219,26,166,219,42,17,219,219,26, - 219,17,26,17,26,42,26,26,26,42,26,17,26,26,17,17, - 219,219,12,17,12,12,26,26,26,26,26,26,26,26,26,26, - 26,26,26,26,26,26,26,26,26,12,26,17,26,26,26,12, - 26,26,26,26,12,26,150,8,26,17,219,12,12,12,12,12, - 12,12,12,12,12,12,12,12,26,150,17,150,12,12,12,12, - 12,12,12,12,26,12,12,12,243,26,8,150,12,12,12,12, - 26,8,12,12,8,8,12,12,12,12,26,8,150,12,243,12, - 12,12,17,12,12,150,12,12,26,26,12,26,12,12,12,12, - 12,26,26,26,12,12,12,12,26,8,12,26,12,26,42,7, - 121,69,80,69,80,69,80,69,3,69,80,3,69,3,80,69, - 80,69,69,80,69,3,80,69,3,69,3,4,4,3,4,4, - 4,4,3,3,4,3,4,3,3,3,3,3,80,3,3,3, - 3,3,69,4,80,4,3,3,4,4,4,4,4,4,3,69, - 155,155,155,217,210,155,210,155,210,210,210,210,210,54,210,54, - 54,54,54,54,54,210,54,210,54,210,54,54,54,54,210,54, - 210,210,54,63,210,54,54,63,63,63,54,54,210,210,63,54, - 210,54,210,210,210,210,210,210,210,210,155,155,155,155,155,155, - 155,155,210,210,210,155,210,155,155,210,210,210,210,155,155,210, - 210,210,155,155,210,155,155,210,210,210,54,210,210,54,210,54, - 54,54,54,210,54,210,54,63,210,210,210,54,54,54,63,54, - 63,54,54,63,63,54,63,54,63,63,54,54,63,54,63,54, - 63,54,54,54,54,63,54,54,54,63,54,54,54,54,54,54, - 63,245,54,63,63,54,63,54,54,54,54,54,54,63,96,210, - 63,63,210,63,63,245,63,245,63,54,245,54,96,54,63,96, - 63,96,54,96,54,96,96,208,96,96,96,96,63,210,192,122, - 26,26,219,12,8,0,12,0,0,0,0,0,0,0,0,0, - 0,0,122,122,122,42,26,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,122,122,219,42,0,0,0,0,0,122,122, - 122,0,0,0,0,0,122,122,26,42,0,122,0,0,0,0, - 0,0,0,0,0,0,0,122,122,42,42,0,0,122,0,0, - 122,122,122,0,0,122,122,122,122,122,26,42,0,0,0,122, - 122,0,0,122,122,0,122,122,122,122,42,26,42,0,0,0, - 0,0,0,122,0,0,0,0,122,0,122,122,26,42,0,122, - 0,0,0,0,0,0,0,0,0,0,0,0,122,26,122,0, - 122,0,0,0,0,0,0,0,0,0,0,0,122,122,42,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,26, - 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, - 42,42,0,0,0,0,122,0,0,0,122,0,0,0,0,0, - 122,26,42,0,0,0,0,0,122,122,122,0,0,0,0,122, - 42,42,219,26,122,122,122,0,0,122,0,0,0,0,0,0, - 0,42,122,26,42,0,122,0,0,0,0,0,0,0,0,0, - 122,122,122,42,26,26,122,122,0,122,0,122,122,122,122,122, - 122,122,122,42,122,26,26,122,122,122,122,122,122,122,0,0, - 122,0,0,0,0,122,26,42,122,42,122,122,122,122,122,122, - 122,122,122,122,0,0,122,219,26,26,12,12,12,26,26,3, - 121,3,69,3,69,3,69,80,69,3,69,80,3,69,69,3, - 69,80,3,69,80,69,3,3,80,3,3,4,4,4,4,4, - 4,69,4,69,4,69,69,69,3,80,4,3,80,3,80,4, - 69,3,3,4,3,69,4,3,4,4,3,69,3,4,3,69, - 217,217,217,210,217,217,217,210,210,210,210,210,210,210,54,210, - 210,210,210,210,210,54,210,54,210,54,210,210,210,54,54,54, - 63,54,210,54,54,210,210,54,210,54,63,63,63,54,54,210, - 63,210,54,210,54,210,210,210,210,155,210,155,155,210,210,210, - 210,155,155,155,155,155,155,210,155,155,155,155,155,155,155,155, - 155,155,155,155,155,155,155,210,210,210,210,54,210,54,210,54, - 210,210,210,54,210,54,210,54,63,54,54,54,210,210,54,63, - 54,63,63,54,54,210,54,63,54,54,63,63,54,63,54,63, - 54,63,63,63,63,54,54,63,54,54,54,63,63,54,63,210, - 54,63,245,54,54,210,245,54,63,63,245,63,63,54,63,54, - 245,54,54,54,54,63,54,63,54,54,96,63,54,63,96,54, - 245,63,96,63,63,96,63,96,96,96,63,96,96,210,68,12, - 8,8,101,8,12,17,8,0,14,216,41,62,62,62,62,62, - 62,62,62,62,62,59,219,17,0,14,216,41,62,62,62,62, - 62,62,62,62,62,41,75,26,17,0,14,216,62,41,62,249, - 62,62,62,62,62,62,41,75,26,17,0,14,216,41,62,62, - 62,62,62,62,62,62,62,41,75,26,26,122,14,216,41,62, - 62,249,62,62,62,62,62,62,41,75,26,17,0,14,216,41, - 62,62,62,62,62,62,62,62,62,41,75,26,17,0,14,216, - 62,41,62,249,62,62,62,62,62,62,41,139,219,17,0,14, - 216,41,62,62,62,62,62,62,62,62,62,41,75,26,17,0, - 14,216,41,62,62,62,62,62,62,62,62,62,41,75,26,17, - 0,14,216,41,62,62,62,62,62,62,62,62,62,41,75,26, - 17,0,14,216,41,62,62,249,62,62,62,62,62,62,41,75, - 26,26,122,14,216,41,62,62,249,62,62,62,62,62,62,41, - 75,26,17,0,14,216,41,62,62,249,62,62,62,62,62,62, - 41,139,26,26,122,14,216,41,62,62,62,62,62,62,62,62, - 62,41,75,26,17,0,14,216,41,62,62,62,62,62,62,62, - 62,62,41,75,26,17,0,14,216,41,62,62,249,62,62,62, - 62,62,62,41,139,26,17,0,14,216,41,62,62,249,62,62, - 62,62,62,62,41,75,26,17,0,14,216,41,62,62,249,62, - 62,62,62,62,62,41,139,26,12,12,8,8,7,7,12,69, - 69,69,69,80,69,80,69,3,69,3,69,69,80,3,69,80, - 69,69,3,69,3,3,69,3,3,80,69,4,4,4,69,4, - 3,4,4,4,3,3,80,4,4,3,80,3,3,3,3,3, - 4,3,69,69,80,3,69,4,4,69,4,3,4,69,4,3, - 155,155,217,217,210,210,210,155,210,210,210,210,54,210,210,54, - 54,54,54,54,210,54,210,54,54,54,54,54,210,210,210,54, - 210,54,210,63,54,54,210,54,210,54,54,54,210,210,54,210, - 54,155,210,210,210,210,210,210,210,155,210,210,155,217,217,155, - 210,155,155,210,210,155,155,210,217,155,155,155,217,155,155,155, - 155,155,155,217,210,155,155,210,210,210,210,210,210,54,210,210, - 54,54,54,54,54,54,210,54,210,210,210,54,54,210,54,210, - 54,63,210,210,54,210,54,210,63,54,54,63,54,63,54,63, - 54,54,54,54,63,210,54,63,63,63,245,54,210,54,54,54, - 54,63,54,54,54,54,63,54,54,63,54,54,245,54,63,63, - 210,54,186,210,54,54,54,63,63,63,54,63,245,54,63,54, - 54,63,96,96,63,96,54,63,96,96,245,63,96,63,63,12, - 7,7,7,7,12,67,8,26,233,110,195,90,90,195,90,90, - 90,90,90,90,60,154,26,8,42,233,110,195,90,90,195,90, - 90,90,128,90,195,60,154,12,12,42,233,110,195,90,90,195, - 195,90,90,128,90,195,60,154,12,12,26,233,110,195,90,90, - 195,195,90,90,128,90,195,60,154,12,12,42,233,110,195,90, - 90,195,195,90,90,90,90,195,60,154,12,12,42,233,110,195, - 90,90,195,195,90,90,90,90,195,60,154,12,12,42,233,110, - 195,90,90,90,195,90,90,90,90,195,60,154,26,12,42,233, - 110,195,90,90,195,195,90,90,90,90,195,60,154,12,8,42, - 233,110,195,90,90,195,195,90,90,90,90,195,60,154,26,8, - 42,233,110,195,90,90,195,195,90,90,90,90,195,60,154,26, - 243,42,233,110,195,90,90,90,195,90,90,90,90,195,60,154, - 12,8,42,233,110,195,90,90,90,195,90,90,90,90,195,60, - 154,12,12,42,233,110,195,90,90,90,195,90,90,90,90,90, - 60,130,12,8,42,233,110,195,90,90,195,195,90,90,128,90, - 195,60,154,12,12,42,233,110,195,90,90,195,195,90,90,90, - 90,195,60,154,12,8,42,233,110,195,90,90,90,195,90,90, - 90,90,195,60,154,26,8,42,233,110,195,90,90,90,195,90, - 90,90,90,195,60,154,12,12,42,233,110,195,90,90,90,195, - 90,90,90,90,195,60,154,26,8,12,7,8,7,8,8,3, - 69,3,69,69,3,69,80,69,80,3,80,3,69,80,3,69, - 3,3,69,80,80,3,80,3,3,3,3,69,3,3,4,4, - 4,3,4,4,4,3,4,69,3,4,3,4,80,69,69,80, - 69,3,3,3,3,4,3,4,3,69,69,69,3,69,4,4, - 217,217,155,210,217,217,217,210,210,63,210,210,155,54,210,210, - 210,54,210,210,54,210,210,210,210,210,210,210,54,63,54,210, - 63,63,54,210,63,210,54,210,210,210,210,210,63,210,210,210, - 210,210,210,210,210,210,210,155,217,210,155,217,217,210,155,217, - 217,217,155,155,155,210,217,217,210,217,217,217,155,217,217,217, - 217,217,217,155,217,217,155,155,155,210,210,210,210,210,210,210, - 54,210,210,210,54,210,63,210,54,54,54,63,210,63,210,54, - 210,210,54,63,63,54,210,63,54,210,210,54,210,54,210,210, - 63,63,63,210,210,54,210,245,54,54,54,210,245,210,54,63, - 63,54,63,63,63,63,54,54,54,54,210,54,63,63,54,54, - 63,63,54,63,186,63,210,245,54,245,63,54,54,63,54,245, - 63,245,63,63,63,186,63,96,63,54,63,96,63,210,54,12, - 8,67,67,7,12,8,8,122,168,128,23,23,23,23,23,19, - 65,65,19,19,195,178,12,187,122,168,128,23,23,23,86,23, - 19,19,65,23,19,195,178,12,109,122,168,128,23,23,23,23, - 23,19,19,65,19,19,195,178,12,109,122,168,128,23,23,179, - 23,23,19,19,65,19,19,195,178,12,109,122,168,128,23,23, - 23,23,23,19,65,65,19,19,195,178,12,109,122,168,128,23, - 23,23,23,23,19,65,65,19,19,90,178,12,109,122,168,128, - 23,23,23,23,23,19,65,65,19,19,195,178,150,109,122,168, - 128,23,23,23,23,23,19,65,65,19,19,195,178,12,187,122, - 168,128,23,23,23,23,23,19,65,65,19,19,90,178,12,187, - 122,168,128,23,23,23,23,23,19,65,65,19,19,90,178,12, - 187,122,168,128,23,23,23,23,23,19,65,65,19,19,195,178, - 12,187,122,168,128,23,23,23,23,23,19,65,65,65,19,195, - 178,12,109,122,168,128,23,23,23,23,23,19,65,65,19,23, - 195,178,12,187,122,168,128,23,23,179,23,23,19,19,65,19, - 19,195,178,12,109,122,168,128,23,23,23,23,23,19,65,65, - 19,19,195,178,12,187,122,168,128,23,23,23,23,23,19,65, - 65,19,19,195,178,12,187,122,168,128,23,23,23,23,23,19, - 65,65,19,19,195,178,12,109,122,168,128,23,23,23,23,23, - 19,65,65,19,19,195,178,12,8,26,7,8,8,8,12,69, - 121,80,69,69,80,69,3,80,3,69,3,3,69,3,80,69, - 80,69,3,3,3,69,69,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,3,69,4,69,3,3,3,69, - 4,4,80,69,4,4,69,69,4,4,4,3,4,4,3,69, - 155,217,36,155,210,210,210,155,155,210,210,210,210,210,210,54, - 210,210,54,210,54,54,210,54,54,63,54,210,54,210,63,54, - 210,210,63,54,63,210,63,54,54,210,54,210,54,210,210,210, - 210,210,155,210,155,217,217,210,217,217,155,210,217,155,155,155, - 210,217,217,217,217,210,155,217,155,217,217,217,217,217,217,217, - 217,217,217,217,217,217,155,155,155,155,210,210,210,210,210,210, - 210,54,210,210,54,54,54,210,63,63,210,54,63,54,210,54, - 54,63,54,54,210,63,54,210,54,54,210,54,210,54,54,54, - 210,54,54,54,210,54,63,210,210,210,54,63,54,210,54,245, - 210,54,54,245,54,63,186,210,54,54,63,54,54,245,210,54, - 210,210,54,54,210,54,63,210,63,54,210,63,245,63,63,54, - 63,54,54,96,54,96,63,96,63,96,96,96,54,63,63,12, - 7,67,8,7,132,243,8,122,233,204,19,19,23,19,65,65, - 118,65,19,65,90,84,150,211,122,233,204,19,19,65,65,65, - 65,65,65,19,65,90,84,12,243,122,233,204,19,65,65,65, - 149,65,65,65,19,65,90,178,12,243,122,233,204,19,65,19, - 19,65,65,65,65,19,65,60,178,17,243,122,233,204,19,65, - 65,65,149,65,118,65,19,65,90,84,12,243,122,233,128,19, - 19,23,65,65,65,118,65,19,19,195,178,12,243,122,233,204, - 19,19,19,65,65,65,118,65,19,65,60,24,12,243,122,233, - 204,19,19,65,65,65,65,118,65,19,65,60,178,17,8,122, - 233,128,19,19,65,65,65,65,118,65,19,19,90,84,150,8, - 122,233,204,19,19,65,65,65,65,118,65,19,19,90,84,150, - 8,122,233,204,19,19,19,65,65,65,118,65,19,65,60,178, - 17,8,122,233,204,19,19,19,65,65,65,118,65,19,65,90, - 178,17,243,122,233,204,19,19,19,65,65,65,118,65,19,65, - 90,178,150,243,122,233,128,19,65,19,19,146,65,65,65,19, - 65,60,178,17,243,122,233,204,19,19,23,65,65,65,118,65, - 19,65,90,178,132,8,122,233,204,19,19,19,65,65,65,118, - 65,19,65,60,178,132,8,122,233,204,19,19,19,65,65,65, - 118,65,19,65,90,178,12,243,122,233,204,19,19,19,65,65, - 65,118,65,19,65,60,178,17,8,12,8,7,8,7,8,3, - 121,3,69,69,69,80,69,69,80,69,80,80,3,3,69,3, - 69,3,80,69,3,80,3,3,4,4,3,69,4,205,4,3, - 4,3,3,3,4,3,3,4,3,4,4,69,3,4,4,3, - 69,3,3,4,3,4,3,4,3,4,4,4,4,69,3,4, - 217,217,217,217,217,210,210,210,155,210,210,210,155,54,210,210, - 210,54,210,210,210,210,210,210,210,210,210,63,210,54,210,54, - 210,54,210,210,210,54,210,210,210,63,210,210,210,210,210,155, - 210,210,210,210,210,210,210,217,155,210,217,217,155,217,217,217, - 217,210,210,210,155,217,210,155,217,155,155,217,155,217,217,217, - 217,25,217,25,25,217,217,217,217,155,155,155,155,155,210,210, - 210,210,210,63,210,210,210,63,210,54,54,210,54,210,63,63, - 63,63,210,210,54,210,210,63,210,210,54,210,54,210,210,210, - 210,54,210,210,210,210,54,210,54,54,210,54,210,54,210,210, - 54,210,54,210,210,54,63,96,210,186,54,210,210,63,54,186, - 54,63,210,63,54,63,63,54,210,63,54,54,63,54,54,63, - 54,245,63,63,63,63,96,63,245,63,63,96,63,210,54,12, - 8,67,67,101,12,12,8,122,31,204,118,118,118,51,118,118, - 118,118,65,65,128,84,26,8,122,31,204,118,118,118,118,118, - 118,118,118,118,65,128,84,17,211,0,31,170,118,118,118,118, - 51,118,118,118,118,65,128,84,219,211,122,31,204,118,118,118, - 118,118,51,118,118,65,65,128,84,17,211,122,31,170,118,118, - 118,118,118,118,118,118,118,65,128,84,17,211,122,31,170,118, - 118,118,118,118,118,118,118,118,65,128,84,219,211,122,31,204, - 118,118,118,118,118,118,118,118,118,65,128,178,219,211,122,31, - 204,118,118,118,118,118,118,118,118,65,19,128,84,17,211,122, - 31,170,118,118,118,118,118,118,118,118,118,65,128,178,26,211, - 122,31,204,118,118,118,118,118,118,118,118,118,65,128,178,26, - 182,0,31,170,118,118,118,118,118,118,118,118,118,65,128,84, - 17,211,122,31,170,118,118,118,118,118,118,118,118,118,65,128, - 84,17,211,122,31,204,118,118,118,118,118,118,118,118,118,65, - 128,84,26,211,122,31,170,118,118,118,118,118,118,118,118,118, - 19,128,84,17,211,122,31,204,118,118,118,118,118,118,118,118, - 118,65,128,84,26,211,122,31,204,118,118,118,118,118,118,118, - 118,118,65,128,84,26,211,122,31,204,118,118,118,118,118,118, - 118,118,118,65,128,84,219,211,122,31,204,118,118,118,118,118, - 118,118,118,118,19,128,178,26,139,12,8,7,8,8,12,121, - 69,69,3,69,69,69,3,69,69,69,69,3,69,80,69,3, - 80,69,3,80,3,3,69,4,4,4,4,4,4,69,4,3, - 4,4,4,4,4,4,4,69,3,69,80,3,69,4,3,69, - 3,69,4,3,69,4,4,69,4,3,69,69,3,4,4,4, - 155,155,217,155,217,217,155,210,155,210,210,210,210,210,210,210, - 210,63,63,210,63,63,63,63,63,54,210,63,210,63,210,63, - 210,63,54,63,210,63,54,210,210,63,63,210,210,210,210,210, - 155,155,217,217,217,217,155,217,217,155,217,217,217,210,210,155, - 217,217,217,217,210,217,217,210,217,217,217,217,217,217,217,25, - 155,155,155,155,217,25,155,155,217,217,217,155,210,155,210,210, - 210,63,210,210,63,63,210,210,210,210,63,210,63,54,54,210, - 54,210,54,210,63,54,210,54,63,210,54,210,54,210,210,54, - 210,210,54,54,210,210,210,210,210,210,210,54,210,54,54,210, - 210,63,54,54,63,54,210,54,63,54,54,96,54,210,63,210, - 210,54,186,210,63,245,210,63,245,210,63,54,63,63,245,63, - 63,54,54,63,245,63,96,63,96,63,186,54,96,63,63,12, - 8,7,8,7,26,12,8,42,123,53,118,51,51,52,51,52, - 51,52,51,118,128,178,12,8,122,123,45,51,51,51,52,76, - 52,51,52,118,118,128,84,12,8,122,249,53,118,51,51,107, - 52,52,51,52,118,118,128,84,26,8,122,123,53,118,51,107, - 76,51,52,51,52,118,118,128,84,26,8,122,249,53,118,51, - 107,52,52,51,51,51,118,118,128,84,26,8,122,249,53,51, - 51,107,76,76,51,107,51,107,118,128,84,12,8,122,123,45, - 51,51,107,76,52,51,51,107,118,118,128,84,17,8,122,123, - 53,118,51,51,52,76,107,51,52,107,118,128,84,17,8,122, - 249,53,51,51,51,52,76,51,107,51,118,118,128,84,12,8, - 122,123,45,51,51,51,52,76,107,51,51,118,118,128,84,26, - 8,122,249,53,118,51,51,52,51,107,51,107,118,118,128,84, - 12,243,122,249,53,118,51,51,52,51,107,51,51,118,118,128, - 84,12,8,122,123,53,118,51,51,52,51,51,107,52,118,118, - 128,84,12,8,122,249,53,118,107,107,52,52,76,107,107,51, - 118,128,84,26,8,42,123,53,118,51,51,52,76,107,51,51, - 118,118,128,178,12,8,122,123,45,51,51,107,76,52,51,51, - 107,118,118,128,178,17,8,122,123,45,51,51,107,76,52,51, - 51,51,118,118,128,84,26,8,122,123,45,51,51,107,76,52, - 51,51,107,51,118,128,84,26,8,12,8,7,8,8,8,3, - 121,69,69,69,80,69,69,69,3,69,80,69,3,69,3,69, - 80,3,3,80,3,80,3,4,4,205,205,4,4,69,69,69, - 4,205,4,4,69,4,4,4,3,3,69,3,69,69,3,4, - 4,4,69,4,4,4,4,69,69,3,3,4,3,4,4,3, - 217,217,217,217,155,155,155,155,210,155,210,210,210,210,210,63, - 210,54,210,63,210,54,210,210,63,210,210,54,210,210,210,54, - 63,210,210,210,54,210,210,63,63,210,210,210,210,210,210,155, - 210,217,155,217,217,217,217,217,217,217,155,217,155,217,217,217, - 217,155,217,155,217,217,210,217,217,217,217,217,25,217,217,217, - 217,25,217,25,217,217,217,217,217,155,155,217,217,155,217,210, - 210,210,210,63,210,210,63,63,210,210,210,54,210,210,210,210, - 210,63,210,54,63,210,63,210,54,63,210,210,210,54,210,210, - 54,210,210,210,54,210,210,54,210,54,210,210,210,210,210,54, - 54,210,63,210,245,63,54,63,63,63,210,210,63,54,63,54, - 210,210,210,63,210,210,54,210,63,63,54,186,54,210,63,54, - 54,186,54,54,63,63,63,245,63,96,208,63,210,210,63,12, - 8,8,8,101,12,26,8,122,123,53,107,76,107,76,232,76, - 52,9,51,51,204,84,26,211,122,123,53,107,51,51,76,76, - 76,52,51,51,107,204,84,26,8,0,123,53,52,51,51,76, - 76,76,52,51,51,107,204,178,17,211,122,123,53,52,51,76, - 76,232,76,76,52,52,9,204,178,17,8,122,123,53,107,51, - 76,76,76,232,52,52,52,107,204,178,17,8,122,123,53,107, - 76,51,76,76,232,51,52,51,107,204,84,26,211,42,123,53, - 107,51,76,76,76,232,76,52,9,107,204,178,26,211,78,123, - 53,76,107,76,76,76,232,76,52,51,107,204,178,26,8,122, - 123,53,107,107,76,76,76,232,51,52,9,51,204,84,26,211, - 122,123,53,107,76,107,76,76,76,76,52,9,51,204,178,17, - 8,122,123,53,107,51,76,76,232,232,76,52,52,107,204,178, - 26,8,122,123,53,107,51,76,76,232,232,52,52,52,107,204, - 178,26,243,78,123,53,52,51,76,76,232,232,52,51,51,107, - 204,178,26,243,0,123,53,52,51,76,76,76,232,51,52,107, - 107,204,178,17,8,162,123,53,52,76,76,76,76,76,76,52, - 9,51,204,84,26,211,42,123,53,107,76,51,76,76,232,76, - 52,107,107,204,84,26,211,122,123,53,107,51,76,76,76,232, - 52,52,52,107,204,178,17,211,42,123,53,107,76,51,76,76, - 232,52,52,107,107,204,178,12,8,12,8,7,8,7,12,69, - 69,69,69,69,69,3,69,69,69,69,69,69,80,69,3,80, - 69,3,69,69,4,3,4,4,69,3,3,4,4,4,4,4, - 4,3,205,4,4,4,3,69,3,69,3,69,4,4,4,4, - 3,69,4,3,4,69,3,4,4,4,4,4,4,4,4,4, - 217,217,217,217,217,217,155,155,210,217,210,210,210,63,210,210, - 210,210,210,54,210,210,54,210,54,210,210,210,210,54,210,210, - 210,54,210,210,210,210,210,210,210,210,210,210,217,217,217,217, - 210,217,155,217,217,217,155,155,217,217,155,217,217,217,217,155, - 217,155,217,217,155,217,217,217,217,155,25,155,25,155,25,217, - 25,217,25,25,25,217,217,155,217,217,217,155,217,155,155,155, - 155,210,210,210,210,210,210,63,63,210,210,210,54,210,54,63, - 210,210,210,210,210,210,210,210,210,54,210,54,210,210,210,210, - 210,210,210,63,210,63,210,210,210,210,54,210,54,210,210,210, - 210,54,63,210,54,210,245,210,54,63,245,210,63,245,210,63, - 63,63,210,54,63,63,63,245,210,63,63,210,54,54,186,210, - 63,210,63,245,63,96,63,54,63,245,54,96,63,210,210,12, - 8,7,8,7,26,12,8,122,123,194,76,76,76,76,232,232, - 76,76,52,9,204,154,219,8,122,123,53,232,76,76,76,232, - 232,232,76,52,52,204,154,132,243,122,123,85,52,232,76,76, - 232,232,232,76,52,52,204,84,17,243,122,123,53,232,76,76, - 76,232,148,76,51,51,52,204,84,17,243,122,123,85,76,76, - 76,76,232,232,76,51,52,52,204,84,12,243,122,123,85,76, - 76,76,76,232,148,232,76,52,52,204,154,219,243,122,123,53, - 76,76,76,76,232,232,76,51,76,9,204,168,17,8,122,123, - 53,76,76,76,76,232,232,76,76,52,9,204,154,219,243,122, - 123,85,76,76,76,76,232,148,232,51,52,52,204,168,12,8, - 122,123,85,51,76,76,76,232,232,232,51,52,9,204,84,187, - 243,122,123,85,232,76,76,76,232,232,76,76,52,9,204,168, - 12,243,122,123,85,232,76,76,76,232,232,76,51,52,9,204, - 168,12,8,122,123,53,232,76,76,76,232,232,232,76,52,9, - 204,168,12,8,0,123,53,232,76,76,76,232,148,76,76,51, - 52,204,84,150,243,122,123,53,76,76,76,232,232,232,232,51, - 52,9,204,154,219,243,122,123,53,76,76,76,76,232,232,76, - 76,52,9,204,154,17,8,122,123,53,76,76,76,76,232,232, - 76,51,52,52,204,84,17,243,122,123,53,76,76,76,76,232, - 232,76,76,52,52,204,84,12,8,12,8,8,8,8,8,3, - 121,69,69,80,69,69,69,69,69,69,69,3,69,80,69,3, - 80,3,80,3,80,3,4,4,4,4,69,4,4,69,4,69, - 69,4,4,205,4,4,4,69,80,3,4,3,3,3,4,4, - 4,4,4,4,3,4,3,4,4,4,69,4,4,4,4,3, - 25,217,217,217,217,155,217,155,155,210,155,217,210,210,210,210, - 210,210,210,210,54,210,210,210,210,210,63,63,63,210,210,210, - 63,155,54,210,63,63,210,210,210,210,210,217,210,210,210,210, - 217,155,217,155,155,217,217,217,217,217,217,217,155,217,155,217, - 217,217,217,155,217,217,155,155,25,217,217,25,25,217,25,25, - 25,25,25,155,25,217,25,217,217,217,155,217,155,217,217,217, - 155,155,155,155,210,210,210,210,210,210,210,210,210,63,210,210, - 63,63,210,210,54,210,210,54,210,210,54,210,210,210,210,210, - 54,210,210,210,63,63,63,63,210,210,210,210,210,63,54,210, - 186,210,63,63,210,210,210,210,54,210,63,54,210,210,54,210, - 210,186,210,210,186,54,210,63,210,186,63,63,210,210,63,63, - 63,54,210,63,63,63,186,63,63,63,186,63,63,63,54,12, - 8,8,8,101,12,26,8,42,167,85,76,76,148,148,232,148, - 148,232,52,52,204,168,17,109,42,167,85,76,76,148,148,232, - 148,232,232,52,52,204,168,26,243,122,167,194,76,76,148,148, - 232,148,232,232,52,52,204,168,26,109,42,167,85,76,76,148, - 148,232,148,148,148,52,52,204,168,17,243,122,167,194,76,76, - 232,148,232,148,148,148,52,52,204,168,17,109,122,167,194,76, - 232,148,148,232,148,232,232,52,52,204,168,17,109,42,167,85, - 76,76,232,148,232,148,148,232,52,232,204,154,26,109,42,167, - 85,76,76,232,148,232,148,148,232,76,52,204,168,17,243,122, - 167,194,76,76,232,148,232,148,232,148,52,52,204,168,17,243, - 122,167,194,232,76,232,148,232,148,232,148,52,232,204,168,17, - 109,122,167,194,76,76,148,232,232,148,232,232,76,52,204,154, - 26,243,122,167,194,76,76,232,148,232,148,148,232,52,232,204, - 154,26,109,42,167,85,76,76,232,232,232,148,232,232,52,232, - 204,168,17,109,42,167,85,76,76,148,148,232,148,232,232,52, - 52,204,168,26,109,42,167,194,76,76,148,232,232,148,232,148, - 76,52,204,168,17,109,42,167,85,76,76,148,148,232,148,232, - 232,52,232,204,168,17,109,42,167,85,76,76,232,232,232,148, - 148,148,52,52,204,168,17,109,42,167,85,76,76,148,148,232, - 148,232,232,52,52,204,168,26,8,12,7,8,7,8,12,69, - 69,69,69,69,69,69,80,69,69,69,69,3,80,3,3,69, - 3,69,3,4,3,69,4,4,69,69,4,69,4,4,4,4, - 4,4,69,4,69,69,3,4,3,4,3,69,4,69,69,4, - 3,3,4,3,4,4,4,3,69,3,3,69,69,4,3,69, - 217,25,25,155,217,217,217,217,155,217,210,155,155,155,210,210, - 210,210,210,155,210,210,210,210,63,210,210,210,210,210,210,54, - 210,210,210,210,54,210,210,210,210,155,210,210,217,217,217,155, - 217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217, - 217,217,217,217,217,217,217,217,25,217,217,25,25,25,217,217, - 25,217,25,217,25,155,25,217,25,217,217,25,217,217,155,217, - 155,155,155,155,155,155,155,210,210,210,210,210,210,210,210,210, - 210,63,210,210,210,210,210,210,54,155,210,210,54,210,210,210, - 210,210,54,210,210,245,210,210,54,210,63,210,210,186,210,63, - 210,54,210,54,63,54,210,210,210,54,155,210,54,210,63,63, - 210,210,210,63,210,210,54,63,63,210,63,186,63,63,63,245, - 210,63,54,63,63,63,96,63,96,63,63,96,63,210,63,12, - 8,101,8,8,12,12,8,122,237,32,232,232,148,148,148,148, - 148,148,232,232,231,168,17,243,122,220,32,232,232,148,148,148, - 147,148,148,232,232,231,222,26,8,122,237,32,232,232,148,148, - 148,147,148,148,232,232,231,222,17,243,122,237,32,232,148,148, - 148,148,148,148,27,232,232,231,168,17,243,122,237,32,232,148, - 148,148,148,148,148,232,232,232,231,168,17,243,122,237,32,76, - 148,148,148,148,148,232,148,232,232,231,168,17,243,122,220,32, - 232,148,148,148,148,148,148,148,52,232,231,222,219,243,122,220, - 32,232,148,148,148,148,148,232,148,232,232,231,168,17,243,122, - 237,32,232,148,148,148,148,148,148,148,232,232,231,168,17,243, - 122,237,32,232,148,148,148,148,148,148,148,52,232,231,168,17, - 243,122,237,32,232,232,148,148,148,148,232,148,232,232,231,222, - 26,8,122,237,32,232,232,148,148,148,148,148,148,52,232,231, - 222,219,243,122,237,32,232,148,148,148,148,148,232,148,52,232, - 231,168,17,243,122,220,32,232,232,148,148,148,147,232,147,232, - 232,231,222,26,243,122,237,32,232,232,148,148,148,148,148,232, - 232,232,231,168,219,243,122,220,32,232,232,148,148,148,147,232, - 148,52,232,231,168,219,243,122,220,32,232,148,148,148,148,148, - 148,232,232,232,231,168,17,243,122,220,32,232,232,148,148,148, - 148,232,148,232,232,231,222,26,8,12,8,8,8,8,8,3, - 121,69,69,69,80,69,69,69,80,69,80,69,69,80,69,3, - 69,80,69,3,4,69,69,3,4,69,4,69,69,69,4,4, - 69,4,69,4,4,69,4,69,69,69,3,4,4,4,3,4, - 4,4,4,3,69,4,4,3,69,4,3,3,4,69,4,4, - 25,155,25,217,217,155,217,155,217,210,155,210,210,210,210,210, - 210,210,210,210,54,210,210,63,210,210,210,210,210,210,210,155, - 210,210,210,210,210,210,210,210,210,210,155,217,210,155,217,217, - 155,155,217,217,155,217,217,155,217,217,217,217,217,217,155,155, - 155,155,25,155,25,25,25,217,25,155,25,25,217,25,25,25, - 25,25,25,25,25,25,155,25,217,25,217,217,217,217,217,155, - 217,210,210,155,210,210,210,155,210,210,210,210,210,210,63,210, - 54,210,63,210,63,210,54,210,210,210,210,210,155,210,210,63, - 210,210,210,210,210,210,210,63,210,63,210,210,210,210,54,210, - 210,186,210,210,186,63,210,54,210,63,54,63,63,210,245,210, - 63,63,210,155,210,186,210,210,210,210,210,210,63,63,210,63, - 63,186,210,210,245,63,63,63,210,96,63,63,210,210,63,12, - 8,8,8,8,12,12,8,42,138,117,193,193,157,157,189,189, - 157,193,193,32,70,228,219,109,122,138,117,193,157,157,157,189, - 189,157,193,193,32,70,31,17,109,122,138,117,193,157,157,157, - 189,189,157,193,193,32,70,31,26,211,122,138,117,193,157,157, - 157,189,189,157,157,193,32,70,228,26,109,42,138,117,193,193, - 157,157,189,189,157,193,193,32,70,228,26,211,122,138,117,193, - 193,157,157,189,189,157,193,193,32,70,228,219,109,122,138,117, - 193,193,157,157,189,189,157,193,193,32,70,31,26,109,122,138, - 117,193,193,157,157,189,189,157,193,193,32,70,228,26,109,42, - 138,117,193,193,157,157,189,189,157,193,193,32,70,228,26,211, - 0,21,117,193,193,157,157,189,189,157,193,193,32,70,228,26, - 109,42,138,117,193,193,157,157,189,157,189,193,193,32,70,31, - 17,109,42,138,117,193,193,157,157,189,189,157,193,193,32,70, - 31,26,109,42,138,117,193,193,157,157,189,189,157,193,193,32, - 70,228,219,109,0,138,117,193,193,157,157,189,189,189,193,193, - 32,70,31,17,109,42,138,117,193,193,157,157,189,189,157,193, - 193,32,70,228,219,109,122,138,117,193,157,157,157,189,189,157, - 193,193,32,70,228,219,109,122,138,117,193,193,157,157,189,189, - 157,193,193,32,70,228,219,109,122,138,117,193,193,157,157,189, - 189,157,193,193,32,70,31,26,8,12,7,8,7,8,12,69, - 69,69,69,69,69,69,3,69,69,69,69,69,69,69,69,69, - 69,69,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,69,4,4,69,4,80,3,3,80,4,69,4,3,4,4, - 4,4,4,4,3,3,4,4,4,4,4,4,4,4,3,69, - 25,217,25,25,217,217,25,217,217,217,210,155,210,155,210,210, - 210,210,210,155,210,210,210,210,210,54,210,210,210,54,210,210, - 210,210,210,210,210,210,210,155,210,210,210,155,217,210,155,217, - 217,155,155,217,217,217,217,155,217,155,217,155,217,217,217,25, - 217,155,25,155,155,217,25,217,25,217,25,25,25,25,25,25, - 25,25,25,217,25,25,217,25,217,25,25,217,25,217,217,217, - 217,217,210,217,155,155,210,155,155,210,210,210,210,210,210,210, - 210,210,210,210,210,210,155,210,210,54,155,210,210,210,210,210, - 210,210,210,210,210,210,210,210,210,210,210,210,210,155,210,210, - 63,210,210,63,210,210,63,186,210,210,210,210,63,210,210,210, - 155,63,63,210,210,210,210,186,210,210,63,186,210,63,155,63, - 63,63,63,210,210,186,210,96,186,63,245,63,63,155,210,8, - 8,7,8,8,12,26,8,122,226,87,21,21,156,30,86,13, - 30,242,18,33,18,75,26,12,122,226,87,21,72,242,30,13, - 13,30,242,18,18,18,59,26,8,122,226,87,21,87,156,43, - 13,13,30,242,21,18,18,59,26,8,0,226,87,21,87,156, - 43,13,13,30,242,18,33,18,200,26,8,0,226,87,18,72, - 242,30,13,13,30,242,21,18,18,59,26,8,122,226,87,18, - 72,242,30,13,13,30,242,18,18,18,75,26,8,0,226,87, - 21,21,156,30,86,13,30,242,21,18,18,59,26,12,122,92, - 87,21,21,156,30,86,13,30,242,18,18,18,59,26,12,122, - 226,87,18,72,242,30,86,13,30,242,21,18,79,47,26,8, - 0,73,87,21,21,156,30,86,13,30,242,21,18,18,59,26, - 12,122,226,87,21,21,242,30,13,13,30,72,18,18,18,59, - 17,12,122,226,87,21,21,156,30,86,13,30,242,21,18,18, - 59,26,8,0,226,87,18,72,242,30,86,13,30,242,21,18, - 79,59,26,8,0,226,87,18,72,242,30,86,13,30,242,18, - 33,18,59,26,12,122,226,87,18,21,156,30,86,13,30,242, - 18,18,18,200,26,8,0,226,87,21,72,156,43,13,13,30, - 242,18,33,18,75,26,8,122,226,87,18,72,242,30,86,13, - 30,242,21,18,18,200,26,12,122,226,87,21,21,156,30,86, - 13,30,242,18,33,18,59,12,8,26,8,8,8,8,8,69, - 121,69,69,69,80,69,69,69,3,69,69,69,69,69,3,80, - 3,69,69,69,3,4,69,69,69,69,4,4,69,69,69,4, - 4,69,4,4,3,69,3,4,4,3,4,4,4,4,4,3, - 69,69,4,4,4,4,4,4,4,4,3,69,3,4,3,69, - 25,25,25,217,25,25,217,155,155,155,217,210,155,210,155,155, - 155,210,210,155,210,210,210,210,210,155,210,210,210,155,210,210, - 210,210,210,155,210,210,210,210,217,217,155,217,155,217,217,217, - 217,217,217,217,155,155,217,217,155,217,217,217,25,217,25,217, - 155,25,217,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,155,25,217,25,217,217,25,217,25,25,217, - 217,155,217,155,210,210,217,217,217,210,155,210,210,210,210,210, - 210,210,210,210,210,210,210,210,210,155,210,210,210,210,210,210, - 210,210,210,210,63,210,210,210,186,210,210,155,210,210,210,210, - 155,63,63,210,54,210,210,210,63,63,210,186,210,63,63,210, - 186,155,155,155,210,210,210,210,63,155,210,210,210,186,63,155, - 210,155,63,210,210,63,210,63,210,210,63,54,210,210,63,12, - 8,8,8,101,12,26,8,0,203,86,250,86,179,146,118,51, - 149,86,86,250,28,109,12,211,0,203,86,86,86,179,149,51, - 51,149,86,86,250,28,111,12,243,0,40,179,250,86,179,146, - 146,51,149,86,250,250,28,111,17,243,0,40,23,250,86,179, - 146,136,51,146,86,86,250,28,111,17,243,0,203,179,250,86, - 179,149,51,51,149,86,250,250,28,111,17,243,0,40,23,250, - 86,179,149,51,51,149,86,86,250,28,111,12,243,0,203,86, - 250,86,179,146,146,118,149,86,250,250,28,111,12,211,0,203, - 86,250,86,179,146,118,51,149,86,86,250,28,111,12,211,0, - 40,179,250,86,149,146,118,51,146,86,250,250,28,111,187,243, - 0,40,86,250,86,149,146,146,51,146,86,250,250,28,111,12, - 211,0,40,179,250,86,149,149,146,51,146,86,86,250,28,111, - 26,211,0,40,86,250,86,179,146,146,118,149,86,250,250,28, - 111,17,243,0,203,179,250,86,149,146,146,51,149,86,250,250, - 28,111,17,243,0,203,179,250,86,149,149,51,51,146,86,86, - 250,28,111,12,211,0,40,179,250,86,149,146,146,51,146,86, - 86,250,28,111,17,243,0,203,23,250,86,179,146,136,51,149, - 86,250,250,28,109,17,243,0,203,179,250,86,149,146,146,118, - 149,86,250,250,28,111,12,211,0,203,86,250,86,179,146,146, - 118,149,86,86,250,28,187,12,8,12,8,7,8,8,12,121, - 69,69,69,69,69,80,69,69,80,69,69,69,69,69,69,69, - 69,69,4,4,69,69,4,4,4,4,69,69,4,4,4,69, - 3,4,69,4,69,3,69,69,4,4,4,3,4,4,4,4, - 3,4,4,4,205,4,4,4,4,69,4,3,4,69,4,3, - 25,217,25,25,217,25,25,217,217,155,155,155,217,217,210,155, - 155,155,155,210,210,155,210,210,210,210,210,210,210,210,210,155, - 210,210,210,210,210,210,210,210,210,217,155,210,155,155,155,155, - 155,217,155,217,217,217,217,217,25,155,25,155,217,217,155,25, - 155,25,155,217,25,155,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,217,25,25,25, - 217,217,217,217,217,210,210,210,217,217,155,155,155,210,155,210, - 210,210,155,210,155,155,210,155,210,210,210,210,210,210,210,210, - 186,210,210,155,210,210,210,210,210,210,210,210,210,210,210,210, - 210,210,186,210,210,63,63,210,210,54,210,210,210,245,210,155, - 155,155,155,155,155,155,155,210,186,210,155,210,210,155,63,155, - 186,63,186,210,210,245,210,186,210,245,155,186,210,155,155,26, - 8,8,8,8,12,122,8,0,40,32,157,189,189,189,189,147, - 189,189,157,85,128,61,56,243,0,40,32,157,189,189,189,189, - 147,189,189,157,85,128,61,42,243,0,40,32,157,189,189,189, - 189,189,189,189,157,85,128,61,26,243,0,40,32,157,189,189, - 189,189,189,189,189,157,85,128,61,42,243,0,40,32,157,189, - 189,189,189,189,189,189,157,85,128,61,42,243,0,95,32,157, - 189,189,189,189,189,189,189,157,85,128,61,26,243,0,40,32, - 157,189,189,189,189,189,189,189,157,85,128,61,219,243,0,40, - 32,157,189,189,189,189,147,189,189,157,85,128,61,219,243,0, - 40,32,157,189,189,189,189,147,189,189,157,85,128,61,26,243, - 0,40,32,157,189,189,189,189,189,189,189,157,85,128,61,219, - 243,0,40,32,157,189,189,189,189,189,189,189,157,85,128,61, - 219,243,0,40,32,157,189,189,189,189,189,189,189,157,85,128, - 61,26,243,0,40,32,157,189,189,189,189,189,189,189,157,85, - 204,61,42,243,0,40,32,157,189,189,189,189,147,189,189,157, - 85,128,61,183,243,0,40,32,157,189,189,189,189,189,189,189, - 157,85,128,61,26,243,0,40,32,157,189,189,189,189,189,189, - 189,157,85,128,61,42,243,0,40,32,157,189,189,189,189,189, - 189,189,157,85,128,61,219,243,0,40,32,157,189,189,189,189, - 189,189,189,157,85,204,91,26,8,8,8,8,8,7,8,3, - 121,69,69,69,3,69,69,69,69,3,69,69,69,69,69,80, - 3,3,69,4,4,69,4,4,69,3,3,69,69,69,4,69, - 69,4,4,4,4,4,4,3,4,4,4,4,69,4,4,4, - 4,4,205,4,4,205,4,4,3,69,69,69,3,69,4,4, - 25,25,25,217,25,217,25,25,217,217,217,217,155,210,155,155, - 155,155,155,155,210,155,155,155,155,155,210,155,210,210,155,210, - 155,155,155,155,155,155,217,155,155,210,217,217,155,217,210,217, - 217,155,217,25,217,155,25,217,155,217,155,25,155,217,25,217, - 25,155,25,25,217,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,217,25,25,25,25,25,25,217,217, - 217,155,155,217,217,217,217,217,210,210,217,210,155,155,210,155, - 155,155,210,155,210,210,155,155,210,210,210,210,210,155,210,155, - 210,210,186,210,155,155,155,210,155,155,210,210,210,155,155,210, - 155,210,210,210,186,210,210,186,210,210,210,210,210,210,210,155, - 155,155,155,155,155,155,155,155,155,155,155,186,155,210,186,63, - 155,155,210,186,210,210,210,210,210,210,210,210,210,155,210,12, - 8,141,8,8,12,0,8,0,40,45,232,76,76,148,148,77, - 148,232,52,185,195,91,122,109,0,40,45,52,232,148,76,148, - 147,148,232,52,27,230,91,78,211,0,40,45,52,232,148,148, - 148,147,148,232,52,27,195,91,162,211,0,40,45,52,232,232, - 232,232,147,148,232,52,27,195,91,78,211,0,40,53,52,232, - 148,76,148,148,148,232,52,27,195,91,162,109,0,40,45,232, - 232,148,76,148,148,148,232,76,198,195,91,162,109,0,40,53, - 52,232,148,148,148,147,148,232,52,27,195,91,122,211,0,40, - 45,232,76,76,148,148,147,148,232,52,27,230,91,122,109,0, - 40,45,232,76,76,76,148,147,148,148,52,27,195,91,122,211, - 0,40,53,52,76,232,148,148,148,148,232,52,198,195,91,122, - 109,0,40,53,52,76,148,148,148,148,148,232,52,27,230,91, - 122,211,0,40,53,52,232,148,148,148,147,148,232,52,27,195, - 91,162,211,0,40,45,52,76,232,148,148,147,148,148,52,27, - 230,91,162,211,0,40,53,52,76,76,76,148,147,148,232,52, - 27,195,91,122,109,0,40,45,232,76,232,148,148,148,148,232, - 52,27,230,91,162,211,0,40,45,232,76,148,76,76,147,148, - 232,52,185,195,91,162,211,0,40,45,52,76,148,148,148,147, - 148,232,52,27,230,91,122,109,0,40,53,52,232,148,148,148, - 147,148,148,52,27,230,91,42,139,12,8,7,8,8,12,121, - 69,69,69,69,69,69,3,69,69,69,69,69,69,69,3,69, - 69,69,4,69,69,4,69,69,3,4,4,4,4,4,69,4, - 4,3,69,4,69,4,3,4,4,4,4,3,174,4,4,174, - 4,69,3,205,69,4,4,69,4,4,4,3,4,4,3,69, - 25,25,25,25,25,217,217,25,217,217,217,217,217,217,155,155, - 155,155,155,155,155,155,155,210,155,155,155,155,155,155,155,155, - 155,210,155,155,210,155,217,217,217,210,217,217,155,217,210,155, - 217,217,155,155,25,155,155,217,155,25,155,217,25,155,217,217, - 25,217,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,217,25,25,25,217,25,217,25,25,25,25,25,217, - 217,217,217,155,155,155,155,217,217,210,217,210,210,155,210,210, - 210,155,210,155,155,210,210,155,155,155,210,155,155,210,210,210, - 155,155,210,210,210,210,210,210,210,210,105,210,210,210,210,210, - 155,210,210,210,210,210,210,210,210,63,63,210,210,210,210,210, - 155,155,155,155,155,155,155,155,155,155,210,210,155,210,210,155, - 186,210,210,210,155,210,63,186,210,63,186,210,210,155,155,12, - 8,8,8,8,12,42,8,0,40,170,52,76,232,148,148,147, - 147,76,232,198,230,26,26,243,0,40,170,52,52,148,148,147, - 147,147,76,27,198,230,26,26,243,0,40,170,52,52,232,232, - 148,147,148,76,232,198,230,26,26,243,0,212,170,9,76,232, - 148,148,147,147,76,232,198,230,26,42,243,0,40,231,52,52, - 232,232,148,148,148,76,232,198,230,26,26,8,0,212,170,9, - 52,232,232,148,148,148,76,232,185,230,26,26,8,0,40,170, - 52,52,232,232,147,148,147,76,232,198,230,26,26,243,0,40, - 170,52,76,232,148,147,148,147,76,27,198,230,26,26,243,0, - 40,204,27,76,148,148,147,147,148,76,232,198,230,26,42,243, - 0,212,170,52,232,232,232,148,147,147,76,232,198,230,26,26, - 243,0,40,170,52,232,232,148,147,147,147,76,27,198,230,26, - 26,211,0,212,170,52,76,232,232,148,147,148,76,232,198,230, - 26,26,243,0,40,170,52,232,232,232,148,147,148,76,27,198, - 230,26,26,243,0,40,170,52,232,148,148,147,147,147,76,232, - 198,230,26,26,243,0,40,170,52,232,232,232,148,147,148,76, - 27,198,230,26,26,8,0,212,170,52,52,148,148,147,148,147, - 76,232,198,230,26,26,243,0,40,170,52,232,232,232,147,148, - 147,76,27,198,230,26,26,243,0,40,170,52,76,232,232,148, - 147,148,76,27,185,230,26,26,8,12,8,8,8,8,8,3, - 121,69,69,69,69,69,69,69,80,69,69,80,69,69,80,69, - 3,69,69,69,69,4,4,4,69,69,69,69,69,4,69,4, - 69,4,69,4,4,69,69,69,4,174,4,4,4,69,3,4, - 205,4,3,4,69,69,4,69,3,3,4,4,4,69,3,4, - 248,25,120,248,120,25,25,217,25,217,217,217,155,155,217,155, - 155,155,155,155,217,217,217,155,155,155,155,217,155,210,217,210, - 210,217,217,217,217,217,155,210,155,217,155,217,217,217,217,217, - 155,155,217,217,217,217,25,217,217,155,25,217,155,25,155,25, - 217,25,155,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 217,217,217,217,217,217,217,217,217,217,217,217,217,210,155,217, - 217,210,155,210,210,155,155,105,155,155,155,155,155,155,155,217, - 210,155,155,210,210,210,210,210,210,155,155,217,210,210,155,210, - 210,210,210,63,210,210,210,210,210,186,210,210,210,186,155,155, - 155,155,155,186,155,155,155,210,155,210,155,155,186,155,210,210, - 210,155,155,186,155,186,210,210,155,155,155,63,210,155,210,12, - 8,8,8,8,17,42,8,0,212,98,45,45,53,194,194,194, - 194,45,53,165,230,91,122,187,0,212,98,165,45,53,194,194, - 194,194,45,53,165,230,91,162,187,0,212,98,165,45,53,194, - 194,194,194,45,45,165,230,91,162,187,0,203,98,165,45,53, - 53,194,194,194,45,45,165,230,91,162,187,0,212,98,165,45, - 194,53,32,194,194,98,45,165,230,91,78,187,0,40,98,165, - 45,53,194,194,194,32,45,53,165,230,91,122,187,0,37,98, - 165,45,53,194,194,194,194,98,45,165,230,91,122,187,0,212, - 98,45,45,53,194,194,194,194,45,53,165,230,91,122,187,0, - 212,98,165,45,53,194,194,194,32,98,45,165,230,91,78,187, - 0,203,98,165,45,53,194,194,194,194,45,194,231,230,91,122, - 187,0,212,98,165,45,53,53,194,194,194,45,53,165,230,91, - 0,12,0,203,98,165,45,53,194,194,194,194,98,45,165,230, - 91,162,187,0,212,98,165,45,45,194,194,194,194,45,53,165, - 230,91,122,187,0,37,98,165,45,53,53,194,194,194,45,45, - 165,230,91,122,187,0,212,98,165,45,45,194,194,194,32,45, - 53,165,230,91,122,187,0,203,98,165,45,45,194,194,194,194, - 45,53,165,230,91,78,187,0,212,98,165,45,45,194,194,194, - 194,45,53,165,230,91,122,187,0,212,98,165,45,53,194,194, - 194,194,45,53,110,230,91,42,8,12,8,7,8,8,8,121, - 69,69,69,69,69,69,69,69,3,69,69,69,80,69,69,69, - 69,4,3,4,69,69,69,69,69,69,3,4,4,69,69,69, - 69,69,4,69,69,4,4,4,3,4,4,4,4,4,4,4, - 3,69,69,4,4,3,4,4,4,4,69,69,3,4,4,4, - 25,25,25,25,25,217,25,25,217,217,217,217,217,217,217,217, - 155,155,155,155,210,210,217,217,217,217,210,217,217,155,217,217, - 155,155,217,217,155,217,217,217,155,217,155,155,217,217,217,217, - 217,217,25,217,217,217,25,217,25,217,25,217,25,217,25,155, - 25,25,25,25,25,25,25,25,25,25,248,248,25,248,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,155,25, - 25,155,217,217,217,217,217,217,217,217,217,217,217,217,210,210, - 217,217,217,217,217,217,155,210,155,155,155,155,155,210,210,155, - 210,155,155,155,155,105,210,210,105,210,210,155,210,210,155,155, - 105,217,155,155,155,210,186,210,155,155,155,155,210,210,155,155, - 155,217,217,155,155,155,217,155,155,217,155,155,155,155,155,155, - 155,155,210,155,210,155,155,186,210,210,186,210,155,217,155,12, - 8,8,67,8,12,26,12,0,162,31,251,123,167,79,79,79, - 79,167,123,123,168,26,26,211,0,162,251,251,123,123,79,79, - 79,79,167,123,173,206,12,42,211,0,162,31,251,123,123,79, - 79,220,79,167,123,123,168,187,26,8,0,162,251,123,123,79, - 79,79,79,79,167,123,123,168,187,26,211,0,162,251,251,123, - 167,79,79,79,79,167,123,228,206,17,42,211,0,162,251,123, - 123,167,55,79,79,79,167,123,228,73,187,26,211,221,0,251, - 123,123,167,79,79,79,79,167,123,251,206,187,42,211,0,162, - 31,251,123,167,79,79,79,79,167,167,228,73,12,42,211,0, - 162,31,251,123,167,55,79,79,167,167,123,228,206,17,42,211, - 0,162,251,123,123,167,79,79,79,79,167,123,123,168,26,26, - 8,162,162,251,251,123,167,79,79,79,79,167,123,173,168,187, - 26,211,0,162,251,123,123,167,79,79,79,79,79,123,228,206, - 12,26,211,0,162,251,123,123,167,79,79,220,79,167,123,228, - 73,187,26,211,221,0,251,123,123,79,103,79,79,79,167,123, - 123,168,26,26,211,0,162,251,251,123,167,79,79,79,167,167, - 167,228,168,187,42,211,0,162,251,123,123,123,79,79,220,79, - 167,123,228,206,17,42,211,0,162,251,123,123,167,79,79,79, - 79,167,167,228,73,187,26,211,0,162,251,123,123,167,79,79, - 220,79,167,55,123,73,91,42,8,12,8,7,8,8,8,69, - 121,69,69,69,69,69,69,69,69,69,80,69,69,3,80,69, - 69,69,69,4,69,4,69,4,4,69,69,69,69,69,4,4, - 4,69,4,69,69,69,69,69,3,4,4,174,4,174,4,4, - 4,4,4,69,4,4,69,69,69,4,3,4,3,4,4,3, - 248,25,25,25,120,25,217,25,25,25,25,217,217,155,217,155, - 217,217,217,217,217,217,217,210,210,217,217,217,217,217,217,217, - 217,217,217,217,217,217,217,217,217,217,217,217,217,217,155,25, - 217,25,217,155,25,155,25,217,217,217,217,25,217,25,217,25, - 25,217,25,25,25,25,25,25,248,248,25,25,25,25,25,248, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,217,217,217,217,217,217,217,155,217,217,217,155,217,217, - 155,210,210,217,210,210,155,217,210,155,155,155,155,217,155,155, - 217,155,155,210,155,155,155,217,155,155,210,210,217,155,155,155, - 155,155,210,210,210,155,210,155,155,210,186,155,155,155,210,133, - 217,155,155,217,217,210,133,155,217,155,155,217,186,155,155,155, - 155,155,155,155,155,155,210,210,210,155,105,186,155,155,210,12, - 8,8,8,8,219,12,219,0,0,0,0,0,0,0,0,0, - 0,0,0,0,26,132,42,243,0,0,0,0,0,0,0,0, - 0,0,0,162,0,219,187,42,243,0,0,0,0,0,0,0, - 0,0,0,0,0,0,26,17,26,187,0,0,0,0,0,0, - 0,0,0,0,0,0,0,26,17,42,243,0,0,162,0,0, - 0,0,0,0,0,0,0,0,219,17,219,12,0,0,0,0, - 0,0,162,162,0,0,0,0,0,219,187,219,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,219,17,26,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,187,42,243,0, - 0,0,0,0,0,0,0,0,0,0,0,0,219,187,26,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,26,132,26, - 187,0,0,0,0,0,0,0,0,0,0,0,162,0,26,187, - 42,12,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 17,42,243,0,0,0,0,0,0,0,0,0,0,0,0,0, - 219,187,42,150,0,0,0,0,0,0,0,0,0,0,0,0, - 0,26,132,42,243,0,0,162,0,0,0,0,0,0,0,0, - 0,0,26,17,219,243,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,187,42,243,0,0,0,0,0,0,0,162,0, - 0,0,0,0,219,187,26,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,150,26,8,12,8,7,8,7,8,69, - 121,69,69,69,69,69,69,69,69,69,69,3,69,69,69,69, - 69,69,69,69,4,69,4,69,69,4,4,69,69,69,69,69, - 69,69,69,4,4,4,4,4,3,69,4,4,4,4,69,4, - 69,4,69,4,4,69,4,4,4,3,4,4,4,4,4,4, - 248,248,120,25,248,25,217,25,25,155,25,217,217,217,217,217, - 217,155,155,217,217,155,217,217,155,217,217,217,217,217,217,217, - 217,217,217,25,155,25,155,217,217,217,25,217,25,217,217,25, - 217,217,25,25,25,217,25,25,25,25,217,25,25,155,25,25, - 25,25,25,25,25,25,248,25,25,248,25,248,25,248,25,25, - 248,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 155,25,25,217,217,25,155,217,25,155,217,217,217,155,155,217, - 217,217,155,217,217,217,210,217,217,155,155,217,155,217,217,155, - 155,155,217,217,155,217,155,155,155,155,217,155,155,155,155,155, - 155,217,155,155,155,217,155,155,155,155,155,155,186,155,210,155, - 25,155,133,155,217,155,217,155,155,155,155,217,155,155,217,155, - 155,133,155,217,155,155,186,217,186,155,105,210,155,217,155,26, - 8,8,8,8,12,12,17,42,26,26,26,26,26,122,26,17, - 219,219,219,219,187,132,42,17,42,26,26,26,26,26,42,26, - 17,219,219,219,26,17,132,42,17,42,17,26,26,26,42,42, - 26,219,219,219,219,219,17,132,219,12,42,26,26,26,26,42, - 42,26,219,219,219,219,219,17,132,42,17,42,26,26,26,26, - 42,42,26,219,219,219,219,26,17,219,219,17,42,26,26,219, - 26,42,122,26,17,219,219,219,219,17,219,219,17,42,26,26, - 26,26,26,42,26,219,17,219,219,26,17,132,219,17,42,26, - 26,26,26,26,42,26,17,219,219,219,219,17,132,42,17,42, - 17,26,219,26,42,42,26,219,219,219,219,26,219,132,219,17, - 42,26,26,26,26,42,42,26,17,219,219,219,219,17,132,183, - 12,42,26,26,219,26,26,42,26,17,219,219,219,219,17,132, - 219,17,42,26,26,26,26,26,42,26,219,219,219,219,26,17, - 132,42,17,42,26,26,26,26,42,42,26,219,219,219,219,219, - 17,132,26,17,42,26,26,26,26,42,42,219,219,219,219,219, - 219,17,132,42,17,42,26,26,26,26,42,42,26,17,219,219, - 219,219,219,219,42,17,42,26,26,26,26,42,42,26,219,219, - 219,219,26,17,132,42,17,42,26,26,26,26,26,42,26,17, - 219,219,219,219,17,132,183,187,42,26,26,26,26,26,42,26, - 219,219,219,219,219,219,17,26,12,26,7,8,8,8,8,121, - 69,69,69,69,69,80,69,69,69,69,69,69,80,69,69,3, - 3,69,69,69,69,69,69,4,69,69,69,69,69,69,69,4, - 4,69,69,69,69,69,69,69,3,4,69,4,69,4,69,4, - 69,4,69,69,4,4,3,4,69,4,69,4,4,4,4,3, - 25,25,120,248,25,25,25,155,25,25,25,217,25,217,217,25, - 217,217,25,155,217,217,217,217,217,217,217,217,217,217,217,25, - 217,25,25,217,25,217,25,25,217,25,217,155,25,25,25,155, - 25,25,25,25,217,25,25,217,155,25,25,25,25,25,25,25, - 25,25,25,25,248,25,25,25,248,25,248,248,25,248,25,25, - 25,248,25,25,25,25,25,25,25,25,25,25,25,25,25,217, - 25,217,155,25,25,217,25,25,155,25,25,217,217,217,217,217, - 217,217,217,217,155,217,217,155,210,217,217,155,217,155,155,155, - 217,217,155,155,155,155,133,217,217,217,210,155,105,217,105,133, - 217,155,217,155,155,155,155,217,155,155,155,155,155,155,155,133, - 155,217,217,217,155,217,155,133,217,217,155,155,155,155,133,155, - 155,155,210,133,155,155,217,155,105,155,155,155,155,217,217,12, - 8,8,8,141,17,12,12,26,243,12,150,17,219,12,12,243, - 150,150,12,12,17,219,42,187,26,243,12,150,17,219,17,12, - 243,150,150,12,12,12,219,42,187,26,150,12,150,219,219,17, - 17,8,150,150,12,17,17,219,26,187,26,243,12,150,219,219, - 17,17,8,150,150,12,17,17,219,42,12,26,150,12,150,17, - 219,17,12,8,150,150,12,17,187,17,42,12,26,243,12,17, - 17,219,12,12,243,243,150,12,12,12,17,42,12,26,243,12, - 150,17,219,17,12,243,150,150,12,12,17,219,42,12,26,243, - 12,150,17,219,17,12,243,150,150,150,17,17,17,42,187,26, - 150,12,17,219,219,17,17,8,150,150,12,12,12,219,42,12, - 26,243,12,150,17,219,17,17,243,150,150,12,17,187,17,26, - 187,26,243,12,17,17,219,17,17,243,150,150,12,17,17,219, - 26,187,26,243,12,150,17,219,17,12,8,12,150,12,17,17, - 219,42,187,26,243,12,150,17,219,17,12,8,150,150,150,17, - 12,219,42,12,26,243,12,150,219,219,17,17,8,150,150,12, - 17,187,219,42,187,26,243,12,150,17,219,17,12,243,150,150, - 150,17,12,17,26,187,26,243,12,150,219,219,17,17,8,150, - 150,12,17,17,219,42,187,26,243,12,150,17,219,17,17,243, - 150,150,150,12,17,219,26,12,26,243,12,150,17,219,17,17, - 8,150,150,12,12,12,17,26,12,12,8,7,7,8,8,121, - 69,69,69,69,69,69,69,69,69,69,80,69,69,69,80,69, - 69,3,69,69,69,69,69,69,4,69,3,3,69,69,69,69, - 69,69,69,69,69,69,4,4,69,4,3,69,4,4,4,4, - 4,4,4,4,4,4,69,4,4,69,3,69,69,4,3,69, - 248,25,248,120,248,120,25,25,25,155,155,25,217,25,217,217, - 25,155,25,155,217,217,217,217,217,25,155,25,217,25,25,25, - 217,217,25,25,217,217,217,25,217,25,217,25,155,217,25,25, - 217,25,217,25,25,25,25,25,25,25,25,217,25,25,25,25, - 25,25,25,25,248,25,248,25,248,25,248,25,248,248,25,248, - 25,248,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,217,217,25,155,217,25,217,217,155,217,217,217,155,155, - 217,155,155,217,155,217,217,217,217,155,217,217,217,217,217,217, - 155,155,155,217,217,217,155,155,217,217,105,133,155,155,217,155, - 155,133,217,217,217,217,155,155,155,155,155,155,155,155,155,217, - 217,25,155,133,217,133,217,217,25,155,217,133,217,217,217,155, - 217,217,155,155,155,155,186,217,217,186,210,210,155,217,217,12, - 8,8,8,8,12,12,8,219,150,17,17,17,219,17,26,243, - 150,150,17,17,12,17,26,243,219,150,17,17,17,17,17,26, - 243,150,150,150,219,12,17,26,150,219,150,17,12,17,17,17, - 17,243,150,150,12,17,12,219,26,243,219,150,17,17,17,17, - 17,17,243,150,150,12,17,12,219,26,243,219,150,12,219,17, - 17,17,17,243,150,150,150,17,17,17,26,243,219,150,12,17, - 17,219,17,26,150,150,150,17,17,17,17,26,150,219,150,17, - 17,17,17,17,26,243,150,150,150,17,12,219,26,150,219,150, - 17,17,17,17,17,26,243,12,12,12,17,17,17,26,150,26, - 150,12,17,17,17,17,17,243,150,150,150,219,12,17,26,150, - 219,150,17,17,17,17,17,26,243,150,150,12,17,17,219,26, - 243,219,150,12,17,17,17,17,26,243,150,150,12,17,12,219, - 26,243,219,150,17,17,17,17,17,17,243,12,150,150,17,12, - 17,26,243,219,150,17,17,17,17,17,17,150,150,150,12,219, - 12,219,26,150,219,150,17,17,17,132,17,17,243,150,150,12, - 17,12,17,26,243,219,150,17,17,17,17,17,17,243,12,12, - 12,17,17,219,26,243,219,150,17,12,17,17,17,17,243,150, - 150,150,17,12,17,26,243,219,150,17,17,17,17,17,26,243, - 12,12,17,12,17,219,26,243,219,150,17,17,17,17,17,17, - 243,12,150,17,17,17,17,26,12,12,8,8,8,8,8,121, - 121,69,69,69,69,69,69,69,69,69,69,3,69,3,69,69, - 69,4,125,69,69,69,69,69,3,69,69,69,69,69,69,69, - 69,69,174,69,174,69,69,4,69,4,4,69,69,4,69,4, - 69,69,69,3,69,4,69,4,3,4,3,3,4,69,4,4, - 120,248,25,25,25,25,25,25,25,25,25,25,217,217,25,217, - 25,155,25,217,217,217,217,217,217,155,25,217,25,217,217,217, - 25,25,25,217,25,25,25,217,25,217,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,248,25,25,25,248,25,248,248,248,248,25,248,25,248,248, - 25,25,248,25,248,25,25,248,25,25,25,25,25,25,25,217, - 25,217,25,25,217,25,25,25,25,25,25,25,217,217,217,217, - 217,217,217,217,217,217,217,217,155,217,217,155,217,155,25,217, - 133,217,217,217,155,155,217,217,155,217,217,217,217,217,155,217, - 217,217,155,155,155,155,133,155,155,155,155,25,155,155,155,25, - 133,155,217,217,217,36,217,133,217,217,155,217,217,155,133,217, - 155,133,217,217,217,155,105,186,155,217,217,155,155,217,155,12, - 8,8,8,141,17,12,150,219,17,17,132,17,12,150,219,150, - 12,17,150,17,17,219,219,109,219,12,17,132,17,150,150,219, - 150,12,17,17,132,17,187,26,109,26,12,17,132,17,132,150, - 26,150,17,17,150,17,17,187,26,109,219,12,17,132,17,132, - 150,26,150,17,17,150,17,17,187,219,109,219,17,17,132,17, - 132,150,26,150,17,17,12,17,17,187,26,109,219,17,17,132, - 17,17,150,17,150,17,17,150,132,17,187,26,109,219,17,17, - 132,17,150,150,219,150,17,132,17,17,17,187,26,109,219,17, - 17,132,17,150,150,219,150,150,150,150,132,17,17,219,109,219, - 12,17,132,17,132,150,219,150,12,17,17,17,17,187,26,109, - 219,17,17,132,17,150,150,219,12,17,17,150,17,17,187,219, - 109,219,17,132,132,17,150,150,219,150,17,17,150,17,17,187, - 26,109,219,17,17,132,17,132,150,26,150,150,17,17,132,17, - 187,26,109,219,17,17,132,17,132,150,26,150,12,17,150,132, - 17,187,26,109,219,12,17,132,17,17,12,26,150,17,17,150, - 17,17,219,26,109,219,17,17,132,17,132,150,219,150,150,150, - 150,17,17,187,26,109,219,12,17,132,17,132,150,26,150,17, - 17,12,17,17,219,219,109,219,17,17,132,17,150,150,219,150, - 150,150,150,132,12,187,219,109,219,17,17,132,17,132,150,26, - 150,150,17,150,17,17,12,26,8,12,8,7,8,7,8,121, - 69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,121,69,125,69,69,69,69,69,121,69,69,69, - 69,69,69,69,69,3,4,3,4,69,4,4,4,69,4,69, - 4,4,4,69,4,69,3,69,4,4,4,4,4,4,3,69, - 25,248,248,248,25,248,25,25,25,25,25,25,25,217,25,217, - 217,217,25,217,217,25,217,217,25,217,155,25,25,25,25,217, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,248,248,25,25,25,25,25,25,25,25,25, - 25,248,25,25,248,25,25,248,248,25,248,248,248,248,25,248, - 25,248,25,25,25,248,25,25,248,25,25,25,25,25,25,25, - 25,25,217,25,25,217,25,25,25,155,25,25,155,25,217,217, - 217,217,217,217,217,217,25,217,217,155,217,155,217,155,155,217, - 217,25,155,133,217,155,217,217,133,155,217,217,155,217,217,217, - 155,217,133,217,155,217,25,155,155,133,155,155,155,155,155,217, - 25,155,25,155,25,25,36,217,133,217,217,217,217,217,217,217, - 217,155,155,133,217,133,105,217,217,217,186,155,133,217,217,26, - 8,8,8,101,12,12,8,219,150,17,132,219,17,12,26,150, - 150,17,12,219,12,187,26,243,219,150,17,132,219,17,12,26, - 150,150,150,17,17,17,132,26,243,219,150,17,132,219,17,150, - 26,150,150,17,150,219,12,132,26,243,219,12,17,132,219,17, - 150,26,150,150,17,150,219,12,187,26,243,219,12,17,132,219, - 17,150,26,150,150,150,150,219,12,132,26,243,219,150,17,132, - 17,12,17,26,150,150,17,17,17,17,132,26,211,219,12,17, - 132,219,17,12,26,150,17,150,150,219,12,132,26,211,219,12, - 17,132,219,17,12,26,150,219,17,17,17,17,187,26,243,219, - 150,17,132,219,17,12,26,150,150,132,150,17,17,132,26,211, - 219,12,17,132,219,17,12,219,150,150,17,12,17,17,187,26, - 109,219,12,17,132,219,17,12,26,150,150,17,150,17,17,132, - 26,243,219,12,17,132,219,12,150,219,17,150,150,17,17,17, - 132,26,243,219,12,17,132,219,17,150,26,150,150,17,17,17, - 12,132,26,211,219,12,17,132,219,17,150,26,150,150,17,12, - 219,187,150,26,243,219,150,17,132,219,17,12,26,150,219,17, - 150,17,17,132,26,243,219,12,17,132,219,17,150,26,150,150, - 150,150,219,187,187,26,243,219,12,17,132,219,17,12,26,150, - 219,17,17,219,12,187,26,243,219,12,17,132,219,17,150,26, - 12,150,17,12,17,17,150,26,211,12,8,8,8,8,8,121, - 121,69,69,69,69,69,69,69,69,69,80,69,69,69,69,69, - 69,69,125,69,121,69,69,69,69,69,69,69,69,69,69,3, - 69,69,69,69,69,69,69,69,4,69,69,4,4,69,4,4, - 4,69,69,69,4,69,3,69,69,69,69,69,3,4,3,69, - 248,25,248,25,248,25,248,25,25,25,217,25,25,25,217,25, - 25,25,217,217,25,217,217,25,155,25,25,25,217,25,25,25, - 217,25,25,25,25,217,25,25,25,155,25,25,217,25,25,25, - 25,25,248,25,25,25,25,248,25,25,248,25,25,25,248,25, - 25,25,248,25,248,248,25,248,25,248,248,248,25,248,25,248, - 25,25,248,25,248,25,248,25,248,25,248,25,25,25,25,25, - 155,25,25,25,25,25,155,25,25,25,25,25,25,217,217,217, - 217,217,217,217,217,25,155,25,217,25,217,133,25,25,217,25, - 155,25,217,36,25,133,155,217,217,217,217,217,25,217,133,217, - 25,217,217,133,25,155,155,25,25,155,25,155,25,25,25,25, - 25,25,25,25,133,217,25,217,25,217,217,133,217,217,217,133, - 217,133,217,217,217,217,133,105,186,217,217,155,217,217,155,12, - 8,8,8,8,26,12,12,26,12,17,17,150,150,132,219,150, - 219,150,150,17,132,150,26,109,42,12,132,17,17,150,132,219, - 150,17,17,12,17,132,150,26,211,26,12,132,17,17,150,17, - 219,150,219,150,12,17,132,150,26,109,26,150,17,17,17,150, - 17,219,150,17,150,17,17,132,150,26,211,26,150,17,17,17, - 150,219,219,150,17,17,17,17,166,132,26,211,26,12,17,219, - 150,132,132,219,12,17,150,12,17,132,150,26,109,26,150,17, - 17,17,150,132,219,12,150,17,12,17,132,150,26,243,26,150, - 17,17,17,150,132,219,12,150,150,17,17,132,150,26,211,26, - 12,17,17,17,150,132,219,150,17,12,17,17,132,150,26,243, - 26,150,17,17,17,150,132,219,150,219,150,150,17,17,150,26, - 243,26,150,132,17,17,132,150,219,150,219,150,17,17,132,150, - 26,211,26,150,17,17,17,132,219,219,150,17,17,12,17,132, - 150,26,211,26,150,17,17,17,150,17,219,150,17,150,12,17, - 132,150,26,243,26,150,17,17,17,132,17,219,150,17,150,150, - 17,132,132,26,211,26,12,17,17,17,150,17,219,12,150,150, - 17,17,132,150,26,109,42,150,132,17,17,150,17,219,150,219, - 12,17,17,132,150,26,211,26,150,17,17,17,150,132,219,12, - 132,150,12,17,17,150,26,211,26,150,17,17,17,150,17,219, - 150,219,150,132,132,132,150,26,8,12,8,8,7,8,8,191, - 69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,174,69,69,69,121,121,69,69, - 69,69,69,69,69,3,69,4,69,4,3,69,3,4,69,69, - 69,3,4,4,69,69,69,4,4,4,3,4,4,69,4,3, - 248,25,248,25,248,25,25,248,25,25,25,25,25,25,217,217, - 217,25,217,217,25,217,25,217,25,155,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,248,25,248,25,248,25,248,248,25,248,248,25,25,25,248, - 25,25,248,25,25,248,248,248,248,248,25,248,248,248,25,248, - 25,248,25,25,25,248,25,248,25,248,25,248,25,25,25,25, - 25,25,25,25,25,25,25,25,155,25,25,25,25,25,25,25, - 217,25,217,25,155,25,25,217,25,217,25,217,217,25,133,217, - 25,155,25,155,36,25,25,217,217,25,155,133,217,25,217,25, - 155,25,217,25,25,25,155,155,25,155,25,133,155,155,133,25, - 133,25,155,25,217,217,133,36,25,133,36,25,25,133,36,25, - 217,217,217,133,155,217,217,217,217,217,217,217,217,25,217,26, - 7,141,8,101,26,150,8,26,150,17,17,17,17,17,26,150, - 17,132,17,219,26,150,26,211,26,12,219,17,17,17,17,26, - 150,132,132,17,219,26,150,219,109,26,17,17,17,17,150,17, - 26,150,17,132,17,219,26,132,26,109,26,150,17,17,17,132, - 17,26,150,219,150,17,219,26,132,26,211,26,150,17,17,17, - 150,17,26,150,132,150,132,219,26,150,26,211,219,150,132,17, - 17,17,17,219,150,17,132,132,17,26,132,26,109,26,150,219, - 17,17,17,17,219,12,132,132,17,219,26,132,26,109,26,150, - 17,17,17,17,17,219,12,17,150,17,17,219,150,26,109,219, - 150,17,17,17,17,17,26,150,132,150,17,219,26,132,26,109, - 26,150,219,17,17,17,17,26,150,17,132,17,132,26,150,26, - 109,26,12,17,17,17,17,17,26,150,17,150,17,17,26,132, - 26,211,26,150,17,17,17,150,17,219,150,132,132,17,219,26, - 132,26,109,26,150,17,17,17,132,17,26,150,17,132,17,219, - 26,132,26,109,26,150,132,150,17,150,17,26,150,219,150,17, - 219,26,150,26,109,26,150,17,17,17,150,219,219,12,219,150, - 132,219,26,150,26,211,26,17,17,17,17,132,17,26,150,132, - 150,12,219,26,150,26,109,26,150,219,17,17,17,17,219,12, - 17,132,17,132,26,132,26,109,26,150,17,17,17,132,17,219, - 150,17,150,219,17,26,150,26,8,12,8,7,8,8,8,121, - 121,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,121,69,69,121,125,121,69,69,69,69,69,69,121,121,121, - 121,69,69,69,69,4,69,4,4,4,4,69,69,4,3,4, - 69,69,69,4,4,4,125,69,69,69,69,69,3,69,4,4, - 248,248,248,248,248,248,25,25,25,25,25,25,25,25,25,25, - 25,155,25,25,25,25,155,25,155,25,25,25,25,25,25,25, - 25,25,248,25,25,248,25,25,25,25,25,25,25,25,25,25, - 25,25,248,25,248,248,248,25,25,248,25,25,25,25,248,25, - 25,248,25,248,248,248,248,25,248,248,248,248,25,248,248,248, - 248,25,248,248,25,248,25,248,25,248,25,248,25,248,25,25, - 25,25,25,217,25,25,25,25,25,25,25,217,25,155,25,217, - 25,25,25,25,25,217,25,155,25,25,217,25,25,217,217,25, - 155,25,217,25,25,155,217,133,25,25,217,25,25,217,133,217, - 25,155,25,155,155,133,25,25,25,155,25,217,25,25,217,25, - 217,217,25,217,25,25,25,25,217,217,25,155,217,25,155,155, - 25,25,217,25,25,133,217,217,133,217,217,155,155,25,217,26, - 8,8,8,101,219,12,243,219,12,219,17,17,150,150,219,12, - 132,12,132,17,17,187,17,243,219,12,17,150,17,150,132,219, - 12,17,12,150,219,17,187,26,243,219,12,17,150,17,17,132, - 219,12,132,12,150,219,17,187,17,243,42,12,17,150,17,17, - 150,219,12,132,12,150,219,17,187,219,243,42,12,17,150,17, - 17,132,219,12,17,12,17,17,17,187,219,243,42,17,17,17, - 17,150,150,219,12,132,12,17,219,17,187,17,243,26,12,17, - 150,17,150,150,219,150,219,12,150,219,17,187,17,243,42,12, - 219,150,17,150,150,42,150,132,17,132,17,26,187,219,243,42, - 12,17,150,17,150,132,219,12,17,17,150,219,17,187,17,243, - 42,12,17,150,17,150,150,219,12,132,17,150,219,17,187,17, - 211,42,12,219,150,17,150,150,219,12,132,17,132,219,17,187, - 219,243,42,12,17,150,17,17,12,26,12,219,12,150,219,17, - 187,219,243,42,12,17,150,17,17,132,219,12,132,17,150,17, - 17,187,17,243,42,12,219,17,12,219,150,219,12,132,17,150, - 17,17,187,219,243,219,12,219,150,17,132,132,26,150,132,17, - 12,219,17,187,219,109,42,12,17,150,17,17,150,219,12,17, - 17,150,219,17,187,219,243,26,12,17,150,17,150,150,26,150, - 132,17,132,219,17,187,219,243,42,12,219,150,17,17,150,42, - 12,132,12,12,219,187,12,26,8,12,8,7,8,8,8,191, - 69,69,69,69,69,69,69,121,69,69,69,69,69,69,69,69, - 69,69,69,174,69,69,69,69,69,69,121,125,69,69,69,69, - 69,69,69,69,69,69,69,69,69,4,69,4,4,69,69,69, - 4,4,4,69,125,69,69,69,69,174,69,69,69,4,3,69, - 248,248,248,248,248,25,248,25,248,25,25,25,25,25,25,25, - 25,25,155,25,155,25,25,25,155,25,25,217,25,25,25,25, - 25,25,25,25,248,25,25,248,25,248,25,25,25,248,25,248, - 25,25,248,25,248,25,248,248,25,248,248,248,248,25,248,248, - 25,248,25,248,25,248,248,248,248,248,248,248,248,25,25,25, - 25,248,25,248,25,248,248,25,248,25,248,25,25,248,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,155,25, - 155,217,25,155,25,25,25,217,25,155,25,155,25,25,217,25, - 25,25,25,155,25,25,217,217,217,25,217,217,25,25,217,25, - 25,25,217,25,217,25,155,155,25,155,25,155,155,25,155,25, - 25,25,25,133,217,25,217,133,25,25,133,217,217,25,25,133, - 25,133,217,217,25,217,217,217,217,133,36,133,217,25,217,12, - 101,101,8,7,42,12,12,26,17,17,12,17,150,219,219,132, - 219,12,132,219,17,187,42,187,219,17,219,12,17,150,219,219, - 132,132,17,150,219,17,150,42,187,219,17,219,12,150,150,219, - 219,132,132,17,17,17,17,187,26,150,42,17,219,12,150,150, - 219,219,132,132,17,132,219,17,187,26,150,42,17,219,12,150, - 150,219,219,132,132,17,17,17,17,187,26,12,42,12,17,12, - 17,150,219,219,132,132,17,17,17,17,187,26,150,26,17,219, - 12,17,150,219,219,150,132,17,17,17,17,187,26,150,26,17, - 219,12,17,150,132,219,132,132,17,132,219,17,187,26,12,42, - 17,219,12,17,150,219,219,132,132,17,17,17,17,187,26,150, - 26,17,219,12,17,17,219,219,150,17,17,17,219,17,187,42, - 150,219,17,219,12,17,150,219,219,132,132,17,17,17,17,187, - 26,150,42,17,219,12,150,150,219,219,150,132,17,132,219,17, - 187,26,150,42,17,219,12,150,150,219,219,132,132,17,132,219, - 17,187,26,150,26,17,17,150,150,150,219,219,132,17,17,132, - 219,17,187,26,187,26,17,219,12,12,150,132,219,132,132,17, - 150,219,17,187,26,150,219,17,219,12,150,150,219,219,132,132, - 17,132,219,17,12,26,150,26,17,219,12,17,150,132,219,132, - 132,17,17,219,17,187,26,150,26,17,219,12,150,150,219,219, - 132,219,17,17,17,17,150,26,8,26,8,8,8,8,8,121, - 121,69,69,69,121,69,121,69,69,69,69,69,69,69,69,69, - 69,69,121,69,69,69,121,69,69,69,121,121,69,69,69,69, - 121,121,69,69,4,4,4,3,69,4,69,69,4,4,4,69, - 69,69,69,69,69,3,4,69,69,69,3,3,4,69,3,4, - 248,248,248,248,248,248,248,248,25,25,248,120,25,25,25,25, - 25,25,25,25,25,25,25,25,25,155,25,25,25,25,25,25, - 25,248,25,248,25,25,248,25,248,25,248,25,25,25,25,248, - 25,25,248,25,25,248,248,248,248,248,25,248,248,248,25,248, - 248,25,248,25,248,248,248,248,248,248,248,248,248,248,248,25, - 248,248,25,248,248,25,248,248,248,25,248,248,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,133,25, - 155,25,25,25,155,25,217,25,25,217,25,25,25,217,25,25, - 133,155,25,25,25,25,25,25,25,25,25,25,25,25,133,25, - 25,25,120,25,25,25,25,25,25,217,25,25,133,25,25,25, - 217,25,133,217,155,25,133,217,217,36,217,217,217,25,217,26, - 8,8,150,8,26,26,219,219,219,219,17,17,26,17,219,17, - 17,17,219,219,17,17,26,150,42,17,26,17,12,26,17,219, - 17,17,17,219,219,17,187,26,150,42,17,26,17,17,26,17, - 219,17,17,219,132,219,17,12,26,150,219,17,26,17,17,26, - 17,219,17,17,17,219,219,17,12,42,150,219,17,26,17,17, - 26,17,219,17,17,17,132,219,17,12,26,150,219,26,219,17, - 17,26,17,219,219,17,17,132,219,17,12,42,150,219,17,26, - 17,17,26,17,26,219,17,17,132,219,17,12,26,150,219,17, - 26,17,17,26,26,26,17,17,17,219,219,17,150,26,150,219, - 17,26,17,12,26,17,219,17,17,219,132,219,12,17,26,150, - 219,17,26,17,17,12,17,219,17,17,17,219,219,17,17,26, - 150,42,17,26,17,17,26,17,219,17,17,17,132,219,17,17, - 26,150,219,17,26,17,219,17,17,219,219,17,17,219,219,17, - 12,26,150,219,17,26,17,17,26,17,219,17,17,17,219,219, - 17,12,26,150,219,26,26,26,17,26,17,219,17,17,17,219, - 219,17,12,26,150,219,17,26,17,17,26,26,26,17,17,17, - 219,219,12,12,26,150,42,17,26,17,17,26,17,219,17,17, - 17,219,219,17,187,26,132,219,17,26,17,17,26,26,26,219, - 12,17,219,219,17,12,26,150,219,17,26,17,17,26,17,219, - 17,12,219,132,219,12,187,26,8,12,8,7,7,8,8,16, - 191,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,121,69,69,121,174,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,4,69,4,4,69,69,69,69, - 3,69,69,69,69,69,69,69,69,69,69,69,69,69,4,4, - 248,25,248,248,248,248,248,25,248,25,25,248,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,248,25,248,25,248,25,248,25,25,248,25,248,25,248, - 25,248,25,248,25,25,248,25,248,248,25,248,25,248,25,25, - 248,25,248,248,25,248,248,248,248,248,248,25,248,25,248,248, - 25,248,248,248,25,248,248,25,248,248,25,248,25,248,25,248, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,155,25,25,25,25,25,155,25,25,25,217,25,25,25,25, - 25,217,133,25,25,25,133,25,25,133,25,25,25,25,25,25, - 25,25,25,133,25,25,133,25,25,25,155,25,25,25,25,25, - 25,25,25,25,133,25,25,25,25,217,25,25,217,25,217,25, - 217,25,25,25,133,217,25,133,25,217,25,133,217,25,217,122, - 26,17,26,26,42,26,122,122,42,122,122,0,122,42,122,122, - 122,122,0,122,42,42,42,187,122,122,122,122,0,122,42,122, - 122,122,122,122,122,42,42,42,187,122,42,122,122,0,122,42, - 122,122,122,122,0,122,42,78,42,187,0,42,122,122,0,122, - 42,0,122,122,122,122,122,42,42,42,187,0,42,122,122,0, - 122,42,122,122,122,122,0,122,42,78,183,187,122,122,122,122, - 0,122,42,122,122,122,122,0,122,42,42,42,187,0,42,122, - 122,0,122,42,122,122,122,122,0,122,42,42,42,187,0,42, - 122,122,0,122,219,122,122,42,122,122,122,42,42,183,187,0, - 42,122,122,0,122,42,122,122,122,122,0,0,183,42,42,187, - 0,122,122,122,0,122,42,0,122,42,122,122,122,42,42,42, - 187,122,42,122,122,0,122,42,122,122,122,122,0,122,42,42, - 42,187,0,42,122,122,0,122,42,122,122,42,122,122,122,42, - 42,42,187,0,42,122,122,0,42,42,0,122,122,122,122,122, - 42,42,42,187,122,42,122,122,0,122,42,122,122,122,122,122, - 122,42,42,42,187,122,122,122,122,0,122,219,122,122,122,122, - 0,0,183,42,42,187,122,42,122,122,0,122,42,0,122,42, - 122,122,122,42,42,42,187,0,42,122,122,0,122,219,122,122, - 42,122,122,122,42,42,42,187,0,42,122,122,0,122,42,122, - 122,122,122,0,122,42,42,26,187,42,26,26,122,26,12,121, - 69,121,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,121,121,121,69,69,69,69,121,121,121,121,125, - 69,69,69,69,69,69,69,69,3,69,69,4,4,69,4,69, - 69,69,69,69,69,125,69,69,69,69,69,69,3,69,69,69, - 248,248,248,248,102,25,102,25,248,25,25,25,248,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,248,25,248, - 25,248,25,248,25,248,25,248,25,248,25,248,25,248,25,248, - 25,25,248,248,248,248,248,248,248,25,248,248,248,248,248,248, - 248,248,248,248,71,248,248,25,248,25,248,248,248,248,248,248, - 248,248,25,248,248,248,248,25,248,248,25,248,25,248,25,25, - 25,25,248,25,25,248,25,248,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,217,25,25,217,25,25,25,120,133,25,120, - 25,25,217,25,25,25,25,133,25,25,25,133,217,25,25,25, - 25,25,25,120,120,25,25,217,133,25,133,217,25,133,25,133, - 25,217,217,217,217,25,217,217,217,133,217,25,25,25,155,122, - 12,8,243,8,183,42,26,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,219,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,42,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,42,26,12,8,8,8,12,121, - 121,69,69,121,69,69,121,69,69,69,121,69,69,121,69,69, - 69,69,69,69,69,69,69,121,69,125,121,69,69,121,121,69, - 125,69,125,69,125,4,4,69,69,69,3,69,69,69,69,69, - 3,69,69,69,69,121,125,69,69,69,69,69,69,125,69,4, - 71,25,248,248,248,25,248,248,248,248,25,25,248,25,25,25, - 248,25,25,248,25,248,25,25,25,25,25,25,25,25,25,25, - 25,25,248,25,248,25,248,25,248,25,248,25,25,248,25,25, - 248,25,248,25,25,248,248,25,248,248,248,25,248,25,248,248, - 248,248,248,25,248,248,71,248,248,25,248,248,25,248,248,25, - 248,248,248,248,248,25,248,248,248,248,25,248,25,248,25,248, - 25,248,25,25,25,25,248,25,25,248,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,120,25,25,25, - 25,25,25,25,25,25,120,25,25,25,25,25,25,25,25,120, - 25,248,133,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,133,25,25,217,133,25,133,25,217,217,133,25,25,25,42, - 8,7,8,67,26,26,26,0,14,216,41,62,62,62,62,62, - 62,62,62,62,41,75,26,12,0,14,216,41,62,62,62,62, - 62,62,62,62,62,41,75,26,17,0,14,216,41,62,62,62, - 62,62,62,62,62,62,62,22,12,26,122,14,216,41,62,62, - 62,62,62,62,62,62,62,41,75,26,12,0,14,216,41,62, - 62,62,62,62,62,62,62,62,62,22,26,12,122,14,216,41, - 62,62,62,249,62,62,62,62,62,41,75,26,12,0,14,216, - 41,62,62,62,62,62,62,62,62,62,41,75,26,12,0,14, - 216,41,41,62,62,249,62,62,62,62,62,41,75,26,12,0, - 14,216,41,62,62,62,62,62,62,62,62,62,41,75,26,12, - 122,14,216,41,62,62,62,62,62,62,62,62,62,41,75,26, - 12,0,14,216,41,62,62,62,62,62,62,62,62,62,41,75, - 26,12,0,14,216,62,41,62,62,62,62,62,62,62,62,41, - 75,26,12,0,14,216,41,62,62,62,249,62,62,62,62,62, - 41,75,26,12,0,14,216,41,62,62,62,62,62,62,62,62, - 62,41,59,26,17,122,14,216,41,62,62,62,249,62,62,62, - 62,62,41,200,26,17,0,14,216,41,62,62,62,62,62,62, - 62,62,62,41,75,26,12,0,14,216,41,41,62,62,249,62, - 62,62,62,62,41,75,26,12,0,14,216,41,62,62,62,62, - 62,62,62,62,62,62,22,26,12,26,7,7,7,7,8,69, - 121,121,69,69,121,69,69,69,121,80,69,69,69,69,69,69, - 69,121,121,121,121,121,69,174,121,69,121,121,69,69,121,121, - 121,121,69,69,69,69,3,69,69,69,69,69,69,69,69,69, - 69,69,69,121,69,121,69,69,69,69,69,125,69,174,125,69, - 248,248,248,248,71,248,248,248,248,248,248,248,25,25,248,25, - 25,25,25,25,248,25,248,25,25,25,248,25,25,248,25,248, - 25,25,248,25,248,248,248,25,248,25,25,248,25,25,248,25, - 248,25,248,248,248,25,102,25,248,248,248,248,248,248,248,248, - 248,248,25,71,248,248,25,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,25,248,248,25,25,248,25,248, - 25,25,248,25,248,25,248,25,25,248,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,120,25,25,25,25,25,25,120,25,25,25,25,25,25,120, - 25,120,120,25,25,25,25,25,25,133,25,25,25,25,248,25, - 25,25,248,25,25,25,25,25,25,25,25,133,25,25,217,25, - 25,25,25,133,25,217,217,25,217,25,25,25,217,248,217,26, - 8,67,8,67,219,17,17,42,233,110,195,90,195,90,195,90, - 90,90,90,90,60,154,26,12,42,233,110,195,90,195,90,195, - 90,90,90,90,90,60,154,26,12,42,233,110,195,90,195,90, - 195,90,90,90,90,90,60,154,26,109,42,233,110,195,90,195, - 90,195,90,90,90,90,90,60,154,26,12,42,233,110,195,90, - 195,90,195,90,90,90,90,90,60,154,26,12,42,233,110,195, - 90,90,195,90,90,90,90,90,90,60,154,26,12,42,233,110, - 90,90,195,90,195,90,90,90,90,90,60,154,26,12,42,233, - 110,195,90,90,195,90,90,90,90,90,90,60,154,26,12,42, - 233,110,195,90,195,90,195,90,90,90,90,90,60,154,26,12, - 42,233,110,195,90,195,90,195,90,90,90,90,90,60,154,26, - 12,42,233,110,195,90,195,90,195,90,90,90,90,90,60,154, - 26,12,42,233,110,195,90,90,195,195,90,90,90,90,90,60, - 154,26,12,42,233,110,195,90,90,90,90,90,90,90,90,90, - 60,154,26,12,42,233,110,195,90,195,90,195,90,90,90,90, - 195,60,154,26,12,42,233,110,195,90,90,195,90,90,90,90, - 90,195,60,154,26,12,42,233,110,195,90,195,90,195,90,90, - 90,90,90,60,154,26,12,42,233,110,195,90,90,195,90,90, - 90,90,90,90,60,154,26,12,42,233,110,90,90,195,90,195, - 90,90,90,90,90,60,154,26,8,26,8,7,8,8,12,121, - 121,69,121,69,69,121,69,69,121,69,121,69,69,121,69,69, - 69,69,69,69,69,69,121,121,69,69,69,69,121,121,121,69, - 69,69,121,69,121,125,69,69,69,69,69,69,69,69,69,69, - 69,121,121,69,121,69,121,69,121,125,69,69,69,69,69,125, - 71,248,248,248,248,248,102,25,248,248,25,248,248,25,248,25, - 25,248,25,25,25,25,25,248,25,25,25,25,25,25,248,25, - 25,248,25,248,25,25,248,25,248,25,248,25,248,25,248,248, - 25,248,25,248,248,25,248,248,248,248,248,25,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,25,248,248,248, - 248,248,248,248,248,248,248,248,248,25,248,248,25,25,248,25, - 25,248,248,25,248,25,25,248,25,248,25,248,25,25,25,25, - 25,25,25,25,25,248,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,120,25,120,25,25,25,25,25,25,25, - 25,25,120,248,120,25,25,25,25,25,25,25,120,25,25,248, - 25,25,25,248,25,25,25,25,25,25,25,25,25,25,133,25, - 25,133,25,25,25,133,25,217,133,217,133,25,133,248,25,17, - 12,67,12,101,17,17,17,122,206,128,23,23,23,86,19,19, - 65,65,19,19,195,178,243,243,122,206,128,23,23,23,86,19, - 19,65,65,19,19,195,154,12,243,122,206,128,23,23,23,86, - 19,19,65,65,19,19,195,178,12,243,122,206,128,23,23,23, - 86,19,19,65,65,19,19,195,154,12,243,122,206,128,23,23, - 23,86,19,19,65,65,19,19,90,178,12,243,122,206,128,86, - 23,19,23,23,65,19,65,19,19,195,178,243,243,122,206,128, - 86,23,23,86,19,19,65,65,19,19,195,178,243,243,122,206, - 128,23,23,23,23,23,65,19,65,19,19,195,154,12,243,122, - 206,128,23,23,23,86,19,19,65,65,19,19,195,154,12,243, - 122,206,128,23,23,23,86,19,19,65,65,19,19,195,178,243, - 243,122,206,128,23,23,23,86,19,19,65,65,19,19,195,154, - 12,243,122,206,128,86,23,23,86,19,19,65,65,19,19,195, - 154,12,243,122,206,128,23,23,23,23,23,65,19,65,19,19, - 195,178,243,243,122,206,128,23,23,23,86,19,19,65,65,19, - 19,195,178,12,211,122,206,128,23,23,23,23,23,65,19,65, - 19,19,195,178,243,109,122,206,128,23,23,23,86,19,19,65, - 65,19,19,195,154,12,243,122,206,128,23,23,23,23,23,65, - 19,65,19,19,195,178,243,243,122,206,128,86,23,23,86,19, - 19,65,65,19,19,90,178,12,8,12,8,7,8,8,8,121, - 121,69,121,69,121,69,69,69,69,69,69,69,69,69,69,69, - 69,121,121,121,121,69,121,121,69,121,121,121,121,121,121,121, - 121,121,121,69,121,69,69,4,69,69,69,69,69,69,69,69, - 69,69,69,69,121,121,121,69,69,125,69,174,69,125,121,121, - 248,102,248,248,71,248,248,248,248,248,248,248,25,25,248,25, - 248,25,248,25,248,25,25,248,25,25,25,248,25,25,248,25, - 248,25,25,248,248,25,248,248,25,248,25,25,248,25,25,248, - 25,25,248,25,25,248,25,25,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,25,248,248,248,25,248,25,248,25, - 248,25,248,25,248,248,25,248,25,248,25,25,25,25,248,25, - 25,25,102,25,248,25,25,102,25,25,25,248,25,25,102,25, - 25,248,25,25,25,25,102,25,25,248,248,25,120,25,25,120, - 102,25,25,25,25,25,25,25,120,248,25,25,25,25,25,25, - 25,25,25,25,102,25,248,25,25,25,248,248,25,25,25,25, - 25,25,25,25,25,25,217,25,25,25,25,217,25,25,25,26, - 8,8,12,101,219,219,12,122,222,204,19,65,19,65,65,65, - 65,65,19,65,90,178,219,211,122,222,204,19,65,19,65,65, - 65,65,65,19,19,90,178,17,211,122,222,204,19,65,19,65, - 65,65,65,65,19,65,90,178,17,211,122,222,204,19,65,19, - 65,65,65,65,65,19,65,90,178,132,211,122,222,204,19,65, - 19,65,65,65,65,65,19,19,90,178,132,211,42,233,204,65, - 19,19,65,65,19,118,65,19,65,90,178,17,109,122,233,204, - 19,65,19,65,65,65,65,65,19,65,90,178,219,211,122,222, - 128,19,65,19,65,65,19,118,65,19,65,195,178,17,211,122, - 222,204,19,65,19,65,65,65,65,65,19,65,195,178,17,211, - 122,222,204,19,65,19,65,65,65,65,65,19,65,90,178,17, - 109,122,222,204,19,65,19,65,65,65,65,65,19,65,90,178, - 132,211,42,233,204,19,65,19,65,65,65,65,65,19,65,90, - 178,132,211,42,31,128,19,19,19,65,65,19,118,65,19,65, - 90,178,219,211,122,222,204,19,65,19,65,65,65,65,65,65, - 65,90,178,132,243,122,222,204,19,65,19,65,65,19,118,65, - 19,65,90,178,219,8,122,222,204,19,65,19,65,65,65,65, - 65,19,65,90,178,132,211,122,222,128,19,65,19,65,65,19, - 118,65,19,65,90,178,17,109,122,233,204,19,65,19,65,65, - 65,65,65,19,19,90,178,12,8,12,8,8,7,8,12,121, - 121,69,121,69,69,191,69,69,121,69,121,69,69,121,69,69, - 69,69,69,69,121,121,121,69,121,69,69,69,121,121,121,69, - 121,69,69,69,69,121,69,121,69,69,69,69,69,69,69,69, - 69,69,121,121,69,69,121,121,69,121,121,121,69,121,69,69, - 71,71,248,248,248,248,248,248,102,25,248,248,248,248,248,25, - 248,248,25,248,25,248,25,25,248,25,248,25,25,25,248,25, - 25,248,25,248,25,248,25,25,25,25,248,25,248,25,248,25, - 248,25,248,248,25,248,25,102,25,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,102,71, - 248,248,248,248,248,248,71,25,25,248,248,25,248,25,248,248, - 25,248,248,25,248,25,248,25,25,248,25,248,25,25,25,25, - 248,25,25,25,25,25,25,25,25,25,25,248,25,25,120,25, - 102,25,248,248,248,25,120,25,25,25,248,25,248,248,25,25, - 25,25,102,25,248,248,248,25,25,25,25,102,25,25,25,248, - 102,120,25,25,120,25,248,248,248,25,25,133,248,25,133,25, - 25,25,133,25,25,25,25,25,25,25,25,25,25,25,25,26, - 12,8,12,8,12,26,8,122,31,204,118,118,118,118,51,118, - 118,118,118,65,60,178,26,211,122,31,204,118,118,118,118,51, - 118,118,118,118,65,128,84,26,211,122,31,204,118,118,118,118, - 51,118,118,118,118,65,60,178,26,8,122,31,204,118,118,118, - 118,51,118,118,118,118,65,128,84,26,8,122,31,204,118,118, - 118,118,51,118,118,118,118,65,60,84,17,243,122,31,170,65, - 118,118,118,51,118,118,118,118,65,60,178,26,211,122,31,170, - 65,118,118,118,51,118,118,118,118,65,60,178,26,211,122,31, - 170,118,118,118,118,118,118,118,118,65,118,128,84,26,211,122, - 31,204,118,118,118,118,51,118,118,118,65,118,128,84,26,8, - 122,31,204,118,118,118,118,51,118,118,118,118,65,60,178,26, - 211,122,31,204,118,118,118,118,51,118,118,118,118,65,128,84, - 26,243,122,31,170,118,118,118,118,51,118,118,118,118,65,128, - 84,26,243,122,31,170,118,118,118,118,118,118,118,118,118,65, - 60,178,26,211,122,31,204,118,118,118,118,118,118,51,118,65, - 65,60,178,26,211,122,31,204,118,118,118,118,51,118,118,118, - 118,65,60,178,17,211,122,31,204,118,118,118,118,51,118,118, - 118,118,65,128,84,26,8,122,31,170,118,118,118,118,118,118, - 118,118,118,65,60,178,26,211,122,31,170,65,118,118,118,51, - 118,118,118,118,65,128,84,17,8,12,8,7,8,8,8,69, - 121,121,69,121,80,69,121,69,69,69,121,69,69,121,69,69, - 69,121,121,121,121,121,121,69,69,69,69,69,69,69,121,69, - 121,121,121,121,69,69,69,69,69,69,69,174,121,121,69,121, - 121,69,121,69,121,69,69,121,69,69,69,68,69,121,121,121, - 248,248,74,248,74,248,248,248,248,248,248,71,25,248,248,25, - 248,248,25,248,25,25,248,25,248,25,25,248,25,25,25,25, - 25,248,25,25,248,25,25,102,25,248,25,25,248,25,25,248, - 25,25,248,25,248,248,248,25,248,25,248,248,248,248,248,248, - 71,248,71,248,71,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,25,248,25,248,248,248,25,248,248,248,25,248, - 248,25,248,25,248,25,248,248,25,25,248,25,25,25,248,25, - 25,25,248,25,102,25,25,102,248,248,25,25,120,102,25,120, - 25,248,25,25,25,25,102,248,248,248,25,248,25,102,25,25, - 248,25,25,25,25,25,25,102,25,248,120,25,25,248,248,25, - 25,25,248,25,248,25,25,25,25,25,25,120,25,248,120,25, - 25,25,25,25,25,25,25,25,25,25,25,133,25,248,25,26, - 8,8,12,67,17,17,12,122,31,53,118,51,51,51,51,52, - 51,51,118,118,204,84,17,243,122,31,53,118,51,51,51,107, - 52,51,51,118,118,128,84,17,243,122,31,53,118,51,51,51, - 51,52,52,51,118,118,204,178,17,211,122,31,53,118,51,51, - 107,51,52,51,51,118,118,128,84,26,211,122,31,53,118,51, - 51,51,107,52,51,52,118,118,204,178,26,211,0,249,53,107, - 51,51,51,107,52,107,51,118,118,204,84,17,243,0,249,53, - 107,51,107,51,107,52,51,51,118,118,204,84,17,8,0,249, - 53,118,51,51,51,52,52,51,52,118,118,128,84,17,243,122, - 31,53,118,51,51,51,51,52,51,9,51,118,128,84,17,211, - 122,31,53,118,51,51,51,107,52,51,107,118,118,204,84,17, - 8,122,31,53,118,51,51,51,107,52,51,51,118,118,128,84, - 17,211,0,31,45,118,51,107,51,107,52,51,51,118,118,128, - 84,17,211,0,31,53,118,51,107,51,51,52,51,51,118,118, - 204,84,17,243,122,31,53,51,51,51,51,52,52,107,9,107, - 118,204,84,17,243,122,31,53,118,51,51,51,107,52,51,51, - 118,118,204,84,26,8,122,31,53,118,51,51,51,107,52,51, - 51,118,118,128,84,26,182,0,249,53,118,51,51,51,52,52, - 51,51,118,118,204,84,17,243,0,31,45,107,51,107,51,51, - 52,51,51,51,118,128,178,26,139,12,8,7,8,8,17,121, - 121,69,121,69,191,69,69,238,121,121,69,121,69,69,121,69, - 69,69,69,69,69,121,121,121,121,121,121,121,68,121,121,121, - 121,121,121,121,125,121,69,69,69,69,3,121,69,69,69,69, - 69,69,69,121,121,121,121,69,69,121,121,121,121,68,16,16, - 248,248,71,248,248,248,248,248,248,248,25,248,248,248,25,248, - 248,25,248,248,248,25,248,25,25,248,25,248,25,25,248,248, - 25,248,25,248,25,25,248,25,25,102,25,248,25,248,248,25, - 248,25,25,248,25,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,102,248,248,248,102,248,248,71,248,248, - 248,248,248,248,248,248,248,248,25,248,248,248,248,248,25,248, - 248,248,25,248,25,248,25,248,25,248,25,25,248,25,25,248, - 25,25,248,25,120,25,25,25,25,25,102,25,25,248,25,248, - 25,248,248,248,248,25,25,25,25,248,25,248,25,120,248,25, - 248,248,248,248,248,248,25,120,25,102,25,248,25,25,248,248, - 248,248,248,25,248,25,25,25,102,25,25,25,25,25,25,25, - 25,120,25,25,25,25,25,25,25,25,25,25,25,248,25,26, - 150,12,12,67,219,26,8,122,249,85,51,52,76,76,76,52, - 76,52,107,107,204,84,12,8,122,249,85,51,52,76,76,76, - 232,52,52,51,9,204,178,12,8,122,249,85,51,52,76,76, - 76,76,52,52,9,107,204,84,219,8,122,249,85,51,76,51, - 76,76,232,52,52,51,107,204,178,12,8,122,249,85,51,52, - 76,76,76,232,51,52,9,107,204,84,17,8,0,123,53,107, - 76,76,76,76,76,52,52,9,107,204,84,17,8,0,123,53, - 51,51,76,76,76,232,52,52,9,107,204,84,12,243,122,123, - 53,107,76,76,76,76,232,51,52,51,9,204,84,12,8,122, - 249,85,51,52,76,76,76,232,51,51,51,9,204,84,17,8, - 122,249,85,51,52,76,76,76,232,52,52,52,107,204,84,12, - 243,122,249,85,51,52,76,76,76,232,52,52,51,107,204,84, - 17,243,122,123,53,107,76,76,76,76,232,52,52,51,107,204, - 84,17,8,0,123,53,51,51,76,76,76,232,52,52,9,107, - 204,84,12,243,122,123,53,107,51,76,76,76,76,76,51,52, - 107,204,84,17,8,122,249,85,51,76,76,76,76,232,52,52, - 107,107,204,84,12,243,122,249,85,51,52,76,76,76,232,52, - 52,51,107,204,178,26,8,122,123,53,107,76,76,76,76,232, - 52,52,9,107,204,84,17,8,0,123,53,51,51,76,76,76, - 52,76,51,107,9,204,84,26,8,26,8,8,8,8,8,121, - 121,121,69,69,69,121,80,69,69,69,69,69,69,69,69,69, - 69,121,69,121,69,121,121,121,69,69,69,121,121,121,121,69, - 125,121,69,121,174,121,69,69,121,121,69,69,69,121,69,69, - 121,69,69,69,69,69,121,121,69,125,69,121,16,121,16,16, - 74,248,102,248,102,71,102,248,248,248,71,248,248,248,248,25, - 102,25,248,25,248,25,248,248,25,248,25,248,25,248,25,25, - 248,25,25,248,248,25,25,248,25,25,248,25,248,25,25,248, - 25,248,248,25,248,25,248,25,248,248,248,248,248,248,248,248, - 248,25,248,102,248,71,248,248,248,248,71,248,71,248,248,248, - 248,248,248,248,248,248,25,102,25,248,248,248,248,248,248,248, - 25,248,248,248,25,248,25,25,248,25,248,25,248,25,248,25, - 248,25,25,248,25,248,248,248,248,248,25,248,248,25,120,102, - 248,25,25,25,25,25,248,248,248,25,248,25,248,25,248,248, - 25,25,120,102,25,25,248,25,25,25,248,25,248,248,25,25, - 248,25,120,102,25,248,248,120,25,25,102,25,25,25,248,120, - 102,25,25,25,25,25,25,25,25,120,120,25,25,248,248,26, - 8,8,26,8,17,17,12,0,123,85,52,76,76,232,232,148, - 232,51,52,9,204,84,17,141,0,123,85,52,76,76,76,232, - 232,232,51,52,9,204,154,219,182,0,123,85,52,76,76,232, - 232,232,232,76,51,9,204,154,17,141,0,123,85,52,76,232, - 232,232,232,232,51,52,9,204,168,17,141,0,123,85,52,76, - 76,76,232,232,232,76,51,9,204,84,17,243,122,123,85,52, - 76,76,76,232,148,232,51,51,9,204,154,17,243,122,123,85, - 76,232,76,76,232,232,232,76,51,9,204,154,17,243,0,123, - 85,52,76,76,76,232,232,232,51,52,52,204,84,17,141,0, - 123,85,52,76,76,232,232,232,232,76,52,52,204,84,17,141, - 0,123,85,52,76,76,76,232,232,232,51,107,9,204,154,17, - 243,0,123,85,52,76,76,76,232,232,232,51,52,52,204,84, - 17,243,0,123,194,52,76,76,76,232,232,232,51,52,52,204, - 84,17,8,162,123,85,76,232,76,232,232,232,76,76,51,9, - 204,154,17,211,162,123,85,76,232,76,76,232,232,76,76,51, - 9,204,84,17,141,0,123,85,52,76,76,76,232,232,232,51, - 52,9,204,154,17,211,0,123,85,52,76,76,76,232,232,232, - 51,52,9,204,154,17,243,122,123,85,52,76,76,76,232,232, - 76,76,51,9,204,154,17,141,162,123,85,52,232,76,232,232, - 148,232,76,51,52,204,154,12,8,8,8,8,7,8,12,121, - 121,121,191,69,191,69,69,238,121,121,69,121,69,69,121,69, - 69,121,69,121,69,69,121,121,69,121,121,69,68,121,121,121, - 121,121,121,121,121,69,121,69,69,69,69,69,69,69,69,69, - 69,121,121,121,121,121,121,121,121,121,121,121,121,16,121,121, - 71,71,102,71,248,71,71,248,248,248,248,248,248,248,248,248, - 25,248,102,25,248,248,248,25,248,25,248,248,25,25,25,248, - 25,248,248,25,25,248,248,25,248,25,248,25,248,248,25,248, - 25,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 71,248,248,248,248,248,248,71,248,248,71,248,248,248,248,248, - 248,248,248,248,248,248,25,248,248,248,248,248,248,248,25,248, - 248,25,248,25,248,25,248,248,25,25,248,25,248,25,248,25, - 248,25,248,248,248,25,102,25,25,248,25,102,120,102,25,248, - 248,248,248,248,248,25,25,248,248,248,248,248,248,25,102,120, - 248,102,25,120,248,102,120,248,248,25,248,25,25,102,120,248, - 248,248,120,248,248,25,248,248,120,25,120,248,25,25,25,25, - 25,248,248,25,38,120,120,25,25,25,120,25,133,248,25,26, - 150,8,12,8,12,187,12,122,167,194,76,76,232,148,232,148, - 148,232,76,52,204,168,26,211,122,167,194,76,76,148,148,232, - 148,148,232,76,52,204,168,26,243,122,167,194,76,76,232,232, - 232,148,232,148,52,52,204,168,26,211,122,167,194,76,76,232, - 148,232,148,148,232,232,52,204,168,12,211,122,167,194,76,76, - 148,232,232,148,232,232,76,52,204,168,12,109,122,167,194,76, - 76,148,232,232,148,148,232,76,52,204,168,17,243,122,167,194, - 76,232,148,232,232,148,232,232,76,52,204,168,26,243,122,167, - 194,76,76,148,232,232,148,148,232,52,52,204,168,26,211,122, - 167,194,76,76,232,148,232,148,232,232,52,52,204,168,26,211, - 122,167,194,76,76,148,232,232,148,148,232,76,52,204,168,17, - 109,122,167,194,76,76,148,148,232,148,148,232,52,52,204,168, - 26,211,122,167,194,76,76,148,148,232,148,148,232,52,52,204, - 168,12,109,122,167,194,76,232,232,232,232,148,232,232,76,52, - 204,168,219,243,122,167,194,76,232,148,232,148,148,232,148,52, - 52,204,168,26,211,122,167,194,76,232,232,232,232,148,148,232, - 76,52,204,168,219,243,122,167,194,76,76,148,148,232,148,148, - 232,52,52,204,168,26,243,122,167,194,76,76,148,232,232,148, - 232,232,76,52,204,168,26,211,122,167,194,76,232,232,148,232, - 148,232,232,52,52,204,168,12,8,12,8,8,8,8,8,121, - 191,80,191,80,69,69,69,69,238,69,69,121,121,69,121,69, - 69,69,121,69,121,121,69,121,69,125,121,121,121,121,121,121, - 125,121,121,121,121,121,121,69,69,174,69,174,174,121,121,69, - 69,69,69,121,121,69,69,121,121,121,16,16,16,16,16,16, - 102,248,71,248,74,248,248,248,248,248,248,102,248,248,248,248, - 248,248,25,248,25,248,248,248,25,248,25,25,248,248,25,248, - 25,25,248,248,25,25,248,25,248,25,248,248,248,248,248,248, - 248,25,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,71,248,248,248,248,248,248,248,248,248,248,71,248, - 248,248,248,248,248,248,71,248,248,248,248,248,248,248,71,248, - 248,248,248,248,25,248,25,248,248,25,248,25,248,25,248,248, - 25,248,248,25,25,248,25,248,248,248,248,25,248,25,248,120, - 248,248,248,248,248,248,248,248,248,25,248,248,248,248,120,248, - 248,25,248,248,248,25,102,248,25,120,102,248,248,25,25,248, - 248,25,248,248,25,102,25,248,248,248,248,248,248,248,248,248, - 120,25,25,120,120,25,25,25,25,25,25,248,120,25,248,26, - 12,8,12,8,219,26,12,122,237,32,232,148,148,148,148,147, - 148,232,232,148,231,222,17,243,122,237,32,232,148,148,148,148, - 148,148,232,232,232,231,168,219,211,122,237,32,232,148,148,148, - 148,148,232,232,232,232,231,222,17,243,122,237,32,232,148,148, - 148,148,148,148,232,76,232,231,168,26,243,122,237,32,232,148, - 148,148,148,147,232,148,232,232,231,222,26,8,122,237,32,232, - 148,148,148,148,148,148,148,232,232,231,222,219,109,0,237,32, - 232,232,148,148,148,148,148,232,232,232,231,222,17,211,122,237, - 32,232,148,148,148,148,147,148,148,76,148,231,222,17,243,122, - 237,32,232,148,148,148,148,147,148,148,76,148,231,222,17,243, - 122,237,32,232,148,148,148,148,148,148,148,232,232,231,222,219, - 243,122,237,32,232,148,148,148,148,148,148,232,232,232,231,222, - 17,8,122,237,32,232,148,148,148,148,148,148,232,232,232,231, - 222,219,243,122,237,32,232,232,148,148,148,147,148,232,232,232, - 231,168,26,211,122,237,32,232,232,148,148,148,147,148,148,52, - 148,231,222,17,243,122,237,32,232,232,148,148,148,148,148,148, - 232,232,231,222,219,211,122,237,32,232,148,148,148,148,148,148, - 148,232,232,231,222,219,211,122,237,32,232,148,148,148,148,147, - 148,232,232,232,231,222,219,8,122,237,32,232,232,148,148,148, - 77,148,148,76,232,231,222,219,8,8,8,8,8,8,12,191, - 121,69,69,69,191,69,238,69,69,121,69,69,69,69,69,69, - 69,69,121,121,69,121,121,121,121,121,121,16,121,16,121,69, - 121,121,121,121,121,69,69,121,121,121,125,121,121,121,69,121, - 69,121,121,121,69,121,121,69,121,121,121,16,121,16,16,121, - 71,102,248,248,74,248,74,248,102,71,248,248,248,248,248,248, - 248,248,248,248,248,25,248,71,25,248,248,25,248,248,25,25, - 248,248,25,248,248,248,248,25,248,248,25,248,248,25,248,248, - 248,25,25,248,248,248,248,248,248,248,248,248,248,71,248,248, - 248,248,248,248,248,248,248,71,248,248,71,71,248,248,248,248, - 248,102,25,248,248,248,248,248,248,248,248,102,248,248,248,248, - 25,248,25,248,248,25,248,25,25,248,248,25,248,248,25,248, - 25,248,248,248,248,248,248,248,25,248,248,25,248,248,248,248, - 248,248,248,248,248,248,25,248,248,248,248,248,248,248,248,120, - 248,248,248,248,248,25,248,248,248,25,248,120,248,248,25,248, - 244,102,120,244,248,244,25,248,248,248,25,248,25,248,248,248, - 248,248,25,25,248,25,248,25,102,25,25,25,248,248,248,26, - 12,150,17,8,219,187,12,42,138,117,193,193,157,157,189,189, - 157,193,193,194,70,31,26,8,122,138,117,193,193,157,157,189, - 189,157,193,193,85,70,129,26,109,122,138,117,193,193,157,157, - 189,189,157,193,193,85,70,31,26,243,42,138,117,193,193,157, - 157,189,189,157,193,193,85,70,228,26,243,122,138,117,193,193, - 157,157,189,189,157,193,193,194,70,129,26,211,122,138,117,193, - 193,157,157,189,189,157,193,193,85,70,222,26,211,122,138,117, - 193,193,157,157,189,189,157,193,193,85,70,31,26,8,122,138, - 117,193,193,157,157,189,189,157,193,193,194,70,31,17,243,122, - 138,117,193,193,157,157,189,189,157,193,193,194,70,31,26,8, - 122,138,117,193,193,157,157,189,189,157,193,193,85,70,222,187, - 243,122,138,117,193,193,157,157,189,189,157,193,193,194,70,31, - 26,8,42,138,117,193,193,157,157,189,189,157,193,193,194,70, - 31,26,8,122,138,117,193,193,157,157,189,189,157,193,193,32, - 70,31,26,243,122,138,117,193,157,157,157,189,189,157,193,193, - 194,70,31,26,8,122,138,117,193,193,157,157,189,189,157,193, - 193,85,70,222,26,211,122,138,117,193,193,157,157,189,189,157, - 193,193,85,70,31,26,8,122,138,117,193,193,157,157,189,189, - 157,193,193,85,70,31,26,8,42,138,117,193,193,157,157,189, - 189,157,193,193,85,70,31,26,8,26,8,7,8,8,8,121, - 191,69,191,69,69,69,121,69,238,69,121,69,121,69,121,121, - 69,121,69,69,69,121,121,121,121,121,121,121,121,16,121,121, - 121,121,121,121,121,121,69,121,69,121,121,69,69,121,69,121, - 69,69,69,121,69,121,121,121,121,16,16,16,121,16,16,16, - 248,71,74,74,248,74,248,248,71,248,248,248,248,248,248,248, - 248,102,25,248,102,248,248,25,248,248,248,248,248,248,248,25, - 248,248,248,248,248,25,248,248,248,248,248,248,248,248,248,248, - 248,248,71,248,248,248,248,248,248,248,71,248,248,248,248,248, - 248,248,248,248,248,71,248,248,248,71,248,248,71,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,25,248, - 248,248,248,25,248,248,248,248,248,248,248,248,248,25,248,248, - 248,25,248,248,248,248,25,248,71,248,248,248,248,248,248,248, - 248,248,248,248,248,248,71,248,248,248,248,244,248,25,248,248, - 248,120,248,120,248,248,25,120,102,71,248,248,248,25,248,248, - 248,25,102,248,120,102,244,248,120,102,244,248,71,25,25,25, - 248,25,248,120,38,248,25,120,25,248,248,248,25,248,248,26, - 12,12,17,8,219,17,12,0,92,87,21,21,156,43,13,13, - 30,242,21,18,18,35,12,109,0,226,87,18,21,242,30,13, - 13,30,242,21,21,18,35,12,12,122,226,87,18,72,242,30, - 86,13,30,242,21,18,18,35,12,12,0,226,87,21,21,242, - 30,13,13,30,242,21,21,18,35,12,187,0,226,87,21,21, - 156,43,13,13,30,242,21,18,18,35,187,12,0,226,87,21, - 21,156,30,13,13,30,242,21,33,18,46,12,12,0,226,87, - 18,72,242,30,13,13,30,242,21,18,18,59,17,243,0,226, - 87,18,72,242,30,13,13,30,242,21,18,18,35,26,12,0, - 226,87,21,21,156,43,13,13,30,242,21,18,18,35,12,109, - 0,226,87,18,72,242,30,13,13,30,242,21,18,18,35,26, - 187,0,226,87,18,21,242,30,13,13,30,242,21,18,18,47, - 17,243,0,226,87,21,21,242,30,13,13,30,242,21,18,18, - 35,12,109,0,226,21,21,21,156,30,86,13,30,242,18,18, - 18,47,12,12,0,226,87,21,72,156,43,13,13,30,72,21, - 18,18,35,12,12,122,226,87,18,72,242,30,13,13,30,242, - 21,18,18,46,12,12,0,226,87,18,21,242,30,13,13,30, - 242,21,33,18,35,17,109,0,226,87,21,21,242,30,13,13, - 30,242,21,18,18,35,17,243,0,226,21,21,21,156,43,13, - 13,30,242,21,18,18,59,12,8,12,8,8,8,8,8,121, - 191,121,80,191,69,238,69,121,80,238,69,69,69,69,69,121, - 69,121,121,121,69,69,121,69,69,121,121,16,16,16,16,121, - 121,121,121,121,121,125,121,69,121,69,69,121,121,69,121,121, - 121,121,121,69,121,121,121,121,121,16,121,16,16,121,121,121, - 74,248,248,102,248,71,71,248,248,248,248,248,248,248,248,248, - 25,248,248,25,248,248,248,248,248,248,25,248,248,25,248,248, - 248,25,248,248,248,248,248,25,248,248,25,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,71,248,248,71,248,248, - 248,248,248,248,248,248,248,71,248,248,71,248,71,71,248,248, - 248,248,248,248,248,248,248,248,102,248,248,248,248,71,248,248, - 248,25,248,248,248,25,248,25,248,248,25,248,248,248,25,248, - 248,248,25,248,248,71,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,71,25,25,248, - 248,248,248,244,248,71,248,248,120,248,25,248,71,248,248,248, - 71,25,248,248,248,248,248,248,248,120,25,248,244,102,120,25, - 102,120,248,120,120,120,25,248,25,25,25,248,25,102,71,219, - 12,8,26,8,26,42,12,221,40,23,250,86,179,146,51,51, - 149,86,86,250,28,187,26,8,0,203,19,86,86,149,149,51, - 51,149,86,250,86,28,50,12,8,0,203,19,250,86,179,146, - 51,146,146,86,86,250,28,187,17,243,0,40,23,250,86,149, - 149,51,51,149,86,250,250,28,187,187,8,0,203,23,250,86, - 179,146,51,136,149,179,86,250,28,50,12,8,0,203,23,250, - 86,179,149,51,51,149,86,86,250,28,163,12,8,0,203,19, - 250,86,179,149,51,51,149,86,86,250,28,187,26,8,0,40, - 19,250,86,179,149,51,51,149,86,86,250,28,187,12,8,0, - 203,23,250,86,179,146,51,51,149,86,86,250,28,187,26,8, - 0,40,19,250,86,179,149,51,51,149,86,250,86,28,163,12, - 8,0,203,19,86,86,149,149,51,51,149,86,86,250,28,187, - 26,243,0,203,23,250,86,149,149,51,51,149,86,86,250,28, - 187,26,8,221,40,23,250,86,179,149,51,146,146,179,250,250, - 28,187,187,8,0,40,23,250,86,179,146,51,51,149,86,86, - 250,28,187,187,243,0,40,19,250,86,179,149,51,51,149,86, - 250,86,28,163,12,8,0,203,19,86,86,149,149,51,51,149, - 86,86,250,28,187,26,8,0,203,86,250,86,149,149,51,51, - 149,86,86,250,28,187,26,8,221,40,23,250,86,179,146,51, - 51,149,86,86,250,28,187,17,8,12,8,7,8,8,8,16, - 191,121,69,238,69,69,121,191,69,69,121,238,69,69,69,69, - 121,121,69,121,121,69,69,121,121,121,121,121,121,16,121,121, - 121,16,121,121,121,125,174,121,121,121,69,69,121,69,69,69, - 69,69,121,121,69,121,69,121,121,191,121,16,16,16,16,16, - 71,102,71,74,71,71,71,102,71,71,71,102,248,248,248,248, - 248,248,248,248,248,248,248,248,25,248,248,25,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,71,248,248,248,71,248,248,248, - 248,248,248,71,248,71,248,248,248,71,248,102,248,248,248,248, - 248,71,248,248,248,248,248,71,71,248,248,248,248,25,248,248, - 248,25,102,25,248,248,248,248,102,25,71,248,248,248,71,248, - 248,248,71,248,248,248,248,248,248,248,248,248,71,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,244,25,71,248,71, - 248,248,248,248,71,248,248,248,248,248,120,102,120,248,248,120, - 248,244,102,244,248,248,248,248,248,248,71,25,248,248,248,248, - 244,248,25,248,25,38,120,25,248,120,102,25,120,71,248,26, - 12,8,187,8,26,0,12,0,97,32,157,189,189,189,189,189, - 189,189,189,85,204,61,219,211,0,95,32,157,189,189,189,189, - 189,189,189,157,85,128,61,183,211,0,95,32,157,189,189,189, - 189,189,189,189,157,85,128,61,219,211,0,40,32,157,189,189, - 189,189,189,189,189,157,85,128,61,219,211,0,95,32,157,189, - 189,189,189,189,189,189,157,85,128,61,219,211,0,40,32,157, - 189,189,189,189,189,189,189,157,85,204,61,183,211,0,95,32, - 157,189,189,189,189,189,189,189,157,85,204,61,219,211,0,95, - 32,157,189,189,189,189,189,189,189,189,85,204,61,219,211,0, - 40,32,157,189,189,189,189,189,189,189,189,85,204,61,219,211, - 0,95,32,157,189,189,189,189,189,189,189,157,85,204,91,219, - 211,0,95,32,157,189,189,189,189,189,189,189,157,85,128,61, - 219,211,0,40,32,157,189,189,189,189,189,189,189,189,85,204, - 91,219,243,0,95,32,157,189,189,189,189,189,189,189,157,85, - 128,61,219,211,0,40,32,157,189,189,189,189,189,189,189,189, - 85,204,61,219,211,0,95,32,157,189,189,189,189,189,189,189, - 157,85,128,61,183,211,0,95,32,157,189,189,189,189,189,189, - 189,189,85,204,61,219,211,0,40,32,157,189,189,189,189,189, - 189,189,157,85,128,61,219,211,0,47,32,157,189,189,189,189, - 189,189,189,157,85,204,61,219,8,8,8,8,8,8,8,191, - 121,191,191,69,191,69,121,80,238,69,69,69,191,69,69,121, - 69,121,121,69,121,69,121,121,121,16,16,16,16,121,121,16, - 16,121,16,16,121,16,121,121,121,69,69,121,69,121,121,69, - 69,121,69,69,121,121,121,121,121,16,121,121,16,16,16,16, - 74,71,71,71,248,102,71,248,102,248,71,71,248,248,102,248, - 248,102,248,25,248,248,248,102,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,71,248,248, - 248,248,248,71,248,248,248,248,248,248,71,248,71,71,71,248, - 248,248,248,248,248,71,248,248,248,248,71,248,71,71,71,102, - 248,71,248,71,71,71,248,248,71,71,248,248,71,248,248,248, - 248,248,248,248,248,25,248,248,71,25,248,248,248,248,248,248, - 248,25,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,71,248,248,248,248, - 248,248,248,248,120,248,248,248,102,120,25,248,248,248,248,248, - 248,248,248,248,248,248,244,248,248,248,71,120,248,248,248,248, - 25,102,120,71,120,248,248,25,25,25,120,38,25,71,248,26, - 12,243,26,139,26,183,12,0,40,53,52,76,148,76,148,148, - 147,148,52,27,230,26,122,243,0,40,53,52,76,148,76,148, - 148,148,232,52,27,230,91,122,243,0,40,53,52,76,148,148, - 148,147,148,232,52,27,230,91,122,243,0,40,53,52,76,232, - 148,148,148,148,232,52,27,230,91,122,243,0,40,53,52,76, - 148,232,232,148,148,232,52,27,230,91,122,243,0,40,53,52, - 232,232,148,148,148,148,232,52,185,230,91,122,243,0,40,53, - 52,232,232,148,148,148,148,232,52,198,230,91,122,243,0,40, - 53,52,76,232,148,76,147,148,148,52,27,230,91,122,243,0, - 40,53,52,76,148,76,148,148,147,148,52,27,230,26,122,243, - 0,40,45,52,232,232,148,76,148,148,232,52,27,230,91,122, - 243,0,40,53,52,76,148,76,148,148,148,232,76,27,230,91, - 122,243,0,40,45,52,76,232,148,76,147,147,148,52,27,230, - 26,42,243,0,40,53,52,76,148,76,148,147,148,232,52,27, - 230,91,122,243,0,40,53,232,76,232,148,76,147,148,148,52, - 27,230,26,122,243,0,40,53,52,232,148,76,148,148,148,232, - 52,27,230,91,122,243,0,40,53,52,76,232,76,148,148,147, - 232,52,185,230,26,122,243,0,40,45,232,76,232,76,148,148, - 148,232,232,27,230,91,122,243,0,40,53,52,76,148,148,76, - 147,148,232,52,27,230,26,42,8,12,8,8,8,8,8,16, - 121,69,191,69,69,191,69,121,69,121,69,69,121,69,121,69, - 121,69,121,121,69,69,69,121,121,191,121,121,16,16,121,121, - 16,121,121,16,121,121,69,121,121,121,69,121,121,69,121,121, - 69,121,121,69,69,121,121,121,121,16,16,121,121,16,121,16, - 71,248,71,102,74,71,248,71,71,248,248,248,248,248,248,71, - 25,248,248,248,248,248,248,25,25,102,25,102,25,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,71,248, - 248,248,248,248,248,248,71,248,248,71,248,71,248,248,248,71, - 71,71,248,248,248,248,248,71,248,248,248,71,248,248,248,248, - 71,248,71,248,248,248,248,71,248,248,71,248,25,248,248,248, - 248,248,248,248,248,248,248,248,25,71,248,248,248,248,248,248, - 248,71,248,248,248,71,248,248,248,71,248,248,248,71,248,71, - 248,248,248,248,248,248,248,248,248,248,244,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,102,244,248,248,248,248,248, - 71,248,248,248,71,248,248,71,248,248,248,248,244,248,244,248, - 244,248,248,248,248,25,120,102,248,248,248,120,248,248,248,26, - 12,12,17,12,183,42,17,0,212,170,52,76,232,148,148,147, - 148,76,27,185,230,91,26,211,0,40,204,27,76,232,148,148, - 147,147,52,232,185,230,91,42,211,0,40,204,27,76,232,232, - 148,148,147,76,27,185,230,91,42,211,0,212,170,52,232,232, - 232,148,148,147,76,27,185,230,91,42,211,0,40,204,27,76, - 232,232,148,147,147,76,27,27,230,91,26,211,0,212,231,232, - 76,232,232,148,148,147,52,232,27,230,91,42,211,0,212,231, - 232,76,232,232,148,148,147,76,27,27,230,91,42,211,0,40, - 204,27,232,232,148,148,148,147,76,27,185,230,91,42,211,0, - 212,170,52,76,232,148,148,148,148,76,27,185,230,91,26,211, - 0,212,170,232,76,232,148,147,147,147,76,232,185,230,91,42, - 211,0,40,204,27,76,232,148,148,147,147,76,27,185,230,91, - 42,211,0,40,170,52,232,232,148,148,148,148,76,27,185,230, - 91,42,211,0,40,204,27,76,232,148,148,147,147,76,27,185, - 230,91,42,211,0,40,204,27,76,232,148,148,148,147,76,27, - 185,230,91,26,211,0,40,204,27,76,232,148,148,147,147,76, - 27,27,230,91,42,211,0,40,204,27,76,232,148,148,147,148, - 232,27,27,230,91,26,211,0,212,231,52,76,232,148,148,147, - 147,52,232,185,230,91,42,211,0,40,204,27,76,232,148,148, - 148,147,76,27,198,230,91,26,8,8,8,7,8,8,12,191, - 121,238,69,121,121,80,69,191,69,238,121,69,69,69,121,69, - 69,121,69,121,69,121,69,121,121,121,16,16,121,16,16,16, - 16,16,16,121,121,121,121,121,121,121,69,121,69,121,69,69, - 121,69,125,125,238,125,121,121,16,121,16,16,16,121,16,16, - 71,102,71,248,248,74,248,102,71,248,248,248,248,248,248,71, - 248,102,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,71,248,248,71,248,248,71,248, - 71,248,248,248,248,248,71,248,248,248,248,71,71,248,248,248, - 248,71,71,71,248,71,248,71,71,248,248,71,248,102,71,248, - 71,248,71,71,71,71,248,71,248,248,248,71,248,102,248,248, - 248,248,248,248,248,248,248,71,25,248,248,248,248,248,248,248, - 248,248,71,248,248,248,248,71,248,71,248,71,248,71,248,71, - 248,71,248,248,248,248,248,248,248,248,248,248,244,25,248,248, - 248,248,248,248,248,248,248,248,248,248,248,71,248,244,248,248, - 71,244,248,248,71,248,248,71,248,248,248,248,248,248,248,248, - 248,248,248,248,248,38,244,25,248,25,102,25,248,102,248,26, - 12,12,17,8,42,26,17,0,212,98,165,45,53,194,194,194, - 194,53,45,165,230,91,0,12,0,40,98,170,45,53,194,194, - 194,194,194,45,45,230,91,0,12,0,40,98,165,45,53,194, - 194,194,194,45,53,165,230,91,0,187,0,212,98,165,45,53, - 194,194,194,194,45,45,45,230,91,0,12,0,40,98,170,45, - 53,194,194,194,194,45,45,45,230,91,0,12,0,212,98,165, - 45,53,194,194,194,194,194,45,165,230,91,0,12,0,212,98, - 165,45,53,194,194,194,194,45,53,165,230,91,0,12,0,40, - 98,170,45,53,194,194,194,194,45,53,165,230,91,0,12,0, - 212,98,165,45,53,194,194,194,194,53,45,165,230,91,0,12, - 0,212,98,165,45,53,53,194,194,194,194,45,165,230,91,0, - 12,0,40,98,170,45,53,194,194,194,194,45,45,45,230,91, - 0,12,0,212,98,165,45,53,194,194,194,32,45,45,165,230, - 61,0,12,0,40,98,170,45,45,194,194,194,194,45,53,165, - 230,91,0,12,0,40,98,165,45,53,194,194,194,194,45,53, - 165,230,91,0,12,0,40,98,170,45,53,194,194,194,194,45, - 45,165,230,91,0,12,0,40,98,165,45,53,194,194,194,194, - 45,45,165,230,91,0,12,0,212,98,45,45,53,194,194,194, - 194,194,45,165,230,91,0,12,0,40,98,170,45,53,194,194, - 194,194,45,53,165,230,91,122,8,12,8,8,8,8,8,121, - 191,121,191,69,191,69,69,121,69,238,69,238,69,121,69,121, - 69,69,121,69,121,69,69,121,121,121,121,16,121,16,121,16, - 121,121,121,16,16,16,121,121,121,121,69,121,121,121,121,69, - 121,69,121,125,121,125,121,121,16,121,121,16,16,16,16,16, - 71,71,74,74,74,248,71,71,102,102,71,71,102,248,248,248, - 248,248,248,248,102,248,248,248,248,248,248,248,248,248,248,248, - 248,25,71,248,248,71,248,248,248,248,71,248,248,248,248,248, - 248,71,248,248,71,71,248,71,248,71,248,248,248,248,71,71, - 71,248,248,248,71,248,71,248,248,71,71,248,71,71,248,71, - 248,71,248,248,248,248,71,248,248,248,248,248,248,25,248,248, - 248,248,248,248,248,248,248,25,71,25,71,248,248,248,71,248, - 248,248,248,248,248,71,248,248,248,248,71,248,248,248,244,248, - 248,248,248,71,248,71,248,248,248,71,248,248,248,71,248,248, - 248,248,71,71,71,248,248,248,248,102,248,248,71,248,71,71, - 248,102,71,102,248,248,102,248,244,71,248,248,71,248,248,102, - 248,25,102,248,248,248,248,102,25,248,25,248,248,71,71,26, - 12,12,26,12,42,12,26,0,221,251,123,123,55,167,79,79, - 79,79,123,123,168,91,26,211,0,162,251,123,123,103,167,79, - 79,79,167,123,251,168,26,42,211,0,0,31,251,123,103,79, - 79,79,79,167,123,228,168,26,26,211,0,221,251,251,123,167, - 103,220,79,79,167,123,251,168,26,42,211,0,0,31,123,123, - 167,167,79,79,79,167,167,251,168,26,26,211,0,0,251,251, - 123,103,167,79,79,79,167,123,123,168,26,42,211,0,162,251, - 251,123,167,103,220,79,79,167,123,123,168,26,42,211,0,162, - 251,123,123,123,79,79,79,79,79,123,123,168,26,26,211,0, - 221,251,123,228,167,103,79,220,79,167,103,123,168,91,26,211, - 0,221,137,123,123,123,79,79,79,79,167,123,123,168,26,26, - 211,0,162,251,123,123,167,103,79,79,79,167,167,251,168,26, - 42,211,0,221,251,251,123,123,79,79,79,79,167,123,123,168, - 26,26,211,0,162,251,123,123,103,79,79,79,79,79,123,123, - 168,26,42,211,0,162,251,251,123,123,79,79,220,79,167,123, - 123,168,91,26,211,0,162,251,123,123,103,167,79,79,79,167, - 123,123,168,26,26,211,0,162,251,251,123,167,103,79,220,79, - 167,123,123,168,91,42,211,0,162,251,251,123,167,103,79,79, - 79,167,123,123,168,26,42,211,0,162,31,251,123,123,79,79, - 79,79,167,123,228,206,12,42,8,12,8,7,8,8,8,191, - 121,121,69,191,69,191,69,191,69,121,69,121,69,121,69,69, - 121,69,121,69,69,121,69,121,121,121,16,16,16,121,16,121, - 16,16,16,121,16,121,121,121,121,16,121,69,69,121,69,69, - 125,121,125,69,121,16,121,121,121,16,121,121,16,16,68,16, - 71,71,248,102,74,102,71,71,71,248,248,71,71,248,248,248, - 248,248,248,248,248,248,248,248,71,248,248,248,248,248,248,248, - 71,248,248,248,248,248,248,248,248,248,248,248,248,248,71,248, - 248,71,71,248,248,248,248,248,248,71,71,248,71,248,248,71, - 71,71,71,248,248,248,71,71,248,248,71,248,71,244,248,71, - 71,71,71,71,71,248,71,71,71,248,248,248,248,248,248,248, - 248,248,248,248,248,25,71,25,71,248,248,248,248,248,248,248, - 248,248,71,248,248,71,248,71,248,248,248,71,248,248,248,71, - 71,71,248,71,248,244,102,71,248,71,71,248,248,71,71,248, - 71,248,248,248,71,248,248,248,248,248,248,248,71,248,248,71, - 71,248,244,102,71,244,102,248,248,71,71,248,71,248,248,248, - 71,248,248,248,248,102,120,248,102,248,25,38,120,248,71,219, - 243,12,26,8,42,211,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,132,42,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,183,150,42,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,132,26,243,0,0,0,0,0,0, - 0,0,0,0,0,0,0,219,132,26,12,0,0,0,0,0, - 0,122,0,0,0,0,0,0,183,17,26,150,0,0,0,0, - 0,0,0,0,0,0,0,0,0,183,12,26,150,0,0,0, - 0,0,0,0,0,0,0,0,0,0,219,150,42,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,132,42,243,0, - 0,0,0,0,0,0,0,0,0,0,0,0,219,132,42,150, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,132,26, - 12,0,0,0,0,0,0,0,0,0,0,0,0,0,183,132, - 26,12,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 132,26,12,0,0,0,0,0,0,0,0,0,0,0,0,0, - 219,150,42,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,219,132,42,12,0,0,0,0,0,0,0,0,0,0,0, - 0,0,219,132,26,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,132,42,150,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,132,26,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,17,26,243,26,8,8,8,8,8,16, - 191,121,69,191,69,69,69,191,69,191,69,121,69,121,69,121, - 69,121,69,121,69,69,121,121,121,121,121,16,16,121,121,121, - 16,121,16,121,16,16,121,121,121,121,121,121,69,121,121,121, - 69,121,121,125,121,16,16,121,16,16,121,121,121,16,16,16, - 74,71,74,74,71,71,74,248,71,71,71,248,248,248,248,248, - 248,248,248,248,248,248,71,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,71,248,248,248,248,71,248,71,71,248,71, - 71,248,248,248,71,71,248,71,71,248,248,71,248,71,71,248, - 248,71,248,71,71,71,248,248,71,71,248,71,248,248,71,71, - 248,71,71,71,248,71,248,248,248,74,248,248,248,248,248,248, - 248,248,248,248,248,71,248,71,248,248,248,248,71,248,248,248, - 71,248,248,248,248,248,71,248,244,248,71,248,71,248,71,248, - 248,248,248,248,71,248,244,248,71,244,248,71,71,248,248,71, - 248,244,248,244,248,248,248,244,248,102,248,71,248,244,71,248, - 248,102,248,71,248,102,244,102,248,248,248,248,248,248,244,102, - 248,248,102,248,248,120,102,248,248,248,244,244,248,71,71,26, - 12,12,17,8,42,8,122,42,26,26,26,26,42,42,26,17, - 219,219,219,42,26,219,26,187,42,26,26,26,26,42,42,26, - 17,219,219,219,26,26,219,26,187,42,17,26,26,26,42,42, - 26,17,219,219,219,26,26,219,42,187,42,26,26,26,26,42, - 42,26,219,219,219,219,26,26,219,26,187,42,17,26,26,26, - 42,42,26,219,219,219,219,26,26,132,26,187,42,26,26,26, - 26,42,42,26,219,219,219,219,26,26,132,219,187,42,26,26, - 26,26,42,42,26,219,219,219,219,26,26,219,26,187,42,26, - 26,26,26,26,42,26,219,219,219,219,26,26,219,26,187,42, - 26,26,26,26,183,42,26,219,219,219,219,42,26,219,219,187, - 42,17,26,26,26,26,42,26,219,219,219,219,26,26,219,26, - 187,42,26,26,26,26,42,42,26,17,219,219,219,26,26,17, - 26,187,42,26,26,26,26,26,42,26,219,219,219,219,26,219, - 219,219,187,42,26,26,26,26,42,42,26,219,219,219,219,26, - 26,219,219,187,42,26,26,26,26,26,42,26,17,219,219,219, - 42,26,219,219,187,42,26,26,26,26,42,42,26,17,17,219, - 219,26,26,219,26,187,42,26,26,26,26,42,42,26,219,219, - 219,219,26,26,219,219,187,42,26,26,26,26,42,42,26,219, - 219,219,219,26,219,219,26,187,42,17,26,26,26,26,42,26, - 17,219,219,219,26,219,132,26,12,12,8,8,8,8,8,191, - 191,238,121,80,121,191,121,69,191,69,191,69,121,69,121,69, - 69,121,69,121,69,121,69,121,121,16,121,121,121,16,16,16, - 121,16,121,16,121,121,121,121,121,121,121,121,121,125,125,69, - 121,69,121,16,121,121,121,16,121,16,16,16,16,16,16,208, - 74,71,71,71,71,71,71,248,74,248,71,248,71,248,74,248, - 248,248,248,248,248,248,71,248,248,71,248,248,248,248,248,248, - 248,71,248,248,248,71,248,248,248,248,71,248,248,248,248,248, - 71,248,71,248,248,71,248,248,71,71,248,71,248,248,71,71, - 248,71,71,71,248,71,71,248,71,71,71,71,71,71,248,71, - 71,248,71,71,71,71,71,248,248,248,248,248,102,248,248,248, - 248,248,248,248,248,248,248,248,248,71,248,248,248,71,248,248, - 71,248,71,71,71,120,102,248,71,248,71,248,71,248,71,71, - 71,71,71,244,71,71,71,248,248,102,248,248,71,248,102,71, - 102,71,102,248,71,248,102,102,244,102,248,71,102,248,71,71, - 71,71,71,71,248,248,71,71,71,248,71,248,102,248,248,248, - 248,248,248,248,248,71,120,102,248,102,102,248,248,71,71,26, - 12,12,26,187,26,8,42,219,243,12,17,17,219,17,17,243, - 12,150,150,150,12,219,219,12,219,243,12,132,17,219,17,17, - 243,150,150,150,150,187,17,219,12,26,150,12,17,17,219,17, - 12,243,150,150,150,150,187,17,26,187,17,243,12,132,17,219, - 17,12,243,150,150,150,150,187,17,219,12,26,150,12,132,17, - 219,17,12,243,150,150,150,150,17,219,26,12,219,243,12,132, - 17,219,17,12,243,150,150,150,150,17,219,26,12,219,243,12, - 132,17,219,17,12,243,150,150,150,150,12,17,219,12,219,243, - 12,17,17,219,12,12,243,150,150,150,150,12,219,26,12,219, - 243,12,132,26,219,17,12,243,150,150,150,150,17,17,26,12, - 26,150,12,150,219,219,12,12,243,150,150,150,150,12,17,219, - 12,219,243,12,132,17,219,17,17,243,150,150,150,150,12,219, - 219,187,17,243,12,17,17,219,17,12,243,150,150,150,12,12, - 219,219,187,17,150,12,132,17,219,17,12,243,150,150,150,150, - 12,17,219,12,219,243,12,17,17,219,17,12,243,150,150,150, - 150,12,219,219,12,219,243,12,132,17,219,12,17,243,150,150, - 150,150,12,219,219,12,219,243,12,132,17,219,17,12,243,150, - 150,150,150,12,219,26,12,219,243,12,132,17,219,17,12,243, - 150,150,150,12,12,219,219,12,26,150,187,12,17,219,12,12, - 243,150,150,150,17,12,219,26,12,17,8,7,8,8,8,16, - 191,121,191,121,80,121,191,80,121,69,69,121,69,191,69,121, - 121,69,69,121,69,69,121,69,121,121,121,121,121,121,121,16, - 16,16,121,121,121,121,121,121,121,69,69,121,121,121,121,121, - 121,121,121,16,16,16,16,16,16,121,16,16,16,16,16,16, - 71,71,74,71,71,71,102,74,248,71,248,248,248,248,248,102, - 248,248,248,248,71,248,248,248,248,248,248,248,248,102,248,248, - 248,248,71,71,248,248,71,71,71,248,248,248,71,71,71,71, - 248,71,248,248,71,71,71,71,248,248,71,248,71,71,71,248, - 244,71,248,248,248,71,71,71,71,248,71,71,71,71,71,71, - 71,71,71,71,248,248,248,71,248,71,248,248,71,248,71,248, - 71,248,248,248,248,248,248,248,248,248,71,248,71,248,71,248, - 248,71,248,248,248,71,71,71,248,71,248,71,248,71,248,248, - 248,71,248,71,71,102,248,71,71,244,102,71,248,71,71,248, - 71,248,71,71,102,71,71,71,248,71,71,248,71,71,102,71, - 71,248,248,248,71,71,248,102,248,71,102,71,71,71,71,248, - 248,248,71,102,248,120,102,248,248,120,248,248,248,71,74,187, - 12,17,12,187,42,8,42,26,150,17,150,219,17,12,26,243, - 150,150,12,17,17,17,26,150,26,150,17,17,17,219,12,26, - 243,12,150,12,17,17,17,42,150,219,150,17,132,187,219,12, - 17,243,150,150,12,219,12,219,26,12,26,150,17,17,17,219, - 12,26,243,150,150,12,17,12,219,42,150,219,150,12,17,17, - 219,12,26,243,12,150,12,219,187,17,42,109,26,150,12,17, - 17,219,12,26,243,12,12,12,219,17,17,42,109,26,150,12, - 17,17,219,12,26,243,12,150,12,219,17,219,26,12,26,150, - 17,132,187,219,12,26,243,12,12,12,219,17,17,26,12,26, - 150,17,17,17,17,12,26,243,12,150,12,17,17,219,42,150, - 219,150,12,17,187,17,17,26,243,12,12,12,219,17,219,42, - 150,26,150,17,17,17,219,12,26,243,12,150,12,219,17,17, - 26,12,26,150,17,132,187,219,12,26,243,12,150,12,17,17, - 17,26,243,26,150,12,17,17,219,12,26,243,12,150,12,219, - 17,219,42,109,26,150,17,150,17,219,12,26,243,150,150,12, - 219,17,17,26,12,26,150,17,17,17,219,12,26,243,150,150, - 12,219,17,17,42,243,26,150,12,17,17,219,12,26,150,12, - 150,12,17,17,17,42,109,26,150,12,17,17,219,12,26,243, - 12,150,12,17,17,17,26,150,219,150,17,132,17,219,12,26, - 243,12,150,12,17,17,17,26,243,12,8,8,8,8,8,191, - 191,121,191,121,191,69,69,191,69,121,121,121,69,69,121,69, - 121,69,121,69,121,121,69,121,121,121,121,121,121,121,121,16, - 121,121,121,16,16,121,121,238,121,121,121,121,121,121,121,121, - 121,121,16,121,16,121,16,121,16,16,121,121,16,16,16,208, - 74,71,74,71,74,71,71,71,102,71,71,71,71,248,71,71, - 248,248,248,248,71,248,71,71,248,248,248,248,71,71,248,71, - 248,248,248,71,248,248,248,248,71,248,71,248,248,248,248,71, - 71,71,71,248,248,71,248,71,71,71,71,71,248,248,71,71, - 71,71,71,71,248,71,71,248,71,71,248,71,71,71,248,71, - 71,71,71,71,71,71,248,74,248,248,71,248,71,248,71,248, - 248,248,248,248,71,248,71,71,248,248,71,248,71,248,71,248, - 248,248,71,71,248,71,248,71,248,71,248,71,71,71,71,71, - 248,71,71,244,71,71,71,102,248,71,248,71,248,248,71,248, - 71,248,248,71,248,248,71,71,71,248,102,248,248,71,248,71, - 71,71,71,71,102,71,71,71,248,71,248,248,248,248,71,71, - 248,248,71,248,102,244,248,248,102,248,102,248,248,71,71,183, - 26,26,17,8,42,8,26,26,150,17,132,17,132,150,26,150, - 12,150,17,132,17,219,26,211,26,150,150,132,17,150,150,219, - 150,12,132,12,17,17,17,26,109,26,150,17,17,17,150,17, - 219,12,150,132,12,132,12,17,17,109,26,150,17,132,17,150, - 150,219,12,12,150,17,132,17,17,26,109,26,150,132,132,17, - 150,150,219,150,17,150,12,17,17,17,26,243,26,132,132,132, - 132,150,150,219,150,150,150,17,12,17,17,26,243,26,132,17, - 132,17,150,150,17,150,17,150,12,17,12,219,17,109,26,150, - 17,17,17,150,150,26,150,150,150,12,132,17,219,17,109,26, - 150,17,132,132,132,150,219,150,17,150,17,150,17,17,26,109, - 26,150,17,17,17,132,150,219,150,150,150,12,132,12,17,26, - 211,26,150,150,132,17,150,150,219,150,17,150,12,17,187,17, - 17,109,26,150,17,17,17,150,150,26,150,17,150,12,17,187, - 219,26,109,26,150,132,219,17,150,150,26,150,17,150,12,17, - 12,17,26,109,26,150,17,17,17,150,150,219,12,17,150,12, - 150,17,17,17,109,26,150,150,132,17,150,150,219,12,17,150, - 12,132,17,17,26,109,26,132,132,132,17,150,150,17,150,17, - 150,17,17,17,17,26,243,26,132,132,132,17,150,150,219,150, - 17,150,17,17,17,219,26,211,26,150,17,17,17,150,150,219, - 150,150,132,12,17,17,219,26,211,219,8,8,8,8,8,16, - 16,69,191,69,191,121,69,69,191,69,191,121,69,121,121,69, - 191,121,69,69,121,69,121,69,121,121,121,121,121,121,121,16, - 16,16,121,121,121,121,121,121,68,16,121,121,121,121,121,121, - 16,16,121,16,16,16,121,121,16,16,16,16,16,16,16,16, - 71,71,71,74,71,74,248,74,71,74,248,248,102,71,248,248, - 71,71,71,248,248,71,248,248,248,248,248,248,248,248,71,248, - 71,71,71,248,71,71,248,71,248,71,248,71,71,71,244,71, - 248,248,248,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,248,71,71,102, - 248,71,248,71,74,248,71,248,248,71,248,248,248,248,248,248, - 71,248,248,248,248,248,248,248,71,71,248,71,248,248,248,71, - 248,71,248,248,71,248,244,248,71,248,71,102,248,248,71,71, - 71,102,71,71,71,71,248,71,71,244,102,71,71,71,102,71, - 102,71,71,71,71,71,248,102,248,71,71,71,71,248,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,102,71, - 71,71,248,102,244,102,244,248,244,102,244,248,71,71,74,26, - 17,12,26,12,42,8,219,219,17,17,132,219,17,12,219,12, - 132,17,12,17,12,187,219,243,219,17,219,132,219,17,12,26, - 150,132,17,17,132,12,187,219,243,219,12,17,132,17,17,12, - 26,150,17,17,12,17,17,132,26,243,219,17,150,132,219,17, - 12,26,150,132,17,17,17,12,187,219,243,219,17,17,132,219, - 17,12,26,150,150,17,12,17,12,132,219,109,219,12,17,132, - 219,17,12,26,150,17,12,17,17,17,132,219,109,219,17,150, - 132,219,17,12,26,150,132,17,12,132,17,187,26,243,219,12, - 17,132,219,17,17,219,150,17,17,17,17,187,150,26,243,219, - 150,150,132,219,17,12,26,150,150,17,17,17,12,132,219,243, - 219,17,150,132,219,17,12,26,150,17,17,17,17,17,187,219, - 243,219,17,219,132,219,17,12,26,150,132,17,12,132,17,187, - 26,243,219,17,17,132,219,17,12,219,150,150,17,17,132,12, - 187,219,243,219,17,17,132,17,17,12,219,150,150,17,12,132, - 17,187,219,243,219,17,17,132,17,17,12,26,150,150,17,17, - 17,17,187,26,243,219,17,219,132,219,17,12,26,150,150,17, - 12,17,12,187,219,243,219,12,17,132,219,17,12,26,150,150, - 17,12,132,17,132,219,109,219,12,17,132,219,17,12,26,150, - 150,17,12,132,12,187,219,243,219,12,17,132,17,17,12,26, - 150,17,17,150,17,12,150,219,8,12,8,141,7,8,8,191, - 191,191,69,121,238,121,191,191,121,69,69,121,191,69,121,121, - 69,121,121,191,69,121,69,121,121,121,121,69,121,121,69,121, - 121,121,121,121,121,121,121,69,121,121,69,121,121,121,121,121, - 121,16,16,16,16,121,16,121,16,16,16,16,16,16,16,208, - 74,71,71,71,71,74,71,248,248,102,74,248,248,74,248,102, - 248,102,71,248,248,71,71,248,248,102,248,248,248,248,248,248, - 248,248,248,248,248,71,248,248,248,71,71,248,248,71,248,71, - 71,71,102,248,71,71,248,71,248,71,71,71,71,71,248,71, - 71,71,71,71,71,71,71,71,102,71,71,74,71,71,71,74, - 71,71,71,248,248,74,248,248,102,71,71,248,71,71,71,248, - 248,102,248,248,71,248,248,248,248,248,248,71,71,248,248,71, - 248,71,71,248,71,71,71,71,71,248,71,71,71,71,248,71, - 71,71,248,71,71,71,71,71,102,244,102,71,248,71,71,71, - 71,71,71,71,71,71,71,71,102,244,102,102,71,102,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,248,102,102,102,244,102,102,102,244,71,71,26, - 219,12,17,12,42,8,26,219,150,17,150,17,150,17,219,12, - 132,150,219,132,132,12,219,211,219,12,17,150,17,132,132,219, - 12,150,150,17,132,132,150,26,211,219,150,219,132,17,150,132, - 219,150,150,132,17,132,187,150,219,109,219,12,219,150,17,150, - 132,219,12,150,150,17,132,132,150,26,211,219,12,17,150,17, - 132,132,26,12,132,150,132,132,187,150,219,243,219,12,17,17, - 17,132,132,219,150,132,150,150,17,187,150,219,243,219,12,219, - 150,17,132,132,219,12,150,132,17,132,132,150,219,211,219,150, - 17,132,17,150,17,26,150,150,150,17,132,187,150,219,211,42, - 17,17,17,17,150,132,219,12,132,150,17,17,187,187,26,211, - 219,12,17,132,17,150,132,219,150,150,150,17,132,132,187,219, - 211,219,12,17,150,17,150,132,26,12,150,150,17,132,132,150, - 219,211,219,150,17,150,17,150,17,219,12,132,150,17,219,150, - 187,219,211,219,12,17,132,17,150,17,26,12,132,150,219,17, - 132,187,219,211,219,150,17,132,17,150,132,219,12,132,150,17, - 17,132,150,219,211,219,12,17,150,17,132,132,219,12,132,150, - 17,132,166,12,219,211,219,12,17,132,17,150,132,219,12,132, - 150,219,12,187,150,219,243,219,12,17,132,17,150,132,219,12, - 132,150,17,132,132,150,26,211,219,150,219,132,17,132,132,219, - 150,150,17,132,132,17,187,26,211,26,8,8,8,8,8,16, - 191,121,191,69,191,69,69,191,121,121,121,69,121,121,69,121, - 121,69,69,121,121,69,121,121,121,121,121,121,121,121,121,121, - 121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121, - 16,121,16,121,16,121,16,16,16,16,16,16,54,16,54,208, - 71,71,74,74,71,74,248,74,74,71,248,74,102,248,248,248, - 71,71,102,248,71,248,248,71,248,71,248,71,248,248,248,248, - 248,71,71,71,71,248,71,71,71,248,248,71,71,71,71,248, - 71,248,71,71,71,71,71,71,71,248,71,71,71,71,71,248, - 71,248,71,248,71,71,71,71,71,71,71,71,248,71,71,71, - 71,71,102,102,74,248,248,71,71,102,248,71,102,248,248,71, - 248,71,248,71,248,248,248,248,71,71,71,248,248,71,71,248, - 71,248,248,71,248,71,71,248,248,71,71,71,71,71,71,71, - 71,102,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,248,71,102,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,244,244,244,102,248,244,244,102,144,71,26, - 26,12,26,12,42,8,219,42,12,17,17,150,132,17,219,150, - 17,132,150,219,26,111,26,12,42,150,17,17,132,150,17,26, - 150,219,150,17,219,26,187,26,12,26,12,132,17,150,132,17, - 219,12,219,132,150,219,219,187,26,8,42,150,17,17,132,150, - 219,219,150,219,132,150,219,26,187,26,12,42,150,17,17,132, - 150,17,219,150,17,132,17,219,219,187,26,211,42,150,17,17, - 132,150,17,26,12,17,132,17,17,17,187,26,211,42,150,17, - 219,150,132,17,26,150,219,150,12,219,26,187,26,187,42,12, - 132,17,150,132,17,219,12,219,132,150,219,219,187,26,187,26, - 150,17,17,150,132,17,26,150,17,132,132,17,17,150,17,187, - 42,150,132,17,150,132,17,26,12,219,132,150,17,26,150,26, - 12,42,150,17,219,150,132,17,219,150,219,132,17,219,26,187, - 26,187,42,12,132,17,150,132,132,26,150,17,150,17,17,26, - 150,26,12,42,150,132,17,150,132,17,219,150,17,150,17,17, - 26,150,26,12,26,17,132,17,132,150,219,219,150,17,132,132, - 17,26,187,26,187,42,150,17,219,150,132,17,219,150,17,132, - 150,219,26,150,26,187,42,150,17,17,132,150,219,26,150,17, - 132,12,219,219,187,26,211,42,150,17,17,132,150,219,26,150, - 17,132,12,219,26,187,26,243,26,12,132,17,150,132,17,26, - 12,17,150,219,219,17,150,219,8,12,8,8,7,8,8,208, - 191,121,191,121,238,121,121,69,191,238,121,191,121,121,121,69, - 121,191,121,69,121,121,121,69,69,69,121,69,69,121,121,121, - 121,121,121,238,121,121,238,121,121,238,121,69,121,121,121,121, - 121,121,16,121,16,16,16,16,121,16,16,16,208,208,208,16, - 74,71,71,74,71,74,248,102,248,102,248,248,74,102,74,248, - 248,71,71,248,102,71,248,74,248,71,248,71,71,71,71,71, - 248,248,248,248,71,248,71,248,71,71,71,248,248,71,71,248, - 71,71,71,71,71,71,71,71,71,71,71,71,248,71,74,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,248,74,74,102,71,71,248,102,71,248,102,248,74, - 248,71,248,71,71,71,71,248,248,248,71,71,248,248,71,248, - 71,71,71,71,248,71,71,71,71,248,244,71,71,71,71,71, - 71,71,71,71,102,71,102,71,71,71,102,71,71,71,71,71, - 71,71,71,71,102,71,71,71,248,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,102,102,102,244,71,102,102,71,248,74,71,42, - 17,12,91,12,42,12,219,219,17,17,17,17,150,17,42,150, - 17,17,17,132,17,12,17,211,42,17,17,17,17,17,132,26, - 150,219,150,17,132,17,150,17,211,219,17,17,17,17,17,17, - 219,150,17,12,17,219,17,187,26,211,42,17,17,17,17,17, - 17,26,150,219,12,17,132,17,150,17,211,26,17,17,17,17, - 17,132,42,150,219,12,17,219,17,17,26,109,42,12,17,17, - 17,17,132,219,150,219,12,17,219,17,187,26,211,42,12,219, - 17,17,17,150,42,150,219,150,17,132,17,187,17,211,219,12, - 17,17,17,150,132,219,150,219,12,17,17,17,187,17,211,26, - 150,17,17,17,17,132,42,150,219,12,17,219,26,187,17,211, - 42,17,17,17,17,17,132,219,150,219,12,17,132,26,187,17, - 211,26,12,219,17,17,17,150,42,150,17,150,17,132,219,187, - 17,211,219,17,17,17,17,17,132,42,150,219,150,17,132,26, - 187,12,211,26,17,17,17,17,150,132,42,150,219,150,12,132, - 26,187,17,211,219,17,17,17,17,17,17,26,150,219,12,17, - 132,17,187,17,211,26,12,219,17,17,17,17,42,150,219,12, - 17,132,26,187,17,211,26,17,17,17,17,17,150,42,150,17, - 132,17,17,219,187,26,109,42,17,17,17,17,17,150,42,150, - 219,150,17,132,17,132,26,109,219,17,17,17,17,17,132,219, - 150,132,17,17,17,26,187,26,8,26,8,8,8,8,8,16, - 191,191,121,191,191,121,191,69,191,121,69,191,121,191,121,121, - 69,121,121,121,69,121,69,121,121,121,121,121,125,69,69,121, - 121,121,69,69,69,121,121,238,121,121,238,121,238,121,191,16, - 121,16,121,16,121,16,121,16,16,16,208,16,16,16,208,208, - 74,74,74,248,74,71,74,71,74,74,74,71,248,71,102,248, - 74,248,248,71,71,102,71,248,248,248,71,248,248,248,248,248, - 71,71,71,71,248,71,248,71,248,102,248,71,71,71,71,71, - 71,244,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,248,71,71,71,71,71,74,71,71,71,71,71,71,71, - 71,71,71,71,248,248,71,248,248,71,71,248,71,71,74,248, - 248,248,71,248,248,248,248,71,248,71,248,71,71,71,71,71, - 248,248,248,102,71,71,71,248,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,102, - 71,71,71,71,71,71,102,71,71,71,71,71,71,71,71,74, - 71,71,71,71,71,71,71,71,71,71,74,71,71,71,71,74, - 71,71,71,71,71,244,71,248,244,71,244,71,71,144,71,219, - 12,150,17,8,26,187,26,42,150,219,12,17,150,132,219,17, - 132,12,17,219,219,132,26,12,42,150,17,17,12,150,219,219, - 17,150,17,17,219,17,187,26,187,26,17,17,17,150,150,17, - 219,17,150,17,17,219,219,150,219,12,42,150,17,17,12,150, - 17,219,17,150,17,17,219,17,187,26,12,42,150,17,17,12, - 150,17,219,17,132,150,12,219,219,187,219,12,42,150,17,17, - 12,150,219,219,17,132,132,150,219,219,132,219,12,26,150,219, - 12,12,150,219,219,17,150,17,17,219,219,150,26,12,42,12, - 219,12,17,150,17,219,17,150,17,17,219,219,150,26,12,42, - 17,17,17,12,150,17,219,17,132,17,150,219,17,12,26,12, - 26,17,17,17,12,150,219,219,17,150,17,17,219,17,150,26, - 187,42,150,219,12,12,150,219,219,17,150,17,17,219,17,132, - 26,12,42,12,219,17,12,150,17,219,17,132,17,150,219,17, - 150,42,12,42,12,219,12,17,150,219,219,17,150,17,132,219, - 17,150,26,187,26,17,17,17,12,150,17,219,17,132,17,150, - 219,219,150,26,12,42,150,219,12,12,150,17,219,17,150,17, - 17,219,17,132,26,12,42,150,17,17,12,150,219,219,17,132, - 17,150,219,17,187,219,12,26,150,17,17,12,150,219,219,17, - 132,17,17,219,17,187,219,12,26,17,17,17,12,150,219,219, - 17,17,150,17,219,17,12,219,12,12,8,8,7,8,8,208, - 191,121,191,121,191,121,191,121,121,191,121,69,121,69,121,191, - 121,121,191,121,121,121,121,121,121,69,69,121,121,121,125,125, - 121,69,121,121,121,121,121,69,121,125,121,121,69,121,121,121, - 121,16,16,16,16,16,16,208,16,16,16,16,16,54,54,54, - 74,74,74,74,102,71,74,248,248,248,74,71,71,71,71,248, - 74,102,102,248,71,248,74,248,74,248,74,248,71,71,248,248, - 248,102,71,71,71,71,248,74,71,71,74,71,248,71,71,71, - 248,71,248,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,248,71,71,71,102,71,71,71,71,71,71,71, - 71,71,71,71,74,248,74,74,248,102,248,102,248,248,102,71, - 74,248,74,248,71,102,248,71,248,71,248,71,248,102,71,71, - 71,71,71,71,248,71,71,71,248,71,71,244,71,71,71,71, - 71,71,71,244,71,71,71,248,71,71,71,71,71,71,71,71, - 248,71,71,71,71,71,71,71,248,71,248,71,71,71,71,71, - 74,74,74,71,71,74,71,71,140,71,71,144,71,74,71,71, - 71,71,71,71,71,71,71,71,71,71,102,71,102,71,74,56, - 219,12,26,8,42,12,26,42,26,219,17,219,26,17,219,17, - 17,17,219,26,26,150,26,150,42,26,219,17,17,17,17,219, - 17,17,17,17,26,17,132,26,150,219,26,219,26,17,17,26, - 219,219,12,17,219,219,26,187,26,150,42,26,219,17,17,17, - 17,219,219,12,17,219,26,17,132,26,150,42,26,219,17,17, - 17,17,219,17,17,17,219,26,12,187,26,150,42,219,219,17, - 17,17,17,219,17,17,219,219,26,26,12,26,150,42,26,219, - 17,17,17,17,219,17,17,17,219,219,26,150,26,150,219,26, - 219,17,219,17,17,219,219,12,17,219,17,26,150,219,150,42, - 219,219,17,17,17,17,219,17,12,219,219,219,17,132,26,150, - 219,26,219,17,17,17,17,219,17,17,17,219,219,26,150,26, - 150,26,26,219,17,17,17,17,219,17,17,17,17,219,26,150, - 26,150,219,26,219,17,17,17,17,219,17,17,17,219,219,26, - 150,26,150,219,26,219,17,219,12,17,219,219,17,17,219,219, - 26,150,26,150,219,26,219,17,17,17,17,219,17,12,219,219, - 219,26,150,26,150,42,26,219,17,219,12,17,219,219,17,17, - 17,219,26,150,26,150,42,26,219,17,17,17,17,219,17,17, - 17,219,26,17,12,26,150,42,26,219,17,17,17,17,219,17, - 17,17,219,26,12,17,26,150,219,26,219,17,17,17,26,219, - 17,17,17,219,219,12,12,26,243,26,150,8,8,8,8,16, - 208,121,191,121,121,121,121,191,121,121,191,121,191,121,238,121, - 121,69,121,121,121,121,121,121,121,121,69,69,125,121,121,121, - 121,121,121,121,69,125,121,125,121,69,121,121,121,121,16,121, - 16,16,121,16,121,16,121,16,16,16,16,208,208,16,208,208, - 74,74,71,74,74,102,102,74,74,74,71,102,248,71,74,102, - 248,71,248,74,248,102,248,102,248,102,248,102,248,102,74,71, - 71,71,248,102,248,102,71,248,71,248,102,71,71,248,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,74,102,71,71,102,248,102,248,74,248,74,248,71,102, - 248,102,248,248,248,71,74,248,74,248,74,248,71,71,248,102, - 102,71,71,71,71,248,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,74, - 71,71,71,74,74,71,71,74,71,144,71,74,71,71,71,71, - 71,71,71,71,71,71,71,71,248,71,71,244,71,140,71,122, - 122,122,122,42,0,183,0,122,42,122,122,122,122,42,122,122, - 42,122,122,78,183,42,183,187,0,42,122,122,122,122,42,122, - 122,122,122,0,162,42,42,183,187,0,42,122,122,122,122,42, - 122,122,122,122,122,122,183,42,183,187,0,42,122,122,0,122, - 42,122,122,122,122,122,162,42,42,183,187,0,42,122,122,0, - 122,42,122,122,122,122,122,162,42,42,183,187,0,42,122,122, - 122,122,42,122,122,42,122,122,78,183,42,183,187,122,42,122, - 122,0,122,42,122,122,42,122,122,122,183,42,183,187,0,42, - 122,122,0,122,42,122,122,122,122,122,122,183,78,42,187,122, - 42,122,122,0,122,42,122,122,122,122,122,162,42,42,183,187, - 0,42,122,122,122,122,42,122,122,42,122,122,162,183,78,219, - 187,0,42,122,122,0,122,42,122,122,122,122,122,122,183,42, - 183,187,0,42,122,122,0,122,42,122,122,122,122,122,162,183, - 42,183,187,0,42,122,122,0,122,42,122,122,122,122,122,122, - 183,78,219,187,0,42,122,122,0,122,42,122,122,122,122,122, - 122,183,42,183,187,122,42,122,122,0,122,42,122,122,122,122, - 122,78,183,42,183,187,0,42,122,122,0,122,42,122,122,122, - 122,122,122,42,42,183,187,0,42,122,122,0,122,42,122,122, - 42,122,122,162,42,42,183,187,0,42,122,122,122,122,42,122, - 122,122,122,122,162,42,78,183,187,122,42,26,219,26,219,208, - 191,121,191,191,191,121,121,191,191,121,191,121,121,121,121,121, - 191,121,121,191,121,121,121,69,69,69,69,121,121,69,69,69, - 69,125,125,69,121,121,125,121,121,238,121,121,121,121,121,121, - 16,16,121,121,16,16,16,16,16,208,208,16,16,208,16,96, - 71,74,71,71,74,74,71,248,102,248,74,74,248,248,71,74, - 102,74,248,102,71,74,71,74,248,74,71,71,71,248,102,248, - 71,71,71,71,71,71,71,248,74,71,71,248,74,248,248,71, - 248,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,74,71,248,74,74,248,74,248,74,248,74,248, - 74,248,74,102,248,248,71,248,74,248,71,248,71,71,71,71, - 102,71,102,71,71,248,102,71,248,248,71,244,71,71,71,71, - 71,71,71,71,244,71,74,71,71,71,71,71,71,71,71,74, - 71,71,71,71,71,71,71,71,71,71,71,71,71,74,71,140, - 144,74,144,71,144,74,71,71,74,71,71,144,71,144,140,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,140,71,42, - 8,12,12,150,0,42,42,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,42,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,42,42,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,219,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,42,42,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,183,42,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,42,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,122,42,17,17,26,219,16, - 208,191,191,191,121,191,191,191,191,191,191,121,191,121,191,69, - 191,121,121,121,121,121,121,121,121,121,69,121,121,68,121,121, - 121,121,125,125,69,121,121,125,121,125,121,121,16,121,121,191, - 121,16,16,121,16,16,16,16,16,16,16,16,16,208,208,208, - 74,74,74,74,71,71,102,74,71,74,102,248,102,74,102,248, - 102,248,248,71,102,248,102,248,102,248,248,102,248,74,71,71, - 102,248,71,71,74,248,74,71,71,248,74,71,71,74,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,102,248,248,74,102,248,102,248,102,248,102,248,74, - 248,74,248,71,102,74,248,74,248,248,74,71,74,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,74,71,71,71, - 71,144,74,144,71,144,144,144,144,140,71,74,144,71,71,74, - 144,71,71,74,71,71,71,71,71,71,71,71,71,140,71,26, - 49,141,243,139,42,26,219,0,14,216,41,62,62,249,62,62, - 62,62,62,62,41,22,26,17,0,14,216,41,62,62,249,62, - 62,62,62,62,62,41,75,26,17,0,14,216,41,62,62,249, - 62,62,62,62,62,62,41,75,26,17,0,14,216,41,62,62, - 249,62,62,62,62,62,62,41,22,26,17,0,14,216,41,62, - 62,249,62,62,62,62,62,62,41,75,219,17,0,14,216,41, - 62,62,249,62,62,62,62,62,62,41,75,219,17,0,14,216, - 41,62,62,249,62,62,62,62,62,62,62,22,26,17,0,14, - 216,41,62,62,249,62,62,62,62,62,62,41,75,219,17,0, - 14,216,41,62,62,249,62,62,62,62,62,62,62,22,219,17, - 0,14,216,41,62,62,249,62,62,62,62,62,62,62,22,26, - 17,0,14,216,41,62,62,249,62,62,62,62,62,62,41,75, - 26,17,0,14,216,41,62,62,249,62,62,62,62,62,62,62, - 22,26,17,0,14,216,41,62,62,249,62,62,62,62,62,62, - 41,75,26,17,0,14,216,41,62,62,249,62,62,62,62,62, - 62,41,75,26,17,0,14,216,41,62,62,249,62,62,62,62, - 62,62,62,22,26,17,0,14,216,41,62,62,249,62,62,62, - 62,62,62,41,22,26,17,0,14,216,41,62,62,249,62,62, - 62,62,62,62,41,22,26,17,0,14,216,41,62,62,249,62, - 62,62,62,62,62,41,75,26,12,26,8,101,8,8,150,208, - 191,191,191,191,191,191,191,69,191,191,191,191,191,121,191,191, - 121,121,121,121,191,121,121,121,121,125,121,121,121,16,121,121, - 121,69,121,121,68,121,125,121,121,16,121,191,121,16,121,16, - 16,121,16,16,16,16,16,16,16,16,208,208,54,63,208,63, - 74,102,74,74,74,74,71,102,248,74,102,74,248,102,74,248, - 74,102,102,248,74,74,74,71,74,74,71,74,248,74,71,71, - 71,102,74,248,74,248,102,71,71,71,102,71,248,74,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,74,71,71,71, - 71,71,74,74,102,248,102,102,74,102,102,102,74,74,102,102, - 248,74,102,71,248,74,248,74,74,248,102,71,248,74,71,71, - 71,71,71,102,71,71,71,71,71,71,71,71,71,144,71,71, - 71,244,71,71,71,71,71,71,71,71,71,74,74,71,74,71, - 71,74,71,71,71,71,74,71,71,71,74,71,144,74,144,140, - 74,71,71,74,71,74,71,74,71,144,144,74,144,144,144,74, - 74,144,71,74,71,102,71,71,71,71,71,71,71,140,71,26, - 101,8,243,8,42,26,26,42,233,110,195,90,90,195,195,90, - 90,90,90,195,60,154,12,8,42,233,110,195,90,90,195,195, - 90,90,128,90,195,60,154,12,12,42,233,110,195,90,90,195, - 195,90,90,90,90,195,60,154,12,12,42,233,110,195,90,90, - 195,195,90,90,128,90,195,60,154,12,8,42,233,110,195,90, - 90,195,195,90,90,128,90,195,60,154,12,12,42,233,110,195, - 90,90,195,195,90,90,90,90,195,60,154,12,12,42,233,110, - 195,90,90,195,195,90,90,90,90,90,60,154,12,8,42,233, - 110,195,90,90,195,195,90,90,90,90,195,60,154,12,12,42, - 233,110,195,90,90,195,195,90,90,90,90,90,60,154,12,12, - 42,233,110,195,90,90,195,195,90,90,90,90,90,60,154,12, - 8,42,233,110,195,90,90,195,195,90,90,90,90,195,60,154, - 12,12,42,233,110,195,90,90,195,195,90,90,90,90,90,60, - 154,12,12,42,233,110,195,90,90,195,195,90,90,90,90,195, - 60,154,12,12,42,233,110,195,90,90,195,195,90,90,90,90, - 195,60,154,12,12,42,233,110,195,90,90,195,195,90,90,90, - 90,90,60,154,12,12,42,233,110,195,90,90,195,195,90,90, - 90,90,90,60,154,12,8,42,233,110,195,90,90,195,195,90, - 90,128,90,195,60,154,12,12,42,233,110,195,90,90,195,195, - 90,90,90,90,195,60,154,12,12,26,8,7,8,8,8,208, - 191,191,191,191,191,191,191,191,191,191,191,191,191,191,121,191, - 191,191,121,121,121,121,121,121,121,69,121,121,121,121,121,69, - 121,121,121,16,121,121,121,121,121,16,121,16,121,16,16,16, - 121,16,121,16,16,16,16,16,16,16,16,208,16,208,208,63, - 74,74,74,74,74,71,102,74,74,248,71,102,248,74,248,74, - 102,102,74,102,102,248,248,102,102,248,102,248,102,71,102,71, - 74,71,71,71,71,71,74,71,74,71,71,71,74,71,74,71, - 71,71,71,71,71,74,71,71,71,71,71,71,71,71,71,74, - 71,71,74,71,74,74,144,71,71,71,74,71,71,71,74,71, - 74,71,102,248,102,74,71,74,248,71,71,71,102,248,74,71, - 102,102,71,102,74,248,74,248,71,71,74,248,74,248,71,71, - 71,74,71,71,71,74,71,71,71,71,71,71,74,71,71,71, - 144,71,71,71,71,71,71,74,74,74,71,71,71,71,71,74, - 71,71,71,74,74,71,71,74,71,71,71,71,74,71,71,71, - 144,144,140,144,144,144,140,71,144,140,71,71,74,71,71,71, - 140,71,140,144,74,144,74,71,71,71,71,71,71,144,140,26, - 67,12,12,67,122,187,26,122,168,128,23,19,23,23,23,19, - 65,65,19,19,90,178,12,187,122,168,128,23,23,23,23,23, - 19,19,65,23,19,195,178,12,109,122,168,128,23,23,23,23, - 23,19,65,65,19,19,195,178,12,109,122,168,128,23,23,23, - 23,23,19,19,65,23,19,90,178,17,109,0,168,128,23,23, - 23,23,23,19,19,65,19,19,195,178,17,109,122,168,128,23, - 23,23,23,23,19,65,65,19,19,195,178,12,109,122,168,128, - 23,19,23,23,23,19,65,65,19,23,90,178,12,187,122,168, - 128,23,23,23,23,23,19,65,65,19,19,195,178,12,109,122, - 168,128,23,23,23,23,23,19,65,65,19,23,90,178,12,109, - 122,168,128,23,23,23,23,23,19,65,65,19,23,90,178,12, - 187,122,168,128,23,23,23,23,23,19,65,65,19,19,195,178, - 12,109,122,168,128,23,23,23,23,23,19,65,65,19,23,90, - 178,17,109,122,168,128,23,23,23,23,23,19,65,65,19,19, - 195,178,12,109,122,168,128,23,23,23,23,23,19,65,65,19, - 19,195,178,12,109,122,168,128,23,23,23,23,23,19,65,65, - 19,23,90,178,17,109,122,168,128,23,23,23,23,23,19,65, - 65,19,23,90,178,12,187,122,168,128,23,23,23,23,23,19, - 19,65,19,19,90,178,17,109,122,168,128,23,23,23,23,23, - 19,65,65,65,19,195,178,12,211,26,8,8,8,8,8,208, - 191,191,191,191,191,191,191,121,191,121,191,121,191,191,191,121, - 16,16,16,121,121,191,121,121,121,121,121,121,121,16,16,121, - 125,69,121,121,121,16,16,16,16,16,121,121,16,121,16,16, - 16,121,16,16,16,16,208,16,208,16,16,54,208,208,208,63, - 74,248,74,74,74,74,74,102,74,102,74,102,248,102,102,71, - 71,248,74,248,74,102,74,71,74,74,74,71,102,71,74,248, - 71,248,74,248,74,71,71,71,74,71,71,71,71,71,71,71, - 71,71,71,71,71,71,74,71,71,71,71,74,71,74,71,71, - 74,71,140,71,71,71,74,74,71,71,71,71,71,71,74,71, - 71,74,71,74,248,102,248,74,102,102,102,71,102,248,102,71, - 74,74,71,248,74,102,74,102,74,248,71,71,71,74,248,74, - 71,102,71,74,71,74,71,74,71,71,71,71,74,71,144,71, - 71,144,71,71,71,71,71,71,71,74,71,71,74,71,71,71, - 71,71,71,71,74,71,71,74,71,74,74,71,140,74,71,71, - 140,71,74,71,74,144,140,144,74,144,140,144,144,140,144,71, - 140,71,74,144,74,144,71,71,74,71,71,71,74,140,140,26, - 182,12,12,8,183,12,26,122,233,204,19,19,65,65,65,65, - 118,65,19,65,195,178,12,243,122,233,204,19,65,65,65,65, - 65,65,65,19,65,60,178,17,243,122,233,204,19,65,65,65, - 65,65,118,65,19,65,60,178,17,243,122,233,204,19,65,65, - 65,65,65,65,65,19,65,195,178,17,243,122,233,204,19,65, - 65,65,65,65,65,65,19,65,90,84,12,243,122,233,204,19, - 65,65,19,65,65,118,65,19,65,90,84,12,243,122,233,204, - 19,19,65,65,65,65,118,65,19,19,60,24,150,243,122,233, - 204,19,65,65,65,65,65,118,65,19,65,90,84,12,243,122, - 233,204,19,65,65,65,65,65,118,65,19,65,195,178,17,243, - 122,233,204,19,65,65,65,65,65,118,65,19,19,90,84,12, - 243,122,233,204,19,65,65,65,65,65,118,65,19,65,60,178, - 17,243,122,233,204,19,65,65,65,65,65,118,65,19,19,90, - 84,12,243,122,233,204,19,65,65,65,65,65,118,65,19,65, - 60,178,17,243,122,233,204,19,65,65,65,65,65,118,65,19, - 65,90,84,12,243,122,233,204,19,65,65,65,65,65,118,65, - 19,19,60,24,12,243,122,233,204,19,65,65,65,65,65,118, - 65,19,65,195,84,150,243,122,233,204,19,65,65,65,65,65, - 65,65,19,19,90,178,17,243,122,233,204,19,65,65,65,65, - 65,118,65,19,65,90,84,12,243,26,8,8,8,8,8,208, - 16,191,191,191,191,121,191,191,191,191,191,191,121,16,191,191, - 16,121,191,16,121,121,121,121,121,121,121,191,121,16,16,121, - 121,121,121,121,121,121,16,121,121,121,16,16,16,16,121,16, - 16,121,16,16,16,16,16,16,54,208,208,54,208,63,208,63, - 74,74,74,102,74,74,74,102,74,74,248,74,102,74,71,74, - 102,74,248,74,102,71,102,248,74,248,71,102,71,74,248,74, - 102,74,71,71,71,248,74,71,71,71,71,74,74,74,74,71, - 71,71,74,71,74,71,71,71,74,74,74,71,74,71,71,74, - 71,71,71,144,71,74,71,71,74,71,140,71,74,74,71,71, - 71,71,74,102,102,74,74,248,74,71,71,102,74,102,74,71, - 74,248,74,74,102,71,71,71,71,71,74,248,74,71,74,71, - 71,71,74,71,71,71,74,71,71,74,144,71,71,71,71,71, - 71,71,140,144,71,71,71,71,71,71,71,71,144,144,71,71, - 74,71,71,71,71,71,71,71,74,71,144,71,71,144,140,144, - 71,144,144,140,71,74,144,74,144,140,71,74,144,71,74,144, - 71,144,71,71,71,74,144,140,144,74,140,144,71,140,140,26, - 8,243,243,8,26,26,17,122,31,204,118,118,118,118,118,118, - 118,118,65,65,128,84,219,211,0,31,170,118,118,118,118,118, - 118,51,118,65,19,128,84,17,211,0,31,170,118,118,118,118, - 118,118,118,118,118,19,128,84,17,211,0,31,170,118,118,118, - 118,51,118,118,51,65,65,128,84,26,211,122,31,204,118,118, - 118,118,118,118,118,118,118,65,128,84,17,211,0,31,170,65, - 118,118,51,118,118,118,118,118,65,128,84,17,211,122,31,204, - 118,118,118,118,118,118,118,118,65,65,128,178,26,211,122,31, - 204,118,118,118,118,118,118,118,118,65,65,128,84,17,211,0, - 31,170,118,118,118,118,118,118,118,118,65,65,128,84,17,211, - 122,31,204,118,118,118,118,118,118,118,118,118,65,128,84,17, - 211,0,31,170,118,118,118,118,118,118,118,118,65,19,128,84, - 17,211,122,31,204,118,118,118,118,118,118,118,118,118,65,128, - 84,17,211,0,31,170,118,118,118,118,118,118,118,118,65,19, - 128,84,17,211,0,31,170,118,118,118,118,118,118,118,118,118, - 65,128,84,17,211,0,31,170,118,118,118,118,118,118,118,118, - 65,65,128,178,17,211,0,31,170,118,118,118,118,118,118,118, - 118,65,65,128,178,26,211,0,31,170,118,118,118,118,118,118, - 118,118,118,65,128,84,17,211,0,31,170,118,118,118,118,118, - 118,118,118,118,65,128,178,17,67,26,8,8,8,8,8,208, - 191,191,191,191,191,191,191,16,16,16,191,16,191,121,16,16, - 191,16,121,16,16,121,191,121,16,121,121,121,16,16,16,121, - 16,121,16,16,16,121,16,121,16,16,16,16,16,16,121,16, - 16,16,16,16,208,16,208,16,208,16,16,208,16,208,208,208, - 100,74,74,100,74,102,74,102,74,74,102,74,248,102,102,74, - 248,74,248,74,102,71,74,248,74,102,74,102,248,74,102,71, - 71,74,71,74,71,71,74,71,74,74,71,71,71,71,74,74, - 71,74,71,74,102,71,74,71,74,71,71,71,74,74,71,140, - 140,74,74,74,144,74,71,71,71,71,144,74,71,71,71,74, - 74,74,71,74,248,102,74,248,74,74,248,248,74,248,102,248, - 74,102,248,74,102,102,74,102,74,71,74,71,71,71,74,74, - 74,71,71,74,74,71,74,74,71,71,74,71,74,71,71,144, - 74,71,71,71,144,71,144,144,144,71,144,74,71,71,144,71, - 71,144,74,71,144,74,71,71,71,71,74,144,74,71,71,140, - 74,74,144,144,144,74,144,74,71,144,140,71,140,144,140,140, - 140,144,140,144,144,74,71,74,144,71,74,144,71,140,140,42, - 139,12,12,211,219,26,26,42,123,53,118,51,51,52,76,51, - 51,52,51,118,128,178,12,8,122,249,53,118,51,51,52,76, - 107,51,52,107,118,128,84,17,8,122,249,53,118,51,51,52, - 51,107,51,107,51,118,128,84,17,8,122,249,53,118,51,51, - 107,76,52,107,52,51,118,128,178,17,8,122,123,53,118,51, - 51,76,52,76,51,52,118,118,128,84,12,8,0,249,53,51, - 51,118,52,52,51,51,51,118,118,128,84,26,8,122,123,53, - 118,51,51,52,76,51,51,52,118,118,128,178,17,8,122,123, - 53,118,51,51,52,51,76,51,52,51,118,128,84,12,8,122, - 249,53,118,51,51,52,51,76,51,52,51,118,128,84,26,8, - 122,123,53,118,51,51,52,51,51,51,107,51,118,128,84,12, - 8,122,249,53,118,51,51,52,51,76,107,52,107,118,128,84, - 26,8,122,123,53,118,51,51,52,51,51,51,107,51,118,128, - 84,12,8,122,249,53,118,51,51,52,51,76,107,52,107,118, - 128,84,12,8,122,249,53,118,51,51,52,51,51,51,51,51, - 118,128,84,12,8,122,249,53,118,51,51,52,51,76,51,52, - 118,118,128,84,12,8,122,249,53,118,51,51,52,76,51,107, - 52,51,118,128,178,17,8,122,249,53,118,51,51,52,76,76, - 51,52,118,118,128,84,17,8,122,249,53,118,51,51,52,51, - 107,51,51,118,118,128,84,26,8,26,8,8,8,8,8,208, - 208,191,191,16,191,16,191,191,191,16,191,16,191,16,16,121, - 208,16,16,16,121,121,121,121,121,16,121,16,121,16,16,121, - 121,121,121,16,16,121,121,16,16,16,121,16,16,16,16,121, - 16,16,16,16,16,16,16,16,208,208,54,208,16,208,208,16, - 74,74,100,102,74,74,74,74,102,102,74,102,102,74,71,102, - 74,102,74,248,71,74,248,74,102,74,74,71,74,248,71,74, - 102,71,74,71,74,74,71,74,71,71,74,71,140,71,71,71, - 74,71,71,71,74,74,74,74,74,74,74,74,74,71,71,71, - 71,71,71,71,74,140,144,140,140,71,74,71,71,74,74,71, - 71,102,74,102,102,102,102,74,102,102,74,74,248,74,74,71, - 74,74,74,248,71,71,71,71,71,74,71,74,74,71,71,71, - 74,71,140,71,144,71,71,71,71,74,71,71,71,144,71,71, - 144,71,74,144,71,71,71,71,71,74,71,71,74,144,71,74, - 74,71,71,71,71,144,71,144,71,74,144,71,71,71,144,71, - 144,71,74,140,140,144,140,144,140,140,144,140,144,140,144,144, - 71,140,144,140,74,144,144,71,74,140,71,71,140,144,39,219, - 8,12,12,8,219,12,187,122,123,53,52,51,76,76,76,232, - 52,52,107,9,204,84,26,8,122,123,53,107,51,76,76,76, - 76,52,52,51,107,204,178,26,8,122,123,53,107,107,76,76, - 232,232,76,52,107,107,204,178,26,8,0,123,53,107,51,76, - 76,76,76,52,51,51,9,204,84,26,211,78,123,53,107,76, - 51,76,76,52,76,51,51,107,204,178,26,8,122,123,53,107, - 51,76,76,76,232,52,52,52,107,204,178,17,211,42,123,53, - 107,76,51,76,76,232,52,52,52,9,204,84,26,211,78,123, - 53,76,107,76,76,232,76,52,52,51,107,204,84,26,8,0, - 123,53,107,51,76,76,232,52,52,52,51,9,204,178,17,211, - 78,123,53,52,51,76,76,232,232,52,52,51,107,204,84,26, - 8,0,123,53,107,107,76,76,232,76,76,52,51,107,204,178, - 17,8,78,123,53,52,51,76,76,232,232,52,52,51,107,204, - 178,26,243,122,123,53,107,107,76,76,232,76,76,52,51,107, - 204,178,26,8,0,123,53,107,107,76,76,232,232,52,52,107, - 107,204,178,26,243,122,123,53,107,51,76,76,232,76,52,52, - 52,107,204,84,26,243,0,123,53,107,51,76,76,76,232,52, - 52,51,9,204,84,26,8,122,123,53,107,51,76,76,52,76, - 52,51,51,107,204,178,26,8,122,123,53,107,107,76,76,232, - 232,52,52,52,107,204,178,26,67,12,8,141,8,12,67,208, - 208,191,16,191,208,191,16,16,16,16,16,191,16,191,191,121, - 16,16,121,16,16,16,121,16,121,121,16,16,16,16,16,121, - 16,121,16,121,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,208,16,208,208,16,208,208,16,208,16,16,208, - 74,74,100,100,102,100,102,74,100,102,74,74,102,102,71,248, - 74,102,74,102,102,102,74,71,71,248,74,102,74,74,71,74, - 71,71,74,71,71,71,71,74,71,74,71,74,71,140,71,71, - 74,71,74,71,71,74,71,74,74,74,71,71,74,74,74,71, - 140,140,140,71,71,74,71,71,71,71,144,140,74,71,74,74, - 74,102,74,74,74,102,102,71,74,248,102,74,248,102,74,248, - 74,102,74,74,102,74,74,248,74,71,71,71,74,71,71,74, - 71,71,74,74,74,71,74,71,71,71,144,140,71,140,71,71, - 144,144,71,74,71,144,74,144,144,71,71,144,71,144,71,144, - 71,144,140,144,74,144,74,144,71,71,140,144,140,71,140,140, - 140,144,71,144,140,71,140,144,140,140,144,140,144,74,140,140, - 71,71,71,114,74,140,140,71,71,140,140,71,71,140,140,183, - 211,243,12,8,26,26,17,122,123,53,76,76,76,76,232,232, - 76,76,51,52,204,154,17,243,122,123,85,76,76,76,76,232, - 232,76,76,52,9,204,154,219,243,122,123,85,76,76,76,76, - 232,232,76,76,51,9,204,154,132,243,122,123,85,76,76,76, - 76,232,232,232,52,51,52,204,154,219,243,122,123,194,76,76, - 76,76,232,232,232,76,52,9,204,168,12,243,122,123,85,232, - 76,76,76,232,232,76,51,52,52,204,84,17,243,122,123,194, - 76,76,76,76,232,232,76,51,51,52,204,154,219,243,122,123, - 53,76,76,76,76,232,232,76,52,52,52,204,154,132,243,122, - 123,85,76,76,76,76,232,232,76,52,51,52,204,168,17,243, - 122,123,53,76,76,76,76,232,232,76,76,52,9,204,154,132, - 243,122,123,85,76,76,76,76,232,232,76,76,52,9,204,84, - 17,243,122,123,53,76,76,76,76,232,232,76,52,51,9,204, - 168,12,243,122,123,85,76,76,76,76,232,232,76,76,52,9, - 204,154,132,243,122,123,85,76,76,76,76,232,232,76,76,51, - 52,204,168,12,243,122,123,85,76,76,76,76,232,232,76,51, - 52,52,204,154,219,8,122,123,85,76,76,76,76,232,232,76, - 52,51,52,204,154,17,243,122,123,85,76,76,76,76,232,232, - 232,76,52,9,204,154,219,243,122,123,85,76,76,76,76,232, - 232,76,76,51,52,204,168,26,8,12,8,8,8,12,8,208, - 208,191,191,208,191,191,16,191,16,208,191,191,16,16,16,191, - 121,208,191,16,16,16,191,16,16,121,121,16,121,16,16,121, - 16,16,16,16,16,121,16,16,16,16,16,16,16,16,16,16, - 16,16,208,16,16,16,54,16,16,16,16,16,208,16,16,208, - 100,74,74,74,100,102,100,102,74,74,102,102,74,74,102,74, - 102,74,248,74,71,74,248,74,102,74,74,71,102,248,74,71, - 74,74,71,74,74,74,71,74,71,140,144,71,71,71,74,74, - 74,71,71,74,74,71,74,71,74,71,74,74,71,74,71,140, - 71,71,71,140,140,71,71,140,140,144,74,71,74,74,74,102, - 74,74,102,102,102,248,74,74,102,74,74,248,74,74,102,74, - 71,74,248,71,74,102,71,74,71,74,74,74,71,74,71,74, - 140,71,71,71,71,140,71,74,140,71,71,71,144,71,140,144, - 74,71,71,144,71,71,71,74,71,144,144,71,74,74,144,71, - 140,71,71,71,71,71,71,74,144,140,71,71,71,140,71,144, - 144,140,140,140,144,140,140,144,140,144,140,140,74,114,71,114, - 140,114,140,74,144,71,71,140,140,140,144,114,140,114,39,26, - 243,12,91,8,219,12,219,42,167,85,232,76,232,148,232,148, - 232,232,52,52,204,168,17,109,122,167,194,76,76,232,148,232, - 148,148,232,76,52,204,168,17,243,122,167,194,76,76,148,232, - 232,148,232,232,232,52,204,168,26,243,122,167,194,232,76,148, - 148,232,148,232,232,52,52,204,168,17,109,42,167,85,76,76, - 148,148,232,148,232,232,52,76,204,168,17,243,122,167,194,76, - 76,148,148,232,148,232,148,52,52,204,168,17,109,122,167,85, - 76,232,148,148,232,148,148,148,52,52,204,168,26,109,42,167, - 194,76,76,232,148,232,148,232,232,52,52,204,168,26,243,122, - 167,194,76,76,232,148,232,148,148,232,52,52,204,154,26,109, - 42,167,85,76,76,232,148,232,148,232,232,52,52,204,168,26, - 243,122,167,194,76,76,232,148,232,148,148,232,76,52,204,168, - 12,109,42,167,85,76,76,232,148,232,148,232,232,52,232,204, - 154,26,243,122,167,194,76,76,232,148,232,148,148,232,76,52, - 204,168,26,243,122,167,194,76,76,232,148,232,148,232,232,52, - 52,204,154,26,243,122,167,194,232,76,232,148,232,148,148,148, - 52,52,204,168,17,109,122,167,194,232,76,232,148,232,148,232, - 232,52,52,204,168,17,109,122,167,194,232,76,232,148,232,148, - 232,232,52,52,204,168,17,211,122,167,194,76,76,148,232,232, - 148,232,232,52,52,204,154,12,8,26,8,8,8,8,8,208, - 208,191,208,191,191,208,191,16,191,16,16,16,16,191,208,121, - 16,121,16,16,191,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 208,208,16,16,208,208,208,208,208,208,208,208,16,208,208,16, - 100,74,100,74,74,74,74,102,74,74,74,248,102,74,102,74, - 248,102,102,74,102,74,102,74,71,74,74,74,74,74,74,71, - 71,74,71,71,71,74,74,71,74,74,74,74,74,140,71,71, - 74,74,71,71,74,71,74,71,74,74,74,74,140,74,71,74, - 74,140,71,71,74,74,71,71,74,74,71,74,71,74,74,74, - 102,74,74,74,74,102,102,74,102,102,74,102,102,74,248,102, - 71,74,74,74,71,74,71,74,71,71,74,74,71,74,74,71, - 140,144,140,74,71,140,144,74,74,71,71,71,144,71,71,71, - 140,144,74,144,140,71,71,140,71,74,74,144,71,71,140,71, - 144,140,144,140,144,144,71,74,71,140,144,140,144,140,74,140, - 144,140,71,140,144,140,140,144,140,140,144,114,74,114,74,144, - 140,144,140,140,140,140,144,74,71,140,74,144,74,114,207,26, - 243,150,187,8,42,91,219,122,237,32,232,148,148,148,148,147, - 232,147,232,232,231,168,219,243,122,237,32,232,148,148,148,148, - 148,232,148,232,232,231,168,17,243,122,237,32,232,148,148,148, - 148,147,232,148,52,232,231,222,26,8,122,237,32,232,232,148, - 148,148,148,232,147,232,232,231,168,219,243,122,237,32,232,232, - 148,148,148,147,148,148,232,232,231,168,17,243,122,237,32,232, - 232,148,148,148,147,148,148,232,232,231,168,17,243,122,237,32, - 76,232,148,148,148,148,148,27,232,232,231,222,17,243,122,220, - 32,232,148,148,148,148,147,232,148,232,232,231,222,26,8,122, - 237,32,232,148,148,148,148,148,232,147,232,232,231,222,26,243, - 122,237,32,232,148,148,148,148,147,232,148,232,232,231,222,26, - 8,122,237,32,232,148,148,148,148,148,232,148,232,232,231,168, - 17,243,122,237,32,232,148,148,148,148,148,232,147,76,232,231, - 222,26,211,122,237,32,232,148,148,148,148,148,232,148,232,232, - 231,222,26,8,122,237,32,232,148,148,148,148,147,232,147,232, - 232,231,222,26,8,122,237,32,232,148,148,148,148,148,148,232, - 232,232,231,168,17,243,122,237,32,232,148,148,148,148,147,232, - 147,232,232,231,168,219,243,122,237,32,232,148,148,148,148,147, - 148,148,232,232,231,168,219,243,122,237,32,232,148,148,148,148, - 148,232,147,232,232,231,168,132,243,26,8,141,8,150,8,208, - 208,191,208,121,191,208,191,208,191,16,191,16,191,16,191,16, - 208,16,16,16,16,191,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,208,16,208,16,16,16, - 16,16,16,16,54,16,54,16,16,54,16,16,16,16,208,208, - 74,100,74,102,100,100,102,74,102,102,102,74,74,102,74,102, - 74,74,74,102,74,102,74,74,102,102,71,102,71,71,74,74, - 74,74,74,74,74,74,71,74,71,71,74,144,140,71,74,144, - 71,71,71,74,71,74,74,74,74,71,74,71,71,140,74,140, - 144,74,74,74,71,140,71,74,71,74,74,74,74,74,102,74, - 74,74,102,74,102,74,74,248,74,74,102,74,74,102,74,74, - 102,74,102,248,74,74,74,74,74,74,71,71,74,74,71,74, - 71,74,71,140,144,74,71,71,144,140,144,140,71,71,74,74, - 71,74,71,71,71,144,144,71,144,71,144,74,144,144,71,144, - 71,71,71,71,71,74,144,71,144,74,144,71,74,144,144,144, - 140,71,140,144,140,140,144,140,140,144,140,74,114,74,114,39, - 144,140,140,144,140,140,140,144,140,74,140,74,144,140,114,187, - 12,12,91,8,42,17,26,122,138,117,193,157,157,157,189,189, - 157,157,193,32,70,228,26,109,42,138,117,193,193,157,157,189, - 157,189,193,193,32,70,228,26,211,0,21,117,193,193,157,157, - 189,189,157,193,193,32,70,31,17,211,122,138,117,193,157,157, - 157,189,157,189,193,193,32,70,228,26,211,122,138,117,193,193, - 157,157,189,189,157,193,193,32,70,31,26,211,122,138,117,193, - 157,157,157,189,189,157,193,193,32,70,228,26,109,42,138,117, - 193,157,157,157,189,189,157,157,193,32,70,31,26,109,122,138, - 117,193,157,157,157,189,189,157,193,193,32,70,31,17,109,42, - 138,117,193,193,157,157,189,189,157,157,193,32,70,31,219,211, - 122,138,117,193,193,157,157,189,189,157,193,193,32,70,31,17, - 109,42,138,117,193,193,157,157,189,189,157,193,193,32,70,228, - 219,109,42,138,117,193,193,157,157,189,189,157,193,193,32,70, - 31,219,243,42,138,117,193,193,157,157,189,189,157,193,193,32, - 70,31,17,211,0,21,117,193,157,157,157,189,189,157,157,193, - 32,70,31,219,211,122,138,117,193,157,157,157,189,189,157,193, - 193,32,70,228,219,211,122,138,117,193,193,157,157,189,189,157, - 157,193,32,70,228,26,211,122,138,117,193,157,157,157,189,189, - 157,193,193,32,70,228,26,211,0,21,117,193,193,157,157,189, - 189,157,157,193,32,70,228,26,182,12,8,8,8,8,141,208, - 208,191,191,191,191,191,121,191,16,191,208,191,208,16,16,121, - 208,121,208,16,16,16,191,16,16,16,16,16,208,16,16,16, - 16,16,16,16,16,16,16,16,208,16,16,16,16,208,208,16, - 16,16,208,208,208,208,208,208,208,208,208,208,208,208,54,16, - 74,102,100,74,102,100,74,74,74,74,102,102,74,102,74,102, - 102,102,74,102,74,102,74,74,74,102,74,74,74,74,102,74, - 71,74,74,74,74,71,140,71,140,144,74,74,71,140,71,74, - 140,140,144,74,71,71,74,71,74,74,74,74,74,74,74,74, - 74,71,144,74,74,140,74,74,74,144,74,74,74,74,74,102, - 74,102,74,74,102,102,74,102,102,74,248,102,74,74,102,74, - 74,74,74,102,74,74,71,74,74,74,74,74,74,71,74,74, - 71,74,71,74,71,74,74,71,71,71,74,140,144,140,144,74, - 71,144,140,144,74,71,140,140,144,74,71,71,74,74,71,74, - 71,140,144,140,71,71,140,74,144,74,140,144,140,140,74,140, - 114,144,140,144,140,140,144,140,140,144,114,74,114,74,144,140, - 140,144,140,140,140,140,140,140,140,144,114,140,140,140,39,183, - 243,150,187,243,219,12,26,122,226,87,21,87,156,30,86,13, - 30,242,18,18,18,59,26,12,122,226,87,18,72,242,30,13, - 13,30,242,18,18,18,59,26,8,0,73,87,21,21,242,30, - 13,13,30,72,18,33,18,200,26,8,122,226,87,21,87,156, - 43,13,13,30,72,18,18,18,59,26,8,122,226,87,21,21, - 156,43,13,13,30,242,18,33,18,59,26,8,0,226,87,21, - 72,156,43,13,13,30,242,21,18,18,59,26,12,122,226,87, - 21,72,156,43,13,13,30,242,21,18,18,59,26,8,0,226, - 87,21,87,242,30,13,13,30,242,18,18,18,224,12,12,122, - 226,87,18,72,242,30,13,13,30,242,18,18,18,59,26,8, - 122,226,87,18,21,156,30,13,13,30,242,18,33,18,59,17, - 12,122,226,87,18,72,242,30,86,13,30,242,21,18,18,200, - 26,12,122,226,87,18,21,156,30,86,13,30,242,18,18,18, - 59,26,12,122,226,87,18,72,242,30,86,13,30,242,18,18, - 18,224,17,12,122,73,87,21,72,156,43,13,13,30,242,18, - 18,18,59,26,12,122,226,87,21,87,156,30,13,13,30,242, - 18,18,18,200,26,8,0,226,87,18,21,156,30,13,13,30, - 242,18,18,18,59,26,8,122,226,87,21,87,156,30,13,13, - 30,242,18,18,18,59,26,8,0,73,87,21,21,156,30,86, - 13,30,242,18,18,18,59,26,8,12,8,12,8,243,7,208, - 208,191,208,191,208,191,208,191,16,16,16,191,191,191,208,191, - 16,208,121,208,121,16,16,16,16,16,16,16,16,16,208,16, - 16,16,16,208,16,16,208,16,16,208,16,16,16,16,16,16, - 208,16,208,16,208,208,16,16,16,208,16,54,16,208,208,208, - 100,100,74,100,100,102,100,102,102,102,74,74,102,102,74,74, - 74,74,102,74,74,74,102,102,74,74,74,102,71,71,74,74, - 74,71,71,74,74,71,74,71,74,74,74,71,140,74,71,71, - 71,71,74,74,74,74,74,74,71,74,74,74,71,74,74,74, - 74,140,74,140,74,71,140,71,74,74,74,74,74,74,74,74, - 74,74,102,74,74,74,74,74,74,102,74,74,102,74,74,102, - 102,102,74,74,71,74,102,74,71,74,71,74,71,74,74,74, - 144,71,74,71,140,140,71,74,144,74,74,71,74,71,74,71, - 140,74,71,71,71,144,71,71,74,71,140,144,71,144,140,144, - 140,71,74,71,144,140,71,144,74,71,144,140,71,140,114,144, - 140,140,140,144,140,144,140,140,140,140,74,114,74,114,140,140, - 144,140,140,144,74,140,140,144,140,140,140,71,144,39,114,187, - 8,17,12,8,26,26,187,0,40,23,250,86,179,146,118,51, - 146,86,86,250,28,111,12,211,0,40,179,250,86,179,146,136, - 51,146,86,86,250,28,111,187,243,0,40,86,250,86,149,146, - 136,118,149,179,250,250,28,111,17,243,0,40,179,250,86,179, - 146,146,51,146,86,86,250,28,111,12,243,0,203,86,250,86, - 179,149,51,51,149,86,250,250,28,111,17,243,0,40,23,250, - 86,149,146,146,51,149,86,250,250,28,111,12,211,0,40,23, - 250,86,149,146,51,51,146,86,250,250,28,111,17,243,0,40, - 23,250,86,149,149,51,51,149,86,86,250,28,61,26,211,0, - 40,179,250,86,149,149,51,51,146,86,86,250,28,111,17,243, - 0,203,179,250,86,179,149,136,51,149,86,250,250,28,111,26, - 211,0,40,179,250,86,149,146,146,118,149,86,250,250,28,111, - 12,211,0,203,179,250,86,179,146,146,51,149,86,86,250,28, - 111,12,211,0,40,179,250,86,149,146,118,51,149,86,86,250, - 28,61,26,211,0,40,23,250,86,179,146,51,51,146,86,86, - 250,28,111,12,211,0,40,23,250,86,179,149,51,51,149,86, - 86,86,138,111,17,243,0,40,179,250,86,179,149,51,51,146, - 86,86,250,28,111,17,243,0,40,179,250,86,179,149,51,51, - 149,86,86,250,28,111,187,243,0,40,86,250,86,179,146,146, - 51,146,86,86,250,28,187,12,8,26,8,8,8,26,8,208, - 208,191,191,16,191,16,191,208,191,208,191,208,121,208,191,16, - 121,208,121,208,16,121,191,16,16,16,16,16,208,16,16,16, - 16,208,16,16,208,16,16,208,16,16,16,16,208,16,208,208, - 16,208,16,208,208,208,208,16,208,16,208,208,208,16,208,208, - 74,100,74,100,100,100,100,100,100,102,100,74,74,102,74,102, - 74,74,102,102,102,74,74,74,102,74,74,102,74,71,74,71, - 74,74,71,74,74,71,140,74,74,144,140,71,71,140,71,140, - 74,74,71,74,71,71,74,74,74,74,74,74,74,74,71,140, - 74,74,74,74,74,74,140,140,74,71,74,74,74,74,74,74, - 74,74,74,74,102,100,74,74,74,74,102,74,102,102,74,74, - 74,74,102,74,248,74,74,74,74,71,74,74,74,71,74,74, - 140,140,140,71,71,74,74,74,144,74,140,71,74,71,140,71, - 71,140,144,140,71,140,144,144,144,71,144,140,74,71,74,71, - 144,144,140,71,144,140,71,144,140,74,144,140,144,140,140,140, - 144,140,140,140,140,144,140,144,144,114,74,114,140,144,140,140, - 144,140,140,114,74,140,140,140,144,140,114,140,144,39,39,183, - 12,17,187,243,219,42,26,0,40,32,157,189,189,189,189,189, - 189,189,157,85,128,61,219,243,0,40,32,157,189,189,189,189, - 189,189,189,157,85,128,61,42,243,0,40,32,157,189,189,189, - 189,189,189,189,157,85,128,61,42,243,0,40,32,157,189,189, - 189,189,189,189,189,157,85,128,61,42,243,0,40,32,157,189, - 189,189,189,147,189,189,157,85,204,61,42,243,0,40,32,157, - 189,189,189,189,189,189,189,157,85,128,61,183,243,0,40,32, - 157,189,189,189,189,189,189,189,157,85,128,61,26,243,0,40, - 32,157,189,189,189,189,147,189,189,157,85,204,61,219,243,0, - 40,32,157,189,189,189,189,189,189,189,157,85,128,61,42,243, - 0,40,32,157,189,189,189,189,189,189,189,157,85,128,61,219, - 243,0,40,32,157,189,189,189,189,189,189,189,157,85,128,61, - 219,243,0,40,32,157,189,189,189,189,189,189,189,157,85,128, - 61,219,243,0,40,32,157,189,189,189,189,147,189,189,157,85, - 204,61,219,243,0,40,32,157,189,189,189,189,189,189,189,157, - 85,128,61,219,243,0,40,32,157,189,189,189,189,189,189,189, - 157,85,128,61,26,243,0,40,32,157,189,189,189,189,189,189, - 189,157,85,128,61,42,243,0,40,32,157,189,189,189,189,147, - 189,189,157,85,128,61,26,243,0,40,32,157,189,189,189,189, - 189,189,189,157,85,204,91,219,141,12,8,243,8,12,8,208, - 208,16,191,208,191,16,16,16,191,16,191,191,16,16,191,208, - 191,191,16,16,16,121,16,16,16,16,16,208,16,16,208,16, - 16,16,16,16,16,16,16,208,16,208,16,16,16,16,16,16, - 16,208,208,54,208,63,208,16,208,208,208,208,208,208,16,208, - 100,102,100,100,100,102,100,102,74,100,102,102,102,102,74,100, - 102,102,74,74,74,102,102,102,74,74,102,74,74,102,74,102, - 74,71,74,71,74,74,74,74,74,74,74,74,74,74,140,71, - 74,74,144,74,74,74,74,74,74,74,74,74,74,74,74,74, - 74,74,71,74,74,74,74,74,140,140,74,74,74,74,74,74, - 74,74,74,74,74,74,102,100,100,102,74,102,74,74,74,102, - 74,102,74,102,74,74,102,102,71,74,71,71,74,74,74,74, - 74,71,74,74,74,140,71,74,74,71,71,140,144,140,71,140, - 140,144,71,71,140,71,74,74,74,140,71,74,144,144,140,144, - 140,74,71,140,71,71,140,140,71,144,74,144,140,140,144,140, - 140,114,144,140,140,140,140,140,140,140,114,140,140,140,140,144, - 140,144,144,140,144,140,140,140,140,144,140,144,140,114,39,187, - 8,132,12,8,26,0,187,0,40,45,232,76,148,76,148,148, - 148,232,52,27,195,91,122,109,0,40,45,232,232,148,76,232, - 148,148,232,52,27,230,91,122,211,0,40,53,52,76,148,76, - 232,147,148,232,52,27,195,91,162,211,0,40,45,52,232,148, - 148,148,148,148,232,52,27,230,91,162,211,0,40,45,232,148, - 76,148,148,77,148,232,52,27,230,91,162,211,0,40,45,52, - 76,232,148,148,147,148,232,52,27,230,91,122,211,0,40,45, - 232,76,76,76,148,148,148,232,52,27,195,91,162,211,0,40, - 45,232,76,148,76,148,147,148,232,52,27,230,91,122,109,0, - 40,45,52,76,232,148,148,147,148,232,76,198,195,91,78,211, - 0,40,45,232,232,148,76,76,147,148,232,52,27,195,91,122, - 211,0,40,45,52,76,148,148,148,147,148,232,52,27,230,91, - 122,109,0,40,45,232,232,148,148,148,147,148,232,52,27,230, - 91,122,109,0,40,45,232,76,76,148,148,147,148,232,52,27, - 230,91,122,211,0,40,45,52,148,76,76,148,148,148,232,52, - 27,195,91,122,109,0,40,45,52,76,148,76,148,148,148,232, - 76,27,195,91,78,211,0,40,53,52,232,148,76,148,148,148, - 232,52,27,195,91,162,211,0,40,45,52,76,148,76,148,147, - 148,232,52,27,230,91,122,211,0,40,45,232,76,148,148,148, - 148,148,232,52,27,230,91,42,8,12,8,12,8,8,141,208, - 208,191,191,191,191,191,16,191,16,208,16,16,191,121,208,16, - 16,16,208,121,208,16,191,16,16,16,16,16,208,16,208,16, - 16,208,16,208,16,208,16,16,208,16,16,208,208,16,208,208, - 208,16,208,208,208,208,208,208,16,16,208,208,208,208,208,208, - 100,100,100,100,100,100,100,100,102,100,74,100,100,102,102,74, - 74,102,102,102,74,74,74,74,102,74,74,102,74,102,74,74, - 74,74,74,74,74,74,71,140,74,71,74,140,71,74,74,74, - 71,74,74,74,140,74,74,144,74,71,74,74,74,74,74,74, - 74,169,140,140,74,74,74,74,74,74,74,140,74,74,74,74, - 74,74,74,100,74,74,74,102,100,100,74,102,102,102,100,74, - 74,102,74,74,102,74,74,74,74,74,74,74,74,74,71,74, - 140,74,74,74,71,140,74,71,74,140,74,74,74,140,71,74, - 74,140,140,144,140,144,140,144,71,140,144,140,140,144,140,71, - 144,140,144,140,144,71,71,144,140,140,74,71,144,140,144,39, - 140,39,144,140,140,140,140,140,144,140,140,144,114,114,140,114, - 140,140,140,140,140,144,140,140,140,140,140,140,140,114,39,183, - 8,17,187,187,17,122,26,0,212,170,9,76,232,148,147,147, - 148,76,232,198,230,26,26,243,0,40,170,9,52,148,148,147, - 148,148,76,27,198,230,26,26,243,0,40,170,52,52,148,232, - 148,147,147,52,232,198,230,26,26,243,0,40,170,52,232,232, - 232,147,148,147,76,27,198,230,26,26,243,0,40,204,52,52, - 232,148,148,147,147,232,27,198,230,26,26,243,0,40,170,52, - 232,232,232,148,148,148,76,27,198,230,26,26,243,0,40,170, - 52,232,148,148,147,147,148,76,232,198,230,26,26,8,0,212, - 170,9,76,148,148,147,147,147,76,27,185,230,26,26,243,0, - 40,170,52,76,232,232,148,147,147,76,232,185,230,26,26,243, - 0,40,170,9,52,148,148,147,148,77,76,232,198,230,26,42, - 243,0,40,170,52,232,232,232,147,148,147,76,27,198,230,26, - 26,243,0,40,170,9,76,232,232,148,147,148,76,27,198,230, - 26,26,243,0,212,231,52,76,232,148,148,147,147,76,27,185, - 230,26,26,8,0,40,170,52,232,232,148,147,147,148,76,232, - 198,230,26,26,243,0,212,170,52,76,232,232,147,148,148,232, - 232,198,230,91,42,243,0,40,170,52,76,148,232,147,147,147, - 76,232,198,230,26,26,243,0,212,170,52,76,148,148,147,148, - 147,76,27,198,230,26,26,243,0,40,170,52,52,232,148,147, - 147,147,76,27,198,230,26,26,8,12,8,8,8,12,8,208, - 208,16,208,16,191,191,16,208,191,16,191,208,16,191,191,208, - 208,191,121,208,121,208,16,16,16,16,16,16,16,16,208,16, - 208,16,208,16,16,208,16,208,16,208,16,16,208,16,16,16, - 208,208,208,208,208,208,208,16,208,208,208,208,208,208,16,208, - 100,100,100,100,100,100,102,100,100,100,100,102,74,100,100,102, - 100,100,100,74,102,102,102,102,74,102,102,74,74,74,102,74, - 102,74,71,74,74,74,74,71,74,140,74,74,74,74,140,140, - 74,74,71,140,71,74,140,74,74,140,74,74,74,74,74,74, - 140,74,74,74,74,74,74,74,74,140,140,74,74,74,74,74, - 100,74,74,74,74,100,74,100,74,102,74,100,74,74,102,102, - 102,74,102,102,74,74,102,74,102,74,71,74,74,74,74,74, - 71,74,71,74,74,74,74,140,140,74,74,71,140,74,140,140, - 140,71,74,74,74,74,71,74,144,140,74,74,74,74,74,140, - 140,71,74,71,140,140,144,140,71,71,144,140,140,140,140,144, - 140,140,140,140,140,140,140,140,140,140,140,39,140,140,39,140, - 140,140,140,140,140,140,140,140,140,140,140,144,144,39,39,17, - 91,150,12,8,219,26,26,0,40,98,165,45,194,53,194,53, - 32,45,45,165,230,91,122,187,0,212,98,165,45,53,53,194, - 194,32,45,53,165,230,91,78,187,0,37,98,165,45,45,194, - 194,194,194,45,45,165,230,91,122,187,0,212,98,165,45,53, - 194,194,194,194,45,53,165,230,91,122,187,0,40,98,45,45, - 53,194,194,194,194,45,53,165,230,91,122,187,0,212,98,165, - 45,53,194,194,194,32,45,53,165,230,91,122,187,0,212,98, - 165,45,53,53,194,194,194,98,53,165,230,91,162,187,0,40, - 98,165,45,53,194,194,194,194,45,53,165,230,91,122,187,0, - 212,98,45,45,53,53,194,194,194,45,53,165,230,91,162,187, - 0,212,98,165,45,53,194,194,194,194,45,194,231,230,91,122, - 187,0,212,98,165,45,45,194,194,194,194,45,53,165,230,91, - 122,187,0,212,98,165,45,45,194,194,53,32,45,53,165,230, - 91,122,187,0,40,98,165,45,53,194,194,194,194,45,53,165, - 230,91,122,187,0,212,98,165,45,53,53,194,194,194,45,45, - 165,230,91,122,187,0,40,98,45,45,53,194,194,194,194,45, - 53,231,230,91,122,187,0,212,98,165,45,53,194,194,194,194, - 45,45,165,230,91,78,187,0,40,98,165,45,53,194,194,194, - 194,45,53,165,230,91,122,187,0,212,98,45,45,53,53,194, - 194,194,45,53,165,230,91,122,8,12,8,12,8,8,141,208, - 208,191,191,191,16,208,191,191,208,191,208,191,191,208,16,191, - 16,208,16,208,121,16,16,16,16,16,16,16,208,16,16,16, - 208,16,16,208,16,16,208,16,16,208,208,208,16,208,208,208, - 16,208,208,63,208,208,208,208,54,208,16,208,208,63,208,208, - 100,100,100,100,100,100,100,102,100,102,100,100,102,74,100,102, - 102,102,100,100,100,100,100,74,74,74,102,74,74,74,74,74, - 74,74,74,74,74,74,74,74,74,140,74,140,74,74,71,140, - 140,140,74,74,74,74,74,140,74,140,140,74,169,74,100,100, - 74,100,74,74,74,74,74,74,74,74,74,140,140,140,140,74, - 74,100,74,74,74,100,74,74,100,100,102,102,100,100,74,74, - 100,74,74,74,74,74,100,74,74,74,74,74,74,74,74,74, - 140,140,140,140,74,74,71,74,74,74,140,74,71,74,74,74, - 140,140,74,140,74,140,140,140,74,144,140,144,140,144,74,71, - 140,144,140,71,140,71,144,140,114,140,144,140,144,144,140,140, - 140,140,140,140,144,140,140,140,140,140,140,140,140,144,140,140, - 140,140,140,140,144,140,144,140,140,140,140,140,114,114,39,166, - 91,12,187,12,219,8,26,162,162,31,251,123,167,79,79,79, - 167,167,123,123,168,26,26,211,0,162,251,123,123,79,167,79, - 79,79,167,167,251,168,187,42,211,221,162,251,123,123,167,79, - 79,79,79,167,123,228,206,12,42,211,0,162,31,251,123,123, - 79,79,79,79,167,167,228,168,187,42,8,0,162,31,251,123, - 167,79,79,79,79,167,123,228,73,187,26,211,0,162,251,123, - 123,123,79,79,79,167,167,167,228,73,187,42,211,0,162,251, - 251,123,79,103,79,79,79,167,123,123,168,17,26,8,0,162, - 251,251,123,123,79,79,79,79,167,123,228,168,26,26,211,0, - 162,251,31,123,55,167,79,79,79,167,123,228,206,12,42,211, - 0,162,251,123,123,167,79,79,79,167,167,123,123,168,26,26, - 211,0,162,251,123,123,167,79,79,79,79,167,167,228,168,26, - 26,211,0,162,251,123,123,167,79,79,79,79,167,167,228,73, - 12,42,8,0,162,251,123,123,167,79,79,79,79,167,123,228, - 206,12,42,211,0,162,251,123,123,167,55,79,220,79,167,123, - 123,168,26,26,8,0,162,251,31,123,103,79,79,220,79,167, - 123,123,73,12,42,211,0,162,251,251,123,123,79,79,79,79, - 167,123,123,168,26,42,211,0,162,251,251,123,123,79,79,79, - 79,79,123,228,206,187,26,211,0,162,31,251,123,79,167,79, - 79,79,167,123,228,73,187,42,211,12,8,12,8,150,7,208, - 208,191,208,191,191,208,191,191,208,191,16,208,191,16,16,208, - 16,16,16,16,16,16,16,16,208,16,16,208,16,16,208,16, - 16,208,16,208,208,16,16,208,16,208,16,208,16,208,16,208, - 208,208,208,208,208,208,208,208,16,208,208,208,208,54,208,208, - 100,100,100,100,100,100,100,100,102,100,100,74,100,102,74,100, - 100,100,102,74,102,74,102,102,102,100,100,102,74,100,102,74, - 74,100,74,74,74,74,74,74,74,74,74,74,140,74,74,74, - 74,74,74,140,140,74,140,74,74,74,74,74,74,100,140,74, - 100,74,74,140,74,100,140,140,140,100,140,100,74,74,74,140, - 140,140,74,74,74,74,74,100,74,74,100,100,74,102,100,102, - 100,102,100,102,74,102,74,100,74,100,74,74,74,74,74,74, - 74,74,74,74,74,74,74,74,74,140,74,74,140,140,74,74, - 74,74,140,71,140,74,74,74,140,140,74,74,140,74,114,140, - 140,140,140,140,74,140,74,140,74,74,140,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,39,140,140,140,140,140,144, - 140,74,114,140,74,140,140,140,144,140,140,144,140,39,114,150, - 12,17,12,8,26,91,219,0,0,0,0,0,0,0,0,0, - 0,0,0,0,26,132,42,243,0,0,0,0,0,0,0,0, - 0,0,0,0,0,26,187,26,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,17,42,243,0,0,0,0,0,0, - 0,0,0,0,0,0,0,26,17,26,187,0,0,0,0,0, - 0,0,0,0,0,0,0,0,219,187,26,12,0,0,0,0, - 0,0,0,162,0,0,0,0,0,219,187,42,243,0,0,162, - 0,0,0,0,0,0,0,0,0,0,26,17,219,187,0,0, - 162,0,0,0,122,0,0,0,0,0,0,26,132,42,243,0, - 0,0,0,0,0,0,0,0,0,0,0,0,219,17,42,243, - 0,0,0,0,0,0,0,0,0,0,0,0,0,26,132,42, - 243,0,0,0,0,0,0,0,162,0,0,0,0,0,26,132, - 42,243,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 187,26,187,0,0,0,0,0,0,122,0,0,0,0,0,0, - 219,17,219,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,26,150,26,187,0,0,0,0,0,0,0,0,0,0,0, - 0,0,219,17,42,243,0,0,0,0,0,0,0,0,0,0, - 0,0,0,26,132,42,243,0,0,0,0,0,0,122,0,0, - 0,0,0,0,219,17,26,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,17,219,12,17,8,8,12,26,8,208, - 191,208,208,191,208,191,208,191,208,191,191,208,16,208,16,16, - 16,191,208,16,16,208,16,16,16,16,16,16,208,16,208,16, - 16,16,16,208,16,208,16,208,208,16,208,16,208,208,208,208, - 208,54,208,208,63,208,208,16,208,208,208,208,208,208,16,208, - 100,100,100,100,100,100,100,100,102,100,100,102,100,100,102,100, - 102,100,102,100,102,100,100,100,102,102,100,102,100,100,100,102, - 74,100,74,74,100,74,74,74,74,74,74,74,74,74,74,74, - 74,74,74,74,140,74,74,74,74,74,140,74,74,74,100,74, - 100,74,100,140,140,100,100,100,140,100,74,100,74,100,74,100, - 74,74,74,74,74,74,74,74,100,74,74,100,100,74,102,100, - 100,102,100,102,100,74,102,74,102,100,74,74,74,100,100,74, - 100,74,100,74,140,74,74,140,74,74,140,74,74,140,140,140, - 140,74,140,74,71,144,140,140,140,140,140,71,140,74,140,144, - 140,71,140,144,140,144,74,144,140,144,140,144,140,140,144,140, - 140,144,140,140,140,140,140,140,140,140,114,140,140,140,140,140, - 114,74,140,114,140,140,144,140,140,140,140,140,144,39,114,187, - 12,26,187,243,219,91,42,122,12,26,26,26,26,42,26,17, - 219,219,219,219,17,132,42,17,42,26,26,26,26,26,122,26, - 17,219,219,219,219,17,132,219,17,42,26,26,26,26,42,42, - 26,219,219,219,219,26,17,132,42,17,42,17,26,26,26,42, - 42,26,17,219,219,219,219,17,132,219,12,42,17,26,26,26, - 26,42,26,219,219,219,219,219,17,132,183,17,42,26,26,26, - 26,42,42,26,17,219,219,219,219,17,132,42,17,42,26,26, - 26,26,42,42,26,219,219,219,219,219,17,219,219,187,42,26, - 26,26,26,42,42,26,17,219,219,219,219,187,132,42,17,42, - 26,26,219,26,26,42,26,17,219,219,219,26,17,132,42,17, - 42,26,26,26,26,42,42,219,219,219,219,219,219,187,132,42, - 187,42,26,26,26,26,26,42,26,17,219,219,219,219,17,132, - 42,187,42,26,26,26,26,26,42,26,17,219,219,219,219,17, - 132,219,187,42,26,26,26,26,42,42,26,17,17,219,219,26, - 17,219,219,17,42,26,26,26,26,42,42,26,219,219,219,219, - 219,219,132,183,187,42,26,26,219,26,42,42,26,219,219,219, - 219,219,17,132,42,17,42,26,26,26,26,42,42,26,219,219, - 219,219,219,17,132,42,17,42,26,26,26,26,42,42,26,17, - 219,219,219,26,17,132,219,17,42,26,26,26,26,26,42,26, - 17,219,219,219,219,17,219,219,12,26,12,243,8,150,141,208, - 208,191,208,191,208,191,16,208,191,208,191,191,191,208,191,16, - 208,16,16,16,16,16,208,16,16,208,16,16,16,16,16,208, - 16,208,16,208,16,208,16,208,208,208,208,16,16,208,16,208, - 208,208,16,208,208,208,208,16,16,16,208,208,208,208,208,208, - 88,100,100,100,100,100,100,100,100,100,100,100,100,102,100,102, - 100,100,100,100,100,102,100,100,100,100,102,100,100,102,74,100, - 102,74,74,74,74,100,100,100,74,100,100,74,74,140,74,74, - 74,140,140,140,74,74,140,140,140,74,74,74,140,100,74,74, - 74,100,74,100,100,74,140,74,100,74,74,140,169,140,100,74, - 74,140,140,169,140,140,140,74,74,100,102,100,102,100,100,102, - 100,100,102,100,100,100,100,100,100,74,74,100,100,74,74,100, - 74,100,74,140,100,140,100,74,74,74,74,169,100,74,74,74, - 74,140,74,140,140,74,74,74,74,144,74,140,74,140,74,74, - 74,140,74,140,74,140,140,140,140,74,140,140,140,140,140,74, - 140,140,140,140,140,144,140,140,140,140,140,140,140,140,140,140, - 140,39,140,140,140,140,140,74,144,140,140,74,140,39,39,187, - 12,166,12,8,42,12,219,26,150,12,150,17,219,17,12,243, - 150,150,12,17,187,219,42,187,26,243,12,150,17,219,12,12, - 243,150,150,150,17,17,219,42,12,26,243,12,150,17,219,17, - 17,8,150,150,12,17,187,219,42,187,26,150,12,150,17,219, - 17,12,243,150,150,150,17,17,219,42,187,26,150,12,150,17, - 219,17,12,8,150,150,150,17,17,219,26,12,26,150,12,150, - 219,219,17,17,243,150,150,150,17,17,219,26,187,26,243,12, - 150,17,219,17,12,8,150,150,12,12,187,17,26,12,26,243, - 12,150,17,219,17,12,243,150,150,12,17,17,219,26,187,26, - 150,12,17,17,219,17,17,243,150,150,12,17,17,17,42,187, - 26,243,12,150,17,219,17,12,8,150,150,12,17,17,219,42, - 12,26,243,12,150,17,219,17,17,243,150,150,150,17,187,219, - 42,12,26,243,12,150,17,219,17,17,243,150,150,150,12,17, - 219,26,12,26,243,12,150,17,219,17,12,243,150,150,12,12, - 17,17,42,12,26,150,12,150,219,219,17,17,8,150,150,12, - 17,187,219,26,12,26,150,12,17,219,219,17,17,8,150,150, - 12,17,187,219,42,187,26,243,12,150,17,219,17,17,8,150, - 150,12,17,187,219,26,187,26,243,12,150,17,219,17,12,243, - 12,150,150,17,17,219,42,12,26,243,12,150,17,219,17,17, - 243,150,150,12,17,187,17,26,12,12,12,243,8,12,67,208, - 208,191,208,191,191,208,191,208,208,191,208,16,16,16,16,191, - 16,208,16,191,208,16,16,16,16,16,16,16,16,208,16,208, - 16,16,16,208,208,16,208,16,208,16,16,208,208,16,208,208, - 16,208,208,208,16,208,54,208,208,208,208,208,208,208,54,208, - 100,100,88,100,100,102,100,100,102,100,100,100,100,100,100,100, - 100,100,100,100,100,102,100,102,100,100,102,100,100,100,102,100, - 100,102,100,100,74,100,74,100,74,74,100,100,100,74,100,140, - 74,100,74,74,140,74,74,74,140,74,140,74,74,74,100,74, - 140,169,74,74,100,100,140,140,74,169,74,74,74,140,169,140, - 74,74,74,74,74,100,169,74,100,100,100,100,100,100,100,100, - 102,100,100,102,102,102,100,102,100,102,100,74,100,100,74,100, - 74,100,100,74,100,74,100,140,169,140,74,74,74,140,74,140, - 74,140,74,74,74,140,140,140,74,140,74,74,74,140,140,140, - 140,140,74,140,74,140,140,144,140,74,140,140,140,140,114,140, - 140,140,140,140,140,140,140,144,140,140,140,140,140,140,140,140, - 140,140,140,140,140,144,39,140,140,140,114,74,140,39,39,187, - 12,17,187,243,219,150,219,219,150,17,17,17,17,17,17,243, - 150,150,12,17,12,17,26,243,219,150,17,17,17,219,17,26, - 243,12,12,150,17,17,17,26,150,219,150,17,17,17,17,17, - 17,243,150,150,150,17,12,17,26,150,26,150,17,17,17,17, - 17,26,243,12,12,12,17,12,17,26,150,26,150,17,17,17, - 17,17,17,150,150,12,12,12,17,219,26,243,219,150,17,12, - 17,17,17,17,243,12,12,12,17,12,219,26,243,219,150,17, - 17,17,132,17,17,150,150,150,17,17,17,219,26,243,219,150, - 17,17,17,17,17,26,243,150,150,12,17,12,219,26,243,219, - 150,12,17,219,17,17,26,243,150,150,150,17,17,17,26,243, - 219,150,17,17,17,17,17,17,243,150,150,12,17,12,219,26, - 150,219,150,17,17,17,17,17,26,243,12,12,12,17,12,219, - 26,243,219,150,17,17,17,17,17,26,243,12,12,17,12,17, - 219,26,243,219,150,17,17,17,17,17,26,243,150,150,150,17, - 17,17,26,243,219,150,12,150,17,17,17,17,243,150,150,12, - 17,12,17,26,243,219,150,12,17,17,17,17,17,243,150,150, - 12,17,12,17,26,243,219,150,17,17,17,17,17,17,243,150, - 150,12,17,12,219,26,243,219,150,17,17,17,17,17,26,243, - 12,12,150,17,17,17,26,150,219,150,17,17,17,17,17,26, - 243,150,150,12,17,17,17,26,243,219,12,8,12,12,8,208, - 208,208,191,208,191,191,208,191,208,208,191,208,16,208,16,208, - 16,16,208,16,16,208,16,16,208,16,16,208,16,16,208,16, - 16,208,16,208,16,208,208,16,208,208,208,16,208,208,16,208, - 16,16,208,208,208,208,208,208,208,16,208,208,208,208,208,208, - 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, - 100,102,100,102,100,100,100,100,100,100,100,100,102,100,100,100, - 100,100,100,74,100,74,100,74,74,100,74,140,74,100,74,74, - 169,74,74,100,74,74,74,74,100,74,74,74,74,169,140,169, - 100,74,140,74,169,74,100,100,169,74,74,100,100,100,74,100, - 140,169,140,169,140,140,74,169,74,74,74,100,102,100,100,100, - 100,100,100,100,100,100,100,100,100,100,74,100,100,100,100,74, - 74,74,74,74,74,140,74,100,74,100,74,140,169,74,140,74, - 140,74,74,140,140,74,74,74,140,140,140,140,74,74,74,74, - 74,140,140,140,144,140,74,140,140,114,140,140,140,140,140,140, - 71,140,140,140,140,140,140,140,140,140,140,144,140,140,140,140, - 144,140,140,140,140,140,144,74,114,140,74,114,140,114,207,17, - 12,26,26,12,42,8,219,26,17,17,132,17,132,150,219,150, - 17,17,150,17,17,187,26,109,219,17,17,132,17,12,150,219, - 12,150,150,17,17,17,187,26,109,219,17,17,132,17,132,150, - 26,150,12,17,17,17,17,17,26,109,219,12,17,132,187,150, - 150,219,150,150,150,150,17,17,187,26,109,219,17,17,150,219, - 132,150,26,150,17,150,150,132,12,187,219,109,219,12,17,132, - 17,132,150,219,150,150,150,150,132,17,187,26,109,219,12,17, - 132,187,17,150,26,150,12,17,150,17,12,187,26,109,219,12, - 17,132,17,150,150,17,150,17,17,150,17,17,187,219,109,219, - 150,132,132,17,150,150,219,150,17,17,12,132,17,187,26,109, - 219,17,17,132,219,132,12,219,150,17,17,150,17,17,187,26, - 109,219,17,17,132,17,150,150,219,150,150,150,150,17,17,187, - 26,109,219,17,17,132,17,150,150,219,12,150,150,150,132,12, - 187,26,109,219,17,17,132,17,150,150,219,150,17,17,17,17, - 17,187,219,109,219,17,17,219,17,132,150,26,150,17,17,150, - 17,17,187,26,109,219,150,17,132,17,132,150,26,150,17,17, - 150,132,17,219,219,109,219,12,17,132,17,132,150,26,150,17, - 17,150,17,17,187,26,109,219,12,17,132,219,150,150,219,150, - 150,150,12,17,17,187,26,109,219,12,17,132,17,150,150,219, - 150,17,150,150,17,17,17,219,243,12,12,8,8,12,141,208, - 208,208,208,191,208,191,208,191,208,208,16,208,191,208,16,191, - 208,16,208,16,208,16,208,16,16,16,16,208,16,208,16,16, - 208,16,16,208,208,208,16,208,208,208,16,208,208,16,208,208, - 208,208,16,208,208,208,208,208,208,208,208,208,63,208,208,208, - 100,88,100,88,100,100,100,100,102,100,100,100,100,100,102,100, - 102,100,100,100,100,100,100,100,100,100,102,100,100,100,102,100, - 102,100,100,102,100,100,100,100,74,74,100,140,140,100,100,74, - 169,100,140,100,140,140,169,74,169,74,74,74,74,74,74,74, - 74,100,100,74,100,74,100,74,100,169,140,140,74,100,74,100, - 74,74,74,100,74,140,74,169,169,100,100,100,100,100,100,100, - 100,100,100,102,100,102,100,100,74,100,102,100,74,100,100,100, - 100,74,100,169,100,74,74,169,74,100,74,74,74,100,74,100, - 74,140,74,74,140,74,140,74,74,74,74,140,140,140,140,140, - 74,74,74,140,140,140,74,140,74,140,144,140,140,140,140,140, - 140,144,140,140,140,140,140,140,140,140,140,140,140,144,140,140, - 140,140,114,140,74,140,114,74,140,114,140,140,140,39,39,183, - 12,17,17,243,42,12,17,219,12,17,132,219,17,12,26,150, - 150,17,17,17,17,132,26,243,219,12,17,132,219,17,12,219, - 150,219,17,150,17,17,132,26,211,219,12,17,132,219,17,150, - 26,150,150,132,150,219,17,150,26,243,219,12,17,132,219,17, - 12,26,150,219,17,150,219,17,150,26,243,219,150,17,132,219, - 17,150,26,150,17,17,17,219,12,187,26,243,219,12,17,132, - 219,17,12,26,150,219,17,17,17,17,132,26,243,219,12,17, - 132,219,17,150,26,150,150,17,150,219,12,132,26,243,219,12, - 17,132,219,17,17,26,150,150,17,12,219,12,187,26,243,26, - 12,17,132,219,17,12,26,150,150,150,17,219,17,132,26,243, - 219,12,17,132,219,17,12,26,150,150,17,12,219,12,132,26, - 243,219,12,17,132,219,17,12,26,150,219,17,12,17,17,132, - 26,243,219,12,17,132,219,12,12,219,12,17,17,17,219,12, - 132,26,243,219,12,17,132,219,17,12,26,150,150,150,150,17, - 17,187,26,243,219,150,150,132,219,17,150,26,150,150,17,12, - 219,12,132,26,243,26,150,17,132,219,17,150,219,150,150,17, - 17,17,12,187,26,243,219,150,17,132,219,17,150,26,150,150, - 17,12,219,12,132,26,243,219,150,17,132,219,12,17,219,12, - 219,150,150,17,17,132,26,109,219,12,17,132,219,17,12,26, - 150,17,17,150,17,17,187,26,211,219,243,243,8,150,67,208, - 208,208,191,208,191,208,191,208,208,191,208,191,208,191,208,16, - 208,208,16,16,208,16,16,208,16,208,16,16,208,16,208,16, - 16,208,16,16,208,208,208,16,208,208,208,16,208,208,208,208, - 208,208,208,16,208,208,208,54,208,208,208,208,208,208,208,208, - 88,100,100,88,100,100,100,100,100,100,100,102,100,100,100,100, - 100,100,102,100,100,100,100,102,100,100,102,100,102,100,100,100, - 100,74,100,100,100,74,100,140,169,100,74,74,100,140,140,100, - 74,140,74,74,100,100,74,140,74,140,140,140,74,74,140,169, - 100,100,140,100,140,169,74,100,100,74,100,100,169,140,169,100, - 100,100,140,140,169,100,169,74,74,100,100,100,100,100,102,100, - 102,100,100,100,100,100,100,102,100,74,100,74,100,74,100,74, - 140,100,140,74,74,100,100,74,169,140,100,74,100,74,169,74, - 169,140,74,74,74,140,74,140,74,140,140,74,74,74,74,74, - 140,140,140,140,140,140,114,140,140,140,140,140,140,140,140,140, - 140,140,140,140,140,140,74,140,140,140,140,140,140,140,140,140, - 140,140,140,140,140,140,140,39,114,140,140,140,140,114,39,187, - 12,17,17,8,183,211,219,26,150,17,17,17,150,17,219,150, - 17,150,132,17,132,150,26,211,26,150,17,17,150,132,150,219, - 12,132,150,12,17,132,150,26,243,26,150,17,17,17,150,17, - 219,150,17,12,17,17,132,132,26,211,42,150,132,17,17,150, - 132,219,12,150,150,17,17,132,132,219,211,26,12,17,17,17, - 150,17,219,12,132,150,12,17,17,150,26,211,26,150,132,17, - 17,150,17,219,12,150,150,17,17,132,150,26,109,42,150,17, - 17,17,150,17,219,12,219,150,17,17,132,150,26,109,42,150, - 17,17,17,132,150,219,12,17,150,150,17,132,150,26,211,219, - 150,17,17,17,150,132,219,150,17,17,12,17,132,150,26,211, - 26,150,17,17,17,150,17,219,150,219,150,150,17,132,150,26, - 211,26,150,17,17,17,150,132,219,12,132,150,150,17,132,150, - 26,211,26,150,17,17,17,132,132,219,150,132,150,12,17,132, - 150,26,211,26,150,17,17,17,150,132,219,12,219,17,17,17, - 132,150,26,211,26,12,219,17,17,150,17,219,150,17,150,150, - 17,17,150,26,211,219,12,17,17,17,150,17,26,150,17,150, - 12,17,166,150,26,109,42,12,150,17,17,150,17,219,150,17, - 150,150,17,132,150,26,109,26,12,17,17,17,132,132,219,150, - 132,17,17,17,132,150,26,243,26,150,17,17,17,150,132,219, - 12,132,150,17,17,132,150,26,243,17,12,12,8,243,141,208, - 208,208,208,191,16,191,208,191,191,191,208,191,208,16,191,208, - 16,208,208,16,208,16,208,16,208,16,208,208,208,16,208,208, - 16,208,208,208,16,16,16,208,208,16,208,208,208,208,208,208, - 208,208,208,208,208,16,208,208,16,16,208,208,63,208,63,208, - 100,100,88,100,88,100,100,100,100,100,100,100,100,100,102,100, - 100,102,100,100,100,100,100,100,100,100,100,100,102,100,74,100, - 102,100,100,100,100,74,100,74,140,100,100,74,100,100,140,169, - 100,100,140,74,140,100,100,169,100,140,74,140,140,74,74,140, - 74,100,74,100,74,169,74,140,100,74,100,74,100,74,140,140, - 169,100,74,169,140,169,169,169,140,100,169,100,100,100,100,100, - 100,100,102,100,102,100,100,74,102,100,100,100,102,100,100,100, - 74,100,74,74,140,140,100,74,100,140,169,140,169,74,140,74, - 100,140,140,140,74,140,74,140,74,74,140,74,140,140,140,74, - 140,144,140,140,140,140,140,140,74,140,140,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 140,140,169,140,140,140,140,140,140,140,140,140,140,127,39,183, - 12,187,26,8,42,243,17,26,150,17,17,17,150,17,26,150, - 17,150,219,219,26,132,26,109,26,150,132,17,17,17,17,219, - 12,132,132,17,17,26,132,26,109,26,150,17,17,17,132,17, - 26,150,132,150,17,17,26,150,26,211,26,12,219,17,17,17, - 17,219,12,219,150,17,219,26,187,26,211,26,150,17,17,17, - 150,17,219,12,17,132,17,132,26,132,26,109,26,17,17,17, - 17,150,219,219,12,17,150,17,219,26,150,26,109,26,150,132, - 150,17,132,17,219,150,17,150,132,219,26,132,26,211,26,150, - 17,17,17,17,17,219,150,219,150,17,219,26,132,26,109,26, - 150,132,17,17,17,17,26,150,132,132,17,219,26,132,26,109, - 26,150,17,17,17,150,17,26,150,17,132,17,219,26,132,26, - 211,26,150,219,17,17,17,17,219,12,219,150,219,219,26,132, - 26,109,26,150,17,17,17,17,17,219,12,219,150,17,219,26, - 132,26,211,26,150,17,17,17,17,17,219,150,150,150,132,219, - 26,132,26,109,26,12,17,17,17,132,17,26,150,219,150,17, - 132,26,132,26,109,219,150,17,17,17,132,150,26,150,17,132, - 12,219,26,150,26,211,26,17,17,17,17,132,17,26,150,219, - 150,17,219,26,132,26,109,26,150,17,17,17,17,17,219,12, - 132,150,17,17,26,132,26,109,26,150,132,17,17,17,17,219, - 12,17,150,132,17,26,150,26,211,17,243,8,12,12,8,105, - 208,208,191,208,208,191,208,208,208,208,191,208,16,208,16,208, - 208,208,16,208,16,16,208,16,16,208,16,208,16,208,208,16, - 16,16,208,208,208,208,16,16,208,208,208,208,54,208,54,208, - 63,208,54,208,208,16,208,208,208,54,208,208,208,208,63,208, - 169,100,100,88,100,100,100,100,100,102,100,100,100,100,102,100, - 100,100,100,100,102,100,102,100,102,100,100,100,100,102,100,100, - 100,100,102,74,100,100,100,100,100,74,74,100,74,74,100,74, - 74,140,100,169,100,140,140,74,140,100,140,140,100,169,140,74, - 169,74,100,100,100,74,169,100,169,169,74,100,74,169,100,100, - 100,140,169,140,169,74,169,169,100,169,100,100,100,100,100,100, - 100,100,100,100,100,74,100,100,100,100,100,100,100,100,100,74, - 100,74,100,169,100,100,140,100,74,100,74,74,74,74,100,100, - 74,100,74,74,140,74,140,140,140,140,74,140,74,74,74,140, - 140,74,140,74,140,74,74,140,140,140,140,140,140,140,140,140, - 74,140,140,74,140,140,140,140,140,140,140,140,140,169,140,140, - 169,140,140,169,140,140,140,140,140,140,140,140,140,39,39,187, - 12,219,187,12,42,243,219,42,12,17,150,17,132,132,219,12, - 132,12,150,219,17,187,219,243,42,12,219,17,17,150,150,42, - 150,17,17,150,219,17,187,17,243,42,12,17,150,17,17,132, - 219,12,17,17,150,219,17,187,219,109,42,12,17,150,17,150, - 150,42,150,132,17,150,17,17,187,219,243,219,12,219,150,17, - 17,132,219,150,132,17,132,219,17,187,219,211,42,12,17,150, - 17,132,150,42,150,132,17,150,219,17,187,17,243,42,12,219, - 17,17,17,150,219,12,132,12,17,219,17,187,219,243,42,17, - 17,150,17,150,150,219,12,132,17,150,219,17,187,17,12,42, - 12,219,150,17,150,150,219,12,17,12,150,219,17,187,219,243, - 42,12,17,150,17,132,132,219,12,132,12,132,17,17,187,219, - 243,42,12,17,150,17,150,150,26,150,132,12,150,219,17,187, - 219,243,42,12,219,150,17,150,150,42,150,132,17,132,17,17, - 187,219,243,42,12,219,150,17,150,150,219,12,17,17,17,17, - 17,187,219,243,219,150,17,150,17,17,150,219,12,132,17,132, - 219,17,187,219,8,42,12,17,150,17,17,17,219,12,132,17, - 132,17,17,187,17,243,219,12,17,150,17,17,150,219,12,132, - 17,150,219,17,187,17,243,219,12,17,150,17,150,12,26,150, - 17,17,132,219,17,187,17,243,42,12,219,150,17,150,150,219, - 150,132,17,17,219,17,187,17,8,26,12,8,8,12,8,105, - 105,208,208,208,208,191,208,191,208,191,208,208,191,208,191,208, - 16,208,16,208,208,16,16,208,16,16,208,208,208,208,208,208, - 208,16,208,16,208,16,208,208,208,208,208,208,208,208,208,208, - 208,208,208,16,208,208,208,208,208,208,208,208,208,208,208,208, - 88,100,100,100,88,100,100,100,100,100,100,100,100,100,100,100, - 100,102,100,100,100,100,100,100,100,100,102,100,100,100,100,102, - 74,100,100,100,100,74,100,74,169,100,140,100,100,74,100,169, - 100,74,74,74,100,74,100,100,74,100,74,140,74,100,100,74, - 100,169,140,169,100,74,100,74,100,169,140,169,74,169,140,169, - 100,140,100,100,169,100,100,169,100,100,100,100,100,100,100,100, - 100,100,100,102,100,100,102,100,102,100,74,100,100,74,100,140, - 100,74,74,74,100,100,140,169,74,100,169,169,169,140,140,169, - 140,169,140,74,140,74,100,74,74,140,140,140,140,140,140,74, - 140,74,140,140,140,140,140,140,140,140,140,74,140,140,140,39, - 140,140,39,140,140,74,74,140,140,140,140,169,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,39,140,140,39,127,187, - 150,17,187,12,42,12,219,42,17,219,12,17,150,219,219,132, - 219,17,150,219,17,187,26,150,26,17,17,12,17,17,132,219, - 132,132,17,17,17,17,187,26,150,42,17,219,12,150,150,219, - 219,132,132,17,150,219,17,187,26,150,219,17,219,12,17,150, - 132,219,132,132,17,17,17,219,12,26,187,26,17,219,12,150, - 150,219,219,132,132,17,17,219,17,187,26,150,219,17,219,12, - 17,150,132,219,132,132,17,150,219,17,187,26,150,42,17,17, - 12,150,150,219,219,132,132,17,17,17,17,187,26,150,42,17, - 219,12,17,150,219,219,132,17,17,132,219,17,187,26,150,26, - 17,219,12,17,150,219,219,132,132,17,150,219,17,187,26,150, - 26,17,219,150,17,150,219,219,132,17,17,132,219,17,187,26, - 150,26,17,219,12,17,150,132,219,132,219,17,150,219,17,187, - 26,150,26,17,219,12,17,17,17,219,132,132,17,17,17,17, - 187,26,150,26,17,219,12,17,150,219,219,132,132,17,17,17, - 17,187,26,12,42,150,219,12,150,150,219,219,132,17,17,17, - 219,17,12,42,187,26,17,219,12,150,150,219,219,132,132,17, - 150,219,17,187,42,187,219,17,219,12,150,150,219,219,132,17, - 17,132,219,17,187,42,12,42,17,219,12,17,150,219,219,150, - 132,17,17,17,17,187,26,150,42,17,219,12,17,150,219,219, - 132,132,17,17,17,17,187,42,243,26,12,8,8,8,8,208, - 208,208,208,208,191,208,208,191,208,208,208,208,208,191,208,191, - 208,208,16,208,16,208,208,16,208,208,16,208,16,208,16,208, - 208,16,208,16,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,63,208, - 100,100,169,100,100,100,100,100,100,100,100,102,100,100,102,100, - 100,100,102,100,100,100,100,100,102,100,100,100,100,100,74,100, - 100,100,102,100,74,100,74,100,74,140,100,169,140,169,100,74, - 74,169,169,140,140,100,140,140,140,74,100,169,140,140,140,169, - 169,74,100,74,100,100,169,100,169,140,100,100,169,100,100,74, - 169,100,169,169,169,169,169,169,169,169,169,169,100,100,100,100, - 74,100,100,100,100,100,100,100,100,74,100,100,74,100,100,100, - 74,169,100,100,74,100,100,74,100,74,74,74,74,100,74,74, - 100,74,74,140,169,140,140,169,140,140,74,74,140,74,74,169, - 140,140,140,74,140,140,140,140,74,140,140,140,140,140,140,74, - 140,74,74,140,74,140,127,140,140,169,140,140,140,140,169,140, - 169,140,39,140,127,140,140,169,140,140,140,114,39,39,207,187, - 187,17,12,211,183,12,219,219,17,26,17,12,26,17,219,17, - 17,17,219,219,17,12,26,150,219,26,219,17,17,12,26,26, - 17,17,219,132,219,17,12,26,150,219,17,26,17,17,26,17, - 219,219,17,17,219,219,17,150,26,150,42,17,26,17,17,26, - 26,26,17,17,17,132,219,17,150,26,150,219,17,26,17,17, - 26,17,26,219,12,17,219,219,17,17,26,150,42,17,26,17, - 17,26,26,26,17,17,17,219,219,17,12,26,150,219,26,26, - 17,17,26,17,219,17,17,17,132,219,12,12,26,150,219,17, - 26,17,17,26,17,219,17,17,17,219,219,17,12,219,150,219, - 26,26,17,17,26,17,219,17,17,17,219,219,17,12,26,150, - 219,17,26,26,12,26,17,219,17,17,17,219,219,12,17,26, - 150,219,17,26,17,17,26,26,26,17,17,17,219,219,17,12, - 26,150,219,17,26,17,17,12,17,26,17,17,219,132,219,17, - 12,42,150,219,17,26,17,17,26,17,219,219,12,219,132,219, - 17,12,26,150,42,26,26,17,17,26,17,219,219,12,17,219, - 219,17,187,26,150,219,17,26,17,17,17,17,219,17,17,17, - 219,219,17,17,26,150,42,17,26,17,17,26,17,219,17,17, - 17,219,219,12,12,26,150,219,17,26,17,17,17,17,26,219, - 17,17,132,219,17,12,26,150,219,26,26,17,17,26,17,26, - 17,17,17,132,219,17,187,26,150,17,12,8,8,8,12,105, - 208,208,208,208,63,208,191,208,208,191,208,208,16,208,208,16, - 208,208,16,208,208,16,208,16,208,16,208,208,16,208,208,208, - 208,208,208,208,208,16,16,54,208,208,208,16,208,208,208,208, - 208,208,63,208,208,16,208,54,208,208,208,208,208,208,208,208, - 169,100,169,100,100,100,100,100,100,102,100,100,100,102,100,102, - 100,102,100,102,100,102,100,100,100,100,74,102,74,102,100,74, - 102,100,100,100,100,100,74,100,100,74,74,100,74,169,100,169, - 74,74,100,100,140,100,100,100,140,140,74,169,169,169,74,74, - 169,169,169,169,169,74,169,74,100,169,140,100,169,169,169,100, - 169,100,169,100,100,169,100,100,100,100,100,100,100,100,100,100, - 100,74,100,100,102,74,74,102,100,100,102,100,100,74,100,169, - 74,100,74,169,140,100,100,169,169,140,100,140,74,169,140,140, - 100,169,74,74,169,140,140,140,169,140,169,74,169,140,74,140, - 140,74,140,140,140,74,74,140,74,74,140,74,140,140,39,140, - 127,140,74,169,140,140,169,140,140,169,140,169,169,140,140,140, - 39,140,140,140,169,140,140,140,169,169,169,140,140,127,39,94, - 17,183,26,26,26,17,122,122,42,122,122,0,122,42,122,122, - 122,122,122,122,42,42,42,187,122,42,122,122,0,122,183,122, - 122,42,122,0,0,183,42,42,187,0,42,122,122,0,122,42, - 122,122,122,122,0,122,42,122,42,187,122,42,122,122,0,122, - 219,122,122,122,122,0,122,42,78,42,187,0,42,122,122,0, - 122,26,122,122,42,122,122,122,26,42,42,187,122,42,122,122, - 122,122,219,0,122,122,122,0,122,42,42,42,187,122,42,122, - 122,0,122,42,0,122,122,122,0,0,183,42,42,187,122,42, - 122,122,0,122,42,122,122,42,122,122,122,42,42,42,187,122, - 42,122,122,0,122,42,122,122,122,122,122,122,42,42,42,187, - 122,42,122,122,0,122,42,122,122,122,122,122,122,42,42,42, - 187,0,42,122,122,0,122,219,122,122,122,122,122,122,42,42, - 42,187,122,42,122,122,0,122,183,122,122,42,122,0,122,42, - 42,42,187,0,42,122,122,0,122,42,122,122,122,122,0,122, - 42,42,42,187,122,42,122,122,0,122,42,122,122,42,122,122, - 122,42,42,183,187,0,122,122,122,0,122,42,0,122,122,122, - 0,122,42,42,42,187,122,122,122,122,0,122,42,122,122,42, - 122,122,0,183,42,42,187,122,122,122,122,0,122,219,0,122, - 42,0,0,122,42,42,42,187,122,42,122,122,0,122,42,122, - 122,122,122,0,122,42,42,42,187,42,219,17,17,219,17,105, - 208,63,208,208,208,208,208,208,208,208,208,208,208,208,208,16, - 208,208,16,208,16,208,208,208,16,208,16,208,208,208,16,208, - 208,208,208,208,208,208,208,16,208,208,63,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 100,169,100,100,100,100,100,100,100,100,74,74,74,100,102,74, - 100,100,74,100,100,100,74,74,74,74,100,100,100,74,74,100, - 100,74,74,74,74,100,100,100,100,100,100,74,100,74,74,100, - 169,169,140,74,74,140,140,140,100,169,169,74,100,74,169,169, - 169,100,100,74,100,169,100,169,169,100,169,140,74,74,169,169, - 74,169,100,169,169,100,169,169,169,100,100,169,100,100,100,100, - 74,100,74,74,74,100,100,100,74,74,100,74,74,100,74,100, - 100,100,169,74,100,140,100,74,140,100,140,100,169,74,100,100, - 140,74,169,140,74,74,100,100,74,169,140,140,140,169,140,100, - 140,140,140,74,74,140,140,140,140,140,140,140,169,74,74,100, - 140,169,127,169,169,100,169,169,169,140,169,140,140,169,169,169, - 74,169,169,169,39,169,127,169,39,169,140,88,169,127,188,183, - 42,122,219,219,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,183,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,26,122,0,0,0,122,122,150,105, - 105,208,63,208,208,208,191,208,208,208,208,208,208,191,208,208, - 16,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,16,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,54,208,208,208,208,63,208, - 100,140,169,140,74,74,100,74,74,100,100,74,74,74,100,102, - 74,102,74,74,102,100,74,100,100,74,74,74,100,74,74,74, - 100,100,100,74,74,100,100,100,100,100,100,74,100,169,74,100, - 74,169,169,169,100,100,100,140,74,74,169,169,169,100,169,100, - 169,169,169,169,100,169,100,100,140,100,100,169,169,100,74,169, - 100,169,100,169,169,169,100,100,169,169,100,100,100,74,100,100, - 100,100,100,100,74,74,74,100,100,74,100,100,74,100,100,100, - 169,74,100,100,100,140,88,100,140,169,140,74,169,140,140,169, - 169,74,100,169,169,140,140,169,140,169,169,140,74,140,140,169, - 169,100,169,169,140,169,74,169,169,100,169,140,127,140,127,100, - 169,140,169,140,169,74,169,169,169,140,88,169,140,169,140,127, - 140,169,140,169,39,140,169,140,39,127,127,140,169,143,188,187, - 12,243,109,211,26,26,26,0,14,216,41,62,62,62,62,62, - 62,62,62,62,41,75,26,12,0,14,216,41,62,62,62,249, - 62,62,62,62,62,41,75,26,12,0,14,216,41,62,62,62, - 62,62,62,62,62,62,62,35,26,17,0,14,216,41,41,62, - 62,249,62,62,62,62,62,62,35,26,17,0,14,216,41,62, - 62,62,62,62,62,62,62,62,41,200,26,12,0,14,216,62, - 41,62,62,249,62,62,62,62,62,41,75,26,12,0,14,216, - 41,62,62,62,249,62,62,62,62,62,41,75,26,12,0,14, - 216,41,62,62,62,249,62,62,62,62,62,62,22,12,26,122, - 14,216,41,62,62,62,62,62,62,62,62,62,41,75,26,12, - 0,14,216,41,62,62,62,62,62,62,62,62,62,41,75,26, - 12,0,14,216,41,41,62,62,249,62,62,62,62,62,41,75, - 26,12,0,14,216,41,62,62,62,249,62,62,62,62,62,41, - 75,26,12,0,14,216,41,62,62,62,249,62,62,62,62,62, - 41,75,26,12,0,14,216,41,62,62,62,62,62,62,62,62, - 62,41,75,26,12,122,14,216,62,41,62,62,62,62,62,62, - 62,62,41,75,26,12,0,14,216,41,62,62,62,62,62,62, - 62,62,62,41,59,26,17,122,14,216,62,41,62,62,249,62, - 62,62,62,62,41,75,26,12,0,14,216,41,62,62,62,62, - 62,62,62,62,62,41,59,26,12,42,26,8,8,243,243,105, - 105,208,208,96,63,208,208,208,208,208,208,208,208,208,208,208, - 208,208,16,208,16,208,16,208,208,208,208,208,208,208,208,16, - 208,16,208,208,16,208,208,208,208,208,208,208,208,63,208,208, - 54,208,208,208,208,16,208,208,208,208,208,208,208,208,208,208, - 169,100,169,100,100,100,74,100,100,74,74,100,74,74,74,100, - 100,100,100,74,100,74,100,74,74,100,74,100,102,100,100,100, - 100,74,74,100,100,74,100,74,169,169,169,169,169,74,169,140, - 169,74,169,140,140,169,140,169,169,169,140,140,169,169,100,169, - 169,169,169,169,140,100,169,169,100,169,169,169,169,169,169,169, - 169,100,169,100,100,100,169,169,100,100,169,169,169,169,74,100, - 74,100,74,74,100,100,102,100,74,100,74,74,169,74,100,74, - 100,100,169,74,74,100,100,74,100,140,100,169,74,100,100,74, - 74,169,140,140,74,100,169,140,169,140,169,100,88,100,169,100, - 140,169,140,169,100,100,169,169,140,169,140,100,74,169,74,127, - 140,88,140,88,169,127,140,169,140,169,39,39,88,140,169,140, - 88,140,88,169,140,169,127,169,140,39,127,39,39,207,207,12, - 12,109,12,8,219,243,219,42,233,110,195,90,195,90,195,90, - 90,90,90,90,60,154,26,12,42,233,110,195,90,90,195,90, - 90,90,90,90,90,60,154,26,12,42,233,110,90,90,195,90, - 195,90,90,90,90,195,60,154,26,12,42,233,110,195,90,90, - 195,90,90,90,90,90,195,60,154,26,12,42,233,110,195,90, - 195,90,195,90,90,90,90,195,60,154,26,12,42,233,110,195, - 90,90,195,90,90,90,90,90,90,60,154,26,12,42,233,110, - 195,90,90,90,90,90,90,90,90,90,60,154,26,12,42,233, - 110,195,90,90,195,90,90,90,90,90,90,60,154,26,109,42, - 233,110,195,90,195,90,195,90,90,90,90,90,60,154,26,12, - 42,233,110,195,90,195,90,195,90,90,90,90,90,60,154,26, - 12,42,233,110,195,90,90,195,90,90,90,90,90,90,60,154, - 26,12,42,233,110,195,90,90,195,90,90,90,90,90,90,60, - 154,26,12,42,233,110,195,90,90,195,90,90,90,90,90,90, - 60,154,26,12,42,233,110,195,90,195,90,195,90,90,90,90, - 90,60,154,26,12,42,233,110,195,90,195,90,195,90,90,90, - 90,90,60,154,26,12,42,233,110,195,90,195,90,195,90,90, - 90,90,195,60,154,26,12,42,233,110,195,90,90,195,90,90, - 90,90,90,90,60,154,26,12,42,233,110,195,90,195,90,195, - 90,90,90,90,195,60,154,26,243,26,8,8,7,8,12,105, - 208,208,105,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,54,208,208,208,63,208,63,16,208,16, - 208,54,208,54,208,208,16,208,208,208,208,208,208,208,208,63, - 169,74,169,169,100,100,74,74,100,74,74,74,100,74,74,74, - 74,74,100,74,100,74,100,74,74,100,74,100,74,74,102,100, - 100,100,100,100,100,100,100,100,74,100,100,74,169,100,100,74, - 169,74,100,169,74,169,74,74,100,100,100,100,169,169,169,100, - 169,169,100,169,169,169,100,169,169,169,100,100,100,100,100,100, - 169,169,169,169,169,100,100,169,169,100,169,74,100,169,74,100, - 74,100,100,74,74,100,74,100,100,100,100,100,100,100,100,100, - 100,100,169,169,169,140,169,169,100,169,140,88,140,140,169,169, - 140,100,100,169,140,100,100,100,100,100,140,169,169,74,169,88, - 140,88,140,169,169,169,74,100,169,169,127,169,169,88,140,88, - 169,88,127,140,169,88,140,88,140,169,169,39,127,169,88,140, - 127,127,140,88,127,140,127,169,169,169,39,169,169,143,188,187, - 12,109,150,67,26,150,26,122,206,128,23,23,23,86,19,19, - 65,65,19,19,195,178,243,243,122,206,128,23,23,23,23,23, - 65,19,65,19,19,195,178,243,243,122,206,128,86,23,23,86, - 19,19,65,65,19,19,195,178,150,243,122,206,128,23,23,23, - 23,23,65,19,65,19,19,195,178,150,243,122,206,128,23,23, - 23,86,19,19,65,65,19,19,195,178,243,243,122,206,128,23, - 23,23,23,23,65,19,65,19,19,195,178,243,243,122,206,128, - 23,23,23,23,23,65,19,65,19,19,195,178,243,243,122,206, - 128,23,23,23,23,23,65,19,65,19,19,90,178,12,243,122, - 206,128,23,23,23,86,19,19,65,65,19,19,195,154,12,243, - 122,206,128,23,23,23,86,19,19,65,65,19,19,195,154,12, - 243,122,206,128,23,23,23,23,23,65,19,65,19,19,195,154, - 12,243,122,206,128,23,23,23,23,23,65,19,65,19,19,195, - 154,12,243,122,206,128,23,23,23,23,23,65,19,65,19,19, - 195,154,12,243,122,206,128,23,23,23,86,19,19,65,65,19, - 19,195,178,12,243,122,206,128,23,23,23,86,19,19,65,65, - 19,19,195,154,12,243,122,206,128,23,23,23,86,19,19,65, - 65,19,19,195,178,12,211,122,206,128,86,23,23,23,23,65, - 19,65,19,19,195,154,12,243,122,206,128,23,23,23,86,19, - 19,65,65,19,19,195,178,12,243,219,8,8,141,8,8,105, - 105,208,208,105,208,105,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,63,208,208, - 169,169,169,140,140,140,169,100,74,100,100,100,74,100,74,100, - 74,100,74,74,74,102,74,100,100,100,100,100,102,100,100,74, - 100,100,74,100,100,100,100,100,100,100,169,100,100,169,100,169, - 100,169,169,100,169,100,169,169,169,169,169,169,100,169,169,169, - 169,169,188,169,169,169,169,169,100,100,169,169,169,169,169,169, - 169,169,169,169,100,169,169,169,169,140,100,169,169,100,169,169, - 100,100,100,100,100,74,100,100,100,100,100,100,100,100,100,100, - 169,100,100,100,100,100,100,100,169,74,100,169,169,169,100,140, - 100,169,169,140,88,140,88,140,88,140,88,169,169,88,140,100, - 88,169,88,169,169,169,169,88,169,169,169,169,140,127,100,127, - 169,39,169,88,169,169,88,140,88,169,169,169,140,169,169,127, - 169,169,127,127,169,169,169,39,127,127,169,127,39,127,218,132, - 12,187,17,8,132,187,26,122,222,204,19,65,19,65,65,65, - 65,65,19,65,90,178,219,109,42,137,204,19,65,19,65,65, - 19,118,65,19,65,90,178,17,109,122,233,204,19,65,19,65, - 65,65,65,65,19,65,90,178,17,211,122,222,128,19,65,19, - 65,65,19,118,65,19,65,90,178,17,211,122,222,204,19,65, - 19,65,65,65,65,65,65,65,90,178,219,109,42,31,128,19, - 65,19,65,65,19,118,65,19,65,90,178,219,109,42,233,128, - 19,19,19,65,65,19,118,65,19,65,90,178,219,211,122,222, - 128,19,65,19,65,65,19,118,65,19,65,195,178,17,211,122, - 222,204,19,65,19,65,65,65,65,65,19,65,90,178,132,211, - 122,222,204,19,65,19,65,65,65,65,65,19,65,90,178,132, - 211,122,222,128,19,65,19,65,65,19,118,65,19,65,90,178, - 132,211,122,222,128,19,65,19,65,65,19,118,65,19,65,90, - 178,132,211,122,222,128,19,65,19,65,65,19,118,65,19,65, - 195,178,132,211,122,222,204,19,65,19,65,65,65,65,65,19, - 65,90,178,150,211,122,222,204,19,19,19,65,65,65,65,65, - 19,65,195,178,17,211,122,222,204,19,65,19,65,65,65,65, - 65,19,65,90,178,132,243,122,233,204,65,19,65,65,65,19, - 118,65,19,65,90,178,132,211,122,222,204,19,65,19,65,65, - 65,65,65,65,65,90,178,17,254,26,8,8,8,141,12,105, - 105,105,105,208,208,208,208,208,105,208,208,208,208,105,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,16, - 208,208,208,208,208,208,208,208,208,208,63,208,208,208,208,208, - 208,16,208,16,208,208,54,208,16,54,63,208,208,208,208,63, - 100,100,100,169,169,74,140,100,74,74,74,74,74,100,74,100, - 74,100,100,100,169,74,74,74,74,74,74,100,100,100,100,100, - 100,100,100,74,100,100,100,169,169,100,169,100,100,169,100,169, - 100,100,169,169,169,100,100,169,100,100,169,169,169,100,169,100, - 169,169,169,169,169,169,169,169,169,169,169,100,169,100,100,100, - 100,169,100,169,169,169,100,100,169,169,100,100,169,74,100,169, - 74,100,100,100,100,100,100,74,100,100,74,100,100,100,100,100, - 169,169,100,100,169,169,169,100,169,169,100,100,100,169,100,169, - 169,100,100,169,88,169,169,169,88,140,169,100,169,100,88,169, - 169,169,169,169,169,88,169,169,100,100,169,88,169,127,100,169, - 88,88,127,169,169,127,88,127,140,88,169,88,127,127,169,169, - 88,169,88,127,127,169,169,88,127,39,169,127,127,218,218,166, - 12,187,17,8,132,132,26,122,31,204,118,118,118,118,51,118, - 118,118,118,65,60,178,17,8,122,31,204,118,118,118,118,51, - 118,118,118,65,65,60,178,26,211,122,31,170,65,118,118,118, - 51,118,118,118,65,65,128,84,26,211,122,31,170,118,118,118, - 118,51,118,118,118,118,65,60,178,26,211,122,31,204,118,118, - 118,118,118,118,118,118,65,118,60,84,17,8,122,31,170,118, - 118,118,118,51,118,118,118,118,65,60,178,17,243,122,31,170, - 118,118,118,118,118,118,118,118,65,65,60,178,26,211,122,31, - 170,118,118,118,118,51,118,118,118,65,118,60,178,26,8,122, - 31,204,118,118,118,118,51,118,118,118,118,65,128,84,26,8, - 122,31,204,118,118,118,118,51,118,118,118,118,65,128,84,26, - 8,122,31,170,118,118,118,118,51,118,118,118,118,65,128,84, - 26,211,122,31,170,118,118,118,118,51,118,118,118,118,65,128, - 84,26,211,122,31,170,118,118,118,118,51,118,118,118,65,118, - 128,84,26,8,122,31,204,118,118,118,118,51,118,118,118,65, - 65,60,178,26,211,122,31,170,118,118,118,118,51,118,118,118, - 118,65,128,84,26,211,122,31,204,118,118,118,118,51,118,118, - 118,118,65,60,84,26,211,122,31,170,65,118,118,118,118,118, - 118,118,118,65,128,84,26,8,122,31,204,118,118,118,118,51, - 118,118,118,65,118,60,84,26,182,26,243,8,8,8,8,105, - 208,208,208,208,105,208,105,208,208,208,105,208,208,208,208,105, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,63,208, - 208,208,208,208,208,208,208,63,208,208,208,208,208,208,208,208, - 208,16,208,208,16,208,208,208,208,16,208,208,208,208,208,208, - 169,140,39,169,140,169,100,74,100,100,74,100,74,74,74,74, - 100,74,74,74,74,100,100,100,100,100,100,100,100,100,100,100, - 100,100,100,100,100,100,100,100,100,169,100,169,169,169,169,169, - 169,169,100,100,169,169,169,100,169,169,169,169,169,188,169,188, - 169,169,169,140,169,169,100,169,169,169,100,169,100,169,169,169, - 140,100,169,169,74,100,169,169,169,100,169,169,100,169,140,100, - 100,74,100,100,100,74,100,100,74,100,100,100,100,100,100,169, - 100,100,169,169,100,100,100,169,100,100,169,169,169,169,100,100, - 100,169,88,100,169,169,169,169,169,88,100,88,169,88,169,169, - 88,169,88,169,169,88,169,88,169,127,169,88,169,100,127,127, - 169,169,169,169,127,169,39,88,127,127,39,127,169,88,169,127, - 127,39,127,169,88,127,127,127,88,127,127,169,127,218,218,187, - 17,12,219,141,187,187,187,122,31,53,118,51,51,51,107,52, - 51,51,118,118,204,84,26,182,42,31,53,118,51,51,51,107, - 52,51,51,107,118,204,84,17,243,0,249,53,107,51,107,51, - 51,52,52,52,107,51,128,84,17,8,0,249,53,118,51,51, - 51,107,52,51,51,118,118,204,84,17,243,122,31,53,51,51, - 51,51,52,52,52,52,118,118,128,178,26,182,0,31,53,118, - 51,51,107,51,51,107,51,118,118,204,84,26,211,122,249,53, - 118,51,51,51,52,52,51,51,107,118,204,84,17,211,0,249, - 53,118,51,51,51,107,52,51,52,118,118,204,84,17,211,122, - 31,53,118,51,51,51,107,52,51,51,118,118,128,84,26,211, - 122,31,53,118,51,51,51,107,52,51,51,118,118,128,84,26, - 182,0,249,53,118,51,51,51,107,51,107,51,118,118,128,84, - 26,8,0,249,53,118,51,51,51,107,51,107,51,118,118,128, - 178,26,8,122,249,53,118,51,51,51,51,107,52,51,118,118, - 128,178,26,211,122,31,53,118,51,51,51,107,52,51,52,107, - 118,204,84,17,243,122,249,165,51,51,51,51,107,52,51,51, - 118,51,128,84,17,243,122,31,53,118,51,51,51,107,52,52, - 51,118,118,204,178,17,243,0,249,53,107,51,51,51,52,52, - 51,51,118,118,128,178,26,211,122,31,53,118,51,51,51,107, - 52,52,52,118,118,128,178,17,8,219,8,8,67,8,12,105, - 36,208,105,208,105,208,105,208,105,208,105,208,105,208,105,208, - 208,105,208,105,208,208,105,208,208,208,208,105,208,208,208,208, - 208,208,63,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,63, - 169,100,140,100,169,140,169,169,74,100,74,100,100,100,100,74, - 100,100,100,100,100,74,100,74,100,100,100,100,74,100,100,74, - 100,100,100,100,169,100,100,169,100,169,169,169,100,169,100,100, - 100,169,169,100,100,100,169,100,169,100,169,169,169,88,169,169, - 169,169,169,169,140,140,169,169,100,169,169,169,169,169,169,169, - 169,169,140,169,39,169,169,100,169,169,140,169,169,100,169,169, - 100,100,100,100,100,100,100,100,100,100,100,100,169,169,100,169, - 169,169,169,169,169,169,169,169,169,169,100,100,100,88,169,169, - 100,169,169,169,88,100,88,169,169,127,169,88,39,88,169,88, - 169,88,169,88,127,169,88,169,100,88,88,169,127,169,169,88, - 169,88,169,88,169,127,88,169,88,88,169,127,127,127,169,127, - 88,127,127,127,127,169,127,39,127,127,127,127,127,218,153,132, - 17,187,26,8,187,12,12,122,249,85,51,52,76,76,76,232, - 52,52,9,107,204,84,26,8,122,249,85,51,52,76,76,76, - 232,52,51,9,107,204,84,17,8,0,123,53,107,76,76,76, - 76,76,51,51,107,9,204,84,12,8,122,123,53,107,51,76, - 76,76,232,52,52,107,107,204,84,12,8,0,123,53,107,51, - 76,76,76,76,51,52,9,9,204,84,26,8,122,123,53,107, - 76,76,76,232,76,52,52,9,107,204,84,12,8,122,123,53, - 51,51,76,76,76,232,52,51,9,107,204,84,17,8,0,123, - 53,107,51,76,76,76,232,51,52,107,107,204,84,17,243,122, - 249,85,51,52,76,76,76,232,52,52,51,107,204,178,12,8, - 122,249,85,51,52,76,76,76,232,52,52,51,107,204,178,26, - 8,122,123,53,107,51,76,76,232,76,52,52,51,107,204,178, - 12,8,0,123,53,107,51,76,76,232,76,52,52,51,51,204, - 84,17,243,122,123,53,107,76,76,76,76,76,52,52,51,9, - 204,84,17,8,122,249,85,51,52,76,76,76,232,51,52,9, - 107,204,84,17,8,122,123,53,107,51,76,76,76,232,52,52, - 107,9,204,178,12,8,122,249,85,51,52,76,76,76,76,52, - 52,107,107,204,84,17,8,122,123,53,107,51,76,76,76,232, - 52,52,51,51,204,84,17,8,122,249,85,51,52,76,76,76, - 76,51,52,9,9,204,84,17,8,219,8,8,8,8,8,105, - 105,208,105,208,208,105,208,105,208,208,105,208,208,208,105,208, - 208,105,208,208,105,208,208,105,208,208,208,208,105,208,208,63, - 208,208,208,63,208,63,208,208,208,63,208,16,208,208,208,208, - 208,208,208,208,208,208,208,208,208,16,208,208,208,208,208,208, - 169,140,169,169,100,169,169,74,169,140,100,74,74,74,74,100, - 74,100,100,100,100,100,100,100,100,100,74,100,100,74,100,100, - 100,100,100,169,100,169,100,100,169,169,100,100,169,100,169,169, - 88,169,100,169,88,169,100,169,169,88,169,88,169,39,169,169, - 169,169,169,169,169,169,140,169,169,169,100,169,74,169,100,100, - 169,39,169,169,169,169,169,39,169,169,100,169,100,169,100,100, - 169,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, - 100,100,100,88,169,88,100,88,169,100,88,169,88,88,100,100, - 88,100,100,100,100,140,88,100,100,169,39,169,169,88,169,169, - 169,88,140,88,100,169,39,88,169,169,169,88,169,88,169,88, - 169,169,88,88,169,169,127,127,127,127,127,169,127,127,127,169, - 127,169,127,127,169,127,127,127,127,127,127,127,188,236,236,187, - 26,150,187,141,109,12,17,0,123,85,52,76,76,76,232,232, - 232,76,51,9,204,154,17,141,0,123,85,52,76,76,76,232, - 232,232,76,51,9,204,154,17,243,122,123,194,52,76,76,232, - 232,232,232,76,52,9,204,154,17,243,0,123,85,76,232,76, - 76,232,232,232,51,52,9,204,154,17,211,162,123,85,76,232, - 76,76,232,232,232,76,51,9,204,154,17,243,162,123,85,52, - 76,76,76,232,148,232,51,51,9,204,154,17,243,122,123,85, - 52,232,76,76,232,232,232,76,51,9,204,154,17,243,122,123, - 85,76,232,76,76,232,232,232,76,51,9,204,154,17,243,0, - 123,85,52,76,76,76,232,232,232,51,52,9,204,168,17,141, - 0,123,85,52,76,76,76,232,232,232,51,52,9,204,154,17, - 243,122,123,85,76,232,76,76,232,232,232,51,52,9,204,168, - 17,211,122,123,85,76,232,76,76,232,232,232,51,52,9,204, - 154,17,243,122,123,85,52,76,76,232,232,232,232,51,52,52, - 204,154,17,141,0,123,85,52,76,76,76,232,232,232,76,51, - 52,204,84,17,243,122,123,85,76,232,76,76,232,232,232,76, - 51,9,204,84,17,141,0,123,85,52,76,76,76,232,232,232, - 51,52,9,204,84,17,243,0,123,85,76,232,76,76,76,232, - 232,51,52,9,204,154,17,141,0,123,85,52,76,76,76,232, - 232,232,76,51,9,204,84,17,141,17,12,8,8,8,12,36, - 36,208,105,105,208,208,208,105,208,208,105,208,105,208,208,105, - 208,208,208,208,208,208,208,208,105,105,208,105,208,208,208,208, - 208,208,63,208,208,208,208,208,63,208,208,63,208,208,208,208, - 208,208,16,63,208,208,208,16,208,208,208,208,208,208,208,63, - 169,100,39,169,100,100,169,100,169,169,100,100,100,169,100,100, - 74,100,100,100,100,100,100,100,100,100,100,100,100,100,100,169, - 169,169,100,100,100,169,100,100,100,169,88,100,169,88,169,169, - 100,169,100,169,88,169,88,100,169,100,169,169,169,169,169,169, - 39,39,169,140,169,169,169,140,140,39,169,188,100,140,39,169, - 169,169,39,169,39,39,169,169,169,188,169,169,169,169,169,100, - 169,100,100,74,100,100,100,169,169,169,169,100,100,100,100,100, - 88,169,100,88,100,88,100,100,88,169,169,100,169,169,88,169, - 88,169,169,169,88,100,88,88,100,88,169,169,39,88,169,169, - 127,88,88,169,169,100,127,169,169,169,88,169,88,169,39,127, - 169,169,127,127,88,169,88,169,88,88,127,169,127,127,127,127, - 127,127,127,127,127,169,127,88,127,188,188,207,127,218,153,166, - 12,187,219,243,187,111,187,122,167,194,76,76,148,232,232,148, - 232,232,76,52,204,168,26,211,122,167,194,76,76,148,232,232, - 148,148,148,52,52,204,168,17,243,122,167,194,76,76,232,232, - 232,148,232,232,52,76,204,168,17,243,122,167,194,76,232,148, - 232,232,148,148,232,76,52,204,168,219,243,122,167,194,76,232, - 148,232,148,148,232,148,52,76,204,168,17,243,122,167,194,76, - 76,148,232,232,148,148,232,76,52,204,168,17,243,122,167,194, - 76,232,232,232,232,148,148,232,76,52,204,168,17,243,122,167, - 194,76,232,148,232,232,148,232,148,52,52,204,168,17,211,122, - 167,194,76,76,148,148,232,148,148,232,232,52,204,168,26,211, - 122,167,194,76,76,148,148,232,148,148,232,232,52,204,168,26, - 243,122,167,194,76,232,148,232,232,148,148,232,232,52,204,168, - 17,243,122,167,194,76,232,148,232,232,148,148,232,52,52,204, - 168,26,211,122,167,194,76,76,232,148,232,148,148,232,52,52, - 204,168,26,211,122,167,194,76,76,148,148,232,148,232,232,52, - 52,204,168,12,243,122,167,194,76,232,148,148,232,148,232,148, - 52,76,204,168,26,211,122,167,194,76,76,148,232,232,148,148, - 232,76,52,204,168,12,211,122,167,194,76,232,148,148,232,148, - 148,232,52,52,204,168,26,211,122,167,194,76,76,148,232,148, - 148,232,148,52,76,204,168,26,8,219,12,8,67,8,8,105, - 36,208,105,208,105,105,208,105,208,208,208,208,105,208,105,208, - 105,208,105,208,105,208,208,208,208,208,208,208,105,208,105,208, - 105,208,208,63,208,63,208,105,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 169,39,169,169,169,140,100,169,100,100,140,140,169,100,140,169, - 169,169,169,100,100,100,100,100,100,100,100,100,100,100,169,100, - 100,100,100,169,100,100,169,88,100,100,169,88,169,100,100,88, - 169,100,88,100,100,88,100,88,169,169,169,169,169,169,169,169, - 169,169,39,169,140,169,140,169,169,169,140,169,39,169,169,140, - 169,39,169,39,140,169,169,39,169,169,169,169,169,169,169,169, - 100,169,100,100,100,100,169,100,100,100,100,169,169,169,88,169, - 100,100,169,100,169,169,88,100,100,100,88,169,100,169,169,100, - 169,100,100,88,169,169,169,169,127,169,39,140,88,169,169,100, - 169,169,169,169,88,88,169,169,100,88,169,169,127,169,88,88, - 127,127,169,88,188,88,127,127,188,188,88,188,88,218,188,188, - 127,188,188,218,127,143,127,127,127,127,127,127,188,153,218,187, - 17,187,183,8,187,12,17,122,237,32,232,148,148,148,148,148, - 148,232,232,232,231,222,17,243,122,237,32,232,148,148,148,148, - 148,148,232,232,232,231,222,26,211,122,237,32,232,148,148,148, - 148,147,148,148,52,232,231,222,26,211,122,237,32,232,232,148, - 148,148,148,148,232,232,232,231,168,219,211,122,237,32,232,232, - 148,148,148,147,148,232,232,232,231,222,26,211,122,237,32,232, - 148,147,148,148,148,148,148,232,232,231,222,26,109,122,237,32, - 232,232,148,148,148,148,148,232,232,232,231,222,26,211,122,237, - 32,232,232,148,148,148,147,148,232,232,232,231,222,219,243,122, - 237,32,232,148,148,148,148,148,148,232,76,232,231,222,17,243, - 122,237,32,232,148,148,148,148,148,148,148,52,232,231,222,219, - 211,122,237,32,232,232,148,148,148,148,148,232,76,232,231,222, - 26,211,122,237,32,232,232,148,148,148,148,148,232,232,232,231, - 222,219,243,122,237,32,232,148,148,148,148,148,148,148,76,232, - 231,222,17,243,122,237,32,232,148,148,148,148,147,232,148,232, - 232,231,222,26,211,122,237,32,232,232,148,148,148,148,232,232, - 232,232,231,222,219,243,122,237,32,232,148,148,148,148,148,148, - 148,232,148,231,222,26,243,0,237,32,232,232,148,148,148,148, - 148,232,232,232,231,222,17,243,122,237,32,232,148,148,148,148, - 147,148,148,232,232,231,222,17,8,26,12,243,8,8,150,36, - 36,208,105,105,208,105,208,208,105,208,105,208,105,208,208,208, - 105,208,208,208,208,105,105,208,208,208,105,208,208,208,208,208, - 208,105,208,208,208,105,208,208,208,208,208,208,208,208,63,208, - 208,208,208,208,208,208,208,208,208,54,208,208,208,208,208,208, - 169,169,169,169,169,169,74,169,140,100,100,74,140,100,74,100, - 100,100,140,169,140,169,100,100,100,100,100,100,169,100,100,100, - 169,169,100,169,169,100,100,169,100,100,169,100,169,88,100,100, - 169,100,169,169,100,169,169,100,169,88,169,169,188,188,188,169, - 169,169,169,169,169,169,39,169,140,169,140,169,169,169,169,140, - 169,169,169,169,39,39,169,39,169,169,169,169,169,169,169,169, - 100,169,100,100,169,100,100,100,100,100,100,100,100,100,100,169, - 100,100,169,88,100,100,169,169,100,100,100,169,100,100,169,100, - 169,88,169,100,169,169,169,100,169,169,169,169,169,169,127,100, - 169,88,127,169,127,100,88,127,169,169,169,88,169,169,169,88, - 88,88,188,88,188,88,88,188,127,188,218,188,188,188,218,88, - 127,218,88,188,188,188,127,188,127,188,188,127,188,218,218,187, - 17,26,42,243,187,150,17,122,138,117,193,193,157,157,189,189, - 157,193,193,85,70,31,26,8,122,138,117,193,193,157,157,189, - 189,157,193,193,85,70,31,26,8,42,138,117,193,193,157,157, - 189,189,157,193,193,85,70,31,26,243,122,138,117,193,193,157, - 157,189,189,157,193,193,85,70,129,26,243,122,138,117,193,157, - 157,157,189,189,157,157,193,85,70,31,26,8,122,138,117,193, - 157,157,157,189,189,157,193,193,85,70,31,26,8,122,138,117, - 193,193,157,157,189,189,157,193,193,85,70,31,26,8,122,138, - 117,193,193,157,157,189,189,157,193,193,85,70,222,187,243,122, - 138,117,193,193,157,157,189,189,157,193,193,85,70,222,91,243, - 122,138,117,193,193,157,157,189,189,157,193,193,85,70,31,26, - 243,42,138,117,193,193,157,157,189,189,157,193,193,85,70,31, - 26,8,122,138,117,193,193,157,157,189,189,157,193,193,85,70, - 31,26,8,42,138,117,193,193,157,157,189,189,157,193,193,85, - 70,31,26,243,42,138,117,193,193,157,157,189,189,157,157,193, - 194,70,31,26,8,122,138,117,193,157,157,157,189,189,157,193, - 193,194,70,31,26,8,122,138,117,193,193,157,157,189,189,157, - 193,193,194,70,31,26,8,122,138,117,193,193,157,157,189,189, - 157,193,193,85,70,31,17,243,122,138,117,193,193,157,157,189, - 189,157,157,193,32,70,222,187,141,17,12,8,8,8,8,36, - 36,105,105,208,105,208,105,105,208,105,208,105,208,105,105,208, - 208,105,208,105,208,208,208,105,105,208,208,105,208,105,105,208, - 208,208,105,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,63,208,208,63,16,208,208,208,208,208,208,208,208,208, - 169,140,39,169,169,169,169,169,100,169,140,169,100,169,169,140, - 140,74,100,74,100,74,169,140,169,74,100,169,100,100,100,100, - 100,100,100,100,100,100,169,100,169,100,88,100,100,100,100,100, - 100,88,169,169,169,169,100,169,100,169,88,169,39,169,169,39, - 39,39,39,39,169,169,169,39,169,169,169,169,140,169,169,169, - 140,39,39,188,169,169,39,169,169,169,188,169,169,169,74,100, - 140,74,169,169,100,100,100,100,169,169,100,100,169,169,169,100, - 169,169,100,100,100,169,100,88,169,169,88,100,169,169,169,169, - 100,169,100,169,169,169,100,169,88,169,169,88,169,169,88,169, - 74,127,169,169,169,169,169,88,169,127,88,169,88,88,88,188, - 188,188,88,188,188,188,188,88,88,88,88,218,188,88,188,188, - 88,188,127,218,218,127,127,88,188,127,127,188,188,236,236,166, - 12,187,42,243,132,12,187,0,226,87,18,72,242,30,13,13, - 30,242,21,33,18,35,12,109,0,226,87,18,72,242,30,13, - 13,30,242,21,18,18,47,17,243,0,226,87,18,72,242,30, - 13,13,30,242,21,18,18,47,12,12,0,226,87,18,72,242, - 30,13,13,30,242,21,21,18,35,26,187,0,226,87,21,72, - 156,43,13,13,30,242,87,18,18,47,17,109,0,226,87,18, - 72,242,30,13,13,30,242,21,18,18,47,12,12,122,226,87, - 18,72,242,30,13,13,30,242,21,18,18,47,17,243,0,226, - 87,21,21,156,43,13,13,30,242,21,18,18,35,26,187,0, - 226,87,18,21,242,30,13,13,30,242,21,33,18,46,17,12, - 0,226,87,18,21,242,30,13,13,30,242,21,33,18,35,12, - 12,0,226,87,18,72,242,30,13,13,30,242,21,33,18,47, - 17,243,0,226,87,18,72,242,30,13,13,30,242,21,33,18, - 35,17,109,0,226,87,21,21,242,30,13,13,30,242,21,18, - 18,35,12,12,0,226,87,18,21,156,43,13,13,30,72,21, - 18,18,47,17,243,0,226,87,21,87,156,30,86,13,30,242, - 21,18,18,35,12,12,122,226,87,18,72,242,30,13,13,30, - 242,21,18,18,47,17,109,0,226,87,21,21,242,30,13,13, - 30,242,21,18,18,35,26,12,0,226,87,21,21,156,43,13, - 13,30,242,21,18,18,46,12,8,26,8,8,141,243,8,36, - 105,105,105,105,105,208,105,105,208,105,208,105,208,208,105,208, - 105,208,105,208,208,105,208,208,208,208,105,208,208,208,208,105, - 208,208,208,105,208,105,105,208,208,208,54,208,208,208,208,208, - 63,208,208,208,96,208,208,208,208,16,208,208,208,208,208,208, - 169,169,39,169,169,140,100,169,169,169,74,74,74,74,100,100, - 169,140,169,140,169,100,100,100,169,74,100,74,140,169,140,100, - 169,169,169,100,169,100,169,169,169,100,169,169,169,169,88,169, - 169,100,100,169,88,169,169,169,169,169,169,169,39,39,39,39, - 169,39,188,39,39,169,169,169,169,169,169,169,169,140,169,169, - 169,169,169,39,39,188,39,39,39,169,140,169,140,188,39,100, - 169,74,74,74,169,140,140,100,100,169,169,100,100,100,169,169, - 169,169,169,169,100,169,100,100,100,169,169,88,169,100,169,169, - 100,88,169,100,169,88,169,100,100,169,169,100,169,88,140,88, - 100,169,169,88,88,169,169,127,88,169,88,127,127,127,88,88, - 188,188,188,88,88,88,188,218,188,188,88,218,188,127,188,207, - 127,188,127,88,88,188,207,127,188,127,188,127,188,207,218,187, - 17,166,42,187,150,17,12,0,40,19,250,86,179,149,51,51, - 149,179,250,250,28,183,26,8,0,203,19,250,86,179,149,51, - 51,149,86,250,86,138,187,26,8,0,40,19,250,86,179,149, - 51,136,146,86,86,250,28,91,17,8,0,203,19,250,86,179, - 149,51,51,149,86,250,250,28,163,12,8,0,40,23,250,86, - 179,146,51,51,146,86,250,250,28,91,26,8,0,203,19,86, - 86,179,149,51,51,149,86,86,250,28,91,17,8,0,203,19, - 250,86,179,149,51,51,149,86,250,86,138,187,26,8,0,203, - 86,250,86,179,146,51,136,149,86,86,250,28,163,12,8,0, - 203,19,86,86,149,149,51,51,149,86,86,250,28,163,187,8, - 0,203,19,86,86,149,149,51,51,149,86,86,250,28,50,12, - 8,0,40,19,250,86,179,149,51,51,149,86,86,250,28,91, - 26,8,0,40,19,250,86,179,149,51,51,149,86,86,250,28, - 187,26,243,0,203,23,250,86,149,149,51,51,149,86,86,250, - 28,187,187,8,0,203,19,250,179,179,146,51,51,146,179,86, - 250,28,91,26,8,0,40,23,250,86,179,146,51,146,146,179, - 250,250,28,187,187,8,0,40,19,250,86,179,149,51,51,149, - 86,250,250,28,187,26,8,0,203,86,86,86,179,149,51,51, - 149,179,250,86,28,187,187,8,0,203,23,250,86,179,146,51, - 51,146,86,250,250,28,187,26,8,219,8,150,8,8,8,36, - 36,105,105,105,208,105,105,208,105,105,208,105,105,208,105,208, - 105,208,105,208,208,105,208,208,105,208,105,208,105,208,208,105, - 105,208,208,208,208,208,208,63,208,208,208,16,208,208,208,208, - 208,208,208,208,208,208,16,208,208,208,208,16,208,208,16,208, - 169,74,169,140,169,169,39,140,140,100,140,169,100,169,140,140, - 140,100,74,100,74,140,169,140,100,169,74,169,100,74,100,169, - 100,169,100,169,100,169,169,100,169,169,100,100,100,169,169,100, - 100,169,169,169,169,169,100,169,74,169,88,169,169,169,169,169, - 188,188,39,39,140,39,169,169,39,39,39,39,169,169,169,169, - 169,39,39,188,39,169,39,39,169,169,169,169,169,169,100,169, - 169,169,100,169,74,100,100,74,169,169,100,169,169,169,100,100, - 100,100,100,169,169,100,169,88,169,169,169,169,169,169,100,169, - 140,169,169,169,169,169,100,169,88,169,169,169,169,169,88,169, - 88,100,88,169,127,169,88,88,169,127,188,88,88,169,88,218, - 88,218,88,188,188,188,218,88,218,218,188,127,188,88,218,127, - 88,127,127,207,207,127,127,127,127,127,127,127,207,236,236,17, - 26,12,26,150,187,26,132,0,95,32,157,189,189,189,189,189, - 189,189,157,85,204,61,219,211,0,95,32,157,189,189,189,189, - 189,189,189,157,85,204,61,219,211,0,95,32,157,189,189,189, - 189,189,189,189,157,85,128,91,183,211,0,95,32,157,189,189, - 189,189,189,189,189,157,85,128,61,219,211,0,40,32,157,189, - 189,189,189,189,189,189,157,85,128,91,219,211,0,40,32,157, - 189,189,189,189,189,189,189,157,85,128,91,183,211,0,95,32, - 157,189,189,189,189,189,189,189,157,85,204,61,219,211,0,40, - 32,157,189,189,189,189,189,189,189,157,85,204,91,219,211,0, - 95,32,157,189,189,189,189,189,189,189,157,85,204,91,219,211, - 0,95,32,157,189,189,189,189,189,189,189,189,85,204,91,219, - 211,0,95,32,157,189,189,189,189,189,189,189,157,85,128,91, - 219,211,0,95,32,157,189,189,189,189,189,189,189,189,85,204, - 61,219,211,0,40,32,157,189,189,189,189,189,189,189,157,85, - 204,61,219,109,0,95,32,157,189,189,189,189,189,189,189,157, - 85,128,91,219,211,0,40,32,157,189,189,189,189,189,189,189, - 157,85,204,61,219,211,0,95,32,157,189,189,189,189,189,189, - 189,157,85,128,61,219,211,0,40,32,157,189,189,189,189,189, - 189,189,189,85,128,61,219,211,0,40,32,157,189,189,189,189, - 189,189,189,157,85,204,61,219,141,26,8,8,8,141,141,36, - 36,105,105,105,105,105,105,105,208,105,105,208,105,208,105,208, - 105,208,105,105,208,208,105,105,208,105,208,208,105,208,105,208, - 208,208,105,208,105,105,208,105,63,208,208,208,208,208,63,208, - 208,208,208,208,208,208,208,208,208,16,208,63,208,208,208,208, - 188,140,169,140,140,169,169,100,140,100,74,140,74,169,169,74, - 140,140,140,169,140,74,100,140,169,169,100,100,169,169,74,74, - 100,169,100,169,100,100,169,100,169,169,88,169,100,88,169,169, - 169,169,100,100,169,169,100,169,100,169,169,88,39,188,188,39, - 169,169,169,188,169,39,39,169,169,169,169,39,188,39,39,39, - 169,169,169,169,39,39,169,39,39,39,169,140,140,140,169,140, - 169,169,74,100,169,169,169,74,74,169,74,100,100,169,169,88, - 169,88,100,88,169,169,169,169,100,169,169,100,169,169,169,88, - 169,100,169,100,169,39,169,127,140,140,88,100,100,169,169,127, - 169,88,88,169,88,169,169,88,88,169,169,188,88,188,88,188, - 88,218,218,88,218,88,188,88,88,218,88,218,218,127,218,188, - 218,188,127,218,88,188,127,188,127,127,127,127,127,218,218,187, - 26,166,42,12,187,26,17,0,40,53,52,232,232,148,148,148, - 148,232,52,185,230,91,122,243,0,40,53,52,232,232,148,76, - 147,148,232,76,27,230,91,122,243,0,40,45,52,76,232,232, - 148,147,232,232,52,27,230,91,0,243,0,40,53,52,232,148, - 148,76,148,148,232,52,185,230,91,122,243,0,40,53,232,76, - 232,148,148,148,148,232,52,27,230,91,122,243,0,40,53,52, - 232,232,148,148,148,148,232,52,27,230,91,0,243,0,40,53, - 52,232,232,148,148,148,147,232,76,27,230,91,122,243,0,40, - 45,52,76,232,148,232,147,232,232,52,198,230,91,122,243,0, - 40,53,52,76,232,148,148,148,148,232,52,185,230,26,122,243, - 0,40,53,52,76,232,76,148,148,147,232,52,27,230,26,122, - 243,0,40,45,52,232,148,148,76,148,148,232,52,185,230,91, - 0,243,0,40,45,52,232,232,148,148,148,147,232,52,185,230, - 26,122,243,0,40,45,52,76,232,148,76,147,148,232,52,27, - 230,26,42,243,0,40,53,52,76,148,148,76,148,148,232,52, - 27,230,91,0,243,0,40,170,232,76,232,148,148,147,147,232, - 52,27,230,26,122,243,0,40,45,52,232,232,148,76,147,148, - 232,232,185,230,91,122,243,0,40,45,232,232,232,148,148,148, - 147,232,52,27,230,91,122,243,0,40,53,52,76,148,148,76, - 148,147,232,52,27,230,91,122,141,219,12,8,8,8,8,36, - 105,105,105,105,105,208,105,208,105,208,105,105,105,208,105,208, - 105,208,208,208,105,208,208,208,105,208,105,208,105,208,208,105, - 208,105,208,208,208,105,208,208,105,208,63,208,208,208,208,208, - 208,208,208,208,208,208,208,63,208,208,208,208,208,63,208,208, - 169,169,188,169,169,140,140,140,169,140,140,169,140,74,74,140, - 74,100,74,74,100,140,140,169,74,169,74,169,74,74,100,169, - 140,74,140,169,169,169,100,169,100,169,188,169,188,169,169,169, - 169,100,169,169,100,169,88,169,169,169,169,188,169,169,39,188, - 39,39,39,39,39,169,140,169,140,169,39,169,169,169,169,169, - 39,39,39,39,39,169,39,39,140,169,39,169,100,169,140,100, - 74,140,100,169,74,100,74,169,169,74,100,140,169,169,100,169, - 169,169,188,169,169,169,169,88,169,100,100,169,88,169,100,169, - 100,169,88,39,88,100,169,100,100,169,88,169,39,100,88,169, - 169,88,169,169,169,169,88,188,169,88,188,88,88,88,188,88, - 188,88,188,218,88,188,218,207,188,188,218,188,127,188,127,218, - 188,88,218,188,127,218,127,218,127,218,188,127,218,153,153,111, - 26,17,42,150,187,26,17,0,212,231,232,76,232,232,148,148, - 147,76,27,27,230,91,42,211,0,212,231,232,76,232,148,148, - 148,147,76,232,27,230,91,42,211,0,212,170,232,232,232,232, - 148,148,148,76,27,185,230,91,26,211,0,40,204,27,76,232, - 148,147,147,147,76,27,27,230,91,26,211,0,212,231,52,76, - 232,232,148,148,147,76,27,185,230,91,42,211,0,212,170,52, - 232,232,232,148,148,147,76,27,185,230,91,26,211,0,212,231, - 232,76,232,232,148,148,148,76,232,27,230,91,42,211,0,212, - 170,52,232,232,232,148,148,147,76,27,27,230,91,26,211,0, - 40,204,27,76,232,232,148,148,147,76,232,27,230,91,26,211, - 0,40,204,27,76,232,148,148,147,148,232,27,198,230,91,26, - 211,0,40,204,27,76,232,148,147,147,147,76,27,27,230,91, - 26,211,0,212,170,52,232,232,232,148,147,148,232,27,27,230, - 91,26,211,0,40,170,52,232,232,148,148,148,148,76,232,198, - 230,91,42,211,0,212,170,52,76,232,148,148,147,147,76,27, - 185,230,91,26,211,0,40,170,52,76,232,232,148,147,148,76, - 27,185,230,91,26,211,0,40,170,52,232,232,148,148,148,147, - 76,232,27,230,91,42,211,0,212,231,52,52,232,232,148,148, - 148,232,27,185,230,91,26,211,0,40,204,27,76,232,148,148, - 147,148,76,232,185,230,91,26,8,26,12,8,8,8,8,244, - 36,105,105,105,36,105,208,105,105,105,208,105,208,105,105,208, - 105,208,105,208,105,105,105,208,208,208,105,208,105,208,105,208, - 105,208,105,208,105,208,105,105,208,208,208,208,208,208,208,208, - 208,63,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 169,169,169,39,169,169,169,140,169,140,140,140,39,39,140,169, - 140,169,140,140,169,74,74,169,74,169,74,169,169,140,169,100, - 169,169,74,100,100,169,100,169,169,169,169,169,169,169,169,100, - 169,169,169,169,169,169,169,88,169,88,169,188,169,169,169,39, - 39,39,169,140,39,169,39,169,140,140,39,39,188,39,39,169, - 39,169,169,169,39,39,39,188,140,169,140,39,140,169,140,169, - 100,140,74,169,140,169,74,100,169,169,100,169,74,169,100,100, - 169,169,140,169,169,169,169,169,169,169,169,169,169,169,88,169, - 88,169,100,88,39,169,127,169,88,169,169,88,39,88,74,88, - 127,169,169,88,88,169,169,188,188,88,88,188,188,88,218,218, - 218,88,218,218,218,88,88,218,218,88,218,218,218,88,188,218, - 218,127,218,188,127,218,127,218,127,143,188,127,207,236,58,166, - 26,187,78,12,187,187,17,0,212,98,165,45,53,194,194,194, - 194,45,53,165,230,91,0,12,0,212,98,165,45,53,194,194, - 194,194,194,45,165,230,91,0,12,0,212,98,165,45,53,53, - 194,194,194,45,53,165,230,91,0,12,0,40,98,231,45,53, - 53,194,194,194,45,45,45,230,91,0,12,0,212,98,165,45, - 53,194,194,194,194,45,194,165,230,91,0,12,0,212,98,165, - 45,53,194,194,194,194,45,194,165,230,91,0,12,0,212,98, - 165,45,53,194,194,194,32,45,45,165,230,91,0,187,0,212, - 98,165,45,53,53,194,194,194,45,53,165,230,91,0,12,0, - 40,98,165,45,53,194,194,194,194,98,53,165,230,91,0,12, - 0,40,98,165,45,53,194,194,194,194,45,53,165,230,91,0, - 12,0,40,98,165,45,53,53,194,194,194,45,194,165,230,91, - 0,12,0,212,98,165,45,53,194,194,194,194,45,45,165,230, - 91,0,12,0,212,98,165,45,53,194,194,194,32,45,45,165, - 230,91,0,12,0,212,98,165,45,53,194,194,194,194,45,194, - 165,230,91,0,12,0,40,98,165,45,53,194,194,194,194,45, - 53,165,230,91,0,12,0,212,98,165,45,53,194,194,194,194, - 194,45,165,230,91,0,12,0,212,98,165,45,53,194,194,194, - 194,45,194,165,230,91,0,12,0,40,98,231,45,53,194,194, - 194,32,45,45,165,230,91,162,8,219,8,243,8,8,8,36, - 105,105,36,208,105,105,36,105,105,105,105,105,105,105,208,105, - 208,105,105,208,208,208,208,105,208,105,208,105,208,105,208,105, - 208,105,208,208,208,208,208,208,105,208,63,63,208,208,63,208, - 208,208,208,208,208,208,208,63,208,208,208,208,208,208,63,208, - 140,169,39,140,39,140,140,169,140,169,140,169,140,140,169,140, - 140,140,140,140,140,39,140,140,140,140,169,74,74,169,74,140, - 169,74,169,140,169,169,169,169,169,169,169,169,169,169,88,169, - 169,88,169,88,169,169,169,169,88,169,169,169,39,39,39,140, - 169,140,39,39,140,39,140,39,39,188,140,169,39,39,39,39, - 140,39,39,39,39,39,140,39,39,140,169,140,140,140,140,140, - 140,169,169,74,100,74,169,169,140,140,169,74,169,169,140,169, - 140,169,169,169,169,169,169,88,169,169,88,169,169,169,88,169, - 88,169,169,127,169,169,169,169,169,127,39,169,169,169,127,169, - 100,88,88,169,169,188,88,88,88,188,88,88,218,218,88,88, - 88,218,218,88,218,218,218,218,218,188,218,188,188,218,218,218, - 127,218,127,218,188,127,188,127,218,127,218,127,218,153,153,111, - 26,187,42,150,42,187,132,0,0,251,251,123,103,167,79,79, - 79,167,123,123,168,26,42,211,0,162,251,251,123,123,79,79, - 79,79,167,123,123,168,26,42,211,0,221,31,251,123,167,79, - 79,220,79,167,123,123,168,26,26,211,0,0,251,123,228,167, - 55,79,79,79,167,167,251,168,26,26,211,0,221,251,123,228, - 167,103,79,220,79,167,123,123,168,26,26,211,0,221,251,251, - 123,167,103,220,79,79,167,123,123,168,26,42,211,0,162,251, - 251,123,103,167,79,79,79,167,123,123,168,26,26,211,0,162, - 251,228,123,167,79,220,79,79,167,123,123,168,26,42,211,0, - 162,251,251,123,103,167,79,79,79,167,123,123,168,91,26,211, - 0,162,251,251,123,167,103,79,220,79,167,123,123,168,91,42, - 211,0,162,251,251,123,123,79,79,79,79,167,123,123,73,12, - 42,211,0,221,251,251,123,167,103,79,220,79,167,123,123,168, - 91,42,211,0,221,251,251,123,167,103,220,79,79,167,123,173, - 73,91,42,211,0,94,251,251,123,123,79,79,79,79,167,123, - 123,168,12,42,211,0,162,251,123,123,167,103,79,79,79,167, - 123,123,168,91,42,211,0,221,251,251,123,167,103,220,79,79, - 167,123,123,168,26,42,211,0,221,251,251,123,103,167,79,220, - 79,167,123,123,168,26,26,211,0,162,251,228,123,123,79,79, - 79,79,167,123,228,168,26,42,8,26,12,8,141,8,8,244, - 36,105,105,105,105,105,105,105,105,208,105,105,208,105,208,105, - 105,208,105,208,105,105,208,105,208,105,208,105,105,208,105,208, - 105,208,105,105,105,208,105,208,208,105,208,208,63,208,208,63, - 208,63,208,63,63,208,208,208,208,208,208,63,208,63,208,208, - 169,140,188,140,169,39,140,140,140,169,140,140,74,140,140,140, - 140,169,140,140,140,140,169,169,140,140,169,140,74,169,169,74, - 169,74,169,140,140,169,169,169,169,169,169,169,169,169,169,169, - 169,169,188,169,169,88,169,169,169,169,169,169,169,169,169,39, - 39,140,140,39,140,169,140,169,140,39,39,140,169,169,169,188, - 140,39,39,39,39,39,39,39,39,140,169,169,140,169,140,169, - 140,140,169,140,169,74,140,100,100,74,169,140,140,169,169,169, - 169,169,169,169,169,169,169,88,169,169,88,169,169,169,169,127, - 169,88,169,169,88,169,88,169,169,88,127,169,88,169,169,127, - 169,169,88,127,88,88,88,188,88,169,88,169,88,218,218,218, - 88,88,218,188,218,218,88,218,218,127,218,218,207,127,218,218, - 218,218,218,218,218,127,218,127,218,207,218,207,218,153,184,111, - 26,187,42,150,183,187,219,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,150,42,243,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,132,26,150,0,0,0,0,0,122,0, - 0,0,0,0,0,0,219,132,42,12,0,0,0,0,0,0, - 162,0,0,0,0,0,0,183,17,42,243,0,0,0,0,0, - 0,0,0,0,0,0,0,0,219,132,26,150,0,0,0,0, - 0,0,0,0,0,0,0,0,0,219,150,42,243,0,0,0, - 0,0,0,0,0,0,0,0,0,0,219,132,26,150,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,150,42,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,219,132,42,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,132,42, - 12,0,0,0,0,0,122,0,0,0,0,0,0,0,26,132, - 42,243,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 132,42,12,0,0,0,0,0,0,0,0,0,0,0,162,162, - 219,132,42,243,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,132,42,12,0,0,0,0,0,0,0,0,0,0,0, - 0,0,219,132,42,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,150,42,243,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,132,26,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,183,12,26,243,219,12,8,8,8,243,244, - 105,105,36,105,105,105,105,105,36,105,105,105,105,105,105,208, - 105,105,105,208,105,208,105,208,105,208,105,208,105,208,105,208, - 105,208,208,208,105,208,208,105,208,208,105,208,63,63,208,208, - 208,63,208,208,208,63,208,105,208,105,208,208,208,208,63,208, - 39,169,39,39,39,140,169,169,169,39,140,140,39,74,140,140, - 140,140,74,140,140,169,140,140,169,140,140,100,39,140,140,169, - 74,169,140,169,100,140,169,140,169,140,169,169,169,218,169,169, - 169,169,169,169,188,39,188,169,169,88,169,169,169,39,39,140, - 140,39,39,169,39,39,39,39,39,169,140,39,39,39,39,39, - 39,39,39,39,39,39,39,140,140,39,140,140,140,140,169,140, - 140,140,140,74,140,169,169,140,140,169,140,169,100,169,140,169, - 169,169,169,169,169,169,169,169,88,169,169,88,127,88,169,169, - 88,127,169,88,169,88,127,88,88,169,169,169,127,169,169,88, - 169,88,188,88,88,188,169,88,88,88,88,88,218,88,88,218, - 218,218,218,218,218,218,218,127,218,218,127,218,218,218,218,218, - 127,218,127,143,218,218,218,218,127,143,143,143,218,153,153,132, - 26,183,187,12,42,187,187,42,26,26,26,26,42,42,219,219, - 219,219,219,26,26,219,219,187,42,26,26,26,26,26,42,26, - 17,219,219,219,26,26,17,42,187,42,17,26,26,26,42,42, - 26,12,219,17,219,26,17,219,26,187,42,26,26,26,26,42, - 42,26,17,219,219,219,26,26,132,219,17,42,26,26,26,26, - 42,42,26,219,219,219,219,26,219,219,219,187,42,26,26,26, - 26,42,42,26,219,219,219,219,26,219,219,42,187,42,26,26, - 26,26,42,42,26,219,17,219,219,26,26,219,219,187,42,26, - 26,26,26,26,42,26,17,219,219,219,26,26,219,26,187,42, - 26,26,26,26,42,42,219,219,219,219,219,42,26,219,26,187, - 42,26,26,26,26,42,42,26,219,219,219,219,26,26,219,26, - 187,42,26,26,26,26,42,42,26,219,219,219,219,219,219,219, - 42,187,42,26,26,26,26,42,42,26,219,219,219,219,26,26, - 219,26,187,42,26,26,26,26,42,42,26,219,219,219,219,219, - 219,219,219,187,42,26,26,26,26,42,42,26,219,219,219,219, - 26,219,219,26,187,42,26,26,26,26,42,42,219,17,17,219, - 219,26,26,219,26,187,42,26,26,26,26,42,42,26,219,219, - 219,219,26,219,219,219,187,42,26,26,26,26,42,42,26,219, - 219,219,219,26,26,219,26,187,42,26,26,26,26,42,42,26, - 219,17,219,219,26,26,132,26,187,26,12,12,8,12,12,244, - 105,105,105,105,105,105,105,105,208,105,105,208,105,105,208,105, - 208,105,105,208,105,208,208,208,105,208,105,208,208,105,208,105, - 208,105,208,105,208,105,208,208,208,63,208,208,105,208,208,208, - 105,208,208,105,105,208,105,208,208,208,208,63,208,208,208,208, - 39,140,169,39,169,39,140,140,74,140,169,140,39,140,169,140, - 169,39,74,140,140,140,140,140,169,140,140,74,169,169,140,140, - 74,74,140,169,169,169,169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,188,188,169,169,169,39,169,140,39,39, - 39,140,39,39,39,140,169,39,39,39,39,140,39,39,39,188, - 140,39,39,39,39,114,188,39,140,140,169,140,140,140,140,169, - 140,140,169,140,140,140,169,140,140,140,140,169,140,169,169,140, - 169,169,169,169,169,169,169,169,88,169,169,169,188,127,88,169, - 169,88,169,127,169,169,169,169,127,169,169,169,88,169,169,127, - 169,169,169,188,88,218,88,218,88,218,88,88,218,218,88,218, - 218,218,218,88,218,218,218,218,218,218,127,218,218,218,218,218, - 218,218,218,218,127,218,143,218,207,207,127,236,207,236,184,111, - 26,219,42,187,42,150,219,219,243,12,132,17,219,17,12,243, - 150,150,150,150,17,219,26,12,219,243,12,17,17,219,17,17, - 243,150,150,150,150,17,17,26,12,26,150,12,132,17,219,12, - 17,243,150,150,150,17,187,17,219,12,219,243,12,17,17,219, - 17,17,243,150,150,150,150,17,219,42,187,17,150,12,132,17, - 219,17,12,243,150,150,150,12,12,219,26,187,17,243,12,132, - 17,219,17,12,243,150,150,150,12,187,17,26,12,219,243,12, - 132,17,219,17,12,243,150,150,150,150,12,219,26,187,17,150, - 12,17,17,219,12,12,243,150,150,150,150,187,17,219,12,219, - 243,12,132,17,219,17,12,243,150,150,150,150,12,219,219,12, - 219,243,12,132,17,219,17,12,243,150,150,150,150,12,219,219, - 12,219,243,12,150,17,219,12,12,243,150,150,12,12,187,17, - 26,12,219,243,12,132,17,219,17,12,243,150,150,150,150,12, - 219,219,187,17,243,12,132,17,219,17,12,243,150,150,12,17, - 12,17,42,12,219,243,12,17,17,219,17,12,243,150,150,150, - 17,12,219,219,12,219,243,12,132,17,219,17,17,243,150,150, - 150,150,12,219,219,12,219,243,12,132,17,219,17,12,243,150, - 150,150,12,17,17,42,12,219,243,12,132,17,219,17,12,243, - 150,150,150,150,12,17,219,12,219,243,12,17,17,219,17,12, - 243,150,150,150,150,17,219,26,12,42,8,8,8,8,8,244, - 36,105,105,105,105,105,208,105,105,105,208,105,105,105,208,105, - 105,208,105,208,105,208,105,105,208,105,208,105,208,105,208,105, - 208,105,208,208,208,105,105,105,105,208,105,208,208,105,105,208, - 208,105,208,208,208,208,208,208,105,208,208,105,208,105,105,208, - 188,39,39,169,39,140,169,39,39,169,140,140,140,169,140,140, - 140,140,169,140,169,140,140,140,140,140,140,39,140,140,140,169, - 140,39,169,39,140,169,140,169,169,169,169,169,169,169,169,169, - 188,188,188,188,188,169,169,169,169,188,169,169,169,188,169,39, - 114,39,39,39,140,39,39,169,140,140,39,39,140,39,169,39, - 39,39,39,39,39,188,39,39,39,39,140,140,169,140,140,140, - 169,140,140,140,140,169,140,100,74,169,140,39,169,169,140,169, - 140,169,140,169,169,169,169,169,39,169,169,88,169,169,169,169, - 88,88,188,88,88,88,88,188,88,88,88,88,127,88,127,88, - 127,88,218,100,218,169,88,88,88,88,218,218,88,88,218,218, - 88,218,218,218,127,218,218,127,218,218,218,143,218,143,218,218, - 127,218,218,218,143,218,207,127,143,143,143,207,218,153,153,141, - 26,42,42,187,42,187,132,26,150,12,17,17,219,12,26,243, - 12,12,12,219,12,17,42,109,26,150,12,132,187,17,12,26, - 243,12,150,12,219,12,219,26,12,219,150,12,17,17,17,17, - 17,243,150,150,12,17,17,17,26,12,26,150,17,132,17,219, - 12,26,243,12,150,12,219,12,17,26,12,26,150,12,17,17, - 219,12,26,243,12,12,12,17,17,17,26,12,26,150,17,17, - 17,219,12,26,243,12,12,12,17,12,219,42,109,26,150,12, - 17,187,17,12,26,150,150,150,12,219,17,17,42,243,26,150, - 12,150,219,17,17,26,243,12,150,12,219,12,219,42,243,26, - 150,12,17,17,219,12,26,243,12,12,12,17,17,17,26,109, - 26,150,12,17,17,219,12,26,150,150,150,12,17,17,17,42, - 109,26,150,12,17,219,17,17,26,243,12,150,150,17,12,219, - 26,187,26,150,12,17,17,219,12,26,150,150,150,12,17,17, - 17,26,12,26,150,17,17,17,219,12,26,243,150,17,150,17, - 17,219,26,187,26,150,17,150,17,219,12,26,243,12,12,12, - 17,12,17,26,12,26,150,17,17,17,219,12,26,243,12,12, - 12,219,17,17,26,187,26,150,12,17,17,219,12,26,243,12, - 150,12,17,187,219,26,187,26,150,12,17,17,219,12,26,243, - 12,12,12,219,187,219,42,109,26,150,17,132,187,219,12,26, - 150,150,150,12,219,17,17,42,12,26,12,12,8,8,12,244, - 105,105,105,105,105,36,105,208,105,105,105,105,208,105,208,105, - 105,105,208,105,208,105,208,208,105,208,208,105,208,208,105,208, - 105,208,105,208,105,208,208,208,208,208,208,105,208,208,208,208, - 208,208,208,208,208,105,105,208,208,105,208,208,208,208,208,208, - 169,39,39,39,39,39,169,140,39,140,169,74,140,140,169,140, - 140,140,140,140,140,169,140,140,169,140,140,140,169,169,140,169, - 140,140,140,169,140,169,169,140,169,140,169,169,169,188,188,169, - 169,188,169,169,39,39,188,39,169,188,169,39,169,39,169,169, - 39,39,39,39,169,140,39,39,39,140,169,39,39,39,188,188, - 39,39,39,39,39,39,39,39,169,169,169,140,140,169,140,140, - 169,140,169,140,140,140,39,39,140,169,140,74,169,169,169,169, - 39,169,169,169,169,169,188,169,188,169,169,169,88,169,88,169, - 188,88,169,169,188,188,88,188,88,188,169,88,188,88,88,88, - 88,88,218,88,88,218,218,218,218,88,218,218,153,88,218,218, - 218,218,218,143,218,218,143,143,143,218,218,218,218,218,218,143, - 218,143,143,218,143,127,143,218,207,207,143,236,143,153,153,111, - 26,183,183,187,42,187,150,26,132,132,132,132,17,150,219,150, - 150,150,12,132,17,17,26,243,26,132,17,219,17,150,150,17, - 150,17,150,12,132,17,219,17,109,26,150,132,219,17,150,17, - 219,12,17,150,12,17,17,219,17,109,26,150,17,132,17,150, - 150,219,150,17,150,12,219,187,17,17,109,26,150,132,132,17, - 150,150,219,150,150,132,17,150,17,17,17,109,26,150,17,132, - 17,150,150,219,150,150,132,17,17,12,219,26,109,26,132,132, - 132,219,132,150,17,12,17,150,12,17,17,17,26,109,26,150, - 219,17,17,132,150,219,150,17,150,12,132,12,17,26,109,26, - 150,132,132,132,17,150,17,150,150,132,17,132,17,219,26,243, - 26,132,132,132,17,150,150,17,12,17,150,17,132,17,17,26, - 109,26,150,17,17,17,132,150,219,150,17,17,12,219,12,17, - 17,109,26,132,17,132,17,150,150,17,12,17,150,17,17,17, - 17,17,109,26,150,17,132,17,150,150,219,12,150,17,12,132, - 12,17,17,211,26,150,17,17,17,150,150,17,150,150,132,12, - 219,187,219,17,109,26,150,150,132,17,12,150,219,150,150,132, - 12,132,17,17,17,211,26,132,17,132,17,150,150,219,150,132, - 150,17,17,12,17,17,211,26,132,132,132,132,150,150,219,150, - 150,150,17,150,12,17,26,109,26,150,17,17,17,150,150,17, - 12,17,150,12,12,17,17,17,109,219,243,243,8,8,12,244, - 105,105,105,208,105,105,105,105,105,105,105,105,208,36,208,208, - 105,105,105,208,105,208,105,208,105,208,105,208,105,208,105,208, - 105,105,208,208,105,208,208,63,105,208,208,208,208,63,105,105, - 208,105,208,105,208,208,208,105,208,208,105,105,208,105,208,105, - 39,39,39,39,140,140,140,39,140,39,140,39,140,140,140,140, - 140,140,169,140,169,140,169,169,140,39,140,140,140,140,140,140, - 140,169,140,140,169,169,169,169,169,188,140,169,169,169,169,169, - 188,169,39,39,188,39,169,39,39,39,39,39,39,169,188,188, - 39,39,39,39,39,39,39,140,39,39,39,39,39,188,39,39, - 39,39,39,207,39,188,188,188,39,39,140,140,169,140,140,140, - 140,39,140,169,140,169,140,140,140,140,140,39,140,169,169,169, - 169,188,39,39,169,188,169,169,169,188,169,88,169,188,188,188, - 169,169,88,188,88,188,188,88,188,169,127,188,188,188,188,188, - 188,88,169,169,218,169,218,88,88,218,88,88,218,218,218,88, - 218,218,218,218,218,218,218,218,218,218,143,218,143,218,218,218, - 218,218,218,218,218,218,143,207,143,236,207,207,207,58,184,166, - 26,183,26,12,26,187,187,219,12,17,132,219,17,12,26,150, - 17,17,17,17,17,132,219,109,219,12,17,132,219,17,17,26, - 150,132,17,12,17,17,150,26,243,219,17,17,132,17,17,12, - 26,150,150,17,17,132,12,187,26,243,219,12,17,17,219,17, - 12,26,150,150,17,12,17,12,132,26,243,219,17,17,132,219, - 17,12,26,150,17,12,17,17,187,132,26,243,219,17,150,132, - 219,17,12,26,150,17,12,17,132,17,150,219,243,219,12,17, - 132,17,17,12,26,150,150,17,12,132,187,132,219,243,219,12, - 17,132,17,17,12,26,150,150,17,17,17,17,187,219,243,219, - 17,17,132,219,17,12,26,150,17,17,12,17,12,187,219,109, - 219,12,17,132,219,17,12,26,150,150,17,12,17,17,187,219, - 243,219,17,150,132,17,17,12,26,150,150,150,150,132,17,132, - 26,243,219,17,150,132,219,17,12,26,150,150,17,17,132,12, - 187,26,243,219,17,150,132,219,17,12,26,150,17,150,17,17, - 12,166,26,109,219,17,17,132,219,17,12,26,150,17,17,150, - 132,12,187,26,243,219,17,219,132,17,17,12,26,150,17,17, - 12,17,12,187,26,243,219,17,150,132,219,17,12,26,150,17, - 17,12,132,17,132,26,243,219,12,17,132,219,17,12,26,150, - 17,17,17,17,17,187,219,243,219,12,17,132,17,219,12,26, - 150,150,17,12,17,12,166,26,243,26,12,150,8,8,243,244, - 36,105,36,105,105,105,105,105,105,105,105,208,105,36,208,105, - 208,208,105,105,208,105,208,105,208,105,208,208,208,208,105,208, - 208,105,208,105,208,105,105,208,208,105,105,105,105,208,208,208, - 63,208,208,208,208,105,208,208,105,208,208,208,105,208,208,208, - 39,39,39,39,39,169,169,169,140,169,140,169,169,140,169,140, - 169,140,140,140,140,140,140,140,140,169,169,140,169,169,140,169, - 140,169,169,140,140,140,140,140,169,39,169,188,169,169,188,169, - 39,188,169,39,188,39,169,169,169,188,188,188,188,39,39,39, - 39,39,39,207,39,39,39,140,39,114,39,39,39,188,207,39, - 39,39,39,207,39,207,39,39,39,39,140,140,140,169,169,140, - 140,140,140,140,140,140,169,169,140,169,140,39,140,140,140,140, - 140,169,169,39,169,169,188,188,169,39,39,188,88,188,88,188, - 188,188,88,188,188,188,188,127,88,188,88,88,88,188,88,88, - 188,188,88,169,88,88,218,218,88,218,218,218,218,88,218,218, - 188,218,127,218,218,218,218,218,218,218,218,207,218,218,236,153, - 207,143,236,143,218,207,143,207,143,143,143,143,143,184,184,111, - 26,183,26,243,42,109,132,219,12,17,17,150,150,132,219,150, - 150,150,17,17,187,150,219,243,219,150,17,150,17,150,132,219, - 12,150,132,17,132,187,150,26,211,219,12,17,132,17,150,132, - 219,12,132,150,17,132,132,150,219,211,219,150,132,132,17,150, - 132,219,12,132,150,132,219,187,150,219,211,219,12,17,132,17, - 150,132,26,150,132,150,17,17,187,150,219,109,219,12,219,150, - 17,132,132,26,150,150,132,17,132,187,150,219,109,219,12,17, - 132,17,132,132,219,12,132,150,17,17,187,150,219,211,219,150, - 17,132,17,150,132,219,12,132,150,17,132,132,187,219,211,219, - 12,17,17,150,150,132,219,150,150,150,17,132,132,187,219,243, - 219,12,17,132,17,132,132,219,12,132,150,17,132,132,187,219, - 211,219,17,17,132,17,150,132,26,12,17,17,17,132,187,150, - 219,211,219,12,219,150,17,150,132,219,12,150,150,17,132,132, - 150,219,109,219,12,219,150,17,150,132,219,150,17,150,17,219, - 17,150,219,243,219,150,17,132,17,132,132,26,150,150,17,17, - 132,132,150,219,211,219,12,17,132,132,132,132,219,150,150,150, - 219,132,132,150,219,109,219,12,219,150,17,132,132,219,150,150, - 150,17,17,187,150,219,109,219,12,17,17,17,150,132,219,150, - 150,150,17,132,132,187,219,211,219,150,17,132,17,132,132,219, - 12,132,132,132,132,17,150,219,109,219,8,243,8,12,8,36, - 36,105,105,105,105,105,105,105,105,105,105,105,208,105,105,208, - 105,105,208,105,208,105,208,208,105,208,208,105,105,208,105,208, - 105,208,208,208,105,208,208,105,208,208,208,208,208,208,105,208, - 105,208,105,208,208,208,105,208,105,208,105,208,105,105,105,208, - 169,39,39,169,169,39,140,140,140,39,169,140,140,140,140,140, - 39,140,140,169,140,140,140,140,169,140,140,140,140,140,169,140, - 140,140,140,169,169,169,169,39,39,169,39,169,169,188,169,188, - 88,169,188,169,169,88,39,188,188,39,169,188,39,169,188,169, - 169,188,39,39,39,39,188,39,39,39,39,39,207,39,39,39, - 207,39,39,39,207,188,188,188,169,140,169,169,140,140,140,169, - 140,169,140,169,140,169,140,140,169,140,169,140,169,169,169,169, - 39,39,140,169,169,39,169,169,188,169,188,169,188,188,39,169, - 169,188,188,188,88,188,188,88,188,218,188,188,188,88,188,188, - 88,218,218,218,218,218,169,169,218,88,218,88,218,218,218,188, - 188,188,207,127,127,207,207,218,236,207,236,218,236,236,143,207, - 143,236,143,218,236,143,207,143,143,207,143,207,207,153,153,166, - 26,42,42,12,78,8,187,42,150,17,17,17,132,17,26,12, - 219,132,132,17,17,187,26,8,42,12,132,219,150,132,17,26, - 150,219,150,132,219,219,187,219,12,42,150,132,17,132,150,219, - 219,150,17,150,17,219,26,187,26,187,42,12,219,17,150,132, - 17,26,150,17,132,12,219,17,187,26,12,26,150,219,17,150, - 132,17,219,12,17,132,150,219,219,187,26,8,42,150,17,17, - 132,150,17,219,12,219,150,17,219,219,187,26,8,42,150,219, - 17,150,150,219,219,150,219,150,17,219,17,187,26,12,42,12, - 132,17,150,132,17,26,150,17,132,150,219,26,150,26,187,42, - 150,17,17,17,132,17,26,12,219,132,132,219,26,150,26,211, - 42,150,17,17,132,150,17,219,150,17,132,150,219,26,150,26, - 12,42,150,132,17,150,132,17,219,150,132,150,17,219,219,187, - 26,12,42,150,17,17,132,150,219,219,150,219,132,17,219,26, - 187,26,8,42,150,17,219,150,132,17,219,12,132,132,150,219, - 17,187,26,211,42,12,132,17,150,132,17,219,12,17,150,17, - 219,26,187,26,187,42,150,17,17,17,150,17,26,12,219,132, - 150,219,26,187,26,8,26,150,17,17,132,150,17,26,12,219, - 132,12,219,219,187,26,211,42,150,17,17,150,132,17,26,12, - 219,132,150,219,26,150,26,12,26,17,132,17,132,150,17,219, - 150,17,150,17,219,17,187,26,211,26,8,12,141,8,150,36, - 36,105,36,105,105,105,105,105,105,105,105,105,105,105,208,105, - 105,208,105,208,105,208,105,208,208,105,208,208,105,208,105,208, - 105,105,208,105,208,105,208,208,208,105,208,208,105,208,208,105, - 208,208,208,105,208,105,208,208,105,208,208,105,208,208,208,105, - 39,169,39,39,169,169,169,169,140,140,140,39,169,140,169,140, - 140,169,140,169,169,140,169,140,140,140,169,140,140,39,140,39, - 140,39,39,114,169,39,140,140,39,169,140,39,169,188,169,188, - 188,188,188,188,188,188,39,169,169,39,39,188,39,169,188,39, - 39,188,188,207,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,207,39,39,207,39,39,169,140,140,169,140,140,140,169, - 140,39,140,140,140,140,140,140,140,39,169,39,140,39,39,169, - 140,39,140,169,169,39,39,169,188,169,188,39,188,188,188,188, - 188,188,188,188,88,188,188,88,188,188,188,188,207,188,188,188, - 169,218,188,188,218,188,218,169,218,188,218,218,169,218,218,207, - 207,188,207,207,207,127,207,207,218,207,236,143,218,207,236,236, - 143,207,236,143,218,143,207,207,236,236,236,143,236,184,153,166, - 17,183,26,187,42,211,132,42,12,17,17,17,17,150,219,150, - 17,12,219,219,17,187,26,109,219,17,17,17,17,17,132,26, - 150,219,12,17,17,17,187,17,211,26,17,17,17,17,17,17, - 42,150,219,150,17,132,17,187,17,211,219,12,17,17,17,17, - 132,42,150,219,12,17,219,17,187,17,109,26,12,17,17,17, - 17,132,219,150,219,12,17,17,17,187,26,211,42,17,17,17, - 17,17,150,219,150,219,150,17,17,17,187,26,211,42,12,17, - 17,17,17,17,26,150,219,150,17,219,17,187,17,211,219,17, - 17,17,17,17,132,42,150,219,12,17,132,26,187,12,211,26, - 17,17,17,17,17,132,219,150,17,17,17,132,26,187,26,211, - 42,17,17,17,17,17,17,42,150,219,12,17,132,26,187,12, - 211,26,17,17,17,17,17,132,42,12,132,150,17,17,17,187, - 17,211,26,17,17,17,17,17,17,26,150,17,150,17,132,219, - 187,26,211,42,12,219,17,17,17,17,219,12,17,17,17,17, - 17,187,26,211,219,17,17,17,17,17,132,219,150,132,150,17, - 132,17,187,12,211,26,12,219,17,17,17,150,219,150,17,12, - 17,132,219,187,26,109,42,17,17,17,17,17,132,219,150,219, - 150,17,17,17,187,26,109,42,17,17,17,17,17,132,219,150, - 17,12,17,132,26,187,12,109,219,17,17,17,17,17,17,42, - 150,219,12,12,219,17,187,17,243,26,8,8,8,8,8,244, - 105,105,105,105,105,105,105,105,105,208,105,105,208,105,105,208, - 105,105,208,105,208,105,208,105,208,105,208,105,208,208,105,208, - 208,208,208,208,105,208,105,208,208,208,105,208,208,208,208,208, - 105,105,208,208,208,208,105,208,208,105,208,208,105,208,208,63, - 188,39,39,169,39,169,169,39,169,39,39,140,140,140,140,140, - 169,140,140,140,140,169,140,140,140,169,140,140,140,140,169,140, - 169,140,140,169,140,140,39,39,140,39,188,39,188,169,188,39, - 169,169,188,188,39,169,169,39,188,39,39,39,188,39,39,39, - 169,169,39,39,188,188,188,39,39,39,39,39,39,39,39,39, - 89,39,207,39,207,39,39,39,39,140,140,140,140,169,140,140, - 140,140,140,140,169,140,169,140,169,140,140,140,39,140,140,39, - 39,169,39,39,39,169,188,39,39,39,39,39,169,188,169,169, - 188,39,39,39,188,188,39,188,169,88,88,188,188,188,188,188, - 188,188,188,188,188,188,169,188,188,188,188,188,207,188,188,127, - 188,207,188,207,127,188,207,127,207,143,207,207,236,236,218,143, - 207,218,143,236,236,236,143,143,143,143,143,218,218,153,184,126, - 26,183,187,187,42,187,187,42,150,219,12,12,150,219,219,17, - 132,17,150,219,219,150,219,12,26,17,17,17,12,150,219,219, - 17,132,12,17,219,17,187,26,187,26,17,17,17,150,150,17, - 219,17,150,17,17,219,219,150,26,12,26,17,17,17,12,150, - 17,219,17,132,150,150,219,17,150,26,12,42,150,17,12,17, - 150,219,219,17,132,17,150,219,219,150,219,12,42,150,17,17, - 12,150,219,219,17,132,12,17,219,219,132,219,12,42,150,219, - 12,17,150,17,219,17,150,17,150,219,17,150,26,187,26,17, - 17,17,12,150,17,219,17,150,17,17,219,17,132,42,12,42, - 150,17,12,12,150,219,219,17,150,12,17,219,17,187,219,187, - 26,150,17,17,12,150,17,219,17,150,17,17,219,17,132,26, - 187,42,12,219,12,17,150,219,219,132,17,17,17,219,17,150, - 26,12,42,150,17,17,12,150,17,219,17,132,17,17,219,17, - 150,219,12,26,150,219,12,12,150,219,219,150,132,17,150,219, - 219,150,219,187,26,17,17,17,12,150,219,219,17,17,17,17, - 219,219,150,42,12,42,150,17,17,12,150,219,219,17,132,17, - 17,219,17,150,219,12,26,150,17,17,12,150,17,219,17,132, - 17,150,219,219,150,219,12,26,150,17,12,17,150,219,219,17, - 132,17,17,219,17,132,26,12,42,12,17,17,12,150,17,219, - 17,132,150,219,17,219,150,26,12,219,8,8,141,8,150,244, - 36,105,36,105,105,105,105,105,105,105,105,105,105,105,208,105, - 208,105,105,105,105,208,208,105,208,105,208,105,208,105,208,105, - 105,208,105,208,208,105,208,208,105,208,208,208,105,208,105,208, - 208,208,105,208,105,208,208,105,208,208,105,105,208,105,105,105, - 169,169,188,169,169,140,169,169,169,140,169,140,169,140,100,74, - 140,169,140,140,140,169,169,169,140,169,169,169,140,140,140,140, - 140,169,140,39,169,169,169,39,140,39,169,39,188,169,169,39, - 39,39,169,39,39,188,39,39,188,169,169,39,39,169,169,39, - 39,140,169,39,207,39,207,39,39,39,114,39,39,39,39,39, - 39,89,39,39,39,39,39,140,169,169,169,169,140,169,140,169, - 169,169,169,140,169,140,169,140,140,39,169,140,169,39,140,169, - 39,39,39,169,39,169,39,169,169,169,188,39,39,188,188,39, - 188,169,188,39,188,188,39,188,207,39,188,169,188,188,188,188, - 169,188,39,169,188,207,188,188,188,188,207,188,188,207,207,207, - 39,207,39,207,207,39,207,207,207,207,207,207,143,207,207,236, - 236,236,236,143,143,236,218,143,207,143,207,153,143,153,184,111, - 26,219,219,187,183,243,132,42,219,219,17,219,12,17,219,17, - 17,219,17,26,26,187,26,150,219,26,219,17,17,17,17,219, - 17,17,17,219,219,17,150,26,150,219,26,219,26,17,17,17, - 219,219,12,17,219,219,26,150,26,150,219,26,219,17,17,17, - 17,219,17,17,219,219,219,26,150,26,150,42,26,219,17,17, - 12,17,219,17,17,219,219,219,26,187,26,150,42,26,219,17, - 17,17,17,219,17,17,17,219,26,26,187,26,150,42,26,219, - 17,17,17,17,219,17,17,17,219,26,26,150,26,150,219,26, - 219,17,219,12,17,219,219,12,17,219,219,26,150,26,150,42, - 219,219,17,17,17,17,219,219,12,17,219,219,12,17,26,150, - 42,26,219,17,17,17,17,219,17,17,17,17,219,26,150,26, - 150,219,26,219,17,17,12,17,26,17,17,17,219,219,26,150, - 26,150,42,26,219,17,17,17,17,219,17,17,17,219,219,26, - 187,26,150,42,26,219,17,17,17,17,26,219,12,219,219,219, - 26,12,26,150,219,26,219,17,17,17,17,219,219,12,17,219, - 219,26,150,26,150,42,26,219,17,17,17,17,219,17,17,17, - 219,219,26,187,26,150,42,26,219,17,17,17,26,219,17,12, - 219,219,219,26,12,26,150,42,219,219,17,17,12,17,219,17, - 17,17,219,219,26,150,26,150,219,26,219,17,17,17,17,219, - 17,17,17,219,219,26,12,26,243,219,150,8,8,8,8,244, - 105,105,208,105,105,105,105,105,105,105,105,105,208,105,105,208, - 105,105,208,105,208,105,208,105,208,208,105,208,105,208,105,208, - 208,208,105,208,208,105,105,208,208,105,208,208,208,208,208,105, - 208,208,105,208,208,208,208,105,208,208,208,105,208,208,208,208, - 188,169,169,188,169,169,169,39,169,169,140,169,140,169,39,140, - 169,140,169,169,169,140,140,169,39,169,169,140,169,169,169,39, - 169,140,169,140,39,39,39,169,39,140,39,169,140,169,39,169, - 169,169,39,169,169,140,39,39,140,39,39,140,140,39,39,140, - 140,39,39,114,39,39,39,114,207,39,39,39,39,207,114,39, - 39,39,89,39,89,39,140,169,140,140,140,140,169,140,169,140, - 140,140,140,169,140,140,39,39,169,140,140,169,39,169,39,39, - 140,140,39,39,39,39,140,39,39,39,169,39,169,39,39,188, - 169,39,39,39,39,169,188,39,39,188,127,188,188,188,39,188, - 39,39,207,39,39,39,39,39,188,188,188,207,207,127,39,39, - 207,39,39,39,39,207,207,207,39,127,207,207,207,143,207,143, - 207,207,143,236,218,143,143,207,218,143,143,207,207,184,153,95, - 26,26,26,187,122,187,219,0,42,122,122,0,122,42,122,122, - 42,122,122,78,183,42,183,187,0,42,122,122,122,122,42,122, - 122,42,122,122,122,42,42,183,187,122,42,122,122,0,122,42, - 122,122,122,122,122,122,183,42,183,187,122,42,122,122,0,122, - 42,122,122,42,122,122,122,183,42,183,187,0,42,122,122,0, - 0,42,122,122,42,122,122,78,183,42,183,187,0,42,122,122, - 0,122,42,122,122,42,122,122,42,183,42,183,187,0,42,122, - 122,0,122,42,122,122,122,122,122,162,183,42,183,187,0,42, - 122,122,0,122,42,122,122,122,122,122,78,219,42,183,187,0, - 42,122,122,0,122,42,122,122,122,122,122,122,42,42,219,187, - 122,42,122,122,0,122,42,122,122,122,122,122,122,219,42,183, - 187,0,42,122,122,0,0,42,122,122,42,122,122,122,183,42, - 183,187,0,42,122,122,0,122,42,122,122,42,122,122,122,183, - 42,183,187,122,42,122,122,0,122,42,122,122,42,122,122,122, - 183,78,219,187,0,42,122,122,0,122,42,122,122,122,122,122, - 122,219,42,183,187,0,42,122,122,0,122,42,122,122,122,122, - 122,122,183,42,183,187,0,42,122,122,0,122,42,122,122,42, - 122,122,162,219,42,183,187,0,42,122,122,0,0,42,122,122, - 42,122,122,122,219,42,183,187,0,42,122,122,0,122,42,122, - 122,122,122,122,122,219,42,183,187,26,12,12,243,12,150,244, - 105,36,105,36,105,105,36,105,105,36,208,36,208,105,105,208, - 105,105,208,105,105,208,105,208,105,208,105,208,208,105,208,105, - 208,105,208,105,105,208,208,105,208,208,105,105,105,105,208,208, - 105,208,208,105,208,105,208,208,105,105,208,208,208,208,208,105, - 188,169,169,188,188,169,169,169,169,169,169,169,169,140,169,169, - 169,169,169,169,169,169,169,169,169,169,188,169,169,140,169,39, - 39,39,169,140,140,140,39,169,39,39,39,39,39,140,169,140, - 169,140,140,169,169,140,140,169,140,140,39,39,140,140,39,188, - 169,39,169,39,39,39,39,39,39,39,39,39,39,39,39,89, - 114,39,207,114,207,39,39,39,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,140,39,169,39,39,140,39,169,140,188, - 39,140,140,169,39,39,169,140,169,39,188,39,39,127,39,39, - 188,140,39,39,207,39,127,188,39,169,39,127,39,127,39,188, - 39,39,207,39,39,39,39,207,39,207,39,188,207,207,39,39, - 39,39,39,39,39,39,39,207,207,207,207,127,89,236,207,143, - 207,207,207,236,207,207,143,207,236,236,143,218,143,184,153,163, - 122,78,42,42,0,78,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,183,42,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,42,42,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,122,26,42,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,42,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,219,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,42,42,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,183,42,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,42,122,122,122,0,0,219,244, - 36,105,105,105,105,105,105,105,105,105,105,105,105,208,105,105, - 208,105,208,105,105,105,208,105,208,105,208,105,208,208,105,208, - 208,105,208,208,208,105,208,105,105,208,208,208,208,105,208,208, - 208,208,208,105,208,208,208,208,208,208,105,105,105,105,208,208, - 188,188,188,188,169,169,169,169,39,39,169,39,169,169,169,169, - 140,169,140,169,169,169,39,169,39,39,169,140,169,169,140,169, - 140,169,39,169,169,169,169,169,169,169,140,169,140,39,39,169, - 140,169,140,39,39,169,169,39,39,39,140,140,39,39,39,39, - 39,140,39,140,39,39,39,39,39,39,114,39,39,39,114,39, - 207,39,39,39,39,140,140,169,169,169,169,169,140,169,169,169, - 169,39,39,39,169,169,169,140,169,169,169,169,169,169,169,169, - 169,169,39,39,140,39,39,188,39,169,169,39,169,39,169,39, - 169,188,39,39,39,39,39,39,127,39,39,39,188,39,39,39, - 39,39,39,39,39,39,207,39,39,39,207,39,39,39,127,39, - 127,39,39,127,39,39,39,39,39,39,207,89,207,207,207,89, - 207,236,236,236,236,236,207,143,143,143,143,218,236,184,184,150, - 26,183,187,243,78,26,42,0,14,216,41,62,62,249,62,62, - 62,62,62,62,41,75,26,17,0,14,216,41,62,62,249,62, - 62,62,62,62,62,41,75,219,17,0,14,216,41,62,62,249, - 62,62,62,62,62,62,62,22,26,17,0,14,216,41,62,62, - 249,62,62,62,62,62,62,41,75,26,17,0,14,216,41,62, - 62,249,62,62,62,62,62,62,41,75,26,17,0,14,216,41, - 62,62,249,62,62,62,62,62,62,41,75,219,17,0,14,216, - 41,62,62,249,62,62,62,62,62,62,41,75,26,17,0,14, - 216,41,62,62,249,62,62,62,62,62,62,62,22,26,17,0, - 14,216,41,62,62,249,62,62,62,62,62,62,41,75,26,17, - 0,14,216,41,62,62,249,62,62,62,62,62,62,41,75,219, - 17,0,14,216,41,62,62,249,62,62,62,62,62,62,62,22, - 219,17,0,14,216,41,62,62,249,62,62,62,62,62,62,41, - 139,219,17,0,14,216,41,62,62,249,62,62,62,62,62,62, - 41,75,26,17,0,14,216,41,62,62,249,62,62,62,62,62, - 62,62,22,26,17,0,14,216,41,62,62,249,62,62,62,62, - 62,62,41,75,26,17,0,14,216,41,62,62,249,62,62,62, - 62,62,62,41,75,26,17,0,14,216,41,62,62,249,62,62, - 62,62,62,62,62,22,26,17,0,14,216,41,62,62,249,62, - 62,62,62,62,62,41,22,26,17,122,26,12,12,219,150,244, - 36,105,36,105,105,36,105,105,105,105,208,105,105,105,105,208, - 105,105,105,105,208,105,105,105,208,105,208,105,105,208,105,208, - 208,105,105,208,105,208,208,208,208,208,105,105,208,208,105,105, - 105,105,208,208,105,208,105,208,105,208,208,208,208,208,208,63, - 188,169,188,188,169,169,169,169,169,39,169,169,140,169,169,169, - 169,169,169,169,169,169,39,169,188,39,188,39,188,169,169,169, - 169,169,169,169,169,169,39,169,169,188,39,188,169,169,39,39, - 169,39,140,140,39,39,140,140,39,39,39,39,39,140,140,39, - 39,39,114,39,39,114,39,207,39,207,39,39,39,207,39,39, - 39,207,207,39,207,39,169,169,169,169,169,169,169,169,169,169, - 169,169,169,39,169,169,169,39,169,169,169,169,169,169,169,169, - 39,169,39,188,39,39,39,169,39,39,169,39,169,39,169,39, - 169,39,169,39,39,39,39,39,39,39,169,39,39,39,39,39, - 39,39,39,39,39,39,114,207,39,39,39,207,39,207,39,39, - 39,39,39,39,39,39,39,39,127,39,39,127,127,89,143,207, - 127,143,207,236,143,236,143,207,207,236,236,207,143,236,184,224, - 139,187,150,49,187,187,187,42,233,110,195,90,90,195,195,90, - 90,90,90,195,60,154,91,12,42,233,110,195,90,90,195,195, - 90,90,90,90,195,60,154,12,12,42,233,110,195,90,90,195, - 195,90,90,90,90,90,60,154,12,12,42,233,110,195,90,90, - 195,195,90,90,90,90,195,60,154,12,12,42,233,110,195,90, - 90,195,195,90,90,90,90,195,60,154,12,12,42,233,110,195, - 90,90,195,195,90,90,90,90,195,60,154,26,12,42,233,110, - 195,90,90,195,195,90,90,90,90,195,60,154,12,12,42,233, - 110,195,90,90,195,195,90,90,90,90,90,60,154,12,12,42, - 233,110,195,90,90,195,195,90,90,90,90,90,60,154,12,12, - 42,233,110,195,90,90,195,195,90,90,90,90,195,60,154,26, - 12,26,233,110,195,90,90,195,195,90,90,90,90,90,60,154, - 12,12,42,233,110,195,90,90,195,195,90,90,90,90,195,60, - 154,26,12,42,233,110,195,90,90,195,195,90,90,90,90,195, - 60,154,12,12,42,233,110,195,90,90,195,195,90,90,90,90, - 90,60,154,12,8,42,233,110,195,90,90,195,195,90,90,90, - 90,195,60,154,12,12,42,233,110,195,90,90,195,195,90,90, - 90,90,195,60,154,26,12,42,233,110,195,90,90,195,195,90, - 90,90,90,90,60,154,12,12,42,233,110,195,90,90,195,195, - 90,90,90,90,90,60,154,12,12,42,12,67,8,67,12,244, - 36,105,36,105,105,105,105,105,36,105,105,105,208,36,208,36, - 208,105,208,105,105,105,208,105,105,208,105,208,105,208,105,208, - 208,208,208,105,105,208,105,105,105,208,208,105,105,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,63,105,105,208, - 169,188,188,169,188,169,169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,100,169,188,169,169,169,169,169,169,169,140, - 140,169,169,169,39,169,169,39,39,169,39,39,39,39,169,140, - 39,169,39,169,140,140,39,39,140,39,39,140,39,39,39,140, - 39,39,39,39,140,39,39,39,39,39,39,39,114,39,39,39, - 39,39,39,207,39,169,39,39,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169,169,169,39,39,39,39, - 169,188,188,39,169,39,169,39,169,169,169,169,39,127,39,169, - 39,169,39,39,39,39,39,39,39,169,39,39,39,127,140,39, - 39,39,39,39,39,39,39,39,39,39,39,39,114,39,39,39, - 39,39,39,39,39,127,114,89,127,39,207,89,89,207,207,89, - 89,207,89,143,207,207,236,127,236,127,207,207,207,153,153,182, - 8,187,187,67,132,8,187,122,168,128,23,23,23,23,23,19, - 65,65,19,19,195,178,17,243,122,168,128,23,23,23,23,23, - 19,65,65,65,19,195,178,12,109,122,168,128,23,23,23,23, - 23,19,65,65,19,23,90,178,12,109,122,168,128,23,19,23, - 23,23,19,65,65,19,19,195,178,12,109,122,168,128,23,23, - 23,23,23,19,65,65,19,19,195,178,12,109,122,168,128,23, - 23,23,23,23,19,65,65,19,19,90,178,12,109,122,168,128, - 23,23,23,23,23,19,65,65,65,19,195,178,12,109,122,168, - 128,23,23,23,23,23,19,65,65,19,23,90,178,12,109,122, - 168,128,23,23,23,23,23,19,65,65,65,23,195,178,12,109, - 122,168,128,23,23,23,23,23,19,65,65,19,19,90,178,12, - 109,0,168,128,23,23,23,23,23,19,65,65,19,23,90,178, - 17,109,122,168,128,23,19,23,23,23,19,65,65,19,19,195, - 178,12,109,122,168,128,23,19,23,23,23,19,65,65,19,19, - 90,178,12,109,122,168,128,23,23,23,23,23,19,65,65,19, - 23,90,178,12,187,122,168,128,23,23,23,23,23,19,65,65, - 19,19,195,178,12,109,122,168,128,23,23,23,23,23,19,65, - 65,19,19,90,178,12,109,122,168,128,23,23,23,23,23,19, - 65,65,19,23,90,178,12,109,122,168,128,23,23,23,23,23, - 19,65,65,19,23,90,178,12,109,219,12,8,67,8,8,244, - 36,105,36,105,105,36,105,105,105,105,105,105,105,105,105,105, - 105,105,105,208,105,208,105,208,105,208,105,208,105,208,36,208, - 105,105,208,208,208,105,208,208,208,105,208,208,208,208,105,105, - 208,105,208,105,105,105,105,208,105,105,105,105,208,208,208,208, - 188,169,188,188,188,39,169,169,169,169,140,169,169,39,169,169, - 188,39,169,169,39,169,39,188,188,39,39,140,39,39,169,169, - 140,39,39,169,39,39,169,169,39,169,39,39,39,39,188,169, - 140,169,39,39,39,169,169,39,39,140,39,39,140,169,39,39, - 140,140,39,39,39,207,39,207,207,114,39,207,39,39,39,207, - 39,39,39,39,39,169,169,169,39,39,169,169,169,100,169,169, - 169,169,169,169,169,169,169,39,39,39,169,169,169,169,169,188, - 169,169,188,188,169,39,169,39,39,39,127,169,169,169,39,39, - 39,39,169,39,39,39,39,39,39,39,169,39,39,127,39,39, - 39,39,39,39,39,39,39,39,39,39,39,127,39,39,39,39, - 39,39,39,39,39,127,39,39,39,127,39,127,127,207,143,207, - 143,207,127,89,207,127,207,127,89,143,127,236,207,236,153,224, - 243,26,42,182,111,12,187,122,233,204,19,65,65,19,65,65, - 118,65,19,65,90,178,12,243,122,233,204,19,65,65,65,65, - 65,118,65,19,19,60,178,17,243,122,233,204,19,65,65,65, - 65,65,118,65,19,19,90,84,12,243,122,233,204,19,19,65, - 65,65,65,118,65,19,65,90,84,17,243,122,233,204,19,65, - 65,65,65,65,118,65,19,65,60,178,17,243,122,233,204,19, - 65,65,65,65,65,118,65,19,65,195,84,12,243,122,233,204, - 19,65,65,65,65,65,118,65,19,65,90,84,17,243,122,233, - 204,19,65,65,65,65,65,118,65,19,19,90,84,12,243,122, - 233,204,19,65,65,65,65,65,118,65,19,65,195,178,17,243, - 122,233,204,19,65,65,65,65,65,118,65,19,19,90,84,12, - 243,122,233,204,65,65,19,65,65,65,118,65,19,19,195,178, - 12,243,122,233,204,19,65,19,65,65,65,118,65,19,65,60, - 84,17,8,122,233,204,19,19,65,65,65,65,118,65,19,19, - 90,84,12,243,122,233,204,19,65,65,65,65,65,118,65,19, - 19,195,178,150,243,122,233,204,19,65,65,65,65,65,118,65, - 19,65,60,178,17,243,122,233,204,65,65,19,65,65,65,118, - 65,19,19,90,84,12,243,122,233,204,19,65,65,65,65,65, - 118,65,19,19,60,24,12,243,122,233,204,19,65,65,65,65, - 65,118,65,19,19,60,24,150,243,219,150,141,67,150,12,244, - 36,36,36,36,36,105,105,105,105,105,105,105,208,105,105,208, - 105,105,105,105,105,105,105,105,105,105,105,105,105,208,105,208, - 105,208,105,208,208,105,105,208,208,105,105,105,105,208,208,105, - 208,105,208,208,208,208,208,208,208,208,208,208,208,63,105,208, - 188,188,188,188,39,169,169,188,169,39,169,169,140,140,169,169, - 169,169,169,169,169,169,169,39,188,188,39,188,169,140,140,39, - 39,140,140,169,169,169,39,188,169,188,169,188,169,188,39,39, - 188,39,140,169,169,39,39,169,169,39,39,39,39,39,140,39, - 39,39,39,39,39,39,39,39,39,207,39,39,207,39,207,39, - 207,207,207,207,207,39,39,39,169,169,169,169,169,39,169,100, - 169,169,169,169,169,169,169,169,169,169,39,169,188,188,188,169, - 39,39,169,39,127,188,39,127,39,169,169,39,39,39,169,169, - 39,169,39,39,127,39,39,39,39,169,39,169,169,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,127,39,114,207,114,89,127,207,89,89,89,127,207,127, - 207,127,89,143,207,127,127,207,127,236,89,143,207,153,184,224, - 150,187,42,8,132,243,17,0,31,170,65,118,118,51,118,118, - 118,118,118,65,128,178,219,211,122,31,204,118,118,118,118,118, - 118,118,118,118,19,128,178,26,211,0,31,170,118,118,118,118, - 118,118,118,118,118,65,128,84,17,211,122,31,204,118,118,118, - 118,118,118,118,118,118,65,128,84,17,211,122,31,204,118,118, - 118,118,118,118,118,118,118,19,128,84,17,211,122,31,204,118, - 118,118,118,118,118,118,118,65,65,128,84,17,211,0,31,170, - 118,118,118,118,118,118,118,118,118,65,128,84,17,211,0,31, - 170,118,118,118,118,118,118,118,118,118,65,128,84,17,211,122, - 31,204,118,118,118,118,118,118,118,118,65,65,128,84,17,211, - 0,31,170,118,118,118,118,118,118,118,118,118,65,128,84,17, - 211,122,31,204,118,118,118,118,118,118,118,118,118,65,128,84, - 219,211,122,31,204,118,118,118,118,118,118,118,118,118,65,128, - 178,17,211,122,31,204,118,118,118,118,118,118,118,118,118,65, - 128,84,17,211,122,31,204,118,118,118,118,118,118,118,118,118, - 65,128,84,26,211,122,31,204,118,118,118,118,118,118,118,118, - 118,19,128,84,17,211,122,31,204,118,118,118,118,118,118,118, - 118,118,65,128,84,17,211,122,31,204,118,118,118,118,118,118, - 118,118,65,65,128,178,17,211,0,31,170,118,118,118,118,118, - 118,118,118,118,65,128,178,26,141,219,12,8,67,8,12,144, - 36,36,105,105,36,105,36,105,36,208,105,36,105,105,105,105, - 105,208,105,105,105,208,105,105,208,105,208,105,105,105,36,208, - 105,208,105,105,105,105,208,105,105,208,208,208,208,105,208,208, - 105,208,105,208,105,208,105,105,105,208,208,105,105,105,208,63, - 188,188,188,169,188,188,39,39,169,39,140,39,169,140,39,140, - 140,169,140,169,169,188,169,188,39,169,169,169,169,169,74,169, - 169,169,140,140,169,169,169,188,169,188,169,39,39,39,39,39, - 140,169,39,39,39,140,39,39,140,39,140,39,39,188,140,140, - 39,140,39,39,39,207,207,207,39,39,39,39,39,39,207,39, - 188,188,188,188,39,140,140,169,140,39,169,39,169,169,39,100, - 169,169,169,169,169,169,169,188,169,169,188,169,169,169,188,169, - 169,39,188,169,188,188,169,169,39,39,188,188,127,188,127,169, - 39,39,169,39,127,39,127,39,39,39,39,39,39,140,39,39, - 39,39,39,39,39,39,39,39,127,39,39,39,89,39,39,39, - 39,89,114,127,39,39,39,39,39,207,127,207,89,127,89,236, - 89,127,236,127,89,127,207,127,127,143,127,89,236,236,184,59, - 12,187,183,211,150,150,187,122,249,53,51,51,118,52,52,51, - 51,51,118,118,128,84,17,243,122,123,53,118,51,51,52,51, - 107,51,51,118,118,128,84,12,8,122,249,53,118,51,51,52, - 51,51,51,107,51,118,128,84,26,8,122,123,53,118,51,51, - 52,76,51,107,51,51,118,128,84,26,8,122,123,53,118,51, - 51,52,51,107,51,107,51,118,128,84,26,8,122,123,53,118, - 51,51,52,51,76,51,52,51,118,128,178,12,8,122,249,53, - 118,51,51,52,51,107,51,51,118,118,128,84,12,8,122,249, - 53,118,51,51,52,51,51,51,107,51,118,128,84,26,8,122, - 123,53,118,51,51,52,51,107,51,52,107,118,128,84,12,8, - 122,249,53,118,51,51,52,51,51,107,51,118,118,128,84,12, - 8,122,123,53,118,51,51,52,76,51,51,51,51,118,128,84, - 26,8,122,123,53,118,51,51,52,76,107,51,107,118,118,128, - 84,17,243,122,123,53,118,51,51,52,76,51,51,51,118,118, - 128,84,26,8,122,123,53,118,51,51,52,51,51,51,51,51, - 118,128,178,12,243,122,123,53,118,51,51,52,51,107,51,107, - 51,118,128,84,26,8,122,123,53,118,51,51,52,76,51,51, - 107,51,118,128,84,17,8,122,123,53,118,51,51,52,51,76, - 51,52,118,118,128,84,17,8,122,249,53,118,51,51,52,51, - 107,51,51,118,118,128,178,26,8,219,150,8,141,243,12,244, - 36,36,36,36,105,105,105,105,105,36,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,208,105,105,208,105,105, - 208,105,105,208,105,208,105,105,208,105,105,105,208,105,105,208, - 208,208,105,208,105,208,208,208,105,105,208,208,208,208,105,208, - 188,188,188,188,39,39,169,169,39,169,39,169,140,169,140,169, - 169,169,39,140,140,169,188,39,188,188,39,169,169,140,169,140, - 140,140,169,169,39,169,169,169,188,169,39,169,188,169,169,169, - 169,39,140,140,140,39,140,140,169,140,39,140,39,39,39,39, - 140,39,114,39,39,39,39,39,207,39,39,39,39,207,39,207, - 207,207,207,39,188,39,188,39,188,140,39,140,169,39,169,39, - 169,169,169,169,188,169,169,169,188,169,169,88,169,169,169,188, - 188,88,169,39,188,188,188,188,127,169,39,39,39,39,169,39, - 127,39,127,169,169,127,39,127,39,39,39,39,140,127,39,39, - 39,39,39,39,39,39,127,114,39,39,39,39,39,89,39,39, - 39,39,127,39,39,39,39,39,127,39,127,39,207,127,207,127, - 127,89,127,89,127,89,89,89,89,89,89,143,207,58,153,59, - 187,183,42,141,111,243,187,0,123,85,107,51,76,76,76,232, - 52,52,52,107,204,178,26,211,162,123,53,76,107,76,76,232, - 76,76,52,52,107,204,178,26,8,122,123,53,107,51,76,76, - 232,232,52,52,51,107,204,178,17,211,122,123,53,52,51,76, - 76,76,232,51,52,107,107,204,178,17,211,78,123,53,76,107, - 76,76,232,232,76,52,107,107,204,178,17,8,162,123,53,76, - 107,76,76,232,76,52,52,51,9,204,84,26,243,122,123,53, - 107,107,76,76,232,76,52,52,52,107,204,84,26,8,122,123, - 53,107,51,76,76,232,232,52,52,51,107,204,178,17,211,78, - 123,53,76,107,76,76,232,232,52,52,51,9,204,84,26,243, - 0,123,53,107,107,76,76,232,232,52,52,52,107,204,178,26, - 243,122,123,53,52,76,76,51,76,232,52,9,51,107,204,178, - 17,211,122,123,53,52,76,51,76,76,76,76,52,51,107,204, - 178,26,8,122,123,53,52,51,76,76,76,232,52,52,9,107, - 204,178,17,211,78,123,53,52,51,76,76,232,232,52,9,51, - 51,204,84,26,211,78,123,53,76,107,76,76,232,232,76,52, - 107,107,204,178,17,8,122,123,53,52,51,76,76,52,232,52, - 52,51,107,204,178,26,8,162,123,53,52,51,76,76,232,76, - 52,52,52,9,204,84,26,243,0,123,53,107,107,76,76,232, - 232,52,52,9,107,204,84,12,8,17,12,8,8,150,141,244, - 36,105,36,36,36,36,36,105,105,105,105,105,105,105,36,208, - 105,105,105,105,105,105,105,105,105,36,208,105,105,105,105,36, - 208,105,105,105,208,105,105,105,208,105,105,208,105,208,105,105, - 105,105,208,105,208,105,208,105,208,208,105,208,105,105,208,208, - 188,39,188,188,188,188,188,169,39,169,140,169,140,169,39,39, - 39,169,169,39,140,169,169,169,169,169,39,169,169,39,140,39, - 169,140,140,169,140,39,169,169,188,169,188,169,188,39,169,39, - 140,169,39,140,140,39,140,39,140,140,169,140,140,39,140,39, - 39,140,39,39,114,39,39,39,39,39,39,89,39,207,39,39, - 39,39,207,207,39,140,39,39,188,140,188,39,140,169,169,169, - 169,39,39,169,169,169,169,169,188,169,188,188,188,188,169,169, - 188,188,188,169,169,169,169,169,188,169,169,188,39,39,169,39, - 39,39,39,39,169,169,169,169,169,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,114,39,39,39, - 39,39,39,39,127,39,39,39,89,114,127,89,89,39,89,89, - 127,89,127,89,127,127,127,127,143,127,89,236,143,236,153,99, - 187,26,42,243,111,150,187,122,249,85,52,76,76,76,232,232, - 232,51,52,9,204,168,12,8,122,123,53,76,76,76,76,232, - 232,232,51,52,9,204,168,12,243,122,123,85,76,76,76,76, - 232,232,76,52,52,9,204,84,17,243,122,123,53,76,76,76, - 76,232,148,76,51,52,52,204,84,17,243,122,123,53,76,76, - 76,76,232,232,76,76,51,9,204,84,12,243,122,123,53,76, - 76,76,76,232,232,76,52,51,52,204,154,219,243,122,123,85, - 76,76,76,76,232,232,76,51,52,52,204,154,219,243,122,123, - 85,76,76,76,76,232,232,76,52,51,9,204,84,17,243,122, - 123,53,76,76,76,76,232,232,76,76,51,52,204,154,17,8, - 122,123,85,76,76,76,76,232,232,76,51,52,52,204,168,12, - 243,122,123,53,76,76,232,76,232,232,232,76,52,52,204,168, - 17,8,122,123,53,76,232,76,76,232,232,232,52,52,9,204, - 168,12,8,122,123,53,76,76,76,76,232,232,76,76,51,52, - 204,84,17,243,122,123,53,76,76,76,76,232,232,232,76,52, - 9,204,154,219,243,122,123,53,76,76,76,76,232,232,76,76, - 51,9,204,84,17,243,122,123,53,232,107,76,76,232,232,76, - 76,52,9,204,154,132,243,122,123,53,76,76,76,76,232,232, - 76,51,51,52,204,154,17,8,122,123,85,76,76,76,76,232, - 232,76,76,52,52,204,84,132,243,219,12,8,8,12,243,244, - 36,36,36,105,105,105,105,36,105,105,105,105,105,105,105,105, - 105,105,105,105,105,208,105,105,208,105,105,105,105,105,105,105, - 105,105,105,105,208,105,208,105,105,208,105,105,105,105,105,208, - 208,105,208,208,208,105,208,208,105,208,105,208,208,105,105,208, - 188,169,188,188,169,39,169,169,169,169,39,39,169,140,140,140, - 140,140,39,169,169,140,188,39,39,39,169,39,39,140,169,140, - 140,169,140,140,39,140,140,140,169,39,39,39,169,140,39,140, - 140,140,140,169,114,140,140,140,140,74,140,140,140,140,39,140, - 140,39,140,140,169,39,39,39,39,39,39,114,207,39,39,39, - 39,188,39,39,39,39,169,39,39,39,140,169,39,39,169,140, - 169,140,169,169,169,169,169,169,169,188,169,169,169,188,188,188, - 188,169,169,188,127,188,188,188,188,127,39,169,169,39,127,39, - 39,39,39,39,39,39,39,39,39,140,39,39,39,39,39,114, - 127,114,127,114,127,114,127,114,39,39,39,39,127,39,39,39, - 39,127,114,39,39,89,39,39,39,39,39,39,39,89,39,127, - 89,127,89,207,89,89,89,89,127,89,127,207,207,236,58,59, - 17,187,42,243,187,150,150,122,167,194,232,76,148,148,232,148, - 232,232,52,52,204,154,26,243,42,167,194,76,76,148,232,232, - 148,232,232,52,232,204,168,17,243,122,167,194,232,76,232,148, - 232,148,232,232,52,52,204,168,17,109,42,167,85,232,76,232, - 148,232,148,148,148,52,52,204,168,17,109,42,167,194,76,76, - 148,232,232,148,232,232,52,232,204,168,17,109,42,167,85,76, - 76,232,148,232,148,148,232,52,52,204,168,17,243,42,167,194, - 76,76,232,148,232,148,148,148,52,52,204,168,17,243,122,167, - 194,76,76,232,148,232,148,232,232,52,232,204,168,17,109,42, - 167,194,76,76,148,232,232,148,232,232,52,52,204,168,17,109, - 122,167,194,76,76,232,148,232,148,232,148,52,52,204,154,26, - 109,42,167,85,76,76,232,148,232,148,232,232,52,52,204,154, - 26,109,42,167,85,76,76,232,148,232,148,232,76,52,232,204, - 154,26,109,42,167,85,232,76,232,148,232,148,232,232,52,232, - 204,168,26,109,42,167,85,76,76,232,148,232,148,232,232,52, - 52,204,168,26,109,42,167,194,76,76,148,232,232,148,232,232, - 52,232,204,168,12,109,42,167,85,76,232,232,148,232,148,232, - 232,52,52,204,168,26,109,42,167,85,76,76,232,148,232,148, - 148,148,52,52,204,168,17,109,122,167,194,76,76,148,232,232, - 148,232,232,52,52,204,168,26,109,12,12,8,141,150,243,144, - 36,36,36,36,36,105,105,105,36,105,36,105,105,105,36,208, - 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, - 208,105,105,36,105,105,105,105,36,105,105,208,105,208,105,105, - 208,105,105,105,208,105,208,105,208,105,208,105,105,208,208,105, - 188,188,39,188,169,39,39,169,169,169,140,39,169,169,169,169, - 140,140,140,39,39,169,169,169,169,39,39,169,169,140,169,140, - 140,140,140,140,140,169,169,140,140,140,140,39,39,140,140,140, - 140,140,140,140,140,140,140,74,140,140,140,140,140,140,39,114, - 140,140,39,39,114,140,39,39,114,39,39,39,39,39,39,39, - 207,39,39,39,39,39,140,39,39,188,39,140,169,39,39,39, - 169,169,39,39,188,169,169,169,169,188,188,188,169,169,169,169, - 188,188,188,188,188,188,188,39,39,188,39,39,39,39,169,169, - 39,39,39,207,39,39,39,39,127,140,39,39,39,39,127,39, - 127,39,127,39,39,39,39,39,39,39,39,39,39,39,39,39, - 114,207,39,39,39,39,114,127,39,89,89,39,39,89,114,127, - 39,127,39,127,39,127,39,89,39,127,39,39,207,236,184,224, - 12,183,78,8,111,150,187,122,220,32,232,232,148,148,148,148, - 148,148,232,232,231,222,183,243,122,220,32,232,232,148,148,148, - 148,148,148,76,232,231,168,17,243,122,237,32,232,148,148,148, - 148,148,232,148,232,232,231,168,12,243,122,237,32,232,148,148, - 148,148,148,148,232,232,232,231,168,17,243,122,220,32,232,232, - 148,148,148,147,232,148,76,232,231,168,17,243,122,220,32,232, - 148,148,148,148,148,232,147,232,232,231,168,17,243,122,237,32, - 232,148,148,148,148,148,148,232,232,232,231,168,17,243,122,237, - 32,232,148,148,148,148,148,232,147,76,232,231,168,17,243,122, - 220,32,232,232,148,148,148,147,232,147,232,232,231,168,219,8, - 122,237,32,232,148,148,148,148,147,148,148,52,232,231,222,26, - 243,122,237,32,232,148,148,148,148,148,232,148,232,232,231,222, - 219,243,122,237,32,232,148,148,148,148,148,148,148,76,232,231, - 222,183,243,122,237,32,232,148,148,148,148,147,232,148,52,232, - 231,222,17,243,122,237,32,232,148,148,148,148,148,148,148,232, - 232,231,222,17,243,122,220,32,232,232,148,148,148,147,232,148, - 76,232,231,168,17,243,122,220,32,76,148,148,148,148,147,232, - 148,232,232,231,222,26,243,122,237,32,232,148,148,148,148,148, - 148,27,232,232,231,168,219,8,122,237,32,232,232,148,148,148, - 147,232,148,232,232,231,222,17,243,17,243,12,8,150,12,244, - 36,36,36,105,36,36,36,105,36,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,36,105,105,105,105,105,36,105,105,105,105,105, - 105,105,208,105,208,105,105,208,105,208,208,208,105,105,208,208, - 207,39,188,39,188,169,169,169,39,140,169,140,140,140,140,140, - 169,169,169,140,140,140,39,188,39,39,140,39,39,169,140,140, - 74,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 140,140,140,74,140,140,140,39,140,140,140,140,140,140,140,140, - 169,39,140,140,169,39,114,39,39,39,140,39,39,114,207,114, - 39,39,39,39,39,39,39,39,39,39,39,39,39,169,169,169, - 39,39,169,169,169,169,169,39,169,140,169,169,188,188,188,188, - 39,188,39,39,39,39,39,188,188,169,39,39,140,39,39,39, - 39,39,39,39,207,39,39,39,39,127,39,140,39,39,39,39, - 39,39,39,39,39,39,140,39,39,39,39,114,39,39,39,39, - 39,39,114,39,39,39,39,89,114,127,114,89,39,127,89,89, - 89,89,39,89,89,89,127,39,89,89,89,39,207,89,58,59, - 187,26,162,8,187,17,187,0,138,117,193,157,157,157,189,189, - 157,193,193,32,70,31,26,109,122,138,117,193,157,157,157,189, - 157,189,193,193,32,70,228,26,211,122,138,117,193,157,157,157, - 189,189,157,193,193,32,70,228,26,109,122,138,117,193,193,157, - 157,189,189,157,193,193,32,70,228,26,109,122,138,117,193,157, - 157,157,189,189,157,193,193,32,70,228,219,109,0,138,117,193, - 157,157,157,189,189,157,157,193,32,70,228,26,109,42,138,117, - 193,193,157,157,189,189,157,193,193,32,70,228,26,109,42,138, - 117,193,193,157,157,189,189,157,193,193,32,70,228,26,109,122, - 138,117,193,193,157,157,189,189,157,157,193,32,70,228,219,109, - 0,21,117,193,193,157,157,189,189,157,193,193,32,70,31,219, - 211,122,138,117,193,193,157,157,189,189,157,193,193,32,70,31, - 26,211,122,138,117,193,193,157,157,189,189,157,193,193,32,70, - 31,26,211,122,138,117,193,193,157,157,189,189,157,193,193,32, - 70,31,26,109,42,138,117,193,193,157,157,189,189,157,193,193, - 32,70,31,26,109,122,138,117,193,157,157,157,189,189,157,193, - 193,32,70,228,26,109,122,138,117,193,157,157,157,189,189,157, - 193,193,32,70,31,219,109,42,138,117,193,193,157,157,189,189, - 157,157,193,32,70,228,219,109,42,138,117,193,193,157,157,189, - 189,157,193,193,32,70,31,26,211,12,12,8,141,12,141,144, - 36,36,36,36,36,105,36,105,36,105,36,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,36,105,36,105,105,36,105,36,105,105,105,105, - 105,36,208,105,105,105,105,105,208,105,105,105,208,63,208,105, - 188,169,188,188,188,39,39,169,39,140,140,169,140,140,169,140, - 140,140,140,169,140,140,140,140,140,39,140,140,140,140,140,140, - 74,74,74,140,140,140,74,74,74,140,140,140,140,140,140,140, - 71,144,140,140,140,140,74,140,140,140,140,140,140,140,140,140, - 140,39,39,39,140,169,39,39,39,39,39,39,207,39,39,140, - 39,114,39,39,39,39,140,39,207,39,39,39,39,39,140,140, - 169,39,39,39,39,39,169,39,39,39,39,39,39,169,39,39, - 39,39,188,39,127,169,39,39,39,39,39,127,39,39,39,39, - 39,39,39,127,114,39,39,39,39,39,39,39,39,114,169,39, - 39,39,39,39,39,127,39,39,39,39,127,39,39,39,39,39, - 39,39,127,39,39,39,127,39,127,39,39,39,39,39,39,39, - 114,89,39,127,114,127,39,39,127,114,89,127,127,207,119,224, - 12,26,78,243,111,17,187,0,226,87,21,72,156,43,13,13, - 30,242,18,18,18,59,26,8,122,226,87,21,87,156,30,13, - 13,30,72,18,18,18,59,26,8,122,226,87,21,87,156,30, - 86,13,30,242,21,18,18,59,26,8,122,226,87,18,21,156, - 30,86,13,30,242,21,18,18,59,26,12,122,226,87,21,87, - 156,30,13,13,156,242,21,18,18,200,26,8,0,226,87,21, - 87,156,30,86,13,30,242,18,18,18,59,26,12,122,226,87, - 21,21,156,30,86,13,30,242,18,18,18,59,26,12,122,226, - 87,18,72,242,30,86,13,30,242,21,18,18,59,26,12,122, - 92,87,21,21,156,30,13,13,30,242,18,18,18,75,12,12, - 122,73,87,21,21,156,30,13,13,30,242,18,33,18,59,26, - 8,0,226,87,18,72,242,30,86,13,30,242,18,18,18,59, - 26,8,122,226,87,18,72,156,30,86,13,30,242,18,18,18, - 59,26,8,122,226,87,18,72,242,30,13,13,30,242,21,18, - 18,59,26,8,0,226,87,18,21,156,30,86,13,30,242,18, - 18,18,59,26,8,122,226,87,21,87,156,30,13,13,156,242, - 21,18,18,59,26,12,122,226,87,21,72,156,30,13,13,30, - 242,18,33,18,59,26,8,0,226,87,18,21,156,30,86,13, - 30,242,21,18,18,75,12,12,122,226,87,21,21,156,43,13, - 13,30,242,21,18,18,59,26,243,17,12,8,141,12,243,244, - 244,105,36,36,105,36,36,105,105,105,36,36,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,36,105,36,36,105, - 105,105,105,36,105,105,105,105,36,105,36,105,105,36,105,36, - 105,105,105,36,105,105,208,105,105,208,105,208,105,105,208,105, - 188,188,188,39,39,169,169,169,140,169,140,140,140,140,39,140, - 140,140,169,140,169,140,169,169,39,169,169,100,140,140,140,140, - 114,140,140,74,140,74,140,140,140,140,140,140,140,140,140,144, - 140,140,144,71,140,74,114,140,140,140,140,140,140,169,140,140, - 140,140,140,140,39,39,39,114,39,39,140,39,140,114,39,39, - 39,169,140,140,39,39,39,114,39,39,39,140,140,169,169,39, - 39,140,39,140,169,140,39,140,169,140,169,140,140,39,39,188, - 39,207,39,39,39,207,169,127,39,169,169,39,140,39,39,39, - 39,39,39,39,39,39,39,39,39,39,114,127,140,127,114,39, - 39,39,39,39,39,39,39,39,39,39,39,114,39,39,39,39, - 39,39,39,39,207,114,207,114,127,39,39,89,39,89,39,89, - 127,39,89,89,127,89,89,39,89,89,114,89,89,89,240,59, - 187,219,78,12,132,17,150,0,40,23,250,86,179,146,51,51, - 149,86,86,250,28,111,17,243,0,40,179,250,86,179,176,146, - 51,146,86,86,250,28,111,17,243,0,40,23,250,86,179,146, - 146,118,149,86,250,250,28,111,17,243,0,203,179,250,86,179, - 149,51,118,149,86,250,250,28,111,12,211,0,40,179,250,86, - 179,146,136,51,146,86,250,250,28,111,187,243,0,203,23,250, - 86,179,146,118,51,146,86,86,250,28,61,187,211,0,40,86, - 250,86,179,146,146,51,149,86,86,250,28,61,12,211,0,40, - 179,250,86,149,146,146,51,149,86,250,250,28,111,12,211,0, - 40,86,250,86,179,149,51,51,149,179,86,250,28,111,26,211, - 0,40,86,250,86,179,149,51,51,149,86,86,250,28,111,17, - 243,0,203,179,250,86,149,146,146,118,149,86,86,250,28,111, - 17,243,0,40,179,250,86,179,146,118,51,149,86,86,250,28, - 111,17,243,0,40,179,250,86,179,146,136,51,146,86,250,250, - 28,111,17,243,0,203,179,250,86,179,146,118,51,149,86,86, - 250,28,111,17,243,0,40,179,250,86,179,146,136,51,146,86, - 250,250,28,61,12,211,0,40,23,250,86,179,149,51,51,149, - 86,86,250,28,111,17,243,0,203,179,250,86,179,146,118,51, - 146,86,250,250,28,111,26,211,0,40,86,250,179,179,146,136, - 51,149,86,250,250,28,111,12,8,12,243,8,8,17,8,244, - 36,36,36,36,105,105,36,105,36,105,105,105,36,105,105,105, - 105,105,105,105,105,105,105,105,105,36,105,105,105,105,105,105, - 36,105,105,36,105,36,36,105,36,105,36,36,105,36,36,105, - 36,105,105,36,105,36,105,105,105,105,105,105,105,105,105,63, - 188,188,188,39,39,39,140,169,140,169,140,169,140,140,140,169, - 140,140,140,140,169,140,140,140,140,140,39,140,169,140,140,140, - 140,140,140,74,140,140,140,140,140,140,144,140,144,140,74,144, - 74,140,140,144,140,74,140,71,140,140,140,140,140,140,140,140, - 169,140,140,140,39,114,127,39,39,39,39,39,39,169,39,140, - 39,39,39,140,140,39,169,169,140,39,39,39,169,39,140,169, - 39,169,39,39,188,140,188,39,39,39,39,39,39,39,39,39, - 39,39,207,39,39,207,39,39,39,39,39,39,39,207,39,39, - 39,39,127,39,127,39,39,140,39,39,39,207,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,127,114,39,39, - 39,39,39,39,39,39,127,89,89,89,114,89,127,89,114,127, - 89,114,39,89,114,127,89,114,127,89,127,39,39,89,240,59, - 187,187,78,150,132,187,187,0,40,32,157,189,189,189,189,189, - 189,189,157,85,128,61,26,243,0,40,32,157,189,189,189,189, - 189,189,189,157,85,128,61,42,243,0,40,32,157,189,189,189, - 189,189,189,189,157,85,128,61,42,243,0,40,32,157,189,189, - 189,189,147,189,189,157,85,128,61,183,243,0,40,32,157,189, - 189,189,189,189,189,189,157,85,128,61,26,243,0,40,32,157, - 189,189,189,189,189,189,189,157,85,204,91,183,243,0,40,32, - 157,189,189,189,189,189,189,189,157,85,204,61,183,243,0,40, - 32,157,189,189,189,189,189,189,189,157,85,128,61,219,243,0, - 40,32,157,189,189,189,189,189,189,189,189,85,128,61,219,243, - 0,40,32,157,189,189,189,189,147,189,189,157,85,128,61,42, - 243,0,40,32,157,189,189,189,189,189,189,189,157,85,128,61, - 42,243,0,40,32,157,189,189,189,189,147,189,189,157,85,128, - 61,26,243,0,40,32,157,189,189,189,189,189,189,189,157,85, - 128,61,26,243,0,40,32,157,189,189,189,189,147,189,189,157, - 85,128,61,26,243,0,40,32,157,189,189,189,189,189,189,189, - 157,85,204,61,183,243,0,40,32,157,189,189,189,189,147,189, - 189,157,85,128,61,26,243,0,40,32,157,189,189,189,189,189, - 189,189,157,85,128,61,219,243,0,40,32,157,189,189,189,189, - 189,189,189,157,85,128,61,219,141,12,243,243,8,12,243,244, - 244,105,36,36,36,36,36,36,36,36,36,105,105,105,36,105, - 36,105,105,36,105,105,105,105,105,105,36,105,36,36,105,36, - 105,36,36,36,36,36,105,36,105,36,36,105,36,36,36,36, - 36,36,105,105,105,105,105,36,36,208,208,105,105,105,105,105, - 39,169,188,188,39,169,169,140,100,140,39,140,140,140,140,140, - 140,140,140,140,140,140,140,169,140,140,140,140,140,140,140,140, - 140,74,71,140,140,140,144,140,71,140,140,140,140,74,140,74, - 144,140,144,140,140,114,140,140,140,140,140,39,140,169,169,169, - 140,39,39,39,127,39,39,39,39,39,39,39,169,39,39,39, - 140,140,140,39,39,140,39,39,39,39,188,140,39,169,39,39, - 39,39,188,39,39,188,39,39,140,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,140,39,114,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,114,39,39,39,39,39,39,39,39,127,39,127,39, - 39,39,39,39,39,89,114,39,114,39,39,114,89,39,89,89, - 39,127,89,39,127,89,127,127,89,127,89,89,89,119,240,47, - 187,42,42,150,132,42,132,0,40,45,232,232,76,76,148,148, - 148,232,52,27,195,91,162,211,0,40,45,52,232,148,148,148, - 148,148,232,52,27,230,91,162,211,0,40,45,232,76,148,148, - 148,147,148,232,52,27,230,91,78,211,0,40,45,232,232,76, - 232,147,147,148,232,52,198,195,91,122,109,0,40,45,52,76, - 232,232,148,147,148,232,52,27,195,91,162,211,0,40,45,232, - 76,76,76,148,148,148,232,52,27,230,91,122,211,0,40,53, - 52,232,148,148,148,147,148,232,52,27,230,91,122,109,0,40, - 45,52,76,232,148,148,147,148,232,52,198,195,91,122,211,0, - 40,45,232,76,148,76,148,148,148,232,232,27,195,91,122,211, - 0,40,45,232,76,76,148,148,77,148,232,52,185,195,91,162, - 211,0,40,45,52,76,148,148,148,147,148,232,76,198,195,91, - 78,211,0,40,53,52,232,76,148,147,147,148,148,52,27,195, - 91,162,109,0,40,53,52,232,148,76,148,148,148,148,52,27, - 195,91,162,211,0,40,45,232,76,148,76,147,147,148,148,52, - 27,195,91,162,211,0,40,45,52,76,232,148,232,147,148,148, - 52,27,230,91,122,211,0,40,53,232,76,148,76,148,147,148, - 232,52,27,230,91,162,109,0,40,45,232,76,148,76,148,148, - 148,232,52,232,195,91,122,211,0,40,45,232,76,76,76,76, - 147,148,232,52,27,195,91,122,211,150,150,8,141,17,12,244, - 244,36,36,36,105,36,105,36,105,36,105,36,105,36,105,105, - 36,105,105,105,105,105,36,105,36,105,36,105,105,36,36,105, - 105,105,105,36,105,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,105,105,36,36,105,105,105,36,105,105,63, - 39,169,188,169,169,39,169,39,140,140,140,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 114,140,74,71,140,140,140,144,74,71,114,140,114,140,144,74, - 74,140,74,144,140,140,144,140,140,140,140,169,140,140,169,39, - 169,169,169,39,39,39,39,127,127,207,207,39,39,39,39,188, - 188,39,140,39,39,39,39,39,39,39,188,39,39,140,140,140, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,127,39,39,39,39,39,39,39,39,39,39,39,39, - 39,114,127,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,127,39,127,39,89,89,39,89,114,39,89, - 89,114,127,89,114,89,89,114,89,114,89,127,89,119,119,47, - 12,42,42,141,187,42,187,0,212,170,9,232,232,148,148,147, - 148,76,232,198,230,26,26,243,0,212,170,9,52,232,232,147, - 147,148,76,27,198,230,26,26,8,0,212,170,52,52,232,232, - 147,148,147,76,27,198,230,91,42,243,0,40,170,9,76,232, - 148,148,147,147,76,232,198,230,26,26,243,0,212,170,52,232, - 232,232,148,147,147,76,232,198,230,26,26,243,0,212,170,52, - 232,148,148,147,147,147,232,27,185,230,26,26,211,0,212,170, - 52,52,232,232,148,148,148,76,27,185,230,26,26,243,0,40, - 170,52,232,232,232,148,148,147,76,232,198,230,26,26,211,0, - 40,170,52,76,148,232,147,147,147,76,27,198,230,26,26,243, - 0,40,170,52,232,232,148,148,147,147,76,232,198,230,26,26, - 243,0,40,231,52,52,232,232,147,148,147,76,232,185,230,26, - 26,243,0,40,170,52,76,232,148,148,148,148,76,232,198,230, - 26,26,8,0,40,231,52,52,232,232,148,147,148,76,232,198, - 230,26,26,243,0,40,170,52,52,232,148,148,147,148,76,232, - 198,230,26,26,243,0,212,170,52,76,232,148,148,147,148,232, - 27,185,230,26,26,243,0,212,231,52,76,148,148,147,147,147, - 76,27,185,230,26,26,8,0,40,170,52,52,232,148,147,147, - 147,232,27,198,230,26,26,211,0,212,170,52,232,148,148,148, - 148,148,76,232,198,230,26,26,8,12,12,8,8,12,243,36, - 244,105,36,36,36,36,36,36,36,36,105,36,105,36,105,36, - 105,36,36,36,105,36,105,105,36,105,36,36,36,105,36,105, - 36,105,36,36,36,105,36,36,36,36,36,36,36,36,244,36, - 244,36,36,36,36,36,36,36,36,105,36,36,105,105,105,105, - 188,39,169,39,39,169,169,169,140,169,140,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,74,74,140,140,140,140, - 140,140,140,144,140,74,144,140,140,144,74,140,74,140,140,140, - 140,71,140,140,144,140,140,140,140,140,140,140,169,169,140,169, - 39,39,39,39,39,39,39,39,39,39,39,39,188,169,188,39, - 169,188,39,169,39,39,39,188,188,39,207,140,140,39,39,39, - 39,39,39,188,39,39,39,39,39,39,39,39,39,39,39,39, - 114,39,39,39,127,39,39,39,39,39,39,39,39,39,39,39, - 39,39,207,39,127,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,89,39,39,39,39,39,89,39,39,114,89,127,89,89,39, - 39,89,89,127,89,127,127,89,127,89,114,89,39,119,108,59, - 187,219,78,243,166,219,187,0,40,98,165,45,53,194,194,194, - 194,98,45,165,230,91,122,187,0,40,98,165,45,53,194,194, - 53,32,45,53,165,230,91,78,187,0,40,98,45,45,53,194, - 194,194,194,45,53,165,230,91,122,187,0,212,98,165,45,53, - 194,194,194,194,45,53,231,230,91,122,187,0,40,98,165,45, - 53,194,194,194,194,45,45,165,230,91,122,187,0,40,98,165, - 45,53,53,194,194,194,45,45,165,230,91,122,187,0,203,98, - 165,45,53,194,194,194,194,45,45,165,230,91,122,187,0,212, - 98,165,45,45,194,194,194,194,45,53,231,230,91,0,12,0, - 212,98,165,45,53,194,194,194,194,45,45,165,230,91,78,187, - 0,212,98,165,45,53,194,194,194,194,45,53,165,230,91,122, - 187,0,212,98,45,45,53,194,194,194,194,45,53,165,230,91, - 162,187,0,212,98,165,45,194,53,194,32,194,45,45,165,230, - 91,122,187,0,212,98,165,53,45,194,194,194,194,98,45,165, - 230,91,162,187,0,212,98,165,45,194,194,194,194,194,98,53, - 165,230,91,122,187,0,40,98,45,45,45,53,194,194,194,45, - 45,165,230,91,122,187,0,40,98,165,45,53,194,194,194,194, - 45,53,110,230,91,122,187,0,212,98,165,45,194,53,194,194, - 194,45,45,165,230,91,0,12,0,40,98,165,45,45,194,194, - 194,32,45,45,165,230,91,162,187,150,12,243,8,17,141,244, - 36,244,36,36,105,36,36,105,36,105,36,36,36,105,36,105, - 36,105,105,105,36,36,36,36,36,105,105,36,36,36,36,105, - 36,36,36,36,36,36,36,36,36,36,244,36,36,36,36,36, - 36,244,36,36,244,36,244,36,36,105,105,36,36,105,105,36, - 188,39,169,169,169,39,169,169,140,39,39,140,169,140,140,140, - 140,140,140,140,140,140,140,140,140,39,114,74,140,140,140,140, - 140,140,140,74,114,74,140,144,140,140,71,140,71,140,140,140, - 140,140,74,74,74,140,140,140,140,140,39,39,114,169,140,169, - 39,39,39,39,127,39,207,39,39,127,39,39,39,169,39,39, - 39,188,207,39,188,188,39,39,188,39,207,39,140,39,169,140, - 39,114,39,39,39,39,39,39,114,39,39,39,39,39,39,127, - 207,39,39,39,39,39,39,39,39,39,39,39,127,39,39,127, - 39,39,39,39,39,39,127,39,207,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,114,39,39,39,39,39,39,39,39, - 39,127,89,39,39,89,114,89,89,127,39,89,114,39,89,89, - 39,39,89,114,89,89,114,89,127,89,89,89,89,119,159,47, - 26,26,78,8,111,132,187,0,162,251,123,123,167,55,79,220, - 79,167,123,251,206,187,26,211,0,162,251,123,123,123,79,79, - 79,79,167,167,228,168,187,42,8,162,162,31,251,123,167,79, - 79,79,79,167,167,251,168,17,42,211,0,162,251,123,123,167, - 55,79,79,79,167,123,228,206,12,42,211,0,162,251,251,123, - 167,79,79,79,79,167,123,123,168,26,26,8,0,162,251,123, - 123,167,55,79,79,79,167,123,228,73,187,42,8,0,162,251, - 123,123,167,79,79,220,79,167,123,228,168,26,26,211,0,162, - 251,123,123,167,79,79,79,79,167,123,228,206,12,42,211,0, - 162,251,251,123,123,79,79,79,79,167,123,251,206,187,26,8, - 0,162,251,251,123,103,79,79,79,79,167,123,251,206,187,26, - 211,0,162,31,251,123,167,79,79,79,79,167,123,228,206,12, - 42,211,0,162,31,251,123,167,79,79,79,79,167,123,228,206, - 12,42,211,0,162,251,123,123,103,167,79,220,79,167,123,251, - 206,12,26,211,0,162,251,123,123,123,79,79,220,79,167,123, - 251,206,187,26,211,0,162,251,251,123,79,79,79,220,79,167, - 123,228,73,187,42,211,0,162,251,251,123,123,79,79,79,79, - 167,55,123,73,12,42,211,0,162,251,123,123,167,79,79,79, - 79,167,123,251,206,187,26,8,162,162,251,123,123,167,79,79, - 79,167,167,123,123,168,26,26,8,150,12,243,8,26,141,244, - 36,36,36,36,36,36,105,36,36,36,36,36,105,36,36,105, - 36,36,36,36,105,105,105,36,105,36,36,36,105,36,36,36, - 105,105,36,105,36,36,36,36,36,36,36,244,36,244,36,244, - 36,36,244,36,244,36,244,244,244,36,36,36,105,36,36,105, - 169,169,188,39,39,169,39,140,169,140,140,74,140,74,140,140, - 140,140,74,140,140,140,140,114,140,140,74,140,140,140,140,140, - 74,140,74,140,74,114,140,140,140,140,144,140,144,140,74,144, - 140,140,140,114,140,140,140,140,140,140,140,140,169,39,39,39, - 39,39,39,39,39,207,39,207,207,39,127,188,188,39,188,39, - 39,39,39,39,39,39,188,188,207,188,39,39,39,140,39,39, - 39,39,39,39,39,39,39,39,169,114,39,39,39,39,39,39, - 39,39,39,89,39,127,39,39,39,39,39,39,39,39,39,39, - 39,39,114,39,39,39,39,39,39,39,39,39,39,39,39,127, - 39,39,39,39,39,39,207,39,39,39,39,39,39,39,39,39, - 39,39,39,89,39,39,39,39,114,89,127,39,89,89,114,127, - 89,89,89,89,89,127,89,89,89,89,89,39,89,89,108,99, - 187,183,122,8,17,17,150,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,17,42,243,0,0,0,0,0,0,0,162, - 0,0,0,0,0,26,17,219,187,0,0,0,0,0,0,0, - 162,0,0,0,0,0,26,17,42,243,0,0,0,0,0,0, - 0,162,0,0,0,0,0,219,17,42,243,0,0,162,0,0, - 0,0,0,0,0,0,0,0,26,150,26,187,0,0,0,0, - 0,0,0,0,0,0,0,0,0,219,17,42,109,0,0,0, - 0,0,0,0,0,0,0,0,0,0,26,132,42,243,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,17,26,12,0, - 0,0,0,0,0,0,0,0,0,0,162,0,219,17,26,187, - 0,0,0,0,0,0,0,0,0,0,0,162,0,219,17,42, - 243,0,0,0,0,0,0,0,0,0,0,0,0,0,219,17, - 42,243,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 17,219,243,0,0,0,0,0,0,0,0,0,0,0,162,0, - 219,17,42,243,0,0,0,0,0,0,0,0,0,0,0,162, - 0,219,17,42,243,0,0,0,0,0,0,0,0,0,0,0, - 0,0,219,187,26,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,187,219,243,0,0,0,0,0,0,0,0,0, - 0,0,162,0,219,17,26,187,0,0,0,0,0,0,0,162, - 0,0,0,0,0,26,150,219,187,187,150,8,141,17,243,244, - 244,36,36,36,36,36,36,36,36,105,36,36,36,36,36,36, - 36,36,105,36,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,244,36,244,36,36,244,36, - 244,36,244,36,36,244,36,36,244,36,36,36,36,36,36,36, - 188,169,169,39,39,140,39,140,169,140,140,74,39,140,140,140, - 140,140,140,144,140,140,140,140,140,114,140,140,74,140,140,114, - 140,114,140,140,140,140,140,140,140,140,140,140,74,140,74,140, - 140,140,140,140,140,140,140,140,140,140,169,140,140,169,39,114, - 39,127,39,39,89,207,207,39,127,39,39,188,188,169,188,39, - 39,39,207,39,39,207,39,39,207,207,39,39,188,39,39,39, - 39,39,39,39,140,39,140,39,39,39,39,39,39,39,39,39, - 127,39,39,127,39,39,39,39,39,39,39,39,39,39,39,39, - 39,127,207,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,127,207,39,39,127,39,127,39,39,127,89, - 39,127,39,127,89,39,89,127,39,89,89,114,127,89,89,39, - 89,127,114,127,89,89,127,89,127,89,89,127,89,127,240,59, - 26,26,162,211,150,187,187,42,26,26,26,26,42,42,26,17, - 219,219,219,26,17,132,42,17,42,26,26,26,26,42,42,26, - 17,219,219,219,219,219,17,219,12,42,26,26,26,26,26,42, - 26,17,219,219,219,219,219,132,42,17,42,26,26,26,26,42, - 42,26,17,219,219,219,26,17,132,42,17,42,26,26,26,26, - 42,42,26,17,219,219,219,219,219,132,183,187,42,26,26,26, - 26,42,42,26,17,219,219,219,219,17,132,42,17,42,26,26, - 26,26,26,42,26,17,219,219,219,219,17,132,42,17,42,26, - 26,26,26,42,42,26,17,219,219,219,26,17,132,219,17,42, - 26,26,26,26,42,42,219,17,219,219,219,26,17,132,183,187, - 42,26,26,26,26,42,42,26,17,219,219,219,26,17,132,42, - 17,42,26,26,26,26,26,78,26,17,219,219,219,26,17,132, - 42,17,42,17,26,26,26,42,42,26,17,219,219,219,26,219, - 219,42,187,42,26,26,219,26,42,183,26,219,219,219,219,26, - 17,132,42,17,42,26,26,26,26,26,42,26,219,219,219,219, - 26,17,132,42,17,42,26,26,26,26,42,42,26,219,219,219, - 219,219,17,132,219,17,42,26,26,26,26,42,42,26,219,219, - 219,219,219,17,219,42,187,42,26,26,26,26,26,42,26,17, - 219,219,219,26,17,132,183,12,42,26,26,26,26,42,42,26, - 17,219,219,219,219,26,17,219,12,17,12,150,8,12,141,244, - 36,36,244,105,36,36,36,36,36,36,36,105,36,105,105,36, - 105,36,105,36,36,105,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,244,36,244,36,36,244,36,244,244, - 36,244,244,36,244,36,244,244,244,36,244,36,36,36,36,36, - 188,39,39,169,140,39,169,169,140,140,140,140,140,140,140,74, - 140,140,140,140,140,144,140,144,140,74,144,140,144,140,140,74, - 74,140,140,140,140,140,140,140,140,140,74,140,140,140,140,140, - 74,140,74,140,74,140,140,114,140,140,39,39,39,39,39,140, - 39,89,39,207,39,207,127,188,207,207,188,188,188,188,188,188, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,114,39,39,39,140,39,39,39,39,39,39,39,207,39,39, - 39,207,39,207,207,207,127,39,39,127,39,39,39,39,39,39, - 39,114,39,39,207,39,39,39,39,39,39,114,39,39,39,39, - 39,39,89,39,39,39,39,39,39,39,39,39,127,39,39,207, - 39,207,39,127,39,89,39,89,89,114,39,89,89,39,127,89, - 39,89,89,89,89,127,89,114,89,114,89,119,39,119,108,59, - 187,42,122,243,187,132,132,26,243,12,150,219,219,17,12,243, - 150,150,12,12,187,219,42,187,26,243,12,150,17,219,17,17, - 243,150,150,150,17,12,219,26,187,26,243,12,150,17,219,17, - 12,243,150,150,150,17,187,219,42,187,26,243,12,150,219,219, - 17,17,243,150,150,12,17,187,219,26,187,26,243,12,150,219, - 219,17,17,243,150,150,12,17,187,17,26,12,26,243,12,150, - 219,219,17,17,243,150,150,12,12,187,219,42,12,26,243,12, - 150,17,219,17,12,8,150,150,12,12,187,219,42,187,26,243, - 12,150,17,219,17,17,243,150,150,12,17,187,219,26,187,26, - 243,12,150,219,219,17,17,243,12,150,12,12,17,17,26,12, - 26,243,12,150,17,219,17,17,243,150,150,12,12,17,219,42, - 187,26,243,12,150,17,219,12,17,243,150,150,12,17,187,17, - 42,187,26,150,12,150,219,219,17,12,243,150,150,12,12,187, - 17,42,12,26,243,12,17,17,219,17,12,8,150,150,12,12, - 187,219,42,187,26,243,12,150,17,219,17,12,8,150,150,12, - 12,17,219,42,187,26,243,12,150,219,219,17,12,243,243,150, - 12,17,17,219,42,12,26,243,12,150,17,219,17,12,8,150, - 150,150,12,17,17,42,12,26,243,12,150,17,219,17,17,243, - 12,150,12,12,187,219,26,187,26,243,12,150,219,219,17,17, - 243,150,150,12,17,150,219,26,187,26,12,12,8,17,243,244, - 244,36,244,36,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,105,36,36,105,36,36,105,36,36,36,36,36,36,36, - 36,36,36,36,244,36,36,36,36,36,244,36,244,36,244,244, - 36,244,36,244,244,36,244,244,36,244,244,36,244,244,244,244, - 169,169,39,39,169,140,140,140,140,140,140,74,140,74,140,74, - 74,74,71,140,140,140,140,74,144,74,74,140,140,71,114,114, - 74,140,140,140,140,140,140,140,140,114,74,140,140,140,74,140, - 140,140,140,140,74,140,140,140,169,140,140,169,39,140,39,39, - 39,39,207,207,39,39,207,39,188,188,207,188,207,188,188,39, - 39,39,114,39,39,114,39,39,140,39,39,39,39,39,39,39, - 188,169,39,39,188,39,39,39,39,39,39,207,39,39,39,207, - 39,207,39,39,39,39,207,39,39,127,39,207,39,39,39,39, - 127,39,39,39,39,39,39,39,39,39,127,39,39,39,39,39, - 39,127,39,39,39,39,127,39,207,39,89,207,39,89,39,127, - 207,39,207,39,39,127,39,39,89,89,39,89,89,89,89,89, - 89,89,89,89,89,89,89,127,89,89,127,89,114,236,159,59, - 132,42,122,150,187,187,187,219,150,17,17,17,17,17,26,243, - 150,150,150,17,12,17,26,243,219,150,17,17,17,17,17,26, - 243,12,12,12,17,12,219,26,243,219,150,17,17,17,17,17, - 26,243,150,12,150,17,12,17,26,243,219,150,17,12,187,17, - 17,26,243,150,150,150,17,12,219,26,243,219,150,17,17,17, - 17,17,26,243,150,150,12,17,17,219,26,243,219,150,17,150, - 17,17,17,26,243,150,150,17,17,12,219,26,150,219,150,17, - 17,17,17,17,17,243,150,150,17,17,12,17,26,243,219,150, - 17,17,17,17,17,26,243,150,150,150,219,12,219,26,243,219, - 150,17,17,17,17,17,26,243,150,150,150,17,17,219,26,243, - 219,150,17,17,17,17,17,26,243,150,150,150,17,12,17,26, - 243,219,150,17,17,17,219,17,26,243,150,150,150,17,17,17, - 26,150,219,150,17,17,17,17,17,26,243,150,150,150,17,17, - 17,26,150,219,150,12,17,17,219,12,17,243,150,150,150,17, - 12,17,26,243,219,150,17,17,17,17,17,17,150,150,150,150, - 17,12,17,26,243,219,150,17,17,17,17,17,26,243,150,150, - 12,17,12,17,26,150,219,150,17,17,17,17,17,17,150,12, - 12,12,17,17,17,26,150,219,150,17,17,17,17,17,26,243, - 150,150,150,17,12,219,26,243,219,150,17,17,17,17,17,17, - 243,150,150,12,17,12,219,26,243,219,150,150,8,17,141,244, - 244,36,36,244,36,244,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,244,36,244,36,244,36,244,36,244,36, - 244,244,244,244,244,244,244,244,244,244,36,244,244,36,244,244, - 39,140,140,169,140,140,169,140,140,140,140,140,140,140,140,144, - 140,140,144,140,144,140,144,140,140,144,140,144,140,140,74,74, - 140,140,140,140,140,39,140,140,140,140,140,140,140,140,140,140, - 140,140,140,140,39,140,169,140,39,140,39,39,140,39,39,127, - 39,207,39,39,207,207,39,207,207,207,188,207,188,39,39,39, - 39,169,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,127,39,39,207,39,39,207,39,39, - 39,39,207,39,39,39,39,207,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,89,127,39,207,89,39,39,207,39,39,207,39,39,207, - 207,207,127,89,39,89,89,89,39,39,89,89,114,89,114,89, - 127,89,127,114,89,89,89,89,89,89,89,89,89,119,108,59, - 26,42,42,12,132,17,150,219,12,17,132,17,150,150,219,150, - 17,150,17,17,17,219,26,109,219,12,17,132,17,150,150,219, - 12,150,150,150,17,17,187,26,109,219,12,17,132,17,150,150, - 219,150,17,150,12,17,17,187,26,109,219,12,17,132,17,150, - 150,219,150,17,132,12,17,17,187,26,109,219,12,17,132,17, - 150,150,219,150,17,17,150,17,12,187,26,109,219,12,17,219, - 17,150,150,219,12,12,17,150,132,17,187,26,109,219,12,17, - 132,17,132,150,26,150,12,17,150,17,17,219,219,109,219,17, - 17,132,187,150,150,219,150,17,150,12,132,17,187,26,109,219, - 12,17,132,17,150,12,219,150,17,150,17,17,17,187,26,109, - 219,12,17,132,17,150,150,219,150,17,150,17,17,17,219,219, - 109,219,12,17,132,187,12,150,17,150,17,17,12,132,17,17, - 219,109,26,12,17,132,17,132,150,219,150,17,17,17,17,12, - 219,219,109,219,17,132,132,17,17,12,26,150,17,150,17,132, - 17,219,26,109,219,12,17,132,17,132,150,26,12,17,150,17, - 17,17,187,26,109,219,12,17,132,17,150,150,219,12,17,17, - 150,132,17,187,26,109,219,150,17,132,17,132,150,26,150,150, - 150,150,132,187,187,26,109,219,12,17,132,17,150,150,219,150, - 17,150,17,132,17,187,26,109,219,12,17,132,17,132,150,219, - 150,17,17,150,17,17,187,219,109,219,12,150,8,17,8,244, - 244,244,36,244,36,36,36,244,36,36,36,36,36,36,36,36, - 244,36,36,36,244,36,36,244,36,244,36,244,36,36,36,36, - 36,36,36,244,36,36,36,244,36,244,36,244,36,244,244,244, - 244,36,244,36,244,244,36,244,36,244,244,244,244,244,244,244, - 169,169,140,169,169,140,140,169,140,140,140,74,140,74,140,140, - 144,140,74,140,140,140,140,144,140,140,140,144,140,144,114,140, - 140,140,140,140,140,169,169,169,169,39,140,140,140,169,140,100, - 169,140,140,140,169,140,39,140,39,140,39,39,39,39,114,207, - 39,207,207,39,207,207,39,39,39,39,207,188,207,188,188,39, - 39,39,39,114,39,39,140,39,39,39,39,39,207,39,39,39, - 188,39,188,188,188,188,39,39,39,188,39,39,127,39,39,39, - 39,39,127,39,207,39,39,39,207,39,39,207,39,127,39,39, - 127,39,127,207,207,39,127,207,39,127,127,127,39,39,127,207, - 39,39,207,207,39,39,207,207,39,207,207,39,207,207,207,39, - 39,207,39,127,127,127,39,89,89,127,39,89,89,89,127,89, - 114,89,89,127,127,89,89,127,89,89,127,89,127,89,108,59, - 219,42,78,243,187,187,12,219,12,17,132,219,17,12,26,150, - 17,150,150,17,187,150,26,243,219,150,17,132,219,17,12,219, - 17,17,17,150,219,12,132,26,243,219,12,17,132,219,17,12, - 26,150,17,17,150,219,12,132,26,109,219,12,17,132,219,17, - 12,219,150,17,150,150,219,12,132,26,243,219,12,17,132,219, - 17,12,26,150,150,17,12,219,12,132,26,243,219,150,150,132, - 219,12,12,219,150,150,17,17,17,12,132,26,211,219,12,17, - 132,219,17,150,26,150,150,17,12,17,12,187,26,243,219,12, - 17,132,219,17,12,219,150,17,150,17,17,17,132,26,243,219, - 12,17,132,219,17,12,219,150,17,150,150,17,17,150,26,243, - 219,150,17,132,219,17,12,26,150,17,150,150,219,187,187,26, - 243,219,12,17,132,219,17,12,26,150,150,150,17,219,12,187, - 26,243,219,12,17,132,219,12,12,26,150,150,150,150,219,187, - 187,26,243,219,12,17,132,219,150,150,26,150,17,150,17,219, - 12,132,26,243,219,12,17,132,219,17,150,219,150,17,150,150, - 219,17,132,26,243,219,12,17,132,219,17,12,219,150,150,17, - 17,219,12,132,26,109,26,12,17,132,219,17,150,26,12,219, - 17,17,17,17,132,26,243,219,12,17,132,219,17,12,219,150, - 17,150,17,17,17,132,26,243,219,150,17,132,219,17,12,26, - 150,150,17,17,17,17,187,26,211,26,12,150,8,17,8,244, - 244,36,244,36,244,244,36,36,36,244,36,36,36,244,36,36, - 105,36,244,36,36,36,36,36,36,244,36,36,244,36,244,36, - 244,36,36,36,36,244,36,36,244,36,244,36,244,244,244,244, - 244,244,244,36,244,244,244,244,244,244,244,244,244,244,244,244, - 39,140,188,140,140,140,140,140,140,140,140,140,71,140,140,140, - 140,144,140,144,140,144,140,74,74,71,74,74,140,140,140,71, - 74,140,140,140,140,140,140,140,140,169,169,169,169,39,169,39, - 39,169,169,169,140,169,169,169,169,169,140,39,39,114,207,39, - 39,207,207,207,39,127,39,207,207,207,39,207,39,207,207,39, - 39,39,207,39,39,140,39,39,39,39,39,39,39,39,39,188, - 39,188,39,207,188,188,188,188,188,188,188,127,39,207,127,127, - 39,207,39,39,207,207,39,207,207,39,207,39,39,39,39,188, - 39,127,39,39,39,207,39,39,39,39,39,39,207,207,39,207, - 207,39,39,207,207,207,207,207,207,39,127,207,39,39,127,207, - 143,207,207,207,89,127,89,39,127,89,89,89,127,89,89,89, - 236,127,89,89,89,127,127,89,89,89,89,127,89,119,240,59, - 219,42,42,12,150,12,187,26,150,17,17,17,132,150,219,12, - 132,17,17,17,132,132,26,109,42,12,132,17,17,132,150,219, - 150,132,150,17,17,132,150,26,109,26,150,17,17,17,150,132, - 219,12,132,150,12,17,132,132,26,243,42,150,17,17,17,150, - 132,26,150,150,17,17,17,132,150,26,109,26,150,17,17,17, - 132,150,219,150,219,150,150,17,17,150,26,109,26,12,219,17, - 17,132,132,219,12,17,150,12,17,132,150,26,243,26,150,17, - 17,17,150,219,219,12,219,150,132,17,166,150,26,211,26,150, - 17,17,17,150,132,26,150,132,17,12,17,132,150,26,109,26, - 150,132,17,17,132,150,219,12,132,17,17,17,17,132,26,109, - 42,12,17,17,17,150,132,219,150,132,17,17,17,132,150,26, - 211,42,150,17,219,150,150,132,219,150,17,17,12,17,132,150, - 26,211,26,150,17,17,17,132,132,219,150,17,17,17,12,132, - 150,26,211,26,150,150,219,150,17,219,219,12,132,12,12,17, - 132,150,26,109,42,150,17,17,17,150,17,219,12,132,17,17, - 17,132,150,26,109,26,150,17,17,17,150,132,219,12,17,150, - 12,17,132,150,26,243,219,150,132,17,17,150,17,219,150,150, - 150,17,17,132,150,26,211,26,150,17,17,17,132,150,219,12, - 132,17,12,17,17,150,26,109,26,12,17,17,17,150,17,219, - 150,17,150,132,17,132,150,219,243,219,12,17,150,150,141,244, - 244,244,36,36,244,36,244,36,244,36,36,244,36,36,36,244, - 36,105,36,36,244,36,244,36,36,244,36,244,36,36,244,36, - 244,36,36,244,36,244,36,244,36,244,244,36,244,36,244,244, - 244,36,244,244,244,244,244,244,244,244,244,244,244,244,244,244, - 39,140,39,169,140,169,74,140,140,140,140,140,74,71,140,71, - 140,140,74,74,74,140,140,140,140,140,144,140,144,140,114,114, - 140,140,140,140,169,169,169,169,169,39,188,39,169,39,169,140, - 188,39,188,188,39,169,39,169,169,39,169,140,39,39,39,89, - 89,207,207,207,207,207,39,39,39,39,188,207,39,39,207,39, - 39,39,39,39,188,39,39,39,39,39,39,188,188,207,39,188, - 39,188,39,39,207,207,39,188,188,188,207,39,39,39,39,39, - 39,207,39,39,39,39,127,39,207,39,39,39,127,188,39,39, - 39,39,127,127,39,127,127,207,188,188,207,39,39,207,39,207, - 207,127,39,127,39,127,39,127,207,207,127,127,207,127,127,127, - 39,207,207,207,207,207,89,89,127,127,236,89,127,127,143,127, - 236,127,89,89,89,89,89,89,89,89,89,89,127,236,108,47, - 219,42,78,243,132,243,150,26,150,17,17,17,17,17,219,12, - 150,132,17,219,26,150,26,211,26,12,17,17,17,17,17,219, - 12,219,150,132,219,26,132,26,109,26,150,219,17,17,17,17, - 219,12,132,132,17,219,26,150,26,211,26,150,219,17,17,17, - 150,26,12,132,150,17,219,26,132,26,109,26,150,17,17,17, - 17,17,26,150,17,132,17,132,26,132,26,109,26,12,17,17, - 17,17,17,219,150,17,132,17,219,26,132,26,109,26,150,17, - 17,17,150,17,219,150,17,150,17,219,26,150,26,109,26,150, - 219,17,17,17,150,26,12,132,132,17,219,26,150,26,109,26, - 12,17,17,17,17,17,219,12,150,132,17,132,26,150,26,109, - 26,150,219,17,17,17,17,26,12,132,150,17,219,26,132,26, - 109,26,150,17,17,17,17,17,26,150,132,132,17,219,26,150, - 219,109,26,150,17,17,17,17,17,26,150,132,150,132,219,26, - 150,26,109,26,17,132,17,150,150,17,219,12,132,132,17,219, - 26,150,26,211,26,150,17,17,17,150,17,219,12,150,132,17, - 219,26,132,26,109,26,150,219,17,17,17,17,219,150,17,132, - 17,219,26,132,26,187,26,12,17,17,17,132,17,219,12,17, - 150,132,219,26,132,26,109,26,150,17,17,17,17,17,219,12, - 132,132,17,132,26,132,26,109,26,150,17,17,17,150,17,26, - 150,17,12,132,17,26,187,219,109,219,150,150,150,12,8,244, - 244,36,244,36,244,36,36,36,36,244,36,244,36,244,105,244, - 36,244,36,36,36,36,36,244,36,36,36,244,36,244,36,244, - 36,36,244,36,36,36,36,244,36,244,36,244,244,36,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, - 140,140,140,140,140,74,140,140,140,140,144,140,140,140,74,114, - 71,74,144,140,144,71,140,144,140,140,140,74,140,140,74,140, - 140,140,140,140,140,140,140,140,140,188,169,169,39,169,169,169, - 169,169,169,169,169,39,169,39,39,169,169,39,39,39,39,89, - 39,89,207,207,207,207,207,207,39,207,207,39,207,39,39,207, - 207,39,39,39,207,207,188,188,39,188,188,39,207,39,188,207, - 188,188,188,207,39,39,207,207,207,207,39,207,207,39,207,207, - 127,39,207,127,127,207,39,39,39,39,188,207,39,39,188,188, - 207,188,39,207,207,188,39,188,39,207,39,127,207,39,207,39, - 39,207,207,207,207,127,207,207,127,188,188,207,207,207,188,207, - 207,127,207,127,207,127,127,143,89,89,127,143,236,89,236,236, - 236,236,89,143,236,89,127,127,89,89,236,127,89,119,240,59, - 26,219,162,8,166,187,187,42,12,219,150,17,150,150,219,150, - 219,17,150,17,17,187,219,243,219,12,17,150,17,150,150,26, - 150,132,12,17,219,17,187,17,243,42,12,17,150,17,150,150, - 219,150,219,17,150,17,17,187,17,243,42,12,17,150,17,150, - 17,219,150,17,17,150,219,17,187,17,243,42,12,219,150,17, - 150,150,219,12,132,17,132,219,17,187,17,243,219,150,17,150, - 17,150,132,219,12,132,12,150,219,17,187,17,243,42,12,219, - 150,12,219,150,219,12,132,12,150,219,17,187,219,243,26,12, - 17,150,17,150,17,219,150,219,12,150,219,17,187,17,211,42, - 12,219,150,17,150,17,219,150,17,17,150,219,17,187,17,243, - 219,12,17,150,17,150,150,219,150,17,12,150,219,17,187,219, - 243,42,12,17,17,17,132,132,219,12,17,12,132,17,17,187, - 26,243,26,17,17,150,17,150,132,219,12,17,17,12,219,17, - 187,219,211,26,12,219,17,17,17,132,219,150,17,17,150,17, - 17,187,219,243,42,17,17,150,17,17,132,219,150,219,12,150, - 219,17,187,17,243,26,12,17,150,17,150,132,219,12,132,12, - 150,219,17,187,12,211,26,12,219,150,17,17,150,42,150,132, - 17,17,219,17,187,219,243,42,12,219,150,17,150,17,219,150, - 17,17,132,219,17,187,17,243,219,12,219,150,17,132,132,219, - 12,132,132,17,219,17,12,26,187,219,26,12,243,12,141,244, - 244,36,244,244,36,244,244,36,244,36,36,36,244,36,36,36, - 244,36,244,36,244,36,244,36,36,244,36,244,36,244,36,244, - 36,244,36,244,36,244,36,244,36,244,36,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,144,144, - 169,169,140,169,39,140,140,140,140,140,140,140,140,140,140,114, - 114,140,140,140,140,140,140,140,74,140,140,140,140,140,74,140, - 140,140,140,140,169,169,169,169,169,169,188,169,39,39,169,169, - 169,169,169,188,169,39,169,169,169,39,188,39,39,39,207,89, - 207,89,207,207,207,39,188,207,207,39,207,39,207,39,39,39, - 39,39,39,39,39,207,39,188,39,188,188,188,188,207,39,188, - 207,188,188,207,207,39,39,39,207,207,39,127,207,39,39,39, - 188,127,39,39,39,188,127,127,127,188,188,207,207,207,188,39, - 207,188,188,39,207,207,207,207,188,188,207,188,207,127,127,207, - 127,188,127,127,207,207,207,207,207,207,207,188,127,207,188,207, - 207,127,207,207,89,207,143,207,143,89,143,207,143,207,143,127, - 143,143,89,127,236,236,236,236,236,236,119,236,143,236,108,59, - 26,219,42,243,187,243,111,26,150,219,12,17,150,219,219,150, - 132,17,132,219,17,187,26,187,219,17,219,12,17,17,219,219, - 132,132,17,17,17,17,187,26,150,26,17,219,12,17,150,219, - 219,150,132,17,132,219,17,187,42,150,42,150,219,17,17,150, - 219,219,132,132,17,132,219,17,17,26,150,26,17,219,12,17, - 150,219,219,132,17,17,17,219,17,187,42,12,42,150,219,17, - 12,17,17,219,132,132,17,132,219,17,187,26,150,26,17,219, - 12,150,150,219,219,132,219,17,150,219,17,12,26,150,26,17, - 219,12,17,150,219,219,150,132,17,17,17,17,187,42,150,219, - 17,17,150,17,150,219,219,132,132,17,17,219,17,187,26,187, - 26,17,219,12,17,150,219,219,132,132,17,150,219,17,187,26, - 150,42,17,17,12,12,150,219,219,132,132,17,132,219,17,150, - 26,150,42,17,17,17,12,150,219,219,132,132,17,132,219,17, - 187,26,150,219,17,17,12,150,150,219,219,132,132,17,132,219, - 17,187,26,150,42,17,219,12,150,17,17,219,150,132,17,150, - 219,17,187,26,150,26,17,219,12,17,12,219,219,132,132,17, - 17,17,17,187,42,150,219,17,219,12,150,150,219,219,132,132, - 17,150,219,17,187,26,150,26,17,17,12,17,150,219,219,150, - 132,17,17,219,17,187,26,187,26,17,219,12,17,150,219,219, - 132,17,17,17,17,17,150,219,12,219,17,17,150,150,243,144, - 144,244,244,244,244,36,244,36,244,36,244,36,244,36,244,36, - 36,36,244,36,36,36,244,36,244,36,244,36,244,36,36,244, - 36,244,36,244,36,244,36,36,244,244,36,244,36,244,36,244, - 244,244,244,244,244,244,244,244,244,244,244,244,144,244,244,244, - 140,140,169,140,140,140,74,140,140,140,140,140,74,140,140,140, - 140,140,140,144,140,74,140,71,140,74,140,140,140,140,114,140, - 74,114,140,140,140,140,140,140,140,39,169,188,169,169,188,39, - 188,169,169,169,188,169,188,188,188,169,169,140,127,39,39,207, - 207,207,207,39,39,207,207,39,39,207,39,207,39,39,127,39, - 39,169,39,188,39,188,188,207,188,188,188,188,207,39,188,188, - 188,39,207,39,188,207,207,207,39,207,207,39,39,207,207,207, - 207,39,207,188,188,207,188,188,188,39,188,39,188,39,207,188, - 188,207,188,207,207,188,188,207,207,207,188,188,188,188,207,127, - 207,188,188,188,188,188,188,207,207,207,188,207,207,207,207,207, - 207,207,207,207,207,207,207,207,207,127,207,236,207,143,207,89, - 143,127,143,236,143,236,236,236,236,236,127,143,236,119,240,47, - 219,26,122,182,187,187,132,219,26,26,17,17,26,17,26,17, - 17,17,219,219,17,12,26,150,42,17,26,17,17,12,17,26, - 17,17,17,132,219,17,12,26,150,219,17,26,17,17,26,17, - 26,17,17,17,219,219,17,17,26,150,219,26,26,17,17,17, - 17,26,219,17,17,219,219,17,187,26,150,219,17,26,17,17, - 26,17,219,17,12,17,219,219,17,12,26,150,42,26,26,17, - 12,17,17,219,219,17,17,219,219,17,17,26,150,219,17,26, - 17,17,26,17,219,17,12,17,219,219,17,187,26,132,219,17, - 26,17,17,17,17,26,219,17,17,132,219,17,17,26,150,42, - 219,26,26,17,12,17,26,17,17,17,219,219,17,12,26,150, - 219,17,26,17,17,26,17,26,17,17,17,219,219,17,12,26, - 150,219,219,219,17,12,26,17,219,17,17,17,219,219,17,187, - 26,150,219,219,26,17,12,26,17,219,17,17,17,219,219,17, - 12,42,150,42,26,219,17,17,26,17,26,17,17,17,219,219, - 17,12,26,150,219,17,26,17,17,17,17,26,219,17,17,219, - 219,12,12,26,132,219,17,26,17,17,12,17,219,17,17,219, - 132,219,17,17,26,150,42,17,26,17,17,26,17,26,17,17, - 17,219,219,17,12,26,150,219,219,26,17,17,12,17,26,219, - 12,17,219,219,17,12,26,150,219,17,26,17,12,26,17,219, - 219,12,17,132,219,17,187,26,109,219,17,17,150,12,141,144, - 244,244,244,244,244,244,244,244,36,244,244,36,244,36,244,36, - 244,36,36,36,244,36,36,244,36,36,244,36,244,244,36,244, - 36,244,36,244,36,36,244,36,244,244,36,244,244,244,244,244, - 244,244,244,244,144,244,244,144,244,244,244,244,144,244,144,144, - 169,140,39,169,140,169,140,140,140,140,140,39,140,74,140,140, - 140,140,140,140,140,74,140,140,140,140,140,74,140,74,140,114, - 74,140,140,140,169,169,169,169,140,39,169,169,188,169,169,169, - 188,39,169,169,169,169,169,169,188,169,188,39,207,39,207,207, - 39,89,207,207,39,39,39,39,39,207,39,207,207,207,188,39, - 188,188,188,188,39,207,39,207,188,188,188,188,188,207,207,207, - 207,39,207,188,127,188,127,207,188,207,207,207,39,39,188,39, - 188,39,188,207,188,207,207,207,207,188,188,188,207,188,207,207, - 39,207,188,188,207,207,188,207,207,207,207,188,188,188,188,188, - 207,207,207,207,207,207,188,207,207,218,218,207,188,188,188,127, - 207,207,207,127,207,143,143,207,143,207,207,143,207,236,207,236, - 89,89,236,89,143,127,143,143,89,236,236,89,143,236,240,59, - 42,26,42,211,187,187,187,122,42,122,122,0,122,42,122,122, - 122,122,122,122,42,42,42,187,122,42,122,122,0,122,183,122, - 122,122,0,0,122,42,78,42,187,0,42,122,122,0,122,42, - 122,122,122,122,122,122,42,42,42,187,122,42,122,122,0,122, - 42,122,122,42,122,122,122,26,42,42,187,0,42,122,122,0, - 122,42,122,122,122,122,122,122,42,42,42,187,122,42,122,0, - 0,122,42,122,122,122,122,122,122,26,42,42,187,0,122,122, - 122,0,122,42,122,122,122,122,122,122,42,42,42,187,0,42, - 122,122,0,122,42,122,122,122,122,0,122,42,42,42,187,122, - 42,122,122,0,122,42,0,122,42,122,122,122,42,42,42,187, - 0,122,122,122,0,122,42,122,122,122,122,122,122,42,42,42, - 187,122,122,122,122,0,122,42,122,122,122,122,122,122,42,42, - 42,187,122,42,122,0,0,122,42,122,122,122,122,122,122,42, - 42,42,187,122,42,122,122,0,122,42,122,122,122,122,122,122, - 42,78,42,187,122,122,122,122,0,122,42,122,122,122,122,0, - 0,183,42,42,187,0,122,122,122,0,122,42,0,122,42,0, - 0,122,42,183,42,187,122,42,122,122,122,122,219,0,122,42, - 122,122,122,42,42,42,187,122,42,122,122,0,122,42,122,122, - 122,122,122,122,42,42,42,187,122,42,122,122,0,122,42,122, - 122,122,122,0,122,42,42,42,187,42,26,26,12,17,150,144, - 144,244,244,36,244,36,244,244,36,244,36,244,36,244,36,244, - 36,244,244,36,244,36,244,36,244,36,244,244,244,244,244,36, - 244,244,36,244,244,36,244,36,244,244,244,244,244,244,244,244, - 244,244,244,244,244,144,244,244,244,144,244,144,244,244,144,244, - 140,169,140,140,39,140,140,169,140,74,74,140,74,114,140,140, - 140,140,140,140,140,114,140,140,140,140,74,140,140,140,100,74, - 140,100,140,140,140,140,140,140,169,140,140,39,169,39,169,169, - 169,169,39,169,188,188,169,188,169,169,169,140,39,207,207,207, - 89,39,39,207,39,207,39,39,207,39,207,207,39,188,207,188, - 207,39,188,207,207,39,207,39,207,207,207,207,207,207,39,207, - 207,207,188,207,207,207,188,39,207,188,39,188,127,188,188,188, - 207,188,207,188,207,188,188,188,188,207,207,188,188,207,188,188, - 207,188,188,188,188,188,207,188,207,188,207,207,207,207,207,207, - 188,188,188,207,188,207,207,207,188,207,207,188,207,207,207,207, - 207,207,207,207,207,207,207,218,218,143,218,207,207,207,143,207, - 143,143,143,143,236,236,236,236,143,143,236,143,236,58,108,47, - 0,183,122,12,0,183,183,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,183,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,183,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,122,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,122,122,42,42,122,141,114, - 244,244,244,244,244,244,244,244,244,244,36,244,244,36,244,244, - 36,244,244,36,244,244,36,244,244,36,244,36,244,244,244,36, - 244,244,244,36,244,36,244,36,244,36,244,244,244,244,244,244, - 244,144,244,144,244,144,144,244,244,244,144,244,144,244,144,144, - 140,169,169,140,39,100,140,169,114,39,140,140,74,140,140,140, - 140,140,140,140,74,140,140,140,140,39,140,140,169,114,39,169, - 114,169,169,140,140,140,140,140,169,169,140,39,140,188,39,39, - 169,169,39,169,169,39,169,169,39,169,188,39,39,39,207,39, - 89,89,207,39,39,114,207,39,39,39,39,207,207,39,207,39, - 188,188,188,39,207,188,207,188,39,39,188,207,207,207,39,188, - 188,207,188,188,188,207,207,188,207,207,188,207,207,207,207,39, - 39,188,39,188,207,207,207,207,207,188,207,207,188,207,39,188, - 207,207,207,207,207,188,207,188,207,188,207,207,207,207,188,207, - 218,207,188,207,188,207,188,207,207,207,207,207,207,207,207,39, - 207,207,207,236,207,143,218,236,218,218,218,143,218,207,218,207, - 207,207,236,143,236,143,236,236,236,143,236,143,236,236,240,59, - 42,219,132,150,122,0,26,0,14,216,41,62,62,62,62,62, - 62,62,62,62,41,75,26,12,0,14,216,41,62,62,62,249, - 62,62,62,62,62,41,75,26,12,0,14,216,41,62,62,62, - 62,62,62,62,62,62,41,75,26,12,0,14,216,62,41,62, - 62,62,62,62,62,62,62,41,75,26,12,0,14,216,41,62, - 62,62,62,62,62,62,62,62,41,75,26,12,0,14,216,41, - 62,62,62,249,62,62,62,62,62,41,75,26,12,122,14,216, - 41,62,62,62,249,62,62,62,62,62,41,75,26,12,0,14, - 216,62,41,62,62,62,62,62,62,62,62,41,59,26,17,0, - 14,216,62,41,62,62,62,62,62,62,62,62,41,59,26,12, - 122,14,216,41,62,62,62,62,62,62,62,62,62,41,75,26, - 12,122,14,216,41,62,62,62,62,62,62,62,62,62,41,75, - 26,12,0,14,216,41,62,62,62,62,62,62,62,62,62,41, - 75,26,12,0,14,216,41,62,62,62,62,62,62,62,62,62, - 62,22,12,26,122,14,216,62,41,62,62,62,62,62,62,62, - 62,41,75,26,12,122,14,216,41,62,62,62,249,62,62,62, - 62,62,62,22,26,12,0,14,216,62,41,62,62,249,62,62, - 62,62,62,41,75,26,12,0,14,216,62,41,62,62,62,62, - 62,62,62,62,41,200,26,17,0,14,216,41,62,62,62,62, - 62,62,62,62,62,41,59,26,187,122,26,187,243,219,141,114, - 144,144,244,244,244,244,244,244,244,244,244,244,36,244,244,36, - 244,36,244,244,244,244,36,244,244,244,244,36,244,244,36,244, - 36,244,36,244,244,36,244,244,244,244,244,244,244,244,244,244, - 244,144,244,244,144,244,144,244,144,244,144,144,244,244,144,144, - 188,169,39,169,140,39,140,169,169,140,140,140,39,169,140,140, - 169,140,140,140,39,169,140,140,140,140,140,169,39,169,140,39, - 169,140,140,169,140,169,169,169,140,140,140,140,169,140,169,169, - 39,169,169,169,169,169,169,39,169,188,188,127,39,207,207,207, - 207,207,39,39,39,207,207,39,207,207,207,39,39,188,188,188, - 188,207,188,207,188,39,188,207,207,207,207,39,39,207,207,207, - 207,188,207,207,207,207,127,207,188,188,207,188,188,39,207,207, - 207,188,207,188,188,188,188,188,188,207,207,188,188,188,207,207, - 188,188,188,218,188,207,207,207,207,207,188,207,188,188,207,188, - 207,207,207,207,207,188,207,207,207,207,207,207,188,207,207,207, - 207,207,207,207,207,207,207,207,218,207,218,218,218,236,218,236, - 143,236,143,236,143,143,143,143,143,119,143,236,143,159,240,47, - 187,109,187,211,150,42,254,42,233,110,195,90,195,90,195,90, - 90,90,90,90,60,154,26,12,42,233,110,195,90,90,195,90, - 90,90,90,90,90,60,154,26,12,42,233,110,195,90,195,90, - 195,90,90,90,90,90,60,154,26,12,42,233,110,195,90,90, - 195,195,90,90,90,90,90,60,154,26,12,42,233,110,195,90, - 195,90,195,90,90,90,90,90,60,154,26,12,42,233,110,195, - 90,90,195,90,90,90,90,90,90,60,154,26,12,42,233,110, - 195,90,90,195,90,90,90,90,90,90,60,154,26,12,42,233, - 110,195,90,195,90,195,90,90,90,90,195,60,154,26,12,42, - 233,110,195,90,195,90,195,90,90,90,90,195,60,154,26,12, - 42,233,110,195,90,195,90,195,90,90,90,90,90,60,154,26, - 12,42,233,110,195,90,195,90,195,90,90,90,90,90,60,154, - 26,12,42,233,110,195,90,195,90,195,90,90,90,90,90,60, - 154,26,12,42,233,110,195,90,195,90,195,90,90,90,90,90, - 60,154,26,109,42,233,110,195,90,195,90,195,90,90,90,90, - 90,60,154,26,12,42,233,110,195,90,90,195,90,90,90,90, - 90,90,60,154,26,12,42,233,110,195,90,90,195,90,90,90, - 90,90,90,60,154,26,12,42,233,110,195,90,195,90,195,90, - 90,90,90,195,60,154,26,12,42,233,110,195,90,195,90,195, - 90,90,90,90,195,60,154,26,12,42,12,67,67,8,141,114, - 144,244,144,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,36,244,244,244,244,244,244,244,244,244,244,36,244, - 244,244,36,244,244,36,244,244,36,244,244,244,244,244,244,144, - 244,144,144,244,144,244,144,244,144,244,144,244,144,244,144,244, - 169,169,188,188,169,169,169,140,169,169,169,140,169,169,188,169, - 169,169,169,169,39,169,169,169,169,39,169,140,169,169,169,140, - 169,39,169,169,39,140,140,169,169,169,169,39,39,39,39,169, - 39,169,39,39,188,188,169,39,39,188,188,207,188,39,207,207, - 207,89,89,114,39,39,39,207,39,39,207,207,207,207,207,207, - 39,188,39,188,207,207,188,39,188,207,207,207,188,39,188,207, - 207,188,188,127,188,207,188,207,207,188,207,207,207,207,188,188, - 207,188,207,207,207,207,207,207,207,188,207,207,188,188,188,207, - 207,188,188,207,207,188,218,207,207,218,188,218,207,207,207,207, - 207,207,207,207,207,39,207,39,39,207,207,207,207,207,207,207, - 207,207,207,143,207,207,218,236,218,236,236,236,218,236,143,236, - 207,207,207,236,236,236,143,236,143,236,143,236,143,153,240,59, - 26,109,187,187,150,42,109,122,206,128,23,23,23,86,19,19, - 65,65,19,19,195,178,243,243,122,206,128,23,23,23,23,23, - 65,19,65,19,19,195,154,12,243,122,206,128,23,23,23,86, - 19,19,65,65,19,19,195,178,243,243,122,206,128,86,23,23, - 86,19,19,65,65,19,19,195,178,243,243,122,206,128,23,23, - 23,86,19,19,65,65,19,19,195,178,243,243,122,206,128,23, - 23,23,23,23,65,19,65,19,19,195,154,12,243,122,206,128, - 23,23,23,23,23,65,19,65,19,19,195,154,12,243,122,206, - 128,23,23,23,86,19,19,65,65,19,19,195,178,243,109,122, - 130,128,23,23,23,86,19,19,65,65,19,19,195,178,12,243, - 122,206,128,23,23,23,86,19,19,65,65,19,19,195,154,12, - 243,122,206,128,23,23,23,86,19,19,65,65,19,19,195,178, - 243,243,122,206,128,23,23,23,86,19,19,65,65,19,19,195, - 178,243,243,122,206,128,23,23,23,86,19,19,65,65,19,19, - 195,178,12,243,122,206,128,23,23,23,86,19,19,65,65,19, - 19,195,154,12,243,122,206,128,23,23,23,23,23,65,19,65, - 19,19,90,178,243,243,122,206,128,86,23,23,23,23,65,19, - 65,19,19,195,154,12,243,122,206,128,23,23,23,86,19,19, - 65,65,19,19,195,178,243,109,122,206,128,23,23,23,86,19, - 19,65,65,19,19,195,178,150,243,183,12,8,67,8,141,114, - 114,244,144,244,144,144,244,244,244,244,244,244,36,244,36,244, - 244,244,244,244,244,244,244,244,244,244,36,244,244,244,244,244, - 244,244,36,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,144,144,144,144,244,144,144,144,244,144,144,144,244,144,144, - 39,169,39,169,39,169,169,169,169,169,39,169,169,169,140,169, - 140,169,140,169,169,169,169,169,169,169,169,169,39,39,169,169, - 39,140,39,169,140,39,140,140,140,140,39,140,169,140,169,39, - 169,39,188,188,39,188,188,169,188,188,188,188,188,127,127,39, - 207,39,207,207,127,39,89,39,207,207,207,39,39,39,39,39, - 207,207,207,207,188,188,207,207,207,188,188,188,207,207,207,188, - 188,207,207,188,207,218,207,188,207,207,207,207,188,188,207,207, - 188,207,188,188,188,188,188,188,188,207,188,207,207,207,207,188, - 188,207,207,188,188,207,207,188,207,207,207,207,207,188,207,207, - 188,207,207,39,207,207,39,207,207,207,207,89,207,207,89,89, - 89,89,207,207,207,236,207,207,207,218,218,143,218,218,218,207, - 143,236,236,143,143,143,236,143,236,236,236,236,236,58,108,47, - 187,254,187,211,111,26,111,122,222,204,19,65,19,65,65,65, - 65,65,19,65,90,178,219,109,122,222,128,19,65,19,65,65, - 19,118,65,19,65,195,178,132,211,122,222,204,19,65,19,65, - 65,65,65,65,19,65,90,178,219,109,42,233,204,19,65,19, - 65,65,65,65,65,19,65,90,178,219,211,122,222,204,19,65, - 19,65,65,65,65,65,19,65,90,178,219,211,122,222,128,19, - 65,19,65,65,19,118,65,19,65,90,178,17,211,122,222,128, - 19,65,19,65,65,19,118,65,19,65,90,178,132,211,122,222, - 204,19,65,19,65,65,65,65,65,65,65,90,178,17,243,122, - 130,204,19,19,19,65,65,65,65,65,65,65,90,178,132,211, - 122,222,204,19,65,19,65,65,65,65,65,19,65,90,178,17, - 211,122,222,204,19,65,19,65,65,65,65,65,19,65,90,178, - 219,211,122,222,204,19,65,19,65,65,65,65,65,19,65,90, - 178,17,109,122,222,204,19,65,19,65,65,65,65,65,19,65, - 90,178,17,211,122,222,204,19,19,19,65,65,65,65,65,19, - 65,195,178,17,211,122,222,128,19,65,19,65,65,19,118,65, - 19,19,90,178,17,109,42,233,204,65,19,65,65,65,19,118, - 65,19,65,90,178,132,211,122,222,204,19,19,19,65,65,65, - 65,65,65,65,90,178,219,8,122,222,204,19,65,19,65,65, - 65,65,65,19,65,90,178,17,211,42,243,141,141,8,8,114, - 144,144,144,144,244,244,144,144,244,244,144,244,244,244,244,244, - 244,244,244,244,36,244,244,244,244,244,244,244,244,244,36,244, - 36,244,244,244,244,36,244,36,244,244,244,144,144,244,144,244, - 144,244,244,144,144,144,244,144,144,244,144,244,144,144,244,144, - 39,169,39,169,39,169,169,169,169,169,169,169,140,169,39,169, - 169,169,39,169,39,39,39,169,169,39,169,169,169,39,188,169, - 169,169,39,169,169,39,188,39,39,140,169,140,169,39,140,140, - 169,169,169,39,39,188,188,188,188,188,188,188,188,188,188,188, - 207,39,207,39,39,39,207,207,207,39,207,207,207,207,207,39, - 207,188,188,207,207,188,188,188,207,207,207,188,207,207,207,207, - 207,188,207,188,207,207,218,218,207,188,207,207,207,207,207,207, - 188,207,207,207,188,218,207,207,207,218,188,207,218,207,207,207, - 188,207,207,218,188,188,207,188,207,207,207,207,207,188,188,207, - 207,207,207,207,207,207,207,207,89,207,207,89,89,207,207,207, - 207,207,89,207,207,207,207,218,207,207,207,207,207,207,207,207, - 207,207,143,207,89,143,89,143,236,236,143,143,236,159,240,47, - 26,109,187,109,111,26,109,122,31,204,118,118,118,118,51,118, - 118,118,65,65,60,178,26,211,122,31,170,118,118,118,118,51, - 118,118,118,118,65,128,84,26,8,122,31,204,118,118,118,118, - 51,118,118,118,118,65,60,178,17,243,122,31,170,118,118,118, - 118,51,118,118,118,118,65,60,178,26,211,122,31,204,118,118, - 118,118,51,118,118,118,65,65,128,84,26,211,122,31,170,118, - 118,118,118,51,118,118,118,118,65,128,84,26,211,122,31,170, - 118,118,118,118,51,118,118,118,118,65,128,84,26,8,122,31, - 204,118,118,118,118,118,118,51,118,65,118,60,84,26,8,122, - 31,170,118,118,118,118,118,118,118,118,65,118,60,84,26,8, - 122,31,204,118,118,118,118,51,118,118,118,118,65,128,84,26, - 8,122,31,204,118,118,118,118,51,118,118,118,118,65,60,178, - 26,211,122,31,204,118,118,118,118,51,118,118,118,118,65,60, - 178,26,211,122,31,204,118,118,118,118,51,118,118,118,118,65, - 128,84,26,211,122,31,170,118,118,118,118,51,118,118,118,65, - 118,128,84,26,211,122,31,170,118,118,118,118,51,118,118,118, - 118,65,60,178,17,243,122,31,170,65,118,118,118,118,118,118, - 118,118,65,128,84,26,8,122,31,170,118,118,118,118,118,118, - 51,118,65,118,60,84,17,211,122,31,204,118,118,118,118,51, - 118,118,118,118,65,60,178,219,141,26,12,141,67,150,141,114, - 144,144,144,144,144,244,244,144,144,244,244,244,144,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,144,144,144,144, - 244,144,244,144,144,244,244,144,144,144,244,144,144,144,244,144, - 169,169,169,169,169,39,169,169,169,169,169,169,169,169,169,169, - 169,169,169,39,169,169,169,39,39,169,169,169,188,169,169,188, - 169,169,169,188,39,169,169,169,169,39,39,188,39,140,169,39, - 39,39,39,39,39,39,188,188,39,39,207,207,207,188,207,39, - 207,39,127,89,39,89,207,207,39,207,39,207,39,207,207,207, - 188,207,207,188,188,207,207,207,188,188,188,207,188,207,207,207, - 188,207,207,218,188,218,236,188,218,218,218,218,218,218,188,188, - 207,207,207,218,218,207,218,218,218,207,218,188,207,218,207,207, - 207,188,207,207,207,207,207,207,207,207,207,207,207,207,207,207, - 39,207,89,207,207,89,207,89,207,207,207,207,207,89,207,89, - 89,89,207,89,207,207,207,236,218,218,207,207,207,236,207,207, - 207,207,207,89,207,89,127,127,143,236,236,236,236,236,108,64, - 26,111,183,243,224,26,109,122,31,53,118,51,51,51,107,52, - 51,52,107,118,204,84,17,243,122,249,53,118,51,51,51,51, - 107,51,51,118,118,128,178,26,211,122,31,53,118,51,51,51, - 107,52,51,51,118,118,204,84,26,211,0,31,45,118,51,107, - 51,107,52,51,51,118,118,204,84,17,8,122,31,53,118,51, - 51,51,107,52,52,9,107,51,128,84,17,8,122,249,53,118, - 51,51,51,51,51,107,107,51,118,128,84,17,8,122,249,53, - 118,51,51,51,51,51,107,51,118,118,128,84,26,211,122,31, - 53,118,51,51,51,52,52,107,9,118,118,128,178,17,182,0, - 249,53,118,51,51,51,52,52,52,52,118,118,128,178,17,211, - 122,31,53,118,51,51,51,107,52,51,51,118,118,128,84,17, - 211,122,31,53,118,51,51,51,107,52,51,51,118,118,204,84, - 17,8,122,31,53,118,51,51,51,107,52,51,107,118,118,204, - 84,17,243,122,31,53,118,51,51,51,51,52,52,51,118,51, - 128,84,17,243,122,249,165,51,51,51,51,51,52,51,9,51, - 118,128,84,17,8,0,249,53,118,51,51,51,51,107,52,51, - 118,118,204,84,26,211,0,31,45,107,51,51,51,52,52,107, - 51,118,118,128,84,26,211,122,249,165,51,51,51,51,52,52, - 107,9,118,118,128,84,26,8,122,31,53,118,51,51,107,51, - 52,51,52,118,118,204,84,17,8,219,12,12,8,12,141,89, - 144,144,144,144,244,144,144,244,144,244,144,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,144,244,144,244,144, - 244,144,144,244,144,244,144,244,144,144,244,244,144,244,144,144, - 188,188,188,169,169,188,188,169,169,39,169,169,169,169,169,169, - 188,169,169,188,188,188,169,169,169,188,169,169,188,39,169,188, - 188,188,169,169,169,169,188,188,169,169,169,169,188,39,169,140, - 39,39,140,169,39,39,39,188,39,39,39,188,188,39,188,127, - 207,39,207,39,39,89,207,207,207,207,127,207,39,39,207,207, - 39,188,207,207,127,188,207,207,207,207,188,207,188,207,207,207, - 207,218,207,218,207,188,218,207,207,207,207,207,188,218,218,207, - 218,218,188,207,188,207,207,207,207,207,218,207,207,218,207,218, - 207,207,207,207,207,39,207,39,207,207,207,207,207,207,207,207, - 207,207,89,89,207,89,207,89,89,89,89,89,89,89,236,207, - 127,89,143,207,207,143,207,207,207,207,236,89,207,207,89,207, - 207,89,143,207,143,89,89,236,127,89,236,143,236,153,240,47, - 26,109,183,12,109,42,109,162,249,85,51,52,76,76,76,232, - 51,52,9,107,204,178,17,8,0,123,53,107,76,76,76,232, - 232,52,52,52,51,204,84,17,8,122,167,194,107,76,76,76, - 76,232,52,52,9,107,204,84,17,8,0,123,53,107,76,76, - 76,76,232,52,52,9,107,204,84,12,243,122,249,85,51,52, - 76,76,76,76,51,51,51,9,204,84,12,243,0,123,53,107, - 51,76,76,232,76,51,51,107,9,204,178,17,243,0,123,53, - 107,51,76,76,232,76,52,52,51,107,204,178,12,8,122,249, - 85,51,76,76,76,76,76,76,52,52,9,204,84,26,8,0, - 123,53,107,76,76,76,76,76,51,52,9,9,204,84,17,8, - 122,167,194,107,51,76,76,76,232,52,52,51,9,204,178,17, - 243,122,249,85,51,52,76,76,76,232,52,52,107,107,204,84, - 17,8,122,249,85,51,52,76,76,76,232,52,52,9,107,204, - 84,12,8,122,249,85,51,52,76,76,76,52,52,52,107,9, - 204,84,12,8,122,123,53,107,51,76,76,76,232,51,51,51, - 9,204,84,12,8,122,123,53,107,76,76,76,76,76,52,52, - 9,107,204,84,17,243,122,123,53,107,51,76,76,76,76,52, - 52,51,107,204,178,17,8,122,123,53,107,76,76,76,76,76, - 76,52,52,9,204,178,12,8,122,249,85,51,76,51,232,76, - 52,51,52,107,107,204,84,26,8,219,150,8,8,243,141,181, - 144,144,144,114,144,144,144,144,144,144,144,244,144,244,244,244, - 244,244,144,244,244,144,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,144,244,144,144,144,144, - 144,244,144,144,144,244,144,244,144,144,144,244,144,144,244,244, - 188,188,188,188,188,169,169,169,169,169,169,169,169,169,169,169, - 169,169,188,169,169,169,188,169,188,169,169,169,169,169,188,169, - 169,169,188,169,188,188,169,169,39,39,39,39,169,39,39,39, - 39,39,39,39,39,39,39,39,207,188,207,39,207,188,207,39, - 39,207,39,89,89,207,207,207,207,39,207,127,207,207,207,207, - 207,207,188,188,188,207,218,207,207,207,207,207,207,218,218,207, - 207,188,207,207,207,218,207,218,218,218,218,218,218,207,207,218, - 207,188,218,207,218,218,188,218,207,207,236,207,207,207,188,207, - 207,207,207,207,207,207,207,207,207,207,207,207,89,89,207,89, - 207,207,207,39,207,207,207,207,89,89,236,89,143,236,207,89, - 89,143,89,89,207,207,207,207,207,143,207,207,207,236,207,207, - 207,143,207,127,89,127,143,127,89,236,236,236,236,58,108,64, - 26,187,42,109,111,91,182,122,123,85,52,76,76,76,232,232, - 232,76,51,9,204,84,17,211,122,123,85,52,76,76,76,232, - 232,232,51,51,9,204,154,17,243,0,123,85,52,76,76,76, - 232,232,232,76,51,9,204,154,17,243,122,123,194,52,76,76, - 76,232,232,232,76,51,9,204,154,17,243,0,123,85,52,76, - 76,76,232,232,232,76,52,9,204,154,219,211,122,123,85,52, - 232,76,232,232,148,232,76,51,52,204,84,17,243,122,123,85, - 52,232,76,232,232,232,232,51,52,9,204,168,17,141,0,123, - 85,52,76,76,76,232,232,76,51,51,9,204,154,17,243,122, - 123,85,52,76,76,76,232,232,232,76,51,52,204,84,17,243, - 0,123,85,76,232,76,76,232,232,232,51,52,52,204,84,17, - 243,122,123,85,52,76,76,76,232,232,232,51,52,9,204,154, - 17,182,0,123,85,52,76,76,76,232,232,76,76,51,9,204, - 154,17,141,0,123,85,52,76,76,232,232,232,232,51,51,52, - 204,84,17,243,122,123,85,52,232,76,232,232,232,232,76,52, - 52,204,84,17,243,0,123,85,52,76,76,232,232,232,232,51, - 51,9,204,154,17,243,162,123,85,76,232,76,76,232,232,232, - 51,52,9,204,168,17,243,122,123,85,52,76,76,76,232,232, - 76,76,51,9,204,168,219,182,0,123,85,52,76,232,76,232, - 148,232,76,52,9,204,84,12,141,219,17,243,182,12,141,114, - 114,144,144,144,244,144,144,144,244,144,244,144,144,144,144,144, - 144,244,244,144,244,244,144,244,144,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,144,244,144,144,244,144, - 144,144,244,144,144,144,144,244,144,244,144,244,144,244,144,144, - 169,218,218,188,188,188,188,188,169,169,169,169,169,169,39,169, - 169,169,169,39,39,169,188,169,169,39,169,169,169,169,188,39, - 169,169,169,169,169,169,39,169,169,169,169,39,169,39,39,140, - 39,39,39,169,39,39,39,39,39,39,207,188,39,188,188,207, - 207,207,39,127,207,207,207,39,207,127,207,39,188,207,207,207, - 188,207,207,207,188,207,207,218,188,218,218,207,207,207,218,218, - 207,207,218,218,207,207,207,207,207,236,218,236,218,218,207,218, - 218,207,218,207,207,218,188,207,218,207,207,207,207,207,207,207, - 207,207,89,207,89,207,207,207,39,89,89,207,207,89,207,207, - 207,39,119,207,207,89,89,236,236,207,143,89,207,89,236,89, - 236,89,89,89,207,127,89,207,207,207,207,207,207,207,89,89, - 127,89,89,143,89,89,89,143,89,127,236,143,236,159,240,47, - 17,111,183,243,132,42,109,0,167,194,76,76,148,148,232,148, - 232,232,76,52,204,168,17,243,122,167,194,76,76,148,232,232, - 148,148,232,232,52,204,168,17,243,122,167,194,76,76,148,232, - 232,148,232,232,76,52,204,168,17,243,122,167,194,76,76,148, - 232,232,148,232,232,76,52,204,168,17,109,122,167,194,76,76, - 148,232,148,148,232,232,52,52,204,168,26,211,122,167,194,76, - 232,232,232,232,148,148,232,52,52,204,168,26,211,122,167,194, - 76,232,232,232,232,148,148,232,232,52,204,168,26,211,122,167, - 194,76,232,148,232,232,148,148,148,52,52,204,168,17,109,122, - 167,194,76,76,148,232,232,148,232,148,52,52,204,168,12,243, - 122,167,194,76,232,148,148,232,148,148,232,52,52,204,168,12, - 109,122,167,194,76,76,148,232,232,148,148,232,76,52,204,168, - 26,109,122,167,194,76,76,148,148,232,148,232,232,76,52,204, - 168,26,211,122,167,194,76,76,232,232,232,148,148,148,52,52, - 204,168,12,243,122,167,194,76,232,232,148,232,148,232,232,52, - 52,204,168,12,109,122,167,194,76,76,232,148,232,148,148,232, - 76,52,204,168,26,8,122,167,194,76,232,232,148,232,148,148, - 232,232,52,204,168,12,243,122,167,194,76,76,148,232,148,148, - 232,232,76,52,204,154,26,109,122,167,194,76,76,148,232,232, - 148,232,232,76,52,204,222,26,8,17,17,150,8,150,99,181, - 114,114,144,114,144,144,144,144,144,144,244,144,144,244,144,144, - 244,144,144,244,144,144,244,244,244,144,244,144,244,244,244,144, - 244,244,244,244,144,244,144,144,244,244,244,244,144,144,144,144, - 244,144,144,244,144,244,144,144,244,144,244,144,244,144,244,244, - 218,169,188,169,188,169,169,169,188,169,188,169,169,169,169,39, - 39,140,140,169,169,39,169,39,39,169,39,169,188,169,169,169, - 39,169,188,169,39,39,169,169,39,39,39,169,188,169,169,39, - 169,140,39,39,39,39,39,39,188,188,188,188,188,127,207,39, - 127,39,207,39,207,207,207,207,207,188,188,207,207,188,207,207, - 207,188,188,207,218,188,218,207,218,207,207,218,207,207,207,188, - 218,218,207,207,218,218,218,218,218,218,207,218,207,236,218,207, - 207,207,207,236,207,89,207,207,207,207,207,207,207,236,207,236, - 207,207,207,89,207,207,89,89,89,89,207,89,89,89,89,89, - 89,89,207,89,89,207,89,207,89,89,89,236,89,207,236,236, - 89,236,143,89,89,89,39,127,207,127,207,89,127,207,127,207, - 89,89,127,89,89,127,89,89,89,119,89,89,89,236,108,47, - 26,111,26,187,187,187,109,0,220,32,232,148,148,148,148,147, - 232,148,232,232,231,222,26,211,122,237,32,232,148,147,148,148, - 148,148,148,52,232,231,222,219,211,122,237,32,232,148,148,148, - 148,148,148,232,232,232,231,222,26,109,122,79,32,232,148,148, - 148,148,148,232,148,52,232,231,222,219,243,122,237,32,232,148, - 148,148,148,147,148,148,76,232,231,222,219,243,122,237,32,232, - 232,148,148,148,27,148,148,76,232,231,222,219,8,122,237,32, - 232,232,148,148,148,148,148,232,76,232,231,222,17,243,122,237, - 32,232,232,148,148,148,147,148,148,232,232,231,222,26,8,122, - 237,32,232,148,148,148,148,147,148,232,232,232,231,222,219,211, - 122,237,32,232,232,148,148,148,148,148,148,76,232,231,222,219, - 243,122,237,32,232,148,148,148,148,148,148,148,52,232,231,222, - 219,243,122,237,32,232,148,148,148,148,147,232,148,232,232,231, - 168,17,243,122,237,32,232,148,148,148,148,148,148,148,76,232, - 231,222,26,211,122,237,32,232,232,148,148,148,147,148,148,76, - 232,231,222,219,243,122,237,32,232,148,148,148,148,148,148,148, - 232,232,231,222,219,211,122,237,32,232,232,148,148,148,148,148, - 232,76,232,231,222,26,211,122,237,32,232,148,148,148,148,147, - 148,232,232,232,231,222,219,243,122,237,32,232,148,148,148,148, - 147,232,232,232,148,231,168,26,211,17,12,12,243,17,141,89, - 114,144,114,144,144,144,144,144,144,144,144,144,144,244,144,144, - 144,144,144,244,144,144,244,144,144,244,244,144,144,144,244,244, - 244,144,244,244,144,244,244,144,244,144,144,144,244,244,144,144, - 144,144,144,144,144,144,244,144,144,144,244,144,144,144,144,144, - 218,88,218,218,218,218,169,88,188,169,188,39,39,169,169,169, - 169,188,169,140,169,39,169,169,188,169,39,169,39,169,169,169, - 39,169,39,169,169,169,39,169,39,188,188,169,39,188,169,39, - 188,169,39,39,188,39,188,39,188,188,188,207,188,188,127,188, - 207,188,207,127,207,207,207,207,207,207,188,207,207,127,207,207, - 207,207,218,207,218,188,218,207,218,218,207,218,218,218,218,207, - 207,218,218,207,207,218,236,218,218,218,218,218,218,236,218,236, - 218,236,207,218,207,236,207,207,188,207,207,236,207,207,207,207, - 89,207,207,89,89,207,207,89,89,89,89,89,89,89,89,89, - 89,89,207,236,89,143,89,236,236,89,236,236,236,236,236,236, - 236,236,143,207,89,89,89,207,89,207,39,89,89,89,127,89, - 127,89,89,127,89,127,127,89,127,236,236,236,236,159,108,47, - 26,109,183,109,187,219,109,0,138,117,193,193,157,157,189,189, - 157,193,193,194,70,31,26,8,122,138,117,193,157,157,157,189, - 189,157,193,193,85,70,222,26,211,122,138,117,193,193,157,157, - 189,189,157,193,193,85,70,31,26,243,122,138,117,193,193,157, - 157,189,189,157,193,193,85,70,222,187,243,122,138,117,193,193, - 157,157,189,189,157,193,193,85,70,31,26,8,42,138,117,193, - 193,157,157,189,189,157,193,193,194,70,31,26,8,42,138,117, - 193,193,157,157,189,189,157,193,193,85,70,222,26,211,122,138, - 117,193,193,157,157,189,189,157,157,193,85,70,31,26,8,42, - 138,117,193,193,157,157,189,189,157,157,193,194,70,222,26,109, - 122,138,117,193,157,157,157,189,189,157,193,193,194,70,31,26, - 243,122,138,117,193,193,157,157,189,189,157,193,193,85,70,31, - 17,243,42,138,117,193,193,157,157,189,189,157,193,193,32,70, - 31,26,243,42,138,117,193,193,157,157,189,189,157,193,193,194, - 70,129,26,211,122,138,117,193,157,157,157,189,189,157,193,193, - 194,70,129,26,211,122,138,117,193,193,157,157,189,189,157,193, - 193,85,70,31,26,243,122,138,117,193,193,157,157,189,189,157, - 193,193,85,70,31,26,8,42,138,117,193,193,157,157,189,189, - 157,157,193,85,70,31,26,8,122,138,117,193,193,157,157,189, - 189,157,157,193,194,70,228,26,109,17,12,12,243,17,141,114, - 114,144,144,144,144,144,114,144,144,144,244,144,144,144,244,144, - 144,244,144,144,244,144,144,144,244,144,144,244,144,244,144,144, - 244,244,144,144,244,144,144,244,144,244,144,244,144,144,244,144, - 244,144,244,144,244,144,144,144,144,144,144,244,244,144,244,244, - 218,218,218,218,188,88,218,218,88,218,169,169,169,169,169,169, - 188,169,169,188,39,169,39,188,169,39,169,169,169,188,188,169, - 169,39,188,188,188,188,169,188,169,169,39,188,188,188,188,188, - 39,188,39,188,39,188,39,188,188,188,207,188,207,207,207,207, - 127,207,39,207,127,127,207,207,188,188,207,188,207,207,207,207, - 218,218,188,207,207,207,188,207,207,207,218,218,218,207,207,218, - 218,236,207,218,218,207,218,207,218,236,236,236,207,218,207,207, - 236,207,218,236,207,207,207,207,207,207,236,207,207,236,207,236, - 207,89,236,236,89,89,89,236,236,236,236,236,236,89,143,236, - 207,143,89,207,143,89,236,207,236,236,236,89,236,207,143,89, - 143,89,236,89,143,89,143,89,89,89,89,89,89,89,89,127, - 89,127,143,89,89,89,236,236,119,236,236,236,236,58,240,59, - 17,187,42,109,126,26,109,122,92,87,21,21,156,43,13,13, - 30,72,21,18,18,47,17,243,0,226,87,21,87,242,30,13, - 13,30,242,21,18,18,46,12,12,0,226,87,18,72,242,30, - 13,13,30,242,21,18,18,47,12,187,0,226,87,21,21,156, - 30,86,13,30,242,21,18,18,35,26,12,122,226,87,18,72, - 242,30,13,13,30,242,21,18,18,35,17,243,0,226,87,18, - 72,242,30,13,13,30,242,21,18,18,47,12,243,0,226,87, - 18,72,242,30,13,13,30,242,21,33,18,46,12,12,0,226, - 21,21,21,156,43,13,13,30,72,21,18,18,47,17,243,0, - 226,87,18,72,242,30,13,13,30,72,21,18,18,46,12,12, - 122,92,87,21,72,242,30,13,13,30,242,21,18,18,35,12, - 187,0,226,87,18,72,242,30,13,13,30,242,21,18,18,59, - 26,12,0,226,87,18,72,242,30,13,13,30,242,18,18,18, - 59,12,12,0,226,87,18,72,242,30,13,13,30,242,21,18, - 18,35,26,12,0,226,87,21,72,242,30,86,13,30,242,21, - 18,18,46,91,12,0,226,87,18,72,242,30,13,13,30,242, - 21,18,18,35,12,187,0,226,87,21,21,156,30,13,13,30, - 242,21,33,18,59,17,243,0,226,87,18,72,242,30,13,13, - 30,72,21,18,18,59,17,109,0,226,87,18,72,242,30,86, - 13,30,72,21,21,18,35,12,243,219,12,243,8,150,235,89, - 114,114,114,114,114,144,144,144,114,144,114,144,144,144,144,144, - 144,144,144,144,244,144,144,144,144,144,144,144,144,144,144,144, - 144,244,144,144,144,144,144,144,144,244,144,244,144,144,244,144, - 244,144,244,144,144,244,244,144,244,144,144,144,244,144,144,144, - 218,218,218,218,218,218,88,218,218,218,218,88,218,188,188,169, - 188,188,169,88,188,169,169,188,169,188,188,188,188,188,188,188, - 188,188,188,188,188,188,188,218,188,188,188,188,188,188,188,188, - 188,188,188,188,188,188,188,207,188,188,188,188,188,127,188,188, - 188,207,188,207,207,207,207,207,207,127,207,207,207,218,207,89, - 207,207,218,218,218,218,218,218,218,207,207,207,218,218,218,207, - 218,218,207,236,218,207,218,207,207,207,207,236,207,236,218,207, - 218,236,207,236,207,236,89,89,236,207,89,236,236,236,89,236, - 236,207,207,236,236,236,207,236,119,236,236,236,236,89,207,89, - 236,89,89,89,236,207,89,207,143,207,236,236,89,236,207,236, - 236,89,236,236,127,89,127,207,127,89,127,89,89,89,89,89, - 89,236,89,236,143,236,236,236,236,119,143,143,236,159,108,47, - 26,111,42,12,187,26,109,221,40,23,250,86,179,146,136,51, - 146,86,86,250,28,91,26,8,0,40,23,250,86,149,149,51, - 51,149,179,250,86,28,163,12,8,0,203,19,250,86,179,149, - 51,51,149,86,86,250,28,91,17,8,0,203,23,250,86,179, - 146,51,51,149,86,86,250,28,163,12,8,0,40,19,250,86, - 179,149,51,51,149,86,86,250,28,187,26,8,0,40,19,250, - 86,179,149,51,136,146,179,86,250,28,187,26,8,0,40,19, - 250,86,179,149,51,51,149,86,86,250,28,163,187,8,221,40, - 23,250,86,179,146,51,51,146,179,86,250,28,187,26,8,0, - 40,19,250,86,179,149,51,51,146,179,86,250,28,163,26,8, - 221,40,23,250,86,149,149,51,51,149,179,250,250,28,187,12, - 8,0,40,19,250,86,179,149,51,51,149,86,86,250,28,111, - 187,8,0,40,19,250,86,179,149,51,136,149,179,250,86,28, - 187,187,8,0,203,19,250,86,179,149,51,51,149,179,86,250, - 28,163,12,8,0,40,23,250,86,179,149,51,118,149,179,250, - 86,138,111,12,8,0,203,19,250,86,149,149,51,51,149,86, - 86,250,28,187,17,8,0,203,23,250,86,179,149,51,51,149, - 86,86,250,28,187,26,8,0,40,19,250,86,179,149,51,51, - 146,179,86,250,28,187,26,8,0,203,19,250,86,179,149,51, - 51,146,179,250,250,28,50,12,211,187,187,12,12,150,99,181, - 114,114,140,144,114,140,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,244,144,144,244,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,244,144,144,144, - 244,144,144,244,144,144,244,144,144,244,144,144,244,144,144,244, - 218,218,218,218,218,218,218,218,88,88,218,218,88,88,218,218, - 88,218,218,218,169,218,218,188,218,169,169,169,169,169,188,188, - 169,169,188,188,188,218,218,169,218,88,188,218,188,218,188,218, - 188,188,188,188,207,188,188,188,207,188,207,207,207,207,207,207, - 207,188,207,188,207,207,207,207,207,207,207,218,207,207,218,188, - 207,218,207,207,218,207,218,188,207,218,218,218,236,207,207,218, - 207,236,218,218,236,236,236,236,207,218,218,218,236,207,236,218, - 236,207,236,236,236,207,236,236,207,89,236,236,89,89,236,89, - 207,89,89,89,89,89,89,89,89,89,89,89,89,236,89,236, - 236,236,236,236,89,89,236,89,89,89,143,207,236,89,236,89, - 207,236,127,89,236,236,89,89,119,127,89,89,127,143,89,143, - 236,236,143,236,236,236,236,236,119,143,119,119,236,58,108,64, - 26,111,219,109,187,187,109,0,40,32,157,189,189,189,147,189, - 189,189,157,85,128,91,219,211,0,40,32,157,189,189,189,189, - 189,189,189,157,85,204,61,42,211,0,95,32,157,189,189,189, - 189,189,189,189,157,85,128,91,219,211,0,95,32,157,189,189, - 147,189,189,189,189,157,85,204,61,219,211,0,95,32,157,189, - 189,189,189,189,189,189,157,85,204,61,219,211,0,95,32,157, - 189,189,189,189,189,189,189,157,85,128,61,219,211,0,95,32, - 157,189,189,189,189,189,189,189,157,85,204,61,219,243,0,47, - 32,157,189,189,189,189,189,189,189,157,85,128,61,219,211,0, - 95,32,157,189,189,189,189,189,189,189,157,85,204,91,219,243, - 0,40,32,157,189,189,189,189,189,189,189,157,85,204,61,219, - 211,0,95,32,157,189,189,189,189,189,189,189,157,85,204,61, - 219,211,0,95,32,157,189,189,189,189,189,189,189,189,85,204, - 61,219,211,0,95,32,157,189,189,189,189,189,189,189,157,85, - 128,61,219,211,0,40,32,157,189,189,189,189,189,189,189,157, - 85,204,91,219,243,0,95,32,157,189,189,189,189,189,189,189, - 157,85,204,61,219,211,0,95,32,157,189,189,189,189,189,189, - 189,157,85,204,61,219,211,0,95,32,157,189,189,189,189,189, - 189,189,157,85,204,61,219,211,0,95,32,157,189,189,147,189, - 189,189,189,157,85,128,91,42,243,132,243,243,150,219,99,119, - 114,114,114,114,144,114,114,144,114,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,244,144,144,144,144,144,144, - 144,144,144,144,244,144,144,144,144,244,144,144,144,244,144,144, - 144,244,144,144,244,144,144,244,144,144,244,144,244,144,144,144, - 218,218,218,218,218,88,218,218,218,218,88,218,218,88,88,218, - 88,169,88,218,169,188,218,169,218,218,218,218,188,169,218,169, - 218,88,188,188,188,169,188,188,188,218,188,188,188,218,169,218, - 88,188,188,188,207,207,188,127,188,188,127,188,188,207,188,188, - 207,188,207,188,188,207,207,207,218,207,207,218,207,207,218,207, - 207,207,218,236,218,207,218,218,218,218,218,218,236,153,236,218, - 207,236,207,207,218,207,207,218,207,89,89,207,236,207,236,207, - 236,207,207,236,236,89,89,119,236,236,89,236,236,236,236,236, - 236,89,207,207,236,236,236,236,119,236,236,236,236,236,236,89, - 236,236,236,236,236,89,236,236,236,236,89,236,143,89,143,207, - 207,89,89,89,236,236,236,127,119,89,143,89,236,143,89,143, - 89,236,143,119,143,236,143,236,119,159,236,159,159,119,108,142, - 26,150,42,109,183,183,111,0,40,53,52,76,232,148,148,148, - 148,232,52,27,230,91,0,243,0,40,170,232,76,232,148,148, - 148,148,232,52,27,230,91,122,243,0,40,53,52,232,232,148, - 148,148,148,232,52,27,230,91,0,243,0,40,53,52,232,148, - 148,148,147,148,232,52,198,230,91,122,243,0,40,53,52,76, - 148,76,148,147,148,76,76,27,230,91,122,243,0,40,53,52, - 76,148,232,232,148,148,232,52,27,230,91,122,243,0,40,53, - 52,232,232,148,148,148,148,232,52,198,230,26,42,243,0,40, - 53,232,76,232,148,148,148,148,232,52,27,230,91,122,243,0, - 40,53,52,232,232,148,148,148,148,232,52,27,230,91,122,8, - 0,40,53,232,52,232,148,76,148,148,232,52,27,230,26,122, - 243,0,40,45,52,232,232,148,76,147,148,232,52,27,230,26, - 122,243,0,40,53,52,76,232,232,232,148,147,232,52,27,230, - 26,162,243,0,40,53,52,232,232,148,148,148,148,232,52,27, - 230,91,122,243,0,40,53,232,52,232,148,76,147,148,232,76, - 27,230,26,42,243,0,40,53,52,76,232,148,76,148,148,232, - 52,27,230,26,122,243,0,40,53,52,232,148,76,148,148,148, - 232,52,185,230,91,0,243,0,40,53,52,232,232,148,148,148, - 148,232,52,198,230,91,122,243,0,40,53,52,232,148,148,148, - 148,148,232,52,27,230,187,78,243,219,12,12,243,132,99,181, - 114,114,114,114,144,140,114,144,114,114,114,144,144,144,144,114, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,244,144,144,244,144, - 144,144,244,144,144,244,144,244,244,144,144,144,244,144,144,244, - 218,218,218,218,218,218,218,218,88,218,218,218,218,218,218,88, - 218,218,218,169,218,88,188,218,188,188,169,169,169,88,169,188, - 169,188,188,188,188,188,188,169,188,188,188,188,188,188,188,188, - 207,218,207,188,127,188,188,188,207,207,207,218,207,218,218,218, - 188,207,207,207,218,188,207,218,207,207,218,207,218,218,207,218, - 218,218,207,207,207,218,236,236,236,236,236,218,218,207,218,207, - 218,207,236,218,236,236,236,89,89,207,207,236,236,236,236,236, - 207,236,236,236,58,236,236,89,236,236,236,236,236,236,236,89, - 89,236,236,236,89,89,89,236,236,236,236,236,236,236,236,236, - 236,236,236,236,89,143,236,89,143,236,236,89,89,89,89,89, - 127,89,127,236,236,236,236,236,89,236,236,236,236,236,236,236, - 143,119,119,143,119,143,159,119,159,236,159,236,236,240,240,44, - 26,187,183,243,187,42,109,0,40,204,198,232,232,147,148,147, - 147,76,27,185,230,91,26,211,0,40,170,185,76,232,232,148, - 148,147,52,232,185,230,91,42,211,0,212,231,232,76,232,232, - 148,148,147,76,27,185,230,91,26,211,0,40,204,27,76,232, - 232,148,148,148,76,27,27,230,91,42,211,0,40,204,27,76, - 232,148,148,148,148,232,27,185,230,91,42,211,0,212,170,52, - 232,232,232,148,147,147,76,27,185,230,91,42,211,0,212,170, - 52,232,232,232,148,148,147,52,232,27,230,91,42,211,0,212, - 231,52,76,232,232,148,148,147,76,27,185,230,91,42,211,0, - 40,204,27,76,232,232,148,147,147,76,232,185,230,91,26,211, - 0,40,204,27,76,232,232,147,147,147,76,27,185,230,91,26, - 211,0,212,170,232,76,232,148,148,148,147,76,27,198,230,91, - 26,211,0,40,204,27,232,232,148,148,147,148,232,27,198,230, - 91,26,211,0,212,231,232,76,232,232,148,148,147,76,27,185, - 230,91,26,211,0,212,231,52,76,232,148,148,148,147,76,232, - 185,230,91,42,211,0,212,170,52,232,232,148,147,147,147,76, - 232,198,230,91,26,211,0,40,204,27,76,232,148,148,147,147, - 76,232,185,230,91,26,211,0,40,204,27,76,232,232,148,148, - 147,76,27,27,230,91,42,211,0,40,204,27,52,148,232,148, - 148,147,76,27,185,230,91,42,211,187,109,150,12,183,235,119, - 114,114,114,140,114,114,114,114,144,144,144,114,144,114,144,144, - 144,144,144,144,144,144,144,144,144,144,244,144,144,144,144,144, - 144,144,144,144,114,244,144,144,144,244,144,144,144,144,144,244, - 144,244,144,244,244,244,144,144,244,244,144,144,244,144,144,144, - 218,218,218,218,218,218,218,218,218,88,218,169,88,188,218,88, - 169,88,218,88,218,188,188,218,88,218,218,88,218,188,88,188, - 218,169,188,188,188,188,207,188,188,188,188,188,188,188,188,188, - 188,188,218,207,207,207,188,188,188,188,188,188,188,207,207,218, - 218,207,207,207,207,218,207,188,218,207,218,207,218,218,188,218, - 207,218,218,218,207,218,218,207,218,207,236,236,218,236,236,207, - 218,218,236,207,236,207,236,207,236,236,89,89,236,89,236,89, - 89,89,89,89,236,236,236,119,119,119,119,119,119,236,119,236, - 236,236,236,236,236,236,89,89,89,236,236,236,236,236,236,236, - 236,207,207,236,89,207,236,236,89,207,236,236,236,143,236,236, - 236,89,89,236,236,236,236,143,236,236,143,119,236,236,236,159, - 236,236,159,236,159,236,143,143,159,236,159,143,159,159,108,47, - 26,111,183,187,187,183,111,0,40,98,170,45,45,194,194,194, - 194,45,194,165,230,91,0,12,0,212,98,165,45,53,194,194, - 194,194,45,45,165,230,91,0,12,0,212,98,165,45,53,194, - 194,194,194,45,194,165,230,91,0,12,0,40,98,170,45,53, - 194,194,194,194,45,53,165,230,91,0,12,0,40,98,165,45, - 53,53,194,194,194,45,53,165,230,91,0,12,0,212,98,165, - 45,53,194,194,194,194,45,45,45,230,91,0,12,0,212,98, - 165,45,53,194,194,194,194,194,45,165,230,91,0,12,0,212, - 98,45,45,53,194,194,194,194,45,45,45,230,91,0,12,0, - 40,98,165,45,53,194,194,194,194,98,53,165,230,91,0,12, - 0,40,98,170,45,53,53,194,194,194,45,53,165,230,91,0, - 12,0,212,98,165,45,53,194,194,194,194,45,53,165,230,91, - 0,12,0,40,98,170,45,53,194,194,194,194,45,53,165,230, - 91,0,12,0,212,98,165,45,53,194,194,194,194,45,53,165, - 230,91,0,12,0,212,98,165,45,53,194,194,194,194,194,45, - 165,230,61,0,12,0,212,98,165,45,53,53,194,194,194,194, - 45,165,230,91,0,12,0,40,98,231,45,53,194,194,194,194, - 194,45,165,230,91,0,12,0,40,98,165,45,53,194,194,194, - 194,45,53,165,230,91,0,12,0,40,98,170,45,45,194,194, - 194,194,45,45,45,230,91,0,187,26,12,243,12,132,141,181, - 114,114,114,114,114,144,144,114,114,114,144,144,114,144,114,144, - 144,144,144,144,144,144,144,144,144,144,144,144,144,244,144,144, - 144,244,144,144,144,144,144,144,244,144,144,244,144,244,144,144, - 244,244,144,244,144,244,244,244,244,244,244,244,244,144,244,244, - 218,218,153,218,218,88,218,88,218,218,188,218,218,88,218,218, - 218,218,169,218,169,218,218,169,218,169,188,218,169,218,188,88, - 169,218,188,188,188,188,169,218,188,188,188,188,188,218,188,188, - 188,207,188,188,207,207,127,188,188,207,207,218,207,207,218,207, - 207,218,218,218,218,218,188,218,207,207,207,218,207,218,218,207, - 218,236,218,236,236,218,207,218,207,218,218,207,236,207,207,236, - 207,236,89,236,236,236,236,181,89,89,236,236,89,236,236,181, - 236,236,236,236,119,236,119,236,236,236,236,236,236,119,236,119, - 89,119,119,236,236,89,207,207,236,89,236,236,119,236,236,236, - 236,236,236,236,236,236,236,89,89,236,236,236,236,119,127,89, - 89,89,143,236,236,236,89,236,236,143,119,143,236,236,159,236, - 143,159,236,159,236,119,159,119,159,143,159,119,236,240,108,64, - 26,132,26,187,183,187,109,0,0,251,123,123,103,167,79,79, - 79,167,123,123,73,12,42,211,0,162,251,251,123,103,167,79, - 79,79,79,123,123,168,26,26,211,0,0,251,251,123,167,103, - 79,79,79,167,123,123,168,26,42,211,0,162,251,123,123,167, - 103,79,220,79,167,123,123,168,26,26,211,0,162,251,251,123, - 103,79,79,220,79,167,123,123,168,26,42,211,0,94,251,251, - 123,55,167,79,79,79,167,167,251,168,26,42,211,0,221,251, - 251,123,167,103,79,79,79,167,123,123,168,91,42,211,0,221, - 31,251,123,167,103,220,79,79,167,167,251,168,26,42,211,0, - 162,251,251,123,103,167,79,79,79,167,123,123,168,26,42,211, - 0,221,137,123,228,167,55,79,79,79,167,123,123,168,91,26, - 211,0,162,251,251,123,167,55,79,79,79,167,123,123,168,91, - 26,211,0,162,251,123,123,167,167,79,220,79,167,123,123,168, - 26,26,211,0,0,251,251,123,103,167,79,79,79,79,123,123, - 168,26,26,211,0,221,251,123,123,103,167,79,79,79,167,123, - 123,168,26,42,211,0,221,251,251,123,123,79,79,79,79,167, - 123,123,168,91,26,211,0,0,251,123,123,103,167,79,79,79, - 167,123,123,168,26,42,211,0,162,251,251,123,103,167,79,79, - 79,167,123,123,168,26,42,211,0,162,251,123,123,167,103,220, - 79,79,167,123,123,168,26,26,211,187,243,187,243,132,99,181, - 89,114,114,114,114,114,114,144,114,144,114,114,144,144,114,144, - 114,144,144,144,114,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,244,144,144,144,144,144,244,144,144,244,144, - 144,244,244,244,244,244,244,244,244,244,244,244,244,244,144,144, - 218,218,153,218,153,218,218,218,88,218,218,169,218,218,88,218, - 88,218,88,218,88,218,88,88,218,88,188,188,218,88,218,218, - 169,218,88,218,218,218,169,218,88,188,188,188,188,188,188,218, - 188,207,218,188,218,207,207,218,207,218,207,218,207,207,207,218, - 207,207,236,207,207,218,207,218,218,218,218,218,236,236,218,236, - 207,207,218,218,236,236,236,207,207,207,207,218,236,236,207,236, - 207,207,207,207,236,236,236,236,236,89,236,236,236,89,236,236, - 236,89,89,236,181,236,119,119,119,119,119,119,236,236,236,119, - 236,236,89,236,236,236,236,236,236,89,236,236,236,236,236,89, - 236,236,236,89,236,89,236,236,89,143,89,236,236,119,236,236, - 236,89,127,89,127,236,89,143,89,236,119,236,236,236,159,159, - 119,119,236,143,236,236,143,236,159,119,159,159,159,159,108,142, - 26,111,183,109,187,187,109,0,0,0,0,0,0,0,0,0, - 0,0,0,0,26,132,42,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,132,42,150,0,0,0,0,0,0,0, - 162,0,0,0,0,0,219,132,42,12,0,0,0,0,0,0, - 162,0,0,0,0,0,0,219,132,26,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,219,150,42,243,0,0,0,0, - 0,0,0,0,0,0,0,0,0,183,17,26,243,0,0,0, - 0,0,0,162,162,0,0,0,0,0,219,132,42,150,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,132,42,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,219,150,42,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,132,42, - 150,0,0,0,0,0,0,0,0,0,0,0,0,0,219,132, - 42,12,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 132,26,150,0,0,0,0,0,0,0,0,0,0,0,0,0, - 219,132,26,150,0,0,0,0,0,0,0,0,0,0,0,0, - 0,219,150,42,243,0,0,0,0,0,122,0,0,0,0,0, - 0,0,219,132,42,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,132,26,12,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,150,42,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,150,26,243,183,150,187,243,132,235,181, - 114,114,114,114,114,114,114,114,114,114,144,144,114,144,144,144, - 114,144,114,144,144,144,244,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,244,144,244,144,244,144,244,144, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,144,244, - 218,218,218,218,218,218,218,218,218,88,218,218,88,218,218,169, - 218,169,218,218,218,188,218,218,218,218,88,218,188,218,88,169, - 218,188,218,169,169,169,218,169,188,218,188,188,188,188,188,188, - 218,188,188,207,207,218,218,207,218,207,207,207,218,207,218,207, - 218,218,207,218,218,207,218,218,207,207,207,207,207,207,236,218, - 218,236,207,207,236,236,207,236,236,207,207,236,207,236,236,236, - 236,236,236,236,236,236,236,236,119,58,181,119,119,119,119,119, - 119,119,236,89,236,89,89,89,236,236,89,236,119,119,119,236, - 236,236,236,89,236,236,236,236,236,236,236,89,89,236,236,236, - 236,236,236,236,236,236,236,89,236,89,236,143,89,143,89,89, - 236,89,119,127,89,127,127,89,236,236,236,153,236,236,236,236, - 236,236,159,159,153,159,119,159,119,143,236,159,236,159,108,64, - 26,111,42,109,219,187,187,42,26,26,26,26,42,42,26,219, - 219,219,219,219,17,219,26,187,42,26,26,26,26,42,42,26, - 219,219,219,219,26,26,219,26,187,42,26,26,26,26,42,42, - 26,219,219,219,219,26,219,17,26,187,42,26,26,26,26,42, - 42,26,17,219,219,219,26,26,219,219,187,42,26,26,26,26, - 42,42,26,17,219,219,219,26,26,219,42,187,42,26,26,26, - 26,42,42,26,219,219,219,219,26,26,132,42,187,42,26,26, - 26,26,42,122,219,219,219,219,219,42,219,219,42,17,42,17, - 26,26,26,42,42,26,219,219,219,219,26,26,219,219,187,42, - 26,26,26,26,42,42,219,219,219,219,219,26,26,219,219,187, - 42,17,26,26,26,42,42,26,17,219,219,219,42,26,219,219, - 187,42,26,26,26,26,42,42,26,17,219,219,219,42,26,219, - 219,187,42,26,26,26,26,42,42,26,219,219,219,219,26,219, - 219,219,187,42,26,26,26,26,42,42,26,219,219,219,219,26, - 26,219,26,187,42,26,26,26,26,42,42,26,219,219,219,219, - 26,219,219,26,187,42,26,26,26,26,42,42,26,219,219,219, - 219,42,26,219,26,187,26,26,26,26,26,42,42,219,219,219, - 219,219,26,219,219,219,187,42,26,26,26,26,42,42,26,219, - 219,219,219,26,26,219,219,187,42,26,26,26,26,42,42,26, - 219,219,219,219,26,26,219,219,187,42,12,150,150,183,141,181, - 89,114,114,114,114,114,114,114,114,114,114,144,114,114,144,144, - 144,144,144,144,144,114,144,244,144,144,144,144,244,144,144,144, - 144,144,144,144,244,144,144,144,244,144,144,244,144,244,244,144, - 244,244,244,244,244,244,244,36,244,36,244,244,244,244,244,144, - 218,218,218,218,218,218,218,88,218,188,218,218,188,88,218,218, - 218,88,218,88,218,218,218,169,88,218,188,88,218,218,218,188, - 218,169,218,218,218,169,218,218,169,218,188,188,188,218,188,188, - 207,218,218,207,207,207,218,188,218,218,218,207,218,188,218,207, - 218,218,218,218,218,218,207,218,218,218,218,218,218,207,207,207, - 188,207,236,207,218,236,207,207,236,236,207,236,207,236,207,236, - 236,89,89,89,236,236,119,236,236,236,58,119,236,236,236,89, - 236,119,119,236,119,236,119,119,119,119,236,236,236,236,236,236, - 236,236,236,236,236,236,89,236,236,89,236,236,236,236,236,119, - 236,236,236,236,236,236,236,236,236,89,236,207,236,236,236,236, - 143,127,89,236,89,89,236,89,143,89,236,143,159,236,236,159, - 159,159,119,159,236,143,236,143,159,119,236,159,159,159,240,47, - 26,111,42,109,183,187,187,219,243,12,132,17,219,17,12,243, - 150,150,12,17,187,17,219,187,17,243,12,132,17,219,12,12, - 243,150,150,150,150,12,17,26,12,219,243,12,132,17,219,17, - 12,243,150,150,150,12,17,17,219,187,17,150,12,132,17,219, - 17,12,243,150,150,150,150,12,219,219,187,17,243,12,132,17, - 219,12,12,243,150,150,150,150,12,17,26,12,219,243,12,17, - 17,219,17,12,243,150,150,150,150,12,219,26,187,219,243,12, - 132,17,219,12,12,243,150,150,150,17,12,17,26,187,26,150, - 12,132,17,219,17,12,243,150,150,150,150,187,17,219,12,219, - 243,12,132,17,219,17,12,243,150,150,150,150,12,219,219,12, - 26,150,12,132,17,219,17,12,243,150,150,150,150,12,219,26, - 12,219,243,12,17,17,219,17,12,243,150,150,150,150,12,219, - 219,12,219,243,12,132,17,219,17,12,243,150,150,150,12,12, - 219,26,187,17,243,12,132,17,219,12,12,243,150,150,150,150, - 12,219,26,12,219,243,12,132,17,219,12,12,243,150,150,150, - 12,187,17,26,187,219,243,12,132,17,219,12,12,243,150,150, - 150,150,12,219,219,12,219,243,12,132,17,219,17,12,243,150, - 150,150,12,12,219,219,12,219,243,12,132,17,219,17,12,243, - 150,150,150,150,12,17,219,187,17,150,12,132,17,219,17,12, - 243,150,150,150,150,12,219,26,187,219,12,187,150,132,99,181, - 114,114,114,114,114,114,114,144,114,114,114,144,144,114,114,144, - 144,114,144,144,144,144,244,144,144,144,144,144,144,144,244,144, - 244,144,144,144,144,144,244,144,244,244,244,244,244,144,244,244, - 244,244,244,244,36,36,36,244,36,244,244,244,244,244,244,144, - 188,188,218,188,218,218,218,218,218,218,188,218,88,218,218,88, - 88,218,169,218,88,169,218,218,218,88,218,218,218,169,218,88, - 88,218,188,188,88,218,218,188,218,188,218,218,218,188,207,188, - 188,207,188,218,218,218,188,218,218,218,188,218,218,218,218,218, - 207,218,207,236,207,236,218,218,236,207,236,236,236,218,207,207, - 207,207,207,207,236,236,236,236,207,207,89,236,236,236,236,89, - 89,236,89,236,236,181,236,119,119,119,236,236,119,119,119,119, - 119,236,236,119,236,119,236,89,236,236,119,119,119,119,236,119, - 119,119,236,89,89,236,236,89,119,119,236,119,119,236,236,89, - 236,236,236,236,207,143,236,207,89,236,89,236,89,236,236,236, - 119,236,236,89,236,89,89,89,89,143,119,119,236,236,159,236, - 236,236,236,236,236,119,159,119,119,159,159,236,159,58,108,44, - 26,150,183,109,26,17,166,26,150,17,17,17,219,12,26,243, - 12,150,150,17,17,17,42,243,26,150,12,17,17,219,12,26, - 243,12,150,12,219,17,219,42,109,26,150,12,17,219,17,12, - 26,243,12,12,12,219,12,219,42,243,26,150,12,17,17,219, - 12,26,243,12,150,12,219,17,17,26,243,26,150,12,17,17, - 219,17,26,243,12,12,12,219,17,219,26,187,26,150,12,132, - 17,219,12,26,243,12,150,12,219,17,17,26,12,26,150,12, - 17,17,219,12,26,243,12,150,12,17,17,219,26,12,219,150, - 17,17,17,219,12,26,243,12,150,12,17,17,17,42,109,26, - 150,12,17,17,219,12,26,243,12,12,12,219,17,17,26,12, - 219,150,17,17,219,17,12,26,243,12,12,12,17,17,17,42, - 109,26,150,12,132,187,17,12,26,150,12,150,12,219,17,17, - 26,12,26,150,17,17,219,17,12,26,243,12,150,12,17,17, - 17,42,243,26,150,12,17,17,219,12,26,243,12,150,12,219, - 17,17,26,12,26,150,17,17,219,17,17,26,243,12,150,12, - 17,17,219,26,12,26,150,12,17,17,219,12,26,150,12,150, - 12,17,17,17,26,12,26,150,17,17,17,219,12,26,243,12, - 150,12,17,17,17,42,109,26,150,12,17,17,219,12,26,243, - 12,150,12,219,17,219,26,12,26,150,12,17,17,219,12,17, - 243,150,12,12,219,17,17,219,187,183,12,150,150,132,141,119, - 114,114,114,114,114,114,144,114,114,144,144,114,144,144,144,114, - 144,144,144,144,144,144,144,144,244,144,144,144,244,144,144,144, - 144,244,144,144,244,144,144,144,144,244,244,244,244,244,244,244, - 244,244,244,244,244,244,36,244,36,244,36,244,244,244,144,244, - 218,218,218,188,218,169,218,88,218,88,188,218,169,218,218,218, - 218,218,88,218,218,218,88,218,218,88,188,188,218,188,218,218, - 188,218,218,218,188,169,218,188,218,207,207,207,218,218,218,218, - 188,218,207,207,188,218,218,207,218,218,218,218,218,188,218,218, - 218,218,218,236,218,236,236,207,236,218,207,207,181,236,236,236, - 207,207,236,89,89,89,236,181,89,89,89,181,236,236,236,236, - 181,236,119,89,236,236,89,119,119,119,119,119,119,119,236,236, - 119,119,236,236,236,89,236,236,236,89,236,236,236,119,89,236, - 236,236,236,236,89,236,236,236,89,119,89,89,119,236,236,236, - 119,236,236,236,236,207,89,236,236,236,236,236,89,236,236,236, - 236,236,236,89,236,127,89,89,89,127,89,89,236,236,236,119, - 159,236,159,159,143,236,159,236,143,119,119,236,159,58,240,47, - 42,187,219,224,187,187,111,26,150,150,132,17,150,150,17,150, - 17,17,12,17,17,17,26,109,26,132,150,132,132,132,150,26, - 150,17,150,12,12,12,17,26,243,26,150,132,132,132,132,150, - 219,150,150,150,17,12,12,17,26,109,26,150,17,132,17,150, - 150,17,150,17,150,12,132,17,219,26,109,26,132,150,219,17, - 150,150,219,150,150,150,12,17,12,17,17,109,26,132,17,132, - 17,150,150,17,150,17,150,12,17,187,17,17,109,26,150,132, - 132,17,12,150,219,150,17,150,12,17,12,17,17,109,26,150, - 17,132,17,150,150,219,150,17,150,17,150,17,17,26,109,26, - 150,132,132,17,12,150,17,150,150,132,12,132,17,219,17,109, - 26,150,150,132,17,132,150,219,150,150,150,17,132,17,17,26, - 243,219,132,17,219,132,132,150,17,150,12,150,17,150,17,219, - 17,109,26,150,17,150,17,150,150,219,150,17,150,17,132,17, - 17,26,109,26,132,150,132,132,132,150,26,150,17,150,12,12, - 17,17,17,109,26,150,17,150,132,132,150,219,150,17,150,12, - 17,12,17,17,109,26,150,17,17,17,150,150,17,150,17,150, - 17,17,17,219,17,109,26,150,150,132,17,12,150,219,150,17, - 150,17,150,17,17,26,109,26,150,132,132,132,150,150,219,150, - 17,150,12,132,12,17,17,109,26,150,132,132,17,150,17,219, - 12,150,132,12,132,17,17,17,109,219,12,150,150,150,99,181, - 114,114,114,114,114,114,144,144,114,114,114,144,144,114,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,244,144,244,144, - 144,144,244,144,144,244,144,244,244,244,244,244,244,244,244,244, - 244,36,36,244,36,36,244,36,36,244,36,244,144,244,144,144, - 218,181,218,218,218,218,218,218,188,218,88,188,188,169,188,169, - 88,169,218,88,169,188,218,188,88,218,218,218,88,218,218,188, - 88,88,218,218,218,218,88,218,218,218,218,218,218,188,207,207, - 218,218,218,218,218,207,207,218,218,218,218,188,218,218,236,236, - 207,236,218,218,207,218,207,218,218,236,236,236,218,207,207,207, - 236,89,207,207,236,236,89,236,119,119,236,236,236,119,236,236, - 236,236,89,119,236,119,119,236,89,119,119,236,236,119,119,119, - 236,236,119,119,236,236,236,236,236,236,236,119,236,89,236,89, - 236,236,89,89,236,236,89,236,236,89,236,119,89,119,236,119, - 89,236,89,236,89,236,236,236,236,236,89,89,236,236,236,236, - 236,236,127,143,89,119,127,89,119,119,119,236,236,89,119,236, - 236,119,236,236,119,159,236,159,119,159,159,236,236,240,108,142, - 26,111,42,182,219,187,150,219,12,219,132,219,17,12,26,150, - 150,150,150,132,12,187,219,243,219,12,219,132,219,17,17,219, - 150,150,17,17,132,17,132,219,109,219,17,17,132,219,17,12, - 26,150,17,17,17,132,17,187,219,243,219,17,150,132,219,17, - 12,26,150,150,17,12,17,187,187,219,243,219,17,17,132,17, - 17,12,26,150,17,17,17,132,17,132,26,243,219,12,17,132, - 219,17,12,26,150,150,17,12,17,12,166,26,243,219,17,17, - 132,219,17,12,26,150,132,17,12,132,17,132,26,243,219,17, - 150,132,219,17,12,26,150,150,17,17,17,17,187,219,243,219, - 17,17,132,219,17,12,26,150,17,17,12,17,12,187,26,243, - 219,17,17,17,219,17,12,26,150,17,17,12,17,17,132,219, - 109,26,12,17,132,219,17,12,26,150,132,12,17,17,12,187, - 26,243,219,17,132,132,219,17,12,26,150,150,17,12,17,12, - 132,219,243,219,12,219,132,219,17,17,219,150,150,17,17,132, - 17,132,26,243,219,17,132,132,219,17,12,26,150,150,17,17, - 132,17,166,26,109,219,17,150,132,219,17,12,26,150,150,17, - 12,132,187,187,26,243,219,17,219,132,219,17,12,26,150,150, - 17,17,17,187,187,219,243,219,17,17,132,219,17,12,26,150, - 150,17,12,17,17,187,26,243,219,17,17,132,219,17,12,26, - 150,17,17,12,17,12,187,26,109,219,17,12,150,17,141,119, - 114,114,114,114,144,114,114,114,144,144,144,144,144,144,144,144, - 144,244,144,144,244,144,144,144,144,244,144,144,244,144,244,144, - 244,244,144,244,144,244,144,144,244,244,244,244,244,244,36,244, - 36,244,244,36,36,244,36,244,36,244,36,36,244,244,144,144, - 218,218,218,218,218,88,218,218,218,218,218,218,218,88,218,218, - 218,169,218,218,218,88,218,218,188,88,88,218,218,88,218,218, - 218,188,218,218,218,218,218,218,218,218,218,218,218,218,218,218, - 236,218,218,207,218,218,218,207,218,218,218,218,218,218,218,236, - 218,236,236,236,236,218,207,207,207,218,218,236,236,236,236,207, - 207,89,236,89,236,236,236,236,236,236,119,236,236,119,119,236, - 119,236,236,89,89,236,89,236,236,119,119,119,236,119,119,119, - 119,236,236,119,119,236,89,89,236,119,89,119,236,89,236,236, - 89,236,236,236,89,119,89,89,236,119,236,236,236,119,89,236, - 236,236,236,236,236,119,236,236,236,236,236,143,89,236,236,236, - 236,89,119,89,143,119,119,89,89,89,236,119,236,236,119,89, - 236,236,119,119,236,119,236,236,236,236,119,143,119,159,108,142, - 26,111,26,109,187,111,111,219,12,17,150,17,132,132,26,12, - 17,17,17,132,132,187,219,109,219,12,17,17,17,150,17,219, - 12,132,150,17,132,187,150,219,243,219,12,17,17,17,150,132, - 26,150,150,150,17,132,132,187,219,243,219,12,219,150,17,132, - 132,219,12,132,150,17,17,132,12,219,211,219,12,17,132,17, - 150,132,219,150,150,150,17,132,187,150,219,211,219,150,17,132, - 17,132,132,26,12,132,150,132,132,17,150,219,211,219,12,17, - 132,150,132,132,219,12,150,132,17,132,187,150,26,211,219,12, - 219,150,17,132,132,26,12,150,150,17,17,132,187,219,211,219, - 12,17,132,150,132,132,219,150,150,150,17,17,132,150,26,211, - 219,12,132,132,17,150,132,219,150,150,132,17,17,187,150,219, - 243,219,150,17,17,12,132,132,219,12,132,150,17,219,150,150, - 219,211,219,12,17,132,17,132,132,219,12,132,150,17,17,187, - 150,219,109,219,12,17,17,17,150,17,26,12,132,150,17,132, - 187,150,219,211,219,12,17,17,17,150,132,219,12,132,150,17, - 132,17,150,219,243,219,17,17,150,17,132,132,219,12,132,150, - 219,150,132,150,219,211,219,12,17,150,150,132,132,219,12,132, - 150,17,17,132,187,219,211,219,12,17,17,17,150,132,219,12, - 132,150,219,17,132,150,219,211,219,12,17,132,17,150,132,219, - 150,150,150,17,17,166,150,42,109,42,17,150,150,17,235,181, - 114,144,114,114,140,144,144,114,114,114,144,144,144,144,144,144, - 144,144,244,144,144,244,244,144,244,144,244,144,244,244,144,244, - 144,144,244,144,144,144,244,144,244,244,244,244,36,244,244,36, - 244,36,36,244,36,36,244,36,36,36,244,244,244,244,244,144, - 218,218,218,218,188,218,218,88,169,218,218,218,169,218,169,218, - 188,218,88,169,218,218,218,88,218,218,218,218,188,218,218,218, - 218,218,88,218,218,218,218,218,218,218,218,218,218,218,218,153, - 218,218,218,218,218,218,218,218,153,218,236,218,236,218,218,218, - 218,218,218,218,207,236,236,218,207,236,236,236,236,236,89,89, - 89,236,119,236,89,236,119,119,119,119,236,119,119,236,236,119, - 236,119,236,119,236,119,119,119,89,236,236,236,119,58,236,236, - 236,119,119,236,236,89,236,236,89,89,236,89,236,236,119,119, - 119,236,236,89,236,236,236,236,236,89,236,119,119,236,236,119, - 119,119,119,236,119,236,236,236,89,236,89,236,89,236,89,236, - 89,236,207,143,236,236,236,236,143,143,236,236,119,236,89,159, - 143,119,143,236,159,236,119,236,119,236,159,119,236,58,240,64, - 26,111,187,182,183,109,109,26,150,17,219,150,132,17,219,150, - 132,150,17,219,26,150,26,8,42,150,17,17,132,150,17,26, - 150,17,132,17,219,219,187,26,211,42,150,17,17,132,132,17, - 219,12,219,132,12,219,26,150,26,8,26,150,17,219,150,132, - 17,42,150,17,132,150,17,26,150,26,187,42,150,150,219,150, - 132,17,26,12,17,132,17,219,17,187,26,187,42,12,17,17, - 150,132,17,219,150,17,132,17,219,17,187,26,187,42,150,17, - 17,17,132,17,26,150,219,150,17,219,17,187,219,12,42,150, - 17,17,132,150,17,219,150,219,132,132,17,26,150,26,12,26, - 150,219,17,17,132,17,26,12,219,132,132,17,26,187,17,187, - 42,150,17,17,150,132,17,26,12,219,150,132,17,17,187,26, - 211,42,12,132,17,150,132,17,26,150,17,132,150,219,26,187, - 26,187,42,150,17,17,150,132,17,26,150,17,132,132,219,219, - 187,26,8,42,150,17,17,132,150,17,219,150,17,132,17,219, - 17,187,26,187,42,150,17,17,150,132,17,26,150,17,132,12, - 219,17,187,26,8,26,150,132,219,150,132,17,26,150,17,150, - 17,219,26,187,26,187,42,150,17,219,17,132,17,26,150,17, - 132,132,17,26,150,26,12,42,150,17,17,150,132,17,26,150, - 219,150,132,17,26,187,26,12,42,150,17,17,150,132,17,219, - 12,219,132,132,17,26,187,26,8,183,12,17,150,132,99,114, - 114,114,144,144,114,144,114,144,144,144,114,144,144,144,144,144, - 144,144,244,144,144,144,244,144,244,144,244,144,244,244,244,244, - 144,244,244,244,244,244,244,244,244,244,36,244,36,244,36,244, - 36,244,36,36,244,36,36,244,36,36,36,36,244,244,244,144, - 218,218,218,218,188,188,218,218,218,169,218,218,218,88,188,218, - 188,218,218,169,88,188,218,188,188,218,88,218,218,88,218,169, - 218,218,218,88,218,218,218,218,218,218,218,218,218,218,218,218, - 153,218,218,218,153,153,218,218,218,218,207,218,207,207,218,236, - 207,236,236,236,207,218,236,236,207,207,89,236,236,181,236,119, - 181,236,89,119,119,236,236,236,119,119,119,236,119,119,236,236, - 236,119,236,119,236,236,89,119,236,119,119,89,236,119,89,119, - 236,236,236,89,236,89,236,236,236,236,236,236,236,236,89,236, - 236,89,236,89,236,119,119,119,236,119,236,89,119,119,119,236, - 236,236,58,236,236,236,236,236,89,143,89,143,89,236,236,236, - 236,89,236,236,236,143,236,159,119,236,143,143,119,143,236,119, - 119,119,159,236,236,89,119,236,119,89,236,236,159,159,108,59, - 26,111,187,224,219,150,224,42,17,17,17,17,17,132,42,12, - 132,150,17,132,26,187,26,211,42,12,17,17,17,150,132,26, - 150,17,150,17,17,219,187,26,211,42,12,17,17,17,17,150, - 219,150,17,150,17,132,26,187,26,109,42,12,219,17,17,17, - 150,42,150,219,12,17,132,26,187,17,211,42,17,17,17,17, - 17,132,219,150,219,150,17,219,17,187,17,211,219,17,17,17, - 17,17,132,42,150,219,12,17,219,17,187,12,211,26,12,17, - 17,17,17,150,26,150,219,150,17,219,219,187,12,211,26,17, - 17,17,17,17,132,26,150,17,12,17,132,26,187,17,109,26, - 12,17,17,17,17,150,219,150,17,12,17,132,17,187,17,211, - 26,12,17,17,17,17,132,219,150,219,12,17,219,219,187,17, - 109,219,17,17,17,17,17,150,42,150,219,12,17,132,17,187, - 17,211,26,12,17,17,17,17,132,42,150,219,12,12,17,17, - 187,26,211,42,12,17,17,17,150,132,26,150,17,150,17,219, - 17,187,17,211,26,12,17,17,17,17,132,42,150,219,150,17, - 17,17,187,26,109,42,12,219,17,17,17,132,42,150,219,150, - 17,132,17,187,12,211,26,12,219,12,17,17,132,42,150,219, - 12,17,132,26,187,17,211,42,17,17,17,17,17,132,26,150, - 219,12,17,132,17,187,17,211,42,17,17,17,17,17,17,219, - 150,17,12,17,219,17,150,26,187,187,17,12,150,17,235,89, - 114,144,144,144,114,144,144,144,114,144,144,144,144,144,144,144, - 244,144,144,244,244,144,244,244,144,144,244,244,144,244,244,244, - 144,244,244,144,244,244,244,244,244,244,36,36,36,244,36,244, - 36,244,36,36,36,244,36,36,36,36,36,36,36,244,244,244, - 188,188,188,39,188,188,188,169,188,188,169,188,188,207,188,188, - 188,188,188,188,207,188,188,188,188,188,218,169,188,218,188,218, - 218,88,218,218,218,218,218,218,218,218,218,153,218,218,218,153, - 218,236,153,153,218,218,153,218,218,218,218,218,218,218,207,207, - 236,207,236,218,236,236,236,236,236,236,207,236,119,236,119,236, - 236,236,58,236,236,119,119,119,236,119,89,181,119,119,119,119, - 119,236,119,236,236,119,119,236,119,236,119,119,119,236,119,89, - 119,119,119,236,89,236,89,89,236,89,89,89,89,236,236,236, - 119,236,236,119,119,89,119,236,119,89,236,236,89,236,236,236, - 236,119,236,236,236,207,89,207,236,236,89,89,236,236,89,89, - 89,143,236,236,236,159,236,236,143,236,119,159,143,119,119,159, - 143,143,236,236,119,236,236,89,89,236,119,119,89,119,240,47, - 26,111,166,182,187,109,111,42,150,17,17,12,150,219,219,150, - 219,17,17,219,17,150,219,187,42,150,17,12,17,150,219,219, - 17,132,17,17,17,219,150,219,187,42,150,219,12,12,150,219, - 219,17,132,17,17,219,17,150,219,12,26,150,17,12,12,150, - 219,219,17,132,17,150,219,17,150,26,12,26,17,17,17,12, - 150,219,219,17,132,12,17,219,219,150,26,12,42,150,17,17, - 12,150,17,219,17,132,150,17,219,17,150,42,12,42,150,219, - 12,12,150,219,219,17,132,12,17,17,17,17,42,12,42,150, - 17,17,12,150,219,219,17,132,17,150,219,17,150,26,12,42, - 150,17,12,12,150,219,219,17,132,17,132,219,219,12,26,12, - 42,12,219,17,12,150,219,219,17,150,17,132,17,219,132,42, - 12,26,17,17,17,12,150,219,219,17,132,17,150,219,17,150, - 26,12,42,150,219,17,12,150,17,219,17,150,17,132,219,219, - 132,219,187,42,150,17,12,17,150,219,219,17,132,17,17,219, - 219,150,26,12,42,150,17,17,12,150,17,219,17,132,17,17, - 219,17,150,219,12,26,12,219,12,12,150,17,219,17,150,17, - 17,219,219,150,42,12,42,150,219,12,12,150,17,219,17,150, - 17,150,219,17,150,26,187,26,150,17,12,17,150,219,219,17, - 150,17,132,219,219,150,26,187,26,150,17,17,150,150,17,219, - 17,132,17,150,219,17,187,219,109,183,219,17,150,219,99,114, - 114,144,114,144,144,144,144,144,244,144,144,144,244,144,144,244, - 144,244,144,244,144,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,36,244,36,36,36, - 36,36,244,36,36,36,36,244,36,36,36,244,36,244,244,244, - 218,207,188,188,39,39,188,169,188,188,169,39,188,188,188,169, - 169,169,188,188,188,39,188,188,169,188,188,188,188,188,188,188, - 188,188,188,218,218,218,218,218,218,218,218,153,153,153,218,218, - 218,218,218,236,236,218,218,236,153,236,236,207,207,218,218,207, - 218,207,236,236,236,89,207,89,89,236,89,236,236,236,119,119, - 119,236,119,119,236,89,236,181,236,119,236,89,89,89,119,119, - 119,236,236,119,236,236,119,236,119,89,119,236,119,236,119,89, - 89,89,119,119,119,119,89,89,236,236,236,119,89,236,89,236, - 119,236,236,236,119,236,119,236,236,119,119,236,89,236,119,119, - 89,236,236,236,236,236,236,207,236,236,236,236,89,236,143,236, - 119,119,119,236,236,236,143,89,236,89,89,119,89,236,89,89, - 119,236,236,236,236,89,236,236,89,89,89,236,119,119,108,47, - 42,187,166,182,50,243,111,42,26,219,17,17,17,17,26,17, - 12,17,219,219,26,187,26,150,42,219,219,17,219,12,17,219, - 17,17,17,219,26,26,12,26,150,42,219,219,17,219,12,17, - 219,219,12,17,219,219,26,187,26,150,42,26,219,17,219,12, - 17,219,17,17,219,219,219,26,150,26,150,219,26,219,17,17, - 17,17,219,17,17,17,219,17,26,150,26,150,42,26,219,17, - 17,17,17,219,17,17,17,219,219,26,150,26,150,42,26,219, - 17,17,17,17,219,17,17,17,219,219,12,132,26,150,42,26, - 219,17,17,17,17,219,17,17,219,219,219,26,150,26,150,42, - 26,219,17,219,12,17,219,219,12,219,219,219,17,132,26,150, - 219,26,219,17,17,17,17,219,219,12,219,17,26,26,12,26, - 150,219,219,219,17,17,17,17,219,17,17,219,219,219,26,150, - 26,150,42,26,219,17,17,17,17,219,17,17,17,219,26,26, - 12,26,150,42,219,219,17,219,12,17,219,17,17,17,17,219, - 26,150,26,150,42,219,219,17,17,17,17,219,17,12,17,219, - 219,26,187,26,150,219,26,219,17,219,12,17,219,219,12,17, - 219,219,26,150,26,150,42,26,219,17,219,12,17,219,219,12, - 219,219,219,26,150,26,150,42,219,219,17,17,12,17,219,219, - 12,17,219,219,26,150,26,150,42,26,219,26,17,17,17,219, - 17,17,17,132,219,17,187,26,150,42,26,17,243,132,235,114, - 114,144,144,144,144,144,144,144,144,144,144,244,144,244,244,144, - 244,244,244,144,244,144,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,36,244,36,36,36,244,36,244, - 36,36,36,36,36,36,36,36,36,36,36,36,36,105,36,244, - 207,218,218,207,188,188,188,188,188,39,39,188,39,188,188,188, - 188,39,39,169,39,39,207,39,207,39,39,39,188,188,39,169, - 188,188,188,188,188,188,188,218,218,236,218,207,218,218,218,218, - 218,153,236,218,218,218,236,218,218,218,218,236,236,207,207,218, - 236,207,207,207,207,207,236,236,236,89,236,89,119,236,236,236, - 119,119,119,119,119,119,119,58,119,119,119,119,236,119,236,89, - 236,119,119,236,89,236,236,119,89,236,236,119,89,89,236,119, - 119,119,236,89,89,89,119,236,89,236,89,236,236,236,236,236, - 89,236,236,119,236,119,89,236,119,236,236,236,236,89,236,236, - 236,119,119,236,119,236,119,236,119,236,236,236,236,89,89,89, - 236,236,236,143,143,236,89,89,89,127,127,127,89,89,89,236, - 127,236,89,236,89,236,236,89,119,236,119,89,89,119,240,47, - 122,126,91,182,183,111,166,122,42,122,122,0,122,42,122,122, - 122,122,122,122,183,42,219,187,0,42,122,122,0,122,42,122, - 122,122,122,122,78,183,42,219,187,122,42,122,122,0,122,42, - 122,122,42,122,122,162,183,42,183,187,122,42,122,122,0,122, - 42,122,122,42,122,122,162,183,42,183,187,0,42,122,122,0, - 122,42,122,122,42,122,122,122,183,42,183,187,0,42,122,122, - 0,122,42,122,122,42,122,122,122,183,42,183,187,0,42,122, - 122,0,122,42,122,42,122,122,122,122,42,42,183,187,0,42, - 122,122,0,122,42,122,122,42,122,122,122,183,42,183,187,0, - 42,122,122,0,122,42,122,122,42,122,122,122,42,42,183,187, - 0,42,122,122,0,122,42,122,122,122,122,122,122,219,42,183, - 187,0,42,122,122,0,122,42,122,122,42,122,122,122,183,42, - 183,187,122,42,122,122,0,122,42,122,122,122,122,122,78,183, - 42,219,187,0,42,122,122,0,122,42,122,122,122,122,122,78, - 183,42,183,187,0,42,122,122,0,122,42,122,122,122,122,122, - 122,183,42,183,187,0,42,122,122,0,122,42,122,122,122,122, - 122,122,219,42,183,187,122,42,122,122,0,122,42,122,122,122, - 122,122,122,183,42,183,187,0,42,122,122,0,122,42,122,122, - 122,122,122,78,183,42,183,187,122,42,122,122,0,122,42,122, - 122,122,122,0,0,42,42,42,187,42,42,183,219,122,99,89, - 114,144,144,144,144,144,144,114,244,144,144,144,144,144,244,244, - 144,244,144,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,36,244,36,244,36,244,36,36,244,36,36, - 36,36,36,36,36,244,36,36,36,36,105,36,36,244,36,120, - 188,207,207,218,218,188,188,188,188,188,188,188,188,188,207,207, - 188,169,39,140,39,39,39,39,188,39,39,39,39,188,188,188, - 188,188,188,188,207,207,188,207,218,218,218,218,218,236,236,218, - 218,218,218,218,153,218,218,218,236,236,218,218,218,218,207,207, - 207,207,236,236,236,236,89,89,181,89,236,236,119,119,119,89, - 119,119,236,119,119,119,236,236,236,236,236,119,236,119,236,236, - 89,236,119,119,89,89,89,236,119,89,89,119,119,89,236,236, - 236,119,236,236,236,89,119,236,119,119,236,119,119,119,236,236, - 119,89,89,119,89,119,89,236,119,119,119,89,236,236,236,119, - 236,236,236,236,236,236,58,236,236,236,236,236,236,236,143,127, - 236,207,236,89,207,207,127,127,89,89,89,89,127,89,89,119, - 89,236,236,236,89,89,236,236,119,143,119,236,119,159,240,47, - 122,183,162,187,0,183,78,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,219,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,219,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,42,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,42,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,219,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,219,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,42,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,42,42,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,78,0,0,0,0,0,141,181, - 144,144,144,144,144,144,144,144,144,244,144,244,244,244,144,244, - 244,244,244,244,244,244,244,244,244,36,244,36,244,36,244,244, - 244,244,244,36,244,36,244,36,244,36,36,244,36,36,36,244, - 36,36,36,36,36,36,36,36,36,36,36,36,105,36,36,36, - 207,207,207,207,188,207,39,169,188,39,169,39,39,39,188,188, - 207,207,39,188,39,39,207,188,39,39,188,39,39,39,39,39, - 39,39,188,188,188,188,207,207,207,207,218,181,153,218,218,153, - 218,153,153,153,218,153,153,236,218,218,236,207,89,89,236,207, - 236,236,207,207,236,236,207,58,236,236,89,89,89,89,236,119, - 236,119,119,236,119,119,119,119,119,119,236,236,89,236,236,236, - 236,119,236,236,236,236,236,89,89,236,236,236,236,236,119,119, - 119,89,119,119,119,119,89,119,236,236,119,236,236,236,89,236, - 89,119,236,89,236,236,119,89,89,236,89,236,119,89,236,236, - 236,236,119,236,236,236,236,236,236,89,236,127,236,89,89,119, - 89,236,89,127,89,89,89,89,89,89,89,89,119,127,89,89, - 89,89,89,119,236,236,236,119,119,119,159,119,119,119,108,47, - 42,187,42,95,0,122,122,0,14,216,41,62,62,249,62,62, - 62,62,62,62,41,22,26,17,0,14,216,41,62,62,249,62, - 62,62,62,62,62,41,75,26,17,0,14,216,41,62,62,249, - 62,62,62,62,62,62,41,22,26,17,0,14,216,41,62,62, - 249,62,62,62,62,62,62,62,22,26,17,0,14,216,41,62, - 62,249,62,62,62,62,62,62,41,75,26,17,0,14,216,41, - 62,62,249,62,62,62,62,62,62,62,22,26,17,0,14,216, - 41,62,62,249,62,62,62,62,62,62,41,75,219,17,0,14, - 216,41,62,62,249,62,62,62,62,62,62,62,22,26,17,0, - 14,216,41,62,62,249,62,62,62,62,62,62,62,22,26,17, - 0,14,216,41,62,62,249,62,62,62,62,62,62,41,22,26, - 17,0,14,216,41,62,62,249,62,62,62,62,62,62,41,75, - 219,17,0,14,216,41,62,62,249,62,62,62,62,62,62,41, - 22,26,17,0,14,216,41,62,62,249,62,62,62,62,62,62, - 62,22,219,17,0,14,216,41,62,62,249,62,62,62,62,62, - 62,41,22,26,17,0,14,216,41,62,62,249,62,62,62,62, - 62,62,41,75,26,17,0,14,216,41,62,62,249,62,62,62, - 62,62,62,62,22,26,17,0,14,216,41,62,62,249,62,62, - 62,62,62,62,41,75,26,17,0,14,216,41,62,62,249,62, - 62,62,62,62,62,41,22,26,187,42,26,26,243,221,235,114, - 144,144,144,244,144,144,144,244,144,244,244,144,244,244,244,244, - 244,244,244,244,244,244,244,244,244,36,244,244,244,36,36,244, - 36,244,36,244,36,244,36,244,36,244,36,36,244,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, - 39,114,207,207,39,39,39,39,39,39,39,39,39,39,188,39, - 39,188,207,39,39,39,207,207,207,39,39,39,39,207,39,39, - 39,39,39,188,207,188,188,188,207,188,207,188,218,236,207,181, - 218,207,207,218,207,218,218,153,236,218,236,236,207,207,236,207, - 207,207,89,207,89,236,207,236,236,236,236,236,119,119,236,119, - 236,236,119,236,119,119,236,236,236,119,236,236,236,89,89,236, - 89,89,89,236,89,89,236,236,89,119,89,89,119,89,89,119, - 119,119,89,89,89,119,89,119,119,89,89,236,119,236,89,119, - 236,119,236,236,89,236,119,119,236,236,119,236,236,119,236,236, - 119,236,236,236,236,236,236,236,236,207,236,143,236,236,89,236, - 89,236,236,89,127,89,127,89,89,127,89,89,89,89,127,89, - 236,119,89,119,89,119,89,236,119,119,236,236,119,159,108,47, - 12,99,187,214,42,187,187,42,233,110,195,90,90,195,195,90, - 90,90,90,90,60,154,12,8,42,233,110,195,90,90,195,195, - 90,90,90,90,195,60,154,12,12,42,233,110,195,90,90,195, - 195,90,90,90,90,195,60,154,12,12,42,233,110,195,90,90, - 195,195,90,90,90,90,90,60,154,12,8,42,233,110,195,90, - 90,195,195,90,90,90,90,195,60,154,12,12,42,233,110,195, - 90,90,195,195,90,90,90,90,90,60,154,12,8,42,233,110, - 195,90,90,195,195,90,90,90,90,195,60,154,12,12,42,233, - 110,195,90,90,195,195,90,90,90,90,90,60,154,12,12,26, - 233,110,195,90,90,195,195,90,90,90,90,90,60,154,12,12, - 42,233,110,195,90,90,195,195,90,90,90,90,90,60,154,12, - 12,42,233,110,195,90,90,195,195,90,90,90,90,195,60,154, - 12,12,42,233,110,195,90,90,195,195,90,90,90,90,90,60, - 154,12,12,42,233,110,195,90,90,195,195,90,90,90,90,90, - 60,154,12,12,42,233,110,195,90,90,195,195,90,90,90,90, - 195,60,154,12,12,42,233,110,195,90,90,195,195,90,90,90, - 90,195,60,154,12,12,42,233,110,195,90,90,195,195,90,90, - 90,90,90,60,154,12,12,26,233,110,195,90,90,195,195,90, - 90,90,90,195,60,154,12,12,42,233,110,195,90,90,195,195, - 90,90,90,90,90,60,154,12,243,219,187,187,67,141,99,181, - 144,244,144,244,144,244,244,144,244,144,244,244,244,244,244,244, - 244,244,244,244,244,36,244,36,244,36,36,244,36,244,36,244, - 36,244,36,36,244,36,244,36,36,36,36,36,36,244,105,36, - 105,36,105,36,36,36,36,36,36,36,105,36,36,36,36,36, - 39,39,39,39,207,207,39,140,140,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,207,188,39,39,39,39,39,188, - 39,39,39,39,188,207,188,39,188,207,207,207,89,218,218,218, - 207,218,218,236,218,218,153,218,218,236,236,207,236,207,207,207, - 207,89,207,207,207,236,236,236,236,236,119,119,236,236,89,89, - 119,119,236,119,236,119,119,119,119,236,89,119,89,236,236,89, - 236,236,236,89,236,89,119,89,119,89,236,119,89,236,119,89, - 119,119,119,119,119,236,119,89,89,236,236,119,89,119,119,236, - 119,236,236,236,236,236,236,236,119,119,236,236,58,236,236,119, - 236,236,236,58,236,236,236,236,236,236,89,236,89,236,236,236, - 236,236,89,89,119,119,89,89,127,89,89,89,119,89,119,119, - 89,89,236,89,236,89,236,89,89,119,119,119,119,119,159,44, - 109,182,187,99,78,126,166,122,168,128,23,23,23,23,23,19, - 65,65,19,23,90,178,17,109,0,168,128,23,23,23,23,23, - 19,65,65,19,19,195,178,12,109,122,168,128,23,23,23,23, - 23,19,65,65,19,19,90,178,12,109,122,168,128,23,19,23, - 23,23,19,65,65,19,23,90,178,12,187,122,168,128,23,23, - 23,23,23,19,65,65,19,19,195,178,12,109,122,168,128,23, - 19,23,23,23,19,65,65,19,23,90,178,12,187,122,168,128, - 23,19,23,23,23,19,65,65,65,19,195,178,12,109,122,168, - 128,23,19,23,23,23,19,65,65,19,23,90,178,17,109,122, - 168,128,23,23,23,23,23,19,65,65,19,23,90,178,12,109, - 122,168,128,23,23,23,23,23,19,65,65,19,19,195,178,12, - 109,122,168,128,23,23,23,23,23,19,65,65,19,19,195,178, - 12,109,122,168,128,23,23,23,23,23,19,65,65,19,23,90, - 178,12,109,122,168,128,23,23,23,23,23,19,65,65,19,23, - 90,178,17,109,122,168,128,23,23,23,23,23,19,65,65,19, - 19,90,178,12,109,122,168,128,23,23,23,23,23,19,65,65, - 19,19,195,178,12,109,122,168,128,23,23,23,23,23,19,65, - 65,19,23,90,178,12,109,0,168,128,23,23,23,23,23,19, - 65,65,19,19,195,178,12,109,122,168,128,23,23,23,23,23, - 19,65,65,19,23,90,178,17,109,187,12,187,254,141,235,114, - 144,144,144,144,144,244,144,144,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,36,36,244,36,36,36, - 244,36,244,36,244,36,36,36,244,36,244,36,36,36,244,36, - 36,36,36,36,36,36,36,36,36,36,105,36,36,36,36,36, - 39,39,39,181,39,181,207,39,39,39,114,140,39,39,39,39, - 39,39,39,188,39,39,39,39,207,207,39,207,39,207,39,39, - 39,39,39,39,207,207,188,39,207,207,236,207,207,207,207,236, - 236,207,207,218,236,207,207,153,236,218,236,207,89,89,89,89, - 207,207,89,236,89,89,207,236,119,236,236,119,119,119,119,236, - 89,119,236,119,236,89,89,236,119,58,89,236,89,89,89,89, - 89,89,119,89,236,89,89,89,89,119,89,236,119,89,119,236, - 89,119,119,119,119,236,119,119,119,119,89,236,89,236,119,89, - 236,89,89,236,119,119,119,236,236,119,119,236,236,119,236,236, - 119,119,236,58,236,89,236,236,119,236,236,236,236,236,236,236, - 89,236,89,236,89,89,143,89,119,127,89,127,89,89,89,89, - 89,89,236,119,89,119,119,89,89,119,89,89,119,159,159,44, - 187,109,42,67,187,187,187,0,233,204,19,65,65,65,65,65, - 118,65,19,19,195,178,17,243,122,233,204,19,65,65,65,65, - 65,118,65,19,65,60,178,17,243,122,233,204,19,65,65,65, - 65,65,118,65,19,65,195,178,17,8,122,233,204,19,19,65, - 65,65,65,118,65,19,19,90,84,12,243,122,233,204,19,65, - 65,19,65,65,118,65,19,65,60,24,12,243,122,233,204,19, - 65,19,65,65,65,118,65,19,19,90,84,12,243,122,233,204, - 19,65,19,65,65,65,118,65,19,19,60,178,17,243,122,233, - 204,19,65,19,65,65,65,118,65,19,19,90,84,12,243,122, - 233,204,19,65,65,19,65,65,118,65,19,65,195,178,12,243, - 122,233,204,19,65,65,65,65,65,118,65,19,65,90,178,17, - 243,122,233,204,19,65,65,65,65,65,118,65,19,65,90,84, - 12,243,122,233,204,19,65,65,65,65,65,118,65,19,19,195, - 178,17,243,122,233,204,19,65,65,65,65,65,118,65,19,19, - 90,84,12,243,122,233,204,19,65,65,65,65,65,118,65,19, - 65,195,178,17,243,122,233,204,19,65,65,65,65,65,118,65, - 19,65,90,84,12,243,122,233,204,19,65,65,65,65,65,118, - 65,19,19,90,84,12,243,122,233,204,19,65,65,65,65,65, - 118,65,19,65,90,84,17,243,122,233,204,19,65,65,65,65, - 65,118,65,19,19,60,24,17,243,132,219,17,8,141,99,114, - 114,244,144,244,144,244,144,244,244,144,244,244,244,244,244,244, - 244,36,244,36,244,36,36,36,244,36,244,36,36,36,244,36, - 244,36,36,36,244,36,244,36,36,36,36,36,244,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,105,36, - 181,39,114,39,39,39,207,39,39,140,39,39,140,39,39,39, - 39,39,207,207,207,39,207,207,207,39,39,39,39,39,39,207, - 39,39,39,39,39,207,207,39,207,207,207,207,207,207,207,207, - 207,207,207,89,207,218,236,207,218,236,236,236,207,207,207,207, - 207,89,207,207,207,236,236,89,89,236,236,89,236,236,236,236, - 58,119,119,119,119,236,119,119,236,236,236,89,236,89,236,89, - 236,236,89,236,89,236,119,119,119,89,89,119,89,236,89,119, - 119,89,236,236,89,119,119,119,119,236,236,89,236,119,236,119, - 119,119,119,236,236,236,236,119,236,236,236,236,119,236,236,236, - 236,236,236,89,236,236,236,119,236,58,119,236,236,236,236,89, - 236,127,236,89,236,236,119,143,236,89,89,119,89,89,89,119, - 236,119,119,89,119,89,89,119,119,119,119,119,119,119,108,47, - 187,109,50,109,126,26,166,0,31,170,118,118,118,118,118,118, - 118,118,118,65,128,84,17,211,122,31,204,118,118,118,118,118, - 118,118,118,118,19,128,178,26,211,122,31,204,118,118,118,118, - 118,118,118,118,118,65,128,84,17,211,122,31,204,118,118,118, - 118,118,118,118,118,118,65,128,84,17,211,122,31,170,65,118, - 118,51,118,118,118,118,65,65,128,178,17,211,122,31,204,118, - 118,118,118,118,118,118,118,118,65,128,84,17,211,122,31,204, - 118,118,118,118,118,118,118,118,118,19,128,178,26,211,122,31, - 204,118,118,118,118,118,118,118,118,118,65,128,84,17,211,0, - 31,170,65,118,118,51,118,118,118,118,65,65,128,84,219,211, - 122,31,204,118,118,118,118,118,118,118,118,118,65,128,84,17, - 211,0,31,170,118,118,118,118,118,118,118,118,65,65,128,84, - 17,211,0,31,170,118,118,118,118,118,118,118,118,118,65,128, - 84,17,211,0,31,170,118,118,118,118,118,118,118,118,118,65, - 128,84,17,211,0,31,170,118,118,118,118,118,118,118,118,118, - 65,128,84,17,211,0,31,170,118,118,118,118,118,118,118,118, - 118,65,128,84,17,211,0,31,170,118,118,118,118,118,118,118, - 118,118,65,128,84,17,211,0,31,170,118,118,118,118,118,118, - 118,118,118,65,128,84,17,211,122,31,204,118,118,118,118,118, - 118,118,118,65,65,128,178,219,182,187,187,187,141,141,235,114, - 144,244,144,244,244,244,144,244,244,244,244,244,244,244,244,244, - 244,36,244,244,36,244,36,244,36,36,244,36,244,36,36,36, - 36,244,36,36,36,36,36,36,36,36,36,36,36,36,36,105, - 36,105,36,36,105,36,36,36,36,105,36,105,36,105,36,36, - 39,39,39,39,39,39,181,207,39,39,114,39,39,114,39,114, - 39,39,39,39,181,39,39,39,181,207,39,207,39,207,39,39, - 39,39,39,39,207,207,181,39,207,39,207,39,207,39,207,207, - 207,207,207,207,207,218,218,236,236,207,236,236,89,89,89,89, - 207,89,181,207,207,89,236,236,236,119,236,119,119,119,119,236, - 89,119,236,236,119,236,89,119,119,89,236,119,119,89,236,89, - 89,89,119,119,119,89,89,89,119,119,89,119,119,119,89,236, - 119,119,119,119,89,236,236,119,119,236,236,236,236,119,236,236, - 236,236,119,236,236,236,236,89,236,236,119,236,236,119,119,236, - 119,236,236,236,58,119,236,236,236,236,236,236,89,207,236,89, - 89,89,236,236,143,159,119,236,159,236,236,119,236,236,236,119, - 236,236,119,236,236,236,89,89,89,119,89,89,119,119,83,47, - 166,109,94,109,111,187,166,122,249,53,118,51,51,52,51,51, - 107,51,118,118,128,84,26,8,122,123,53,118,51,51,52,51, - 107,51,51,51,118,128,84,17,8,122,123,53,118,51,51,52, - 51,107,51,51,51,118,128,84,17,8,122,123,53,118,51,51, - 52,76,51,51,107,51,118,128,84,12,243,122,249,53,51,51, - 118,52,52,51,51,52,118,118,128,84,26,8,122,123,53,118, - 51,51,52,76,51,51,107,51,118,128,84,12,8,122,123,53, - 118,51,51,52,51,107,51,51,51,118,128,84,17,8,122,123, - 53,118,51,51,52,76,51,51,107,51,118,128,84,17,8,122, - 249,53,51,51,118,52,52,51,51,52,51,118,128,84,26,8, - 122,123,53,118,51,51,52,51,107,51,51,118,118,128,84,17, - 8,122,249,53,118,51,51,52,51,76,51,52,51,118,128,84, - 12,8,122,249,53,118,51,51,52,51,51,51,107,51,118,128, - 84,12,8,122,249,53,118,51,51,52,51,51,51,107,118,118, - 128,84,12,8,122,249,53,118,51,51,52,51,107,51,51,118, - 118,128,84,12,8,122,249,53,118,51,51,52,51,51,107,51, - 51,118,128,84,17,8,122,249,53,118,51,51,52,51,51,51, - 107,51,118,128,84,12,8,122,249,53,118,51,51,52,51,51, - 107,51,51,118,128,84,26,8,122,123,53,118,51,51,52,51, - 76,51,52,118,118,128,84,26,8,150,219,187,12,132,235,114, - 114,244,144,244,144,244,244,244,244,244,244,244,36,244,36,244, - 36,244,244,36,244,244,36,36,244,36,36,36,36,36,36,244, - 36,36,36,244,36,244,36,36,36,36,36,36,36,36,36,36, - 36,105,105,36,36,36,36,36,36,36,36,36,105,36,105,36, - 39,39,39,39,39,114,39,207,181,207,39,114,39,39,39,207, - 39,39,39,89,207,89,89,207,207,207,39,39,39,39,207,39, - 39,207,39,39,39,207,207,39,39,89,207,207,181,89,207,39, - 207,207,39,207,207,207,89,207,207,236,207,236,207,207,207,207, - 207,207,89,89,89,236,236,236,89,89,119,89,89,236,89,119, - 119,236,119,119,89,119,119,89,236,119,119,89,89,119,89,119, - 119,236,89,89,89,119,119,119,119,236,119,89,236,236,119,119, - 236,89,89,89,119,119,119,89,89,89,119,119,236,236,119,119, - 119,119,236,236,236,236,236,58,119,236,236,119,119,236,236,236, - 236,119,236,236,236,236,236,236,236,236,236,89,143,236,89,89, - 236,143,236,236,119,236,236,159,143,236,143,143,236,236,119,143, - 119,119,236,119,119,236,236,119,119,119,119,119,119,159,108,29, - 26,111,42,109,166,187,187,122,123,53,107,107,76,76,232,232, - 76,52,52,9,204,178,17,8,78,123,53,76,107,76,76,232, - 232,52,52,107,107,204,178,26,8,162,123,53,76,107,76,76, - 232,232,52,52,107,107,204,178,26,243,122,123,53,52,51,76, - 51,76,232,52,52,51,107,204,84,26,8,0,123,85,107,51, - 76,76,76,232,76,52,52,9,204,84,17,211,122,123,53,52, - 51,76,76,52,232,52,52,51,107,204,84,26,243,122,123,53, - 52,51,76,76,232,76,52,52,107,107,204,178,26,8,122,123, - 53,52,51,76,76,52,232,52,52,51,107,204,178,26,8,0, - 123,85,107,51,76,76,76,232,52,52,51,9,204,178,17,211, - 78,123,53,76,107,76,76,232,232,52,52,9,107,204,178,26, - 8,0,123,53,107,107,76,76,232,76,52,52,51,107,204,84, - 26,8,0,123,53,107,107,76,76,232,232,52,52,51,107,204, - 178,26,243,122,123,53,107,51,76,76,232,232,76,52,51,51, - 204,84,26,8,0,123,53,107,107,76,76,232,232,76,52,52, - 9,204,84,26,8,0,123,53,107,107,76,76,232,232,52,52, - 107,107,204,178,26,8,122,123,53,107,51,76,76,232,232,52, - 52,51,107,204,84,26,8,0,123,53,107,107,76,76,232,232, - 52,52,51,107,204,178,17,211,78,123,53,76,107,76,76,232, - 76,52,52,52,9,204,178,26,182,132,187,187,150,141,235,114, - 244,244,144,244,244,144,244,244,244,244,244,244,244,244,244,244, - 244,36,244,36,244,36,244,36,36,36,244,36,244,36,36,244, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,105,36, - 36,36,36,36,36,105,36,105,36,36,105,36,36,36,105,36, - 39,181,207,181,39,39,39,39,207,181,188,39,39,114,39,39, - 39,39,39,39,181,207,181,207,89,181,207,207,181,39,207,39, - 39,181,39,39,207,207,89,181,39,207,89,207,207,39,39,39, - 39,181,140,207,39,207,207,207,207,89,207,89,236,236,89,89, - 207,207,207,89,89,236,89,119,236,89,236,119,119,119,236,89, - 119,119,236,119,236,236,119,119,119,89,236,89,89,119,89,89, - 119,89,236,236,89,236,119,236,119,119,119,119,119,119,119,119, - 119,236,89,236,89,119,119,119,119,236,236,236,236,236,236,236, - 236,236,119,236,89,236,236,236,119,236,236,236,58,119,58,236, - 236,119,119,236,236,236,236,236,236,236,236,89,89,143,236,89, - 236,236,119,236,236,236,236,119,236,159,119,159,119,236,119,159, - 236,236,236,236,119,236,119,119,119,119,143,119,119,119,108,29, - 17,111,162,109,126,187,187,122,123,85,76,76,76,76,232,232, - 232,51,51,52,204,168,12,243,122,123,53,76,76,76,76,232, - 232,76,76,52,9,204,168,12,8,122,123,53,76,76,76,76, - 232,232,76,76,52,52,204,168,12,8,122,123,53,232,76,232, - 76,232,232,76,52,52,52,204,154,219,8,0,123,194,76,76, - 76,76,232,232,76,51,51,52,204,154,219,243,122,123,53,232, - 76,76,76,232,232,76,52,52,52,204,154,17,8,122,123,53, - 232,76,76,76,232,232,232,51,52,52,204,168,12,8,122,123, - 53,232,107,76,76,232,232,76,76,51,9,204,154,132,243,0, - 123,194,76,76,76,76,232,232,76,52,51,52,204,168,17,243, - 122,123,53,76,76,76,76,232,232,76,76,52,52,204,168,12, - 8,122,123,85,76,76,76,76,232,232,76,52,52,52,204,154, - 132,243,122,123,85,76,76,76,76,232,232,76,76,52,9,204, - 168,12,243,122,123,85,76,76,76,76,232,232,232,52,52,52, - 204,154,132,243,122,123,85,76,76,76,76,232,232,232,51,51, - 52,204,154,132,243,122,123,85,76,76,76,76,232,232,76,51, - 52,52,204,168,17,243,122,123,85,76,76,76,76,232,232,76, - 52,52,52,204,154,132,243,122,123,85,76,76,76,76,232,232, - 76,76,51,52,204,84,17,243,122,123,53,76,76,76,76,232, - 232,76,51,51,52,204,168,17,8,150,219,219,243,141,235,114, - 114,244,144,244,244,244,244,244,244,244,36,244,36,36,244,36, - 244,36,244,36,36,244,36,244,36,244,36,36,36,36,36,36, - 36,244,36,36,36,36,36,36,105,36,36,36,36,36,36,36, - 36,36,36,105,105,36,36,36,105,36,36,105,36,36,105,36, - 39,39,39,39,207,207,39,39,207,236,181,39,39,207,39,39, - 181,114,89,207,207,236,236,236,181,236,89,39,207,39,89,89, - 39,207,89,39,207,89,89,207,207,89,119,181,39,89,89,89, - 39,39,207,207,89,207,207,207,236,207,89,207,207,207,207,89, - 89,89,89,207,207,89,236,236,236,236,119,236,89,119,119,119, - 119,236,119,236,119,119,119,119,236,119,119,119,119,89,119,119, - 89,119,119,119,236,119,236,119,119,236,119,89,89,119,119,119, - 236,89,236,236,119,89,236,236,236,89,236,119,236,119,236,236, - 236,236,236,236,236,236,236,236,236,119,236,58,236,236,236,58, - 236,236,236,119,119,236,58,89,236,236,236,119,236,236,89,159, - 119,236,236,236,236,236,236,236,159,236,236,236,236,119,119,236, - 236,119,119,119,236,119,236,119,89,119,119,119,119,108,108,34, - 26,254,122,109,166,187,166,122,167,194,76,76,232,148,232,148, - 232,232,52,52,204,168,17,109,42,167,194,76,76,148,232,232, - 148,232,232,52,76,204,168,17,109,42,167,194,76,76,148,232, - 232,148,232,232,52,52,204,168,17,109,42,167,85,76,76,232, - 232,232,148,232,232,52,52,204,168,17,109,122,167,85,232,76, - 148,148,232,148,148,148,52,52,204,168,26,109,42,167,85,76, - 76,148,232,232,148,232,232,52,52,204,168,26,109,42,167,85, - 76,76,148,232,232,148,232,148,52,52,204,154,26,109,42,167, - 85,76,232,148,232,232,148,232,232,232,52,204,168,26,109,122, - 167,85,232,76,148,148,232,148,148,232,52,52,204,154,26,109, - 42,167,194,76,76,148,232,232,148,232,232,52,52,204,168,17, - 243,122,167,194,76,76,232,148,232,148,232,232,52,52,204,168, - 26,243,122,167,194,76,76,232,148,232,148,148,232,52,232,204, - 154,26,243,122,167,194,76,76,232,148,232,148,232,232,52,52, - 204,168,26,243,42,167,194,76,76,148,232,232,148,232,148,52, - 52,204,168,26,243,42,167,194,76,76,232,148,232,148,232,148, - 52,52,204,168,17,243,122,167,194,76,76,232,148,232,148,232, - 232,52,52,204,168,26,243,122,167,194,76,76,148,232,232,148, - 232,232,52,52,204,168,17,109,42,167,85,76,76,232,148,232, - 148,148,148,52,52,204,154,26,109,150,26,187,17,141,235,114, - 244,144,244,144,244,244,244,244,244,244,120,244,244,244,36,244, - 36,244,36,244,244,36,244,36,36,36,36,244,36,36,36,36, - 36,36,36,36,36,36,36,36,105,36,36,36,36,36,105,36, - 105,36,36,36,105,105,36,105,36,36,36,105,36,36,36,36, - 207,207,207,207,39,181,39,39,207,207,181,236,207,114,181,39, - 207,207,39,181,39,89,181,184,240,119,89,207,89,39,207,89, - 207,39,89,39,89,236,236,89,89,89,119,119,89,39,114,89, - 89,39,89,39,89,89,181,188,207,207,89,89,89,89,207,236, - 236,236,89,236,236,89,89,236,119,236,89,236,236,89,236,236, - 181,119,119,119,119,119,236,119,119,89,236,236,119,119,119,119, - 236,119,119,119,119,181,236,89,119,89,119,119,89,236,89,89, - 236,236,119,89,119,119,119,236,119,89,89,119,236,119,89,236, - 236,89,236,236,236,236,236,236,236,58,236,236,236,119,236,58, - 236,236,236,236,119,89,236,236,236,119,236,119,119,236,236,236, - 119,236,236,236,236,236,143,236,236,236,119,119,236,236,236,119, - 236,236,236,236,236,236,236,119,119,119,119,119,119,119,108,29, - 26,111,122,187,111,26,111,122,237,32,232,148,148,148,148,148, - 148,147,232,232,231,168,17,243,122,220,32,232,232,148,148,148, - 147,232,148,232,232,231,168,219,243,122,220,32,232,232,148,148, - 148,147,232,148,232,232,231,168,17,243,122,237,32,232,148,148, - 148,148,148,232,148,232,232,231,168,17,243,0,237,32,232,232, - 148,148,148,148,148,27,232,232,231,222,17,243,122,220,32,232, - 232,148,148,148,148,232,148,232,232,231,222,17,243,122,220,32, - 232,232,148,148,148,148,148,232,232,232,231,222,183,243,122,220, - 32,76,148,148,148,148,147,232,148,52,232,231,222,26,8,0, - 237,32,232,232,148,148,148,148,232,147,232,232,231,222,219,243, - 122,220,32,232,232,148,148,148,147,232,148,232,232,231,168,17, - 243,122,237,32,232,148,148,148,148,147,232,148,232,232,231,222, - 26,8,122,237,32,232,148,148,148,148,148,232,232,76,232,231, - 222,26,211,122,237,32,232,148,148,148,148,148,232,148,232,232, - 231,222,26,243,122,237,32,232,148,148,148,148,148,148,147,52, - 232,231,222,26,243,122,237,32,232,148,148,148,148,147,148,148, - 232,232,231,168,17,243,122,237,32,232,148,148,148,148,148,232, - 148,232,232,231,222,26,8,122,237,32,232,148,148,148,148,147, - 232,147,232,232,231,168,17,243,122,237,32,232,148,148,148,148, - 148,148,27,232,232,231,222,219,211,141,219,187,132,150,235,114, - 244,144,244,244,244,244,244,244,244,244,244,36,244,36,244,36, - 244,36,244,36,36,244,36,36,244,36,36,36,36,36,36,244, - 36,36,244,105,36,36,105,36,36,36,105,36,36,36,36,36, - 36,36,105,36,36,36,105,105,36,105,36,36,105,105,105,36, - 39,39,207,39,207,207,207,207,207,207,181,184,181,207,207,39, - 207,207,89,207,89,89,236,89,240,108,89,207,207,39,181,39, - 39,181,207,89,207,181,58,181,236,119,89,89,89,181,89,207, - 114,89,39,89,207,207,89,89,89,207,207,207,207,89,89,89, - 89,89,236,89,236,119,236,181,236,119,119,119,119,119,119,119, - 236,236,119,236,89,236,119,89,89,119,119,119,119,89,236,119, - 119,89,89,119,236,236,119,89,207,236,236,236,119,119,119,119, - 236,119,236,236,236,89,89,119,236,119,236,89,89,89,236,236, - 119,236,89,119,236,236,89,236,236,236,236,119,58,236,119,236, - 58,236,236,236,236,236,119,236,119,236,153,236,236,236,236,236, - 236,236,159,236,236,236,119,89,236,89,89,89,236,89,89,236, - 119,119,119,119,119,119,119,89,89,119,119,119,119,119,108,34, - 26,111,122,109,166,187,166,42,138,117,193,193,157,157,189,189, - 157,157,193,32,70,31,26,109,122,138,117,193,157,157,157,189, - 189,189,193,193,32,70,31,219,109,122,138,117,193,157,157,157, - 189,189,157,193,193,32,70,228,219,109,42,138,117,193,193,157, - 157,189,189,157,193,193,32,70,228,26,211,122,138,117,193,157, - 157,157,189,189,157,157,193,32,70,31,26,109,0,138,117,193, - 193,157,157,189,189,157,193,193,32,70,31,26,109,0,138,117, - 193,157,157,157,189,157,189,193,193,32,70,31,26,109,122,138, - 117,193,193,157,157,189,189,157,193,193,32,70,31,26,211,122, - 138,117,193,193,157,157,189,189,157,157,193,32,70,31,26,109, - 122,138,117,193,157,157,157,189,189,157,193,157,32,70,228,26, - 109,42,138,117,193,157,157,157,189,189,157,193,193,32,70,31, - 17,211,42,138,117,193,193,157,157,189,189,157,193,193,32,70, - 31,17,243,122,138,117,193,193,157,157,189,189,157,193,193,32, - 70,31,17,109,42,138,117,193,193,157,157,189,189,189,193,193, - 32,70,31,17,109,42,138,117,193,157,157,157,189,189,157,193, - 193,32,70,31,26,109,42,138,117,193,193,157,157,189,189,157, - 193,193,32,70,31,17,109,42,138,117,193,157,157,157,189,189, - 189,193,193,32,70,228,26,211,122,138,117,193,157,157,157,189, - 189,157,157,193,32,70,31,26,109,111,219,187,166,141,145,114, - 244,144,244,244,244,144,244,244,244,244,244,244,244,36,244,36, - 244,36,36,244,36,36,244,36,36,244,36,36,244,36,36,36, - 36,36,36,36,36,36,36,105,36,36,36,36,105,36,36,105, - 36,36,36,36,105,36,105,36,105,36,36,36,36,36,36,36, - 89,207,207,207,39,207,207,207,207,188,207,153,240,89,207,181, - 207,181,207,89,89,207,89,181,240,83,240,181,207,39,89,89, - 207,89,207,89,236,58,184,240,240,119,89,89,89,207,207,89, - 39,181,207,89,89,89,89,207,207,39,89,89,207,89,207,89, - 236,89,236,89,236,236,236,236,236,119,236,89,236,119,119,119, - 119,236,119,119,236,89,119,119,119,119,119,119,119,119,119,119, - 119,119,119,119,119,119,119,119,89,89,119,236,181,236,236,119, - 89,236,236,236,119,236,236,89,236,236,236,236,236,119,89,89, - 89,236,89,236,89,236,119,236,236,236,236,236,236,236,119,236, - 119,119,119,236,236,236,236,236,236,236,236,153,184,236,236,236, - 236,89,119,89,236,89,236,89,236,236,236,119,236,119,236,236, - 236,236,236,236,236,236,119,119,89,119,119,119,119,119,108,142, - 26,109,162,187,187,187,187,0,226,87,18,72,242,30,86,13, - 30,242,21,18,18,47,26,12,122,226,87,21,87,156,30,86, - 13,30,242,18,33,18,59,26,8,122,226,87,21,72,242,30, - 13,13,30,242,18,33,18,75,26,12,122,226,87,18,21,156, - 30,86,13,30,242,18,18,79,47,26,8,0,226,87,21,87, - 156,30,86,13,30,242,21,18,18,59,26,8,0,226,87,18, - 72,242,30,86,13,30,242,21,18,18,59,26,8,0,226,87, - 21,87,156,30,13,13,30,72,18,18,18,59,26,8,122,226, - 87,21,21,242,30,13,13,30,242,21,18,18,59,26,8,0, - 226,87,18,72,242,30,86,13,30,242,18,18,18,59,26,8, - 122,226,87,21,72,242,30,13,13,30,242,21,18,79,47,26, - 12,122,226,87,21,72,156,43,13,13,30,242,18,18,18,224, - 17,12,122,226,87,18,72,242,30,86,13,30,242,18,18,18, - 59,26,8,122,226,87,18,72,242,30,86,13,30,242,18,18, - 18,59,26,12,122,226,87,21,21,156,30,13,13,30,242,21, - 18,18,59,26,12,122,226,87,21,72,156,43,13,13,30,242, - 18,33,18,59,26,8,0,226,87,18,72,242,30,13,13,30, - 242,21,18,18,224,12,12,122,226,87,21,72,156,30,86,13, - 30,242,21,18,18,59,26,12,122,226,87,21,87,156,30,86, - 13,30,242,21,18,18,59,17,243,111,219,187,132,150,145,114, - 144,244,244,144,244,244,244,244,244,244,120,244,36,244,244,244, - 36,244,36,244,36,244,36,36,36,36,36,36,36,36,36,36, - 244,36,36,36,36,36,36,36,36,105,36,105,36,36,36,36, - 105,36,105,36,36,36,36,105,36,105,105,36,36,105,105,36, - 207,39,181,207,181,207,207,181,207,207,207,236,181,108,181,207, - 207,89,89,89,236,181,236,236,240,83,161,207,181,89,89,89, - 89,207,207,236,236,181,240,108,181,119,89,89,89,89,89,89, - 119,89,89,236,236,181,119,89,89,89,89,207,89,207,89,89, - 89,119,236,181,119,89,236,89,236,236,119,119,119,89,236,236, - 89,119,89,236,119,119,236,119,119,119,119,89,119,181,89,119, - 119,119,89,119,119,119,119,207,236,236,236,119,236,236,89,236, - 236,89,89,119,236,236,89,119,236,236,89,236,236,89,89,236, - 236,89,236,89,236,119,89,236,236,119,236,119,236,119,236,119, - 236,236,236,58,236,236,119,236,236,58,236,236,236,58,58,236, - 89,236,89,236,89,89,89,236,119,89,89,89,89,89,89,119, - 236,89,119,119,89,89,89,89,119,89,89,119,119,119,108,29, - 26,187,183,109,126,26,166,0,203,179,250,86,149,146,118,51, - 146,86,250,250,138,111,12,211,0,40,179,250,86,179,146,146, - 51,146,86,250,250,28,111,17,243,0,40,23,250,86,149,146, - 136,118,149,86,250,250,28,111,12,211,0,203,179,250,86,149, - 146,146,118,149,86,86,86,28,111,17,243,0,40,23,250,86, - 179,146,146,51,149,86,250,250,28,111,12,243,0,203,179,250, - 86,149,146,146,118,149,86,250,250,28,111,187,243,0,40,179, - 250,86,179,176,146,51,146,86,86,250,28,111,12,243,0,40, - 179,250,86,149,146,136,51,146,86,250,250,28,111,17,243,0, - 203,179,250,86,149,146,118,51,146,86,86,250,28,111,17,243, - 0,40,23,250,86,179,146,136,51,146,86,86,250,28,111,12, - 211,0,40,23,250,86,179,149,51,51,149,86,86,250,28,61, - 26,211,0,40,179,250,86,149,146,118,51,146,86,86,86,28, - 111,17,243,0,40,179,250,86,149,146,118,51,149,86,86,250, - 28,111,12,211,0,40,86,250,86,179,176,51,51,149,86,250, - 250,28,111,12,211,0,40,23,250,86,149,146,146,51,149,86, - 250,250,28,109,17,243,0,40,179,250,86,179,149,51,51,149, - 86,250,250,28,61,26,211,0,40,23,250,86,179,146,146,51, - 149,86,250,250,28,111,12,211,0,40,23,250,86,179,146,146, - 51,146,86,250,250,28,111,26,243,243,219,187,150,132,145,114, - 244,144,244,244,244,244,244,244,244,120,244,244,36,244,36,244, - 36,244,36,244,36,36,36,244,36,244,36,36,36,36,36,36, - 36,36,36,36,36,36,105,36,36,36,36,36,105,105,105,36, - 36,36,36,36,105,36,36,105,36,105,36,36,36,36,36,36, - 207,207,207,39,181,39,207,207,207,207,207,207,236,240,83,108, - 207,89,181,236,236,119,119,181,240,83,161,108,119,119,181,89, - 181,119,89,181,184,240,83,161,236,119,181,236,89,89,89,89, - 119,181,119,240,58,58,236,89,207,207,89,207,89,207,207,236, - 89,119,236,236,119,119,119,119,119,119,58,119,119,119,119,119, - 236,236,119,89,236,119,89,236,89,89,119,119,236,119,89,236, - 236,119,119,119,89,89,119,236,119,236,89,119,119,119,119,89, - 119,119,236,89,119,119,236,236,89,236,236,89,236,236,89,89, - 236,89,236,89,236,236,119,89,236,236,236,119,236,236,236,119, - 236,58,236,58,236,236,119,119,236,58,119,236,236,236,236,236, - 89,143,89,89,127,89,89,89,236,89,119,119,236,119,89,89, - 119,89,89,119,236,119,89,89,119,119,89,119,119,119,108,29, - 26,187,162,150,126,26,187,0,40,32,157,189,189,189,189,189, - 189,189,157,193,128,61,219,243,0,40,32,157,189,189,189,189, - 189,189,189,157,85,128,61,42,243,0,40,32,157,189,189,189, - 189,189,189,189,157,85,128,61,219,243,0,40,32,157,189,189, - 189,189,189,189,189,157,85,128,61,42,243,0,40,32,157,189, - 189,189,189,189,189,189,157,85,128,61,26,243,0,40,32,157, - 189,189,189,189,189,189,189,157,85,128,61,26,243,0,40,32, - 157,189,189,189,189,189,189,189,157,85,128,61,42,243,0,40, - 32,157,189,189,189,189,189,189,189,157,85,128,61,26,243,0, - 40,32,157,189,189,189,189,189,189,189,157,85,128,61,26,243, - 0,40,32,157,189,189,189,189,189,189,189,157,193,128,61,219, - 243,0,40,32,157,189,189,189,189,147,189,189,157,85,204,61, - 219,243,0,40,32,157,189,189,189,189,147,189,189,157,85,128, - 61,42,243,0,40,32,157,189,189,189,189,147,189,189,157,85, - 128,61,219,243,0,40,32,157,189,189,189,189,189,189,189,157, - 85,128,61,219,243,0,40,32,157,189,189,189,189,189,189,189, - 157,85,128,61,42,243,0,40,32,157,189,189,189,189,189,189, - 189,157,85,204,61,219,243,0,40,32,157,189,189,189,189,189, - 189,189,157,85,128,61,183,243,0,40,32,157,189,189,189,189, - 189,189,189,157,85,128,61,219,182,150,26,187,150,132,145,114, - 144,244,144,244,244,244,244,244,244,120,244,120,244,36,36,36, - 244,36,36,36,244,36,244,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,105,36,36,36,36,36,36,105, - 36,36,36,36,36,105,36,36,36,105,105,36,105,36,105,105, - 181,207,188,181,207,207,39,207,39,207,181,89,89,181,108,252, - 184,207,236,119,181,119,119,58,119,108,161,247,240,89,236,119, - 236,236,58,236,108,108,161,83,119,236,236,119,236,181,89,236, - 119,58,240,108,240,119,236,236,89,89,207,89,89,89,236,207, - 207,236,58,89,89,89,89,89,89,89,119,236,236,89,236,89, - 89,236,89,119,119,89,119,119,236,119,119,89,119,119,119,119, - 119,89,89,236,119,236,89,236,89,236,236,89,236,89,236,119, - 236,236,89,236,89,236,236,89,236,236,236,236,89,236,89,236, - 89,89,207,89,89,89,89,119,89,236,89,236,236,119,119,236, - 58,236,119,236,119,236,236,236,89,236,207,89,89,89,89,89, - 236,89,89,89,89,89,89,89,89,236,89,89,89,89,89,119, - 89,236,119,236,119,236,119,89,119,119,119,119,119,119,108,29, - 26,111,122,109,111,42,126,0,40,45,232,76,76,76,148,148, - 148,148,52,198,195,91,122,109,0,40,45,52,232,148,148,148, - 147,148,148,52,27,195,91,78,211,0,40,45,52,76,148,76, - 148,147,148,232,52,27,195,91,122,109,0,40,45,232,76,148, - 148,148,147,148,232,52,27,195,91,78,211,0,40,45,52,232, - 148,148,148,147,148,232,52,27,230,91,162,109,0,40,45,52, - 76,148,148,148,147,148,232,52,27,195,91,162,211,0,40,45, - 52,232,148,148,148,148,148,232,52,198,195,91,162,211,0,40, - 53,52,76,148,76,232,148,148,232,52,27,195,91,162,211,0, - 40,53,52,76,76,76,148,148,148,232,76,198,195,91,162,211, - 0,40,45,232,232,148,76,232,148,148,232,52,198,195,91,122, - 109,0,40,53,52,76,148,76,148,147,148,232,52,27,230,91, - 122,211,0,40,45,52,76,76,148,148,147,148,232,52,27,230, - 91,78,211,0,40,45,52,76,76,148,148,147,148,232,52,27, - 230,91,122,109,0,40,53,52,76,76,232,148,147,148,232,52, - 27,195,91,122,211,0,40,45,52,76,148,148,148,147,148,148, - 52,185,195,91,162,109,0,40,53,52,232,148,76,148,148,148, - 232,52,27,230,91,122,211,0,40,45,52,232,148,148,148,147, - 148,232,52,27,195,91,122,211,0,40,45,52,76,148,148,148, - 148,148,232,52,27,195,91,122,243,109,187,187,132,215,199,114, - 144,244,244,71,244,244,244,244,244,244,244,244,244,244,244,36, - 244,36,244,36,244,36,36,36,36,244,36,36,36,36,36,36, - 36,36,36,36,36,105,36,36,36,105,36,36,105,36,105,36, - 105,36,105,36,36,36,105,105,36,36,105,36,36,105,36,36, - 207,207,89,89,89,181,89,181,89,207,181,188,236,89,236,108, - 176,240,89,236,119,181,58,240,181,83,161,108,161,161,207,119, - 119,236,240,119,240,161,83,161,236,58,119,119,236,119,119,58, - 184,108,83,108,184,119,236,236,236,89,89,236,89,89,119,119, - 89,236,236,236,119,119,119,119,119,89,236,236,119,236,236,119, - 119,236,236,236,119,236,89,119,89,89,236,236,236,236,236,89, - 119,236,236,89,236,236,236,236,119,236,236,236,236,119,236,236, - 89,236,236,236,236,89,236,89,89,89,236,236,89,236,207,89, - 89,89,207,207,89,89,89,236,89,236,89,236,236,236,119,236, - 236,236,236,236,119,89,89,236,89,236,89,236,89,236,89,89, - 89,89,89,89,89,89,89,89,89,89,236,89,89,89,89,89, - 119,89,119,89,119,236,119,236,119,119,119,119,119,119,108,29, - 42,111,162,111,111,183,187,0,40,204,27,76,148,148,147,147, - 148,76,232,198,230,26,26,243,0,212,170,52,52,232,232,148, - 147,148,232,27,198,230,26,26,243,0,40,170,52,52,148,232, - 148,147,147,76,232,198,230,26,26,243,0,40,170,52,52,232, - 232,147,148,148,76,232,198,230,26,42,8,0,212,170,52,52, - 232,232,148,147,147,76,27,198,230,26,26,8,0,40,170,52, - 232,232,232,147,148,148,76,232,198,230,26,26,243,0,212,170, - 9,52,232,232,147,148,147,76,232,185,230,26,26,211,0,40, - 170,52,52,232,232,147,147,148,76,232,198,230,26,26,243,0, - 40,170,52,232,148,148,147,147,147,76,232,185,230,26,26,243, - 0,212,170,9,52,148,232,147,147,147,76,232,185,230,26,26, - 243,0,212,170,52,76,148,148,147,147,147,76,27,185,230,26, - 26,243,0,40,170,52,76,232,148,147,148,148,76,27,198,230, - 91,42,243,0,40,170,52,76,232,148,147,148,147,76,27,198, - 230,26,26,211,0,40,170,52,232,232,232,148,147,147,76,232, - 198,230,26,42,243,0,212,170,52,232,232,232,148,147,148,76, - 232,198,230,26,26,8,0,40,170,52,52,232,232,148,148,148, - 76,27,185,230,26,26,243,0,40,170,52,52,232,232,148,147, - 148,76,232,198,230,26,42,8,0,212,170,52,232,232,148,147, - 147,148,76,232,198,230,26,26,211,254,219,187,150,17,225,114, - 244,244,144,244,244,244,244,244,120,244,120,36,244,36,36,36, - 244,36,244,36,36,244,36,244,105,36,36,244,36,36,105,36, - 36,36,36,36,36,36,36,105,36,105,36,105,36,36,105,36, - 36,36,36,36,36,36,105,36,105,36,105,36,36,36,105,36, - 181,89,207,181,89,236,207,207,207,207,89,236,236,236,89,181, - 161,106,207,89,58,119,119,240,240,108,176,240,240,161,83,181, - 240,119,119,108,83,176,240,161,236,181,58,58,184,181,240,58, - 240,83,83,108,240,58,236,181,236,236,207,207,236,236,89,236, - 58,236,236,119,236,89,89,89,236,236,119,119,236,119,236,236, - 236,236,236,119,89,236,89,236,236,236,119,119,236,89,236,119, - 236,119,236,236,236,236,119,236,236,119,119,89,236,89,236,236, - 236,236,236,236,89,236,236,236,236,236,89,207,236,89,89,236, - 236,89,89,89,89,236,89,89,89,89,236,89,89,119,236,89, - 89,89,119,236,236,236,236,89,236,89,236,89,236,89,89,207, - 207,89,236,89,127,89,236,89,119,236,89,119,236,236,236,236, - 89,89,236,119,89,119,89,89,89,119,119,119,119,119,108,29, - 26,111,122,150,224,42,163,0,212,98,165,45,53,53,194,194, - 194,45,53,165,230,91,122,187,0,40,98,165,45,53,194,194, - 194,194,45,45,165,230,91,162,187,0,212,98,45,45,45,194, - 194,194,194,98,45,165,230,91,122,187,0,212,98,165,45,53, - 194,194,194,32,45,53,165,230,91,162,187,0,40,98,165,45, - 53,194,194,194,194,45,53,165,230,91,122,187,0,212,98,165, - 45,45,194,194,194,194,98,53,165,230,91,122,187,0,40,98, - 165,45,53,194,194,194,194,45,53,165,230,91,0,12,0,37, - 98,165,45,53,194,194,194,194,98,45,165,230,91,122,187,0, - 37,98,165,45,53,53,194,194,194,45,53,165,230,91,122,187, - 0,40,98,45,45,53,194,194,194,194,45,45,165,230,91,78, - 187,0,203,98,45,45,53,194,194,194,194,45,53,165,230,91, - 122,187,0,212,98,45,45,53,194,194,194,32,45,53,165,230, - 91,122,187,0,212,98,45,45,53,194,194,194,194,45,53,165, - 230,91,122,12,0,37,98,165,45,53,194,194,194,194,45,45, - 165,230,91,122,187,0,40,98,165,45,53,194,194,194,194,45, - 53,165,230,91,78,187,0,212,98,165,45,53,53,32,194,194, - 45,45,165,230,91,122,187,0,212,98,165,45,45,194,194,194, - 194,98,194,231,230,91,122,187,0,40,98,165,45,45,53,194, - 194,194,98,45,165,230,91,162,109,109,166,187,150,219,225,114, - 144,244,244,71,244,244,244,120,244,120,244,244,36,244,244,36, - 244,36,36,244,36,36,36,36,244,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,105,36,36,36,105,36,105,36, - 105,36,105,105,36,36,36,36,105,36,105,36,105,105,36,36, - 207,207,207,236,89,181,236,181,207,236,181,236,236,181,236,236, - 58,252,106,89,181,108,119,119,108,108,106,108,184,108,176,108, - 119,181,108,83,176,83,240,176,184,236,58,58,184,58,240,240, - 83,161,108,240,240,119,236,236,89,236,89,89,236,236,236,89, - 119,236,236,236,236,119,236,89,119,89,89,236,89,236,236,236, - 236,236,236,58,236,236,236,89,236,89,236,89,236,236,236,236, - 89,119,236,236,236,89,236,236,236,236,119,89,236,89,236,236, - 58,119,236,58,236,119,236,89,236,236,236,89,236,236,89,89, - 236,89,89,89,89,236,89,236,236,89,236,236,89,119,236,119, - 119,89,119,89,236,119,119,89,236,89,236,207,207,236,89,89, - 207,89,89,119,236,89,89,89,89,236,89,119,119,119,119,143, - 119,119,236,236,89,236,119,119,236,119,119,119,119,119,108,29, - 219,111,78,111,109,183,224,0,162,31,251,123,167,79,79,220, - 79,167,123,123,168,26,26,211,0,162,251,123,123,103,167,79, - 79,167,167,123,251,206,12,26,211,0,162,251,123,123,123,79, - 79,79,79,167,123,251,206,187,42,211,0,162,251,123,123,167, - 79,79,79,167,167,123,123,168,17,26,211,0,162,251,123,123, - 167,79,79,79,79,167,123,173,168,187,42,211,0,162,251,123, - 123,167,79,79,220,79,167,123,251,206,187,26,211,0,162,251, - 123,123,123,79,79,79,79,167,123,228,73,187,26,211,221,162, - 251,123,123,103,79,79,79,79,79,123,251,206,187,26,211,221, - 0,251,123,123,167,55,79,79,79,167,123,228,206,12,42,211, - 0,162,31,251,123,123,79,79,79,79,167,123,123,168,26,26, - 211,0,162,31,251,123,167,55,79,79,79,167,123,228,168,26, - 26,211,0,162,31,251,123,167,79,79,79,167,167,123,173,206, - 17,42,211,0,162,31,251,123,167,79,79,79,79,79,123,228, - 73,187,26,211,221,162,251,123,123,103,167,79,79,79,167,123, - 228,73,187,26,211,0,162,251,123,123,123,79,79,220,79,167, - 123,123,168,26,26,211,0,162,251,123,123,167,55,79,220,79, - 79,123,228,206,12,42,211,0,162,251,123,123,103,167,79,220, - 79,123,167,123,168,26,26,211,0,162,251,123,123,79,167,79, - 220,79,167,123,251,206,187,42,243,109,219,187,150,132,225,114, - 244,244,244,244,244,244,244,244,244,120,120,36,244,36,36,244, - 36,244,36,244,36,244,36,36,36,244,105,36,36,36,36,36, - 36,36,36,105,36,105,105,36,36,36,105,36,36,36,36,105, - 105,36,36,36,105,36,36,36,36,105,36,105,36,105,105,105, - 89,236,181,89,236,207,207,236,236,236,236,181,236,236,58,119, - 58,83,136,176,119,119,181,108,240,83,136,83,58,240,161,106, - 108,108,83,106,161,207,240,252,83,119,240,181,119,108,240,108, - 176,161,108,108,119,240,119,236,236,89,236,236,89,89,89,236, - 236,236,119,119,119,236,119,236,236,236,236,89,236,89,89,119, - 119,119,236,236,119,119,236,236,236,236,236,236,236,89,89,89, - 236,236,236,181,89,236,119,119,119,119,236,236,236,236,89,89, - 236,236,236,236,119,236,119,236,236,89,236,236,236,119,236,236, - 119,236,58,236,236,236,236,89,236,236,236,89,236,89,119,236, - 236,119,236,236,119,236,236,236,89,236,89,236,236,89,236,159, - 236,119,119,236,119,236,119,236,236,119,236,236,236,236,119,119, - 143,236,119,119,143,119,236,119,119,119,89,119,119,119,108,29, - 26,111,78,12,224,78,109,0,0,0,0,0,0,0,0,0, - 0,0,0,0,26,132,26,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,17,26,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,17,42,243,0,0,0,0,0,0, - 0,0,0,0,0,0,0,26,17,219,12,0,0,0,0,0, - 0,0,0,0,0,0,162,0,26,17,219,243,0,0,0,0, - 0,0,0,0,0,0,0,162,0,219,17,42,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,219,132,42,12,0,0, - 0,0,0,0,0,0,0,0,0,162,0,219,17,42,150,0, - 0,0,0,0,0,0,0,0,0,0,0,0,219,17,26,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,26,132,42, - 12,0,0,0,0,0,0,0,0,0,0,0,0,0,26,132, - 42,243,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 17,42,243,0,0,0,0,0,0,122,0,0,0,0,0,0, - 219,187,42,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,219,187,42,12,0,0,0,0,0,0,0,0,0,0,0, - 0,0,26,132,183,243,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,17,26,12,0,0,0,0,0,0,0,0,0, - 0,0,0,0,26,132,219,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,17,42,109,111,42,187,150,219,145,89, - 244,244,244,244,244,244,244,120,244,244,120,244,244,36,244,36, - 36,244,36,36,36,36,244,36,36,36,244,36,36,36,36,36, - 36,36,36,36,36,105,36,105,105,36,105,105,105,105,36,36, - 36,105,105,36,36,105,105,36,36,105,36,105,36,105,36,36, - 236,236,236,236,236,181,236,181,236,236,236,181,184,58,181,184, - 58,108,161,147,161,236,119,119,108,161,136,106,58,240,108,161, - 136,83,106,148,240,240,83,176,161,119,240,108,119,108,83,161, - 176,240,240,108,240,119,119,236,236,89,89,236,236,236,89,89, - 119,89,89,236,236,236,119,236,119,89,119,89,119,236,89,236, - 236,119,119,236,236,119,58,119,236,236,236,89,236,236,236,89, - 89,89,236,236,236,89,236,89,236,119,119,89,89,236,236,89, - 236,119,236,236,119,236,236,119,236,119,58,236,236,58,236,236, - 58,236,58,119,119,236,236,236,236,236,236,119,236,236,236,119, - 236,119,119,119,119,119,236,58,236,236,119,119,58,119,236,119, - 236,236,236,236,159,236,119,159,236,159,236,119,119,236,119,119, - 159,119,119,119,143,119,119,119,119,159,119,119,159,119,108,29, - 42,111,183,109,224,183,111,42,17,26,26,26,26,42,26,219, - 219,219,219,219,17,132,183,17,42,26,26,26,26,42,183,219, - 219,219,219,219,26,17,132,219,17,42,26,26,26,26,42,42, - 26,219,219,219,219,26,17,132,42,17,42,26,26,26,26,26, - 42,26,17,219,219,219,219,17,219,219,17,42,26,26,26,26, - 42,42,26,17,219,219,219,219,17,219,42,187,42,26,26,26, - 26,26,42,26,219,219,219,219,26,17,132,219,187,42,26,26, - 26,26,42,42,26,17,219,219,219,219,26,132,219,17,42,26, - 26,26,26,42,42,26,219,219,219,219,26,17,132,42,17,42, - 26,26,26,26,42,42,26,17,219,219,219,26,17,132,219,17, - 42,26,26,219,26,42,42,26,219,219,219,219,219,17,132,219, - 17,42,17,26,26,26,42,42,26,17,17,219,219,219,187,132, - 42,17,42,26,26,26,26,26,42,26,17,219,219,219,26,17, - 132,42,17,42,26,26,26,26,42,42,26,17,219,219,219,219, - 17,132,219,17,42,26,26,26,26,26,122,26,219,219,219,219, - 219,17,132,219,17,42,26,26,26,26,42,42,26,219,219,219, - 219,219,26,219,42,187,42,26,26,219,26,42,42,26,219,219, - 219,219,26,17,132,219,17,42,26,26,219,26,42,42,26,219, - 219,219,219,219,17,219,219,17,42,26,26,26,26,26,42,26, - 219,17,219,219,26,17,219,42,12,111,219,219,150,17,225,181, - 244,244,244,71,248,244,244,244,244,120,120,36,120,244,36,36, - 36,36,244,36,244,36,36,36,36,36,105,36,36,105,36,36, - 36,36,36,105,36,36,105,36,36,105,36,36,105,36,105,105, - 36,105,105,105,36,36,36,36,105,36,36,36,105,36,105,105, - 181,236,181,184,58,184,236,218,181,236,184,236,58,240,240,240, - 240,58,83,161,189,161,240,108,240,83,136,147,184,108,83,83, - 136,136,76,83,240,108,83,106,161,240,119,108,108,108,161,76, - 83,83,108,240,119,240,236,236,236,236,207,89,236,236,58,58, - 236,119,58,119,119,119,89,119,236,119,89,236,236,89,236,119, - 236,236,236,119,58,236,236,236,119,236,119,236,89,89,89,89, - 236,236,89,119,89,236,89,236,119,89,89,236,119,89,89,236, - 119,236,119,58,236,58,58,236,58,236,236,58,236,236,184,184, - 236,58,58,184,236,58,184,236,236,119,119,236,58,236,119,236, - 58,58,236,236,236,236,236,236,236,236,236,236,236,153,236,153, - 236,159,159,159,236,159,236,236,159,236,236,159,143,159,119,159, - 159,143,159,159,119,159,143,119,236,119,119,119,119,108,108,29, - 26,111,162,109,224,42,111,26,150,12,150,17,219,17,17,8, - 150,150,12,12,187,219,26,12,26,243,12,150,17,219,17,12, - 8,150,150,12,12,187,219,42,12,26,150,12,150,219,219,17, - 12,243,243,150,12,12,187,219,26,187,26,243,12,150,17,219, - 17,17,243,150,150,12,17,187,17,42,12,26,243,12,150,17, - 219,17,17,243,150,150,12,17,187,17,42,12,26,243,12,150, - 17,219,17,12,8,150,150,12,12,17,219,42,12,26,243,12, - 150,17,219,17,17,243,243,150,12,17,150,219,26,187,26,243, - 12,150,17,219,17,12,8,12,150,12,12,17,219,26,12,26, - 243,12,150,219,219,17,17,243,150,150,12,17,187,219,42,12, - 26,243,12,12,219,219,17,17,8,150,150,12,17,187,219,26, - 187,26,150,12,150,219,219,17,17,243,150,150,12,17,17,219, - 42,187,26,243,12,150,17,219,17,17,243,243,150,12,17,17, - 17,42,187,26,243,12,150,17,219,17,12,243,12,150,150,17, - 17,219,42,187,26,243,12,150,17,219,12,12,8,150,150,12, - 12,17,219,42,12,26,243,12,150,219,219,17,17,8,150,150, - 12,12,150,17,26,12,26,243,12,17,219,219,17,17,8,12, - 150,12,17,187,219,42,12,26,150,12,17,17,219,17,17,8, - 150,150,12,12,187,17,42,12,26,243,12,150,17,219,17,12, - 243,150,150,12,12,12,17,26,187,141,26,187,150,183,225,114, - 244,244,244,120,244,244,120,120,120,244,244,244,36,36,244,36, - 244,36,36,244,36,244,36,36,36,36,105,244,36,36,36,36, - 36,36,36,36,105,36,36,36,105,36,105,36,105,36,105,36, - 105,36,36,36,105,36,105,36,36,36,105,36,36,36,36,36, - 236,218,236,184,181,184,240,184,181,236,181,236,181,58,240,108, - 108,240,83,83,136,157,161,184,83,161,136,189,108,108,66,83, - 176,189,136,207,108,66,161,106,136,240,240,83,83,161,136,176, - 247,83,108,240,89,119,119,181,236,58,236,236,181,236,119,119, - 236,236,236,236,236,58,236,89,236,236,89,89,119,89,89,119, - 236,119,236,119,58,236,58,236,236,236,119,236,236,89,236,89, - 89,236,89,119,89,236,89,89,119,236,89,89,119,89,89,89, - 236,236,236,119,58,236,236,236,236,236,236,184,184,58,236,184, - 153,153,236,184,153,236,236,58,236,236,236,236,58,236,58,58, - 236,58,58,184,236,184,58,119,236,236,236,236,58,159,58,159, - 236,236,236,58,236,153,159,236,58,159,236,159,119,159,119,159, - 119,159,119,159,236,119,159,119,159,119,119,119,119,159,108,29, - 183,187,183,109,111,42,166,26,150,17,17,17,17,17,17,243, - 150,150,17,17,12,219,26,243,219,150,17,17,17,219,12,17, - 150,150,150,150,17,17,17,26,243,219,150,12,12,17,17,17, - 26,243,150,150,150,17,12,219,26,243,219,150,17,17,17,17, - 17,17,243,150,150,12,17,17,17,26,150,219,150,17,17,17, - 17,17,26,243,150,150,12,17,17,17,42,150,219,150,17,17, - 17,17,12,17,150,150,150,150,17,12,219,26,150,219,150,17, - 17,17,17,17,26,243,150,150,12,17,12,219,26,243,219,150, - 17,17,17,17,17,17,243,12,150,150,17,12,219,26,150,219, - 150,17,150,17,17,17,26,243,150,150,150,17,12,219,26,150, - 219,150,12,12,17,17,17,17,243,150,150,12,17,12,219,26, - 243,26,150,17,17,17,17,17,26,243,150,150,12,17,12,17, - 26,243,219,150,17,17,17,17,17,17,150,150,150,150,17,17, - 17,26,243,219,150,17,17,17,17,17,26,243,12,12,12,17, - 12,17,26,243,219,150,17,17,17,219,17,17,243,150,150,17, - 12,12,219,26,150,219,150,17,12,17,17,17,17,243,150,150, - 17,17,17,219,26,243,219,150,12,12,187,17,17,17,243,12, - 150,150,17,12,219,26,243,219,150,12,17,17,17,17,17,243, - 12,150,17,17,17,17,26,150,219,150,17,17,17,17,17,26, - 243,150,150,150,219,17,219,219,12,111,219,219,141,219,192,114, - 71,244,71,244,120,244,244,244,244,120,120,36,244,36,36,36, - 36,36,36,36,36,36,36,36,36,244,36,36,105,36,105,244, - 105,36,105,36,105,105,105,105,105,36,105,36,105,36,105,36, - 105,105,105,105,105,36,105,36,36,105,36,105,105,36,36,105, - 181,58,181,58,184,181,58,240,83,247,240,184,236,181,119,181, - 108,108,108,83,176,148,157,83,108,161,136,77,83,83,83,176, - 136,147,232,176,108,108,161,106,76,240,108,108,161,136,148,161, - 161,108,240,58,58,58,236,236,58,236,58,58,236,58,236,58, - 58,119,119,119,119,236,119,119,89,89,119,236,89,236,119,236, - 119,236,119,119,119,119,236,236,119,236,89,119,89,119,89,89, - 89,89,89,236,236,119,119,119,236,89,119,236,236,119,119,119, - 119,119,119,236,119,58,58,58,58,58,184,236,236,236,184,58, - 58,58,184,236,58,184,58,236,236,236,58,184,236,184,58,236, - 58,58,58,236,184,58,153,236,58,58,58,58,236,236,236,58, - 184,184,159,153,159,58,236,159,153,236,159,119,159,236,236,159, - 119,159,159,119,159,159,236,159,236,119,159,119,119,108,108,172, - 42,126,122,224,224,42,187,219,12,17,132,17,132,150,26,150, - 12,17,150,17,17,187,26,109,219,17,17,132,17,17,12,219, - 150,17,150,17,132,17,187,219,109,219,12,219,132,219,150,150, - 219,150,17,132,17,17,17,187,26,109,219,17,17,132,17,132, - 150,219,150,17,17,150,17,17,187,26,109,219,17,17,132,17, - 150,150,17,150,17,17,150,17,17,187,26,109,219,17,17,132, - 17,132,150,26,12,17,150,17,17,17,187,26,109,219,12,17, - 132,17,150,150,219,150,17,17,150,17,17,187,26,109,219,12, - 17,132,219,132,150,26,150,150,150,17,17,17,187,26,109,219, - 12,17,219,187,150,150,219,150,17,17,12,17,17,187,26,109, - 219,12,219,132,17,132,150,26,150,17,17,150,17,17,187,26, - 109,219,12,17,132,187,150,150,219,150,17,17,150,17,17,219, - 219,109,219,17,17,132,17,132,150,219,150,17,17,12,17,17, - 187,26,109,219,12,17,132,17,150,150,219,150,150,150,150,132, - 17,187,26,109,219,17,17,132,17,150,150,26,150,12,17,150, - 132,17,187,26,109,219,12,17,132,17,132,150,26,150,12,17, - 150,17,187,187,219,243,219,12,17,132,17,132,150,26,150,150, - 17,12,17,17,187,219,109,219,12,17,132,17,132,150,26,17, - 150,17,150,17,17,187,26,109,219,17,17,132,219,150,150,219, - 150,17,150,17,17,12,187,26,109,150,183,187,132,219,199,89, - 244,244,244,120,244,120,120,244,36,244,244,36,36,244,36,244, - 36,244,36,36,36,36,36,36,36,105,36,36,36,36,105,36, - 36,36,36,36,36,36,36,105,105,105,36,105,105,105,105,36, - 105,36,105,36,36,105,36,105,36,36,36,105,36,36,36,36, - 207,236,236,236,236,58,58,181,240,83,161,161,247,108,58,236, - 240,108,108,240,83,176,189,189,161,176,76,157,161,161,161,136, - 157,161,106,170,252,240,176,106,148,240,247,161,176,77,176,161, - 240,240,240,240,240,240,240,58,58,236,236,236,236,119,236,181, - 58,236,236,236,119,236,236,119,119,89,89,236,119,236,119,119, - 58,58,58,236,58,119,119,119,236,236,89,236,89,119,119,119, - 236,236,89,119,89,236,119,119,119,89,119,89,236,89,236,119, - 236,119,119,119,58,58,58,236,58,236,58,58,58,119,236,119, - 119,236,184,58,236,236,236,58,58,236,236,58,236,236,58,58, - 236,236,58,236,236,58,184,236,236,236,236,236,58,58,236,236, - 119,236,119,236,236,58,236,58,58,236,58,58,159,159,236,159, - 119,58,159,159,119,159,236,159,119,119,159,119,119,119,108,29, - 42,183,122,109,111,42,187,219,150,17,132,219,17,150,26,150, - 150,17,12,219,12,132,26,243,219,150,17,132,219,12,12,26, - 150,17,150,17,17,17,187,26,243,219,12,17,132,219,12,17, - 26,150,12,150,150,17,17,132,26,243,219,12,17,132,219,17, - 12,26,150,150,17,150,17,17,132,26,211,219,12,17,132,219, - 17,12,26,150,150,17,150,17,17,132,26,243,219,12,17,132, - 219,17,150,219,150,17,150,150,17,12,132,26,243,219,150,17, - 132,219,17,12,26,150,150,17,17,17,17,132,26,243,219,12, - 17,132,219,17,150,219,12,219,150,150,17,17,150,26,109,219, - 150,150,132,219,17,12,26,150,150,150,150,219,12,132,26,211, - 219,150,17,132,219,17,150,26,150,150,17,12,219,12,132,26, - 243,219,150,17,132,219,17,12,26,150,150,17,17,17,187,187, - 26,243,219,12,17,132,219,17,12,26,150,150,132,150,219,17, - 132,26,243,219,12,17,132,219,17,12,219,12,219,17,12,219, - 17,132,26,243,219,12,17,132,219,17,150,26,150,150,17,17, - 219,12,132,26,211,219,12,17,132,219,17,150,26,150,150,17, - 12,17,17,187,26,109,219,150,17,132,219,17,150,219,17,150, - 150,150,219,12,17,26,243,219,150,17,132,219,17,150,219,12, - 150,17,12,17,17,132,26,211,219,12,17,150,219,17,12,26, - 150,17,132,150,132,17,150,17,109,150,183,26,150,26,225,181, - 120,244,244,248,244,244,120,244,244,244,120,244,36,120,36,36, - 36,36,244,36,36,244,36,36,36,36,36,105,36,105,105,36, - 105,36,105,105,105,105,105,105,36,105,105,105,36,105,105,36, - 105,36,105,105,105,105,36,105,105,105,36,36,105,105,36,105, - 236,218,181,236,236,236,236,236,119,119,236,108,161,136,136,252, - 83,58,119,108,83,83,107,157,77,252,232,170,161,161,107,189, - 147,83,252,76,170,161,161,76,77,66,161,176,189,148,161,161, - 66,108,83,108,240,240,119,58,181,236,181,58,236,236,58,236, - 236,119,58,58,236,89,119,89,89,236,119,119,119,119,119,236, - 119,236,119,58,119,58,58,236,119,236,236,119,119,89,89,89, - 119,89,236,89,119,119,89,89,89,89,89,119,119,119,119,236, - 119,58,119,58,119,58,236,58,236,236,236,236,236,236,58,236, - 236,58,236,236,58,58,58,236,236,119,236,236,236,236,236,236, - 58,58,119,58,58,236,236,236,236,236,119,119,236,236,236,119, - 236,119,58,58,58,236,58,58,236,236,159,119,119,159,119,159, - 58,159,119,159,236,159,119,159,119,119,159,119,119,108,108,29, - 42,26,122,111,95,42,166,26,12,150,17,17,150,17,219,150, - 219,150,150,17,17,150,26,211,26,12,150,219,150,132,17,219, - 150,132,17,12,17,132,150,26,211,26,150,150,17,17,132,132, - 219,12,132,17,17,17,132,150,26,211,26,150,17,17,17,150, - 17,219,150,17,150,17,17,132,150,26,243,26,150,17,17,17, - 132,132,219,150,17,150,17,17,132,150,26,211,26,150,17,17, - 17,150,17,219,12,132,17,17,17,132,150,26,211,42,12,132, - 17,17,150,132,219,150,17,150,132,17,132,150,26,109,42,150, - 17,17,17,150,17,219,150,132,17,17,17,132,132,26,243,26, - 12,219,17,17,132,150,219,150,219,17,17,17,132,150,26,243, - 26,12,132,17,17,150,17,219,150,17,150,150,17,132,150,26, - 211,26,12,17,17,17,150,132,219,12,17,150,132,17,132,150, - 26,211,26,150,17,17,17,150,17,219,150,17,12,17,17,132, - 150,26,109,26,150,17,17,17,150,132,219,150,132,150,12,17, - 132,150,26,211,26,150,132,17,17,150,219,219,150,219,150,12, - 17,132,150,26,243,42,150,132,17,17,150,17,219,150,219,150, - 132,17,132,150,26,243,26,12,132,17,17,150,17,219,150,219, - 17,17,17,132,150,26,211,26,12,132,17,17,150,17,219,150, - 219,150,150,17,132,150,26,243,26,150,17,17,17,150,132,219, - 12,132,12,17,17,132,187,42,109,187,219,187,132,183,225,89, - 244,120,244,244,120,120,120,120,120,36,120,120,36,244,36,244, - 36,36,36,36,36,36,36,36,105,36,36,105,36,105,105,36, - 105,36,105,36,105,105,105,105,105,105,105,105,105,105,105,105, - 105,105,105,36,105,105,36,105,36,105,105,105,36,36,36,36, - 119,236,58,181,236,236,236,58,181,58,58,181,119,108,161,136, - 148,136,176,83,108,119,161,147,193,148,148,157,76,148,189,157, - 161,161,161,136,147,189,106,76,189,176,136,148,189,136,179,161, - 83,108,108,240,119,119,119,58,184,184,58,181,240,119,58,58, - 236,236,236,119,119,236,119,236,119,89,89,89,236,236,119,119, - 119,236,119,58,119,119,119,119,119,236,89,89,119,119,119,89, - 119,119,236,236,89,119,236,119,119,89,89,89,236,119,119,119, - 236,236,236,58,119,119,119,119,119,236,236,89,236,89,236,58, - 119,236,236,236,236,236,236,236,236,119,236,119,89,89,236,236, - 119,236,236,236,119,119,58,58,58,236,236,236,89,89,236,236, - 236,236,119,236,58,236,236,58,159,236,236,119,236,58,236,58, - 58,58,119,159,236,159,236,143,119,119,119,119,119,119,108,29, - 122,187,0,187,111,219,95,26,17,17,17,17,132,17,26,150, - 17,132,17,132,26,132,26,109,26,17,132,17,17,150,17,26, - 12,132,132,17,219,26,132,26,109,42,17,17,17,17,17,17, - 219,12,132,150,219,219,26,150,26,109,26,150,17,17,17,150, - 17,26,150,219,150,132,17,26,132,26,109,26,150,17,17,17, - 17,17,26,150,17,150,132,219,26,150,26,211,26,150,17,17, - 17,150,17,219,12,150,132,17,219,26,132,26,109,26,17,17, - 17,17,17,17,26,150,17,12,17,17,26,132,26,211,26,150, - 17,17,17,132,17,219,12,132,150,17,17,26,150,26,211,26, - 12,17,17,17,17,17,26,150,150,150,17,219,26,132,26,109, - 219,17,17,17,17,132,17,26,150,219,150,17,219,26,132,26, - 109,26,150,219,17,17,17,17,219,150,17,150,17,219,26,132, - 26,109,26,150,17,17,17,150,17,26,150,132,150,17,219,26, - 132,26,109,26,150,219,17,17,17,17,219,12,219,150,17,219, - 26,132,26,109,26,12,132,17,17,150,17,26,150,17,150,17, - 219,26,132,26,109,26,17,17,17,17,132,17,26,150,17,12, - 132,219,26,132,26,109,219,17,17,17,17,150,17,219,150,150, - 150,17,219,26,132,26,109,219,12,132,17,17,150,17,219,150, - 17,132,132,17,26,132,26,109,26,150,132,17,17,17,17,219, - 12,132,150,219,219,17,187,17,211,187,219,26,187,219,225,114, - 244,248,120,244,244,244,120,120,244,244,244,36,36,36,36,36, - 36,36,36,36,36,36,36,105,36,36,105,36,105,36,105,36, - 105,36,105,105,105,105,36,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,36,105,105,105,105,36,105, - 181,236,236,236,184,181,184,236,58,58,119,240,240,240,119,108, - 161,136,148,189,148,136,136,76,185,189,27,189,77,27,157,76, - 86,161,83,66,136,189,77,147,189,51,189,157,232,161,83,83, - 83,66,83,83,247,161,247,83,83,108,240,240,119,236,236,89, - 236,89,181,236,236,89,89,119,89,119,119,119,119,119,58,58, - 119,58,58,119,119,236,119,236,236,119,119,236,119,236,236,119, - 119,119,119,119,119,236,119,89,89,119,236,119,119,236,119,58, - 119,58,119,119,58,119,119,119,119,236,89,236,89,236,119,119, - 119,119,119,119,119,119,58,236,89,236,89,236,236,236,89,89, - 236,119,89,89,236,236,119,236,89,236,236,89,236,236,89,89, - 236,119,119,119,236,236,119,236,119,119,159,58,58,236,159,236, - 236,236,236,159,119,236,119,159,119,159,119,119,119,108,108,29, - 122,183,0,111,95,42,111,42,12,17,150,17,17,132,219,12, - 132,12,132,219,17,187,219,243,219,12,17,17,17,132,150,219, - 150,219,12,150,219,17,187,219,109,26,12,17,150,17,150,150, - 219,150,17,12,150,219,17,187,219,243,42,12,219,150,17,132, - 132,219,12,132,12,17,219,17,187,17,243,42,12,17,150,17, - 150,150,219,12,132,17,12,219,17,187,219,243,42,12,219,150, - 17,17,132,219,150,219,12,150,219,17,187,219,243,219,12,17, - 150,17,150,132,219,12,132,132,132,219,17,187,17,243,42,17, - 17,150,17,17,12,42,150,17,17,132,219,17,187,17,243,219, - 150,17,150,17,150,150,219,12,17,17,150,219,17,187,17,243, - 42,12,17,150,17,17,150,219,12,132,17,150,219,17,187,219, - 243,219,12,17,150,17,150,150,219,12,132,12,150,219,17,187, - 219,243,42,12,219,150,17,132,132,219,12,17,17,150,219,17, - 187,17,243,42,12,17,150,17,150,12,26,150,132,17,150,219, - 17,187,219,109,42,12,219,150,17,17,132,219,12,132,17,132, - 17,17,187,17,211,42,12,17,150,17,17,132,219,12,132,132, - 12,219,17,187,17,211,42,12,17,150,17,17,12,42,12,17, - 17,132,17,17,187,219,243,42,12,219,150,17,219,150,26,12, - 132,12,17,219,17,187,17,243,42,12,219,150,17,150,150,219, - 150,219,12,12,219,17,187,26,109,187,42,187,166,42,199,89, - 120,244,244,248,120,120,120,244,36,36,36,120,36,36,36,244, - 36,36,36,36,36,36,36,36,105,36,36,105,105,105,105,36, - 105,36,105,36,105,105,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,36,105,36,105,105,36, - 236,236,153,181,153,236,184,236,181,240,240,181,240,108,108,108, - 108,83,161,252,148,189,157,157,198,170,189,157,170,189,128,107, - 77,157,193,53,77,198,189,170,189,198,170,147,106,176,106,76, - 148,147,148,76,161,83,108,240,58,236,236,119,89,89,236,89, - 236,236,89,89,119,236,89,236,236,119,236,119,119,119,236,119, - 119,119,58,119,119,119,119,119,236,236,119,236,119,119,119,119, - 236,119,119,119,119,89,207,236,236,119,236,119,119,236,89,119, - 119,58,119,119,58,119,119,119,119,119,236,236,236,89,89,89, - 89,89,236,236,119,236,119,236,89,236,89,236,89,236,119,119, - 119,119,119,89,119,236,119,236,89,119,236,89,236,236,236,89, - 119,89,236,89,119,236,119,236,119,236,89,119,119,236,58,159, - 119,119,236,119,119,119,119,119,119,119,119,119,119,119,108,142, - 78,26,0,187,111,219,111,219,17,219,12,150,150,219,219,132, - 219,17,17,17,17,187,26,12,219,17,219,150,17,150,219,219, - 150,132,17,17,17,17,187,26,150,219,17,219,12,17,150,219, - 219,132,132,17,150,219,17,187,26,150,26,17,219,12,17,150, - 219,219,132,132,17,17,17,17,187,26,150,42,17,219,12,17, - 150,219,219,132,132,17,132,219,17,187,26,150,26,17,219,12, - 150,17,17,219,132,132,17,17,17,17,187,26,12,219,17,219, - 12,17,150,219,219,132,17,17,17,17,17,187,42,150,42,12, - 219,12,150,150,219,219,150,132,17,150,219,17,187,42,187,42, - 150,219,17,17,150,219,219,132,132,17,17,17,17,187,26,12, - 219,17,219,12,150,150,219,219,132,17,17,17,17,17,187,26, - 12,42,17,219,12,17,150,219,219,132,219,17,150,219,17,187, - 26,150,26,17,219,12,17,150,219,219,132,132,17,150,219,17, - 187,26,150,26,17,219,12,17,150,219,219,132,132,17,17,17, - 17,187,26,150,219,17,219,12,150,150,219,219,132,132,17,17, - 17,17,187,42,150,219,17,219,12,150,150,219,219,132,17,17, - 132,219,17,187,42,187,219,17,219,12,150,150,219,219,132,132, - 17,17,17,17,187,26,12,219,17,219,12,150,17,17,219,132, - 219,17,17,17,17,187,26,150,42,17,219,12,17,150,219,219, - 150,132,132,150,219,17,150,26,111,187,183,187,166,219,192,181, - 36,120,244,120,120,120,120,120,120,244,120,244,36,120,105,36, - 36,36,36,36,105,36,105,105,36,105,36,105,105,36,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,105,208,105, - 105,105,105,105,105,105,105,105,105,105,36,105,105,105,36,105, - 153,236,58,153,181,181,236,184,58,119,119,108,119,108,108,83, - 83,83,108,114,83,252,136,189,6,157,157,157,157,157,198,189, - 6,90,19,65,204,77,189,170,157,157,77,147,157,85,193,189, - 148,106,176,161,161,161,83,240,58,58,119,236,236,236,89,236, - 89,89,89,236,236,89,89,119,119,89,119,119,236,236,119,58, - 119,119,119,58,119,236,119,119,119,181,119,119,236,181,236,236, - 119,236,181,119,89,236,236,89,236,89,119,89,119,119,119,119, - 119,119,119,119,119,58,236,236,119,236,119,119,119,236,119,119, - 119,236,119,119,236,119,236,89,236,89,89,89,119,119,89,89, - 89,236,89,119,119,119,236,119,236,89,89,236,89,89,119,236, - 89,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 119,159,119,159,119,159,119,119,159,119,119,119,119,119,108,29, - 78,187,122,224,111,42,95,42,17,26,17,17,26,17,219,17, - 12,17,219,219,17,12,26,150,26,26,219,26,17,26,17,26, - 219,17,17,132,219,17,12,26,150,42,17,26,17,17,26,17, - 26,219,17,17,219,219,17,12,26,150,219,17,26,17,12,26, - 17,219,219,17,17,132,219,17,12,26,150,219,17,26,17,17, - 26,17,219,17,17,17,219,219,12,12,42,150,219,17,26,17, - 17,17,17,26,17,17,219,132,219,17,12,26,150,42,17,26, - 17,17,26,17,219,17,17,17,132,219,17,12,26,150,219,219, - 26,17,219,12,17,26,17,17,17,219,219,17,17,26,150,26, - 26,26,17,17,26,17,219,17,17,219,132,219,12,17,26,150, - 42,17,26,17,17,26,17,219,219,12,219,132,219,17,150,26, - 150,219,219,26,17,17,26,17,219,17,17,17,219,219,17,12, - 26,150,219,17,26,17,12,26,17,219,17,17,17,219,219,17, - 12,26,150,219,17,26,17,17,17,17,26,17,12,219,132,219, - 17,12,26,150,26,26,26,17,17,26,17,219,219,12,219,132, - 219,17,17,26,150,42,17,26,17,17,26,17,219,17,17,17, - 219,219,17,12,26,150,42,17,26,17,17,17,17,219,17,12, - 219,132,219,17,12,26,150,26,26,26,17,17,17,17,219,17, - 12,219,132,219,17,12,26,150,219,26,26,17,17,26,17,26, - 17,17,219,219,26,17,187,26,150,187,42,219,132,221,199,89, - 244,120,120,120,120,120,120,120,120,36,36,36,36,36,36,36, - 36,36,36,36,105,36,36,105,105,36,105,105,105,105,105,36, - 105,105,105,105,105,105,105,105,105,105,105,208,105,105,208,105, - 208,105,208,105,105,105,105,105,105,105,105,36,105,105,36,105, - 58,236,181,184,153,184,181,184,181,184,240,108,108,108,108,108, - 83,161,57,223,173,87,250,232,170,157,157,157,53,157,53,195, - 93,249,249,41,11,189,157,157,170,157,157,170,118,156,134,252, - 252,161,247,83,108,236,140,252,108,58,236,119,236,89,89,236, - 207,236,89,89,236,236,236,89,119,119,89,119,119,119,119,119, - 119,119,119,58,119,58,119,236,236,89,236,119,236,119,119,119, - 181,236,236,119,119,89,236,236,119,119,119,89,119,119,236,119, - 119,119,119,119,119,119,58,119,119,236,89,236,89,89,89,89, - 119,89,119,119,89,119,236,119,89,236,89,89,89,236,236,89, - 119,89,236,89,89,119,236,119,236,89,89,89,89,89,89,236, - 89,89,89,89,119,89,89,236,89,119,119,119,119,119,119,119, - 119,119,236,119,236,119,119,119,119,119,119,119,159,119,108,47, - 183,187,122,224,183,42,111,122,42,122,122,0,42,42,122,122, - 122,122,0,122,42,42,42,187,122,42,122,122,122,122,42,122, - 122,122,122,0,122,42,42,42,187,122,42,122,122,0,122,42, - 122,122,122,122,122,122,42,42,42,187,0,42,122,122,0,122, - 26,122,122,122,122,0,0,183,42,42,187,0,42,122,122,0, - 122,42,0,122,42,122,0,0,183,42,42,187,0,42,122,122, - 0,122,42,122,122,122,122,0,122,42,42,42,187,122,42,122, - 122,0,122,42,122,122,122,122,0,122,42,42,42,187,122,42, - 122,122,0,122,42,0,122,122,122,0,122,42,42,42,187,122, - 42,122,122,0,122,42,122,122,122,122,0,0,183,42,183,187, - 122,42,122,122,0,122,42,122,122,122,122,0,122,42,78,42, - 187,122,42,122,122,0,122,42,122,122,122,122,122,122,42,42, - 42,187,0,42,122,122,0,122,42,122,122,122,122,122,122,42, - 78,42,187,0,42,122,122,0,122,183,0,122,122,122,0,122, - 42,42,42,187,122,42,122,122,0,122,42,122,122,42,0,0, - 122,42,42,42,187,122,42,122,122,0,42,42,122,122,42,122, - 122,122,42,42,219,187,0,42,122,0,0,122,42,0,122,122, - 122,0,122,42,42,183,187,122,42,122,122,0,122,42,122,122, - 122,122,0,122,42,42,42,187,122,42,122,122,0,122,42,122, - 122,122,122,122,122,42,42,42,187,183,162,122,42,122,225,114, - 244,120,248,244,120,120,120,120,120,120,120,36,36,36,36,36, - 105,36,36,36,105,105,36,105,105,105,105,36,105,105,105,105, - 105,105,105,105,105,105,105,105,105,208,105,208,105,208,105,208, - 36,105,105,105,105,105,105,105,36,36,36,36,36,36,105,36, - 181,184,184,181,240,184,184,240,240,108,181,108,108,108,108,108, - 83,161,251,176,185,53,45,204,189,170,170,157,157,157,189,170, - 9,11,13,195,198,53,157,157,157,170,157,189,198,146,10,91, - 59,64,47,64,44,64,109,152,161,83,58,58,89,236,89,89, - 89,207,89,236,89,89,236,236,236,89,119,89,119,236,119,119, - 119,119,236,119,119,119,236,89,119,119,119,236,119,89,89,89, - 236,119,119,119,89,236,236,119,236,236,236,119,236,236,119,119, - 119,119,119,119,119,58,119,236,236,119,119,119,119,236,236,89, - 89,119,89,89,119,89,119,89,236,89,89,236,236,89,89,119, - 89,119,119,119,119,89,119,89,89,236,89,89,89,236,236,89, - 89,89,89,89,89,119,119,119,119,89,236,119,89,89,119,119, - 159,119,119,236,119,236,89,119,159,119,119,119,119,119,108,142, - 122,78,0,187,78,221,183,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,183,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,183,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,183,78,78,0,0,0,0,199,119, - 25,120,120,120,120,120,120,120,120,120,36,36,36,36,36,36, - 36,105,36,36,36,105,105,105,105,36,105,36,105,105,105,105, - 36,105,105,105,105,105,105,105,105,105,208,105,208,105,105,105, - 208,105,105,105,105,105,105,36,36,36,36,36,36,36,36,36, - 58,184,58,58,240,181,184,240,181,108,119,240,108,108,161,252, - 76,189,185,116,118,9,9,118,52,198,189,170,157,53,170,90, - 170,53,231,6,195,65,77,170,157,170,157,204,189,32,198,242, - 229,235,234,152,186,245,245,12,199,108,108,240,89,236,207,236, - 89,89,207,236,236,119,236,119,119,236,119,236,119,89,119,119, - 236,119,119,119,119,119,58,236,236,89,119,89,119,119,119,119, - 89,89,236,236,236,89,236,89,236,119,89,119,119,119,236,119, - 236,119,236,119,119,119,119,119,89,236,89,236,119,119,119,89, - 89,119,236,89,236,89,89,89,89,89,89,89,207,89,89,119, - 89,89,89,236,119,89,236,236,89,236,89,89,89,89,89,236, - 119,119,119,119,236,89,89,236,236,89,89,119,119,236,119,236, - 236,119,119,119,119,119,119,119,119,119,119,119,119,119,108,47, - 42,187,221,187,183,0,183,0,14,216,41,62,62,62,62,62, - 62,62,62,62,41,75,26,12,0,14,216,62,41,62,62,62, - 62,62,62,62,62,41,59,26,17,0,14,216,41,62,62,62, - 62,62,62,62,62,62,41,75,26,12,0,14,216,41,62,62, - 62,62,62,62,62,62,62,41,75,26,12,0,14,216,41,62, - 62,62,62,62,62,62,62,62,41,75,26,12,0,14,216,62, - 41,62,62,62,62,62,62,62,62,41,75,26,12,0,14,216, - 41,62,62,62,62,62,62,62,62,62,41,75,26,12,0,14, - 216,62,41,62,62,62,62,62,62,62,62,41,75,26,12,0, - 14,216,41,62,62,62,62,62,62,62,62,62,41,75,26,12, - 0,14,216,41,62,62,62,62,62,62,62,62,62,62,35,26, - 12,0,14,216,41,62,62,62,249,62,62,62,62,62,41,75, - 26,12,0,14,216,41,62,62,62,62,62,62,62,62,62,41, - 75,26,12,0,14,216,62,41,62,62,249,62,62,62,62,62, - 41,59,26,17,0,14,216,41,62,62,62,62,62,62,62,62, - 62,41,59,26,17,0,14,216,41,62,62,62,62,62,62,62, - 62,62,41,75,26,12,0,14,216,62,41,62,62,62,62,62, - 62,62,62,41,75,26,12,0,14,216,62,41,62,62,62,62, - 62,62,62,62,41,75,26,12,0,14,216,41,62,62,62,62, - 62,62,62,62,62,41,75,26,187,42,42,26,187,42,225,114, - 120,120,120,120,120,120,120,120,120,120,36,36,36,36,36,36, - 36,36,36,105,36,36,105,36,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,208,105,208,105,105,105,105,105,105, - 105,105,105,105,105,36,36,36,105,36,36,36,36,36,36,36, - 184,181,58,240,240,108,240,58,240,108,83,161,106,136,136,76, - 136,106,106,161,228,22,168,220,118,204,170,128,157,189,185,6, - 93,23,9,185,9,116,189,170,77,157,189,53,23,86,195,45, - 204,118,228,44,67,99,254,8,7,234,105,83,240,89,89,89, - 89,89,89,89,236,236,119,236,236,89,236,119,236,58,236,236, - 119,236,119,119,236,58,119,119,89,119,89,236,236,89,89,89, - 119,236,89,236,119,236,236,236,119,89,119,89,119,89,119,236, - 119,236,119,236,119,58,58,236,119,89,119,119,89,236,236,119, - 236,89,89,89,119,89,236,89,236,89,89,89,89,207,89,89, - 119,119,89,89,89,236,119,89,89,89,236,89,89,207,207,89, - 89,89,89,89,89,119,89,119,119,119,119,119,89,119,236,119, - 119,119,119,89,119,89,119,119,119,119,119,119,119,119,108,142, - 187,111,42,224,111,162,111,42,233,110,195,90,195,90,195,90, - 90,90,90,90,60,154,26,12,42,233,110,90,90,195,90,195, - 90,90,90,90,195,60,154,26,12,42,233,110,90,90,195,90, - 195,90,90,90,90,90,60,154,26,12,42,233,110,195,90,195, - 90,195,90,90,90,90,90,60,154,26,12,42,233,110,195,90, - 195,90,195,90,90,90,90,90,60,154,26,12,42,233,110,195, - 90,195,90,195,90,90,90,90,90,60,154,26,12,42,233,110, - 195,90,195,90,195,90,90,90,90,90,60,154,26,12,42,233, - 110,195,90,195,90,195,90,90,90,90,90,60,154,26,12,42, - 233,110,195,90,195,90,195,90,90,90,90,90,60,154,26,12, - 42,233,110,90,90,195,90,195,90,90,90,90,195,60,154,26, - 12,42,233,110,195,90,90,195,90,90,90,90,90,90,60,154, - 26,12,42,233,110,195,90,195,90,195,90,90,90,90,90,60, - 154,26,12,42,233,110,195,90,90,195,90,90,90,90,90,195, - 60,154,26,12,42,233,110,195,90,195,90,195,90,90,90,90, - 195,60,154,26,12,42,233,110,195,90,90,195,195,90,90,90, - 90,90,60,154,26,12,42,233,110,195,90,195,90,195,90,90, - 90,90,90,60,154,26,12,42,233,110,195,90,195,90,195,90, - 90,90,90,90,60,154,26,12,42,233,110,195,90,195,90,195, - 90,90,90,90,90,60,154,26,12,183,26,12,141,183,199,89, - 120,25,120,120,120,120,120,36,120,36,120,36,36,36,36,36, - 105,36,105,36,105,105,105,105,105,105,36,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,36,36,36,36,36,36,36,36,36,36,36,36, - 184,240,240,181,240,108,108,83,161,161,252,161,161,161,83,83, - 83,83,161,252,136,161,168,41,11,231,65,128,185,116,189,193, - 23,137,159,250,65,116,170,90,90,193,230,107,90,72,83,161, - 167,216,11,11,41,14,162,0,141,235,12,199,247,119,236,207, - 236,89,89,89,89,236,236,236,119,119,236,119,119,119,119,119, - 119,119,236,119,236,236,236,119,236,236,119,236,119,119,119,89, - 119,236,89,236,119,236,236,236,236,236,236,89,119,236,119,236, - 119,119,119,236,236,236,119,236,119,236,89,236,236,89,89,119, - 89,236,236,89,119,89,89,207,89,207,89,207,89,236,89,89, - 89,236,89,89,89,89,119,89,89,89,89,89,89,89,89,236, - 89,89,89,89,89,89,89,89,89,89,89,119,119,89,89,119, - 89,89,119,236,119,89,89,89,89,89,119,119,119,119,108,44, - 183,95,78,224,224,42,132,122,206,128,23,23,23,86,19,19, - 65,65,19,19,195,154,12,243,122,206,128,86,23,23,86,19, - 19,65,65,19,19,195,178,243,109,122,206,128,86,23,23,86, - 19,19,65,65,19,19,195,154,12,243,122,206,128,23,23,23, - 86,19,19,65,65,19,19,195,154,12,243,122,206,128,23,23, - 23,86,19,19,65,65,19,19,195,178,243,243,122,206,128,23, - 23,23,86,19,19,65,65,19,19,195,178,243,243,122,206,128, - 23,23,23,86,19,19,65,65,19,19,195,178,243,243,122,206, - 128,23,23,23,86,19,19,65,65,19,19,195,154,12,243,122, - 206,128,23,23,23,86,19,19,65,65,19,23,195,154,12,243, - 122,206,128,86,23,23,86,19,19,65,65,19,19,195,178,243, - 243,122,206,128,23,23,23,23,23,65,19,65,19,19,195,154, - 12,243,122,206,128,23,23,23,86,19,19,65,65,19,19,195, - 154,12,243,122,206,128,86,23,23,23,23,65,19,118,19,19, - 195,178,243,109,122,206,128,23,23,23,86,19,19,65,65,19, - 19,195,178,243,109,122,206,128,23,23,23,86,19,19,65,65, - 19,19,195,178,243,243,122,206,128,23,23,23,86,19,19,65, - 65,19,19,195,154,12,243,122,206,128,23,23,23,86,19,19, - 65,65,19,19,195,154,12,243,122,206,128,23,23,23,86,19, - 19,65,65,19,23,195,178,243,211,187,183,187,141,42,192,114, - 244,25,120,120,120,36,120,36,36,36,120,36,36,36,36,36, - 36,105,36,105,36,105,36,105,105,105,105,36,105,105,36,105, - 105,36,105,105,105,105,105,105,105,208,105,105,105,105,105,105, - 36,36,105,105,36,36,36,36,36,36,36,36,36,36,36,36, - 240,240,108,108,83,83,247,83,83,83,83,108,108,108,108,83, - 83,161,161,252,106,136,136,23,116,13,167,116,231,195,43,107, - 85,250,79,220,23,128,23,13,65,85,11,23,231,13,56,104, - 50,50,50,92,167,216,41,113,50,17,8,8,36,108,236,89, - 89,236,207,236,236,236,119,119,236,236,119,119,236,119,58,236, - 58,236,58,58,119,119,119,236,89,89,236,119,236,89,89,236, - 89,89,236,89,236,119,119,119,119,236,119,236,236,119,236,119, - 236,236,236,119,119,119,236,58,236,89,236,119,89,236,236,89, - 236,89,89,89,236,89,236,89,89,89,207,89,89,207,207,89, - 89,89,89,236,119,236,89,89,207,89,207,207,207,207,89,89, - 89,89,89,89,89,89,236,89,89,89,119,119,89,119,119,236, - 89,236,236,119,236,236,89,119,119,119,89,119,119,108,108,142, - 187,111,162,187,224,78,111,42,137,204,19,65,19,65,65,65, - 65,65,19,65,195,178,17,211,122,233,204,19,65,19,65,65, - 65,65,65,65,65,90,178,17,243,122,233,204,19,65,19,65, - 65,65,65,65,19,65,90,178,132,211,122,222,204,19,65,19, - 65,65,65,65,65,19,65,195,178,132,211,122,222,204,19,65, - 19,65,65,65,65,65,19,65,90,178,17,109,122,222,204,19, - 19,19,65,65,65,65,65,19,65,90,178,17,109,122,222,204, - 19,65,19,65,65,65,65,65,19,65,90,178,17,109,122,222, - 204,19,65,19,65,65,65,65,65,19,65,195,178,132,211,122, - 222,204,19,65,19,65,65,65,65,65,19,65,195,178,17,211, - 122,233,204,19,65,19,65,65,65,65,65,19,65,90,178,219, - 211,122,222,128,19,65,19,65,65,19,118,65,19,65,90,178, - 132,211,122,222,204,19,65,19,65,65,65,65,65,19,65,195, - 178,132,211,42,233,204,65,19,65,65,65,19,65,65,19,65, - 90,178,219,8,122,222,204,19,65,19,65,65,65,65,65,65, - 65,90,178,17,243,122,222,128,19,65,19,65,65,65,65,65, - 19,65,90,178,219,211,122,222,204,19,65,19,65,65,65,65, - 65,19,65,195,178,17,211,122,222,204,19,65,19,65,65,65, - 65,65,19,65,90,178,132,211,122,222,204,19,65,19,65,65, - 65,65,65,19,19,60,178,219,109,219,42,132,166,42,234,114, - 120,120,120,25,36,120,120,25,25,36,217,36,36,36,105,36, - 105,36,105,36,105,105,105,105,105,105,105,36,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,208,105,105,105,36,36, - 36,105,36,36,36,36,36,36,36,36,36,36,36,36,36,36, - 240,240,108,240,240,240,240,240,184,240,240,108,83,83,83,83, - 161,161,161,161,161,161,136,189,170,31,206,138,6,6,31,138, - 157,193,148,176,27,185,237,216,13,231,87,138,232,32,43,143, - 229,15,29,0,0,50,14,31,249,14,162,26,49,181,58,236, - 236,89,119,119,119,119,119,58,119,119,119,119,58,119,58,119, - 119,58,119,58,236,236,236,236,236,89,89,236,236,236,89,236, - 89,89,236,89,236,89,119,119,119,236,119,119,236,119,89,119, - 119,119,236,236,236,119,236,236,236,89,236,236,119,236,236,236, - 119,119,236,119,236,89,89,207,207,89,207,207,89,89,207,89, - 89,236,89,89,119,89,236,89,207,89,89,89,89,207,207,89, - 89,89,89,89,236,89,89,89,89,89,89,119,89,89,119,119, - 119,119,119,119,236,236,236,119,119,119,89,119,89,119,108,142, - 17,111,221,187,224,78,111,122,31,204,118,118,118,118,51,118, - 118,118,65,118,128,84,26,8,122,31,170,65,118,118,118,118, - 118,118,118,65,118,60,84,26,8,122,31,170,65,118,118,118, - 51,118,118,118,118,65,128,84,26,8,122,31,204,118,118,118, - 118,51,118,118,118,65,118,128,84,26,8,122,31,204,118,118, - 118,118,51,118,118,118,65,65,60,178,26,211,122,31,170,118, - 118,118,118,51,118,118,118,65,65,60,178,26,211,122,31,204, - 118,118,118,118,51,118,118,118,118,65,60,178,26,211,122,31, - 204,118,118,118,118,51,118,118,118,118,65,128,84,26,8,122, - 31,204,118,118,118,118,51,118,118,118,118,65,128,84,26,8, - 122,31,170,65,118,118,118,51,118,118,118,65,65,128,84,26, - 211,122,31,170,118,118,118,118,51,118,118,118,118,65,128,84, - 26,8,122,31,204,118,118,118,118,51,118,118,118,118,65,128, - 84,26,8,0,31,170,65,118,118,118,51,118,118,118,118,65, - 60,178,17,211,122,31,204,118,118,118,118,118,118,118,118,65, - 118,60,84,26,139,122,31,170,118,118,118,118,51,118,118,118, - 118,65,60,178,26,211,122,31,204,118,118,118,118,51,118,118, - 118,118,65,128,84,26,211,122,31,204,118,118,118,118,51,118, - 118,118,118,65,128,84,26,8,122,31,204,118,118,118,118,51, - 118,118,118,118,65,128,84,26,182,187,42,187,166,42,80,114, - 120,120,244,120,36,36,120,120,36,120,36,217,36,36,105,36, - 36,105,217,36,36,105,36,105,105,36,105,105,105,36,105,36, - 105,105,36,105,105,105,105,105,105,105,63,105,105,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,217,36, - 240,240,240,240,108,240,240,240,108,240,108,240,108,108,83,83, - 108,83,83,83,83,161,106,189,106,106,161,250,195,6,10,129, - 189,148,189,43,195,237,137,167,220,6,220,22,237,138,6,167, - 251,226,24,200,40,0,0,0,0,22,24,129,127,108,58,236, - 236,119,89,89,236,236,236,119,119,119,236,119,119,119,119,119, - 58,119,236,119,58,58,119,236,89,236,236,89,89,89,236,89, - 236,236,89,236,89,236,236,236,236,236,236,236,119,236,119,236, - 119,236,119,119,119,236,119,119,207,236,89,89,89,119,89,89, - 89,89,89,89,89,89,89,89,89,207,89,89,207,207,89,89, - 89,89,89,89,89,236,89,89,89,89,207,207,89,89,89,89, - 89,89,89,89,89,89,236,89,89,89,119,89,119,89,89,89, - 89,89,119,236,119,119,89,119,119,119,119,89,119,108,108,29, - 26,111,122,187,224,122,59,42,31,53,118,51,51,51,107,52, - 52,52,118,118,128,84,17,182,0,31,45,107,51,107,51,52, - 52,52,52,118,118,128,178,17,182,0,31,45,107,51,107,51, - 107,52,51,51,118,118,128,178,26,211,122,31,53,118,51,51, - 51,107,52,51,52,118,118,128,178,26,211,122,31,53,118,51, - 51,51,107,52,51,52,107,118,204,84,17,243,122,249,170,118, - 51,51,51,107,52,51,52,107,118,204,84,17,243,122,31,53, - 118,51,51,51,107,52,51,51,118,118,204,84,17,243,122,31, - 53,118,51,51,107,51,52,52,51,118,118,128,178,26,211,122, - 31,53,118,51,51,51,51,52,51,107,51,118,128,84,17,182, - 0,249,53,107,51,107,51,51,52,52,52,107,51,128,84,17, - 211,0,249,53,118,51,51,51,51,51,107,51,118,118,128,84, - 26,211,122,31,53,118,51,51,51,107,52,51,51,118,51,128, - 84,17,182,0,249,53,107,51,51,51,107,52,51,107,118,118, - 204,84,26,8,122,31,53,51,51,51,51,52,52,52,52,118, - 118,128,178,17,243,0,249,53,118,51,107,51,107,52,51,107, - 118,118,204,84,17,8,122,31,53,118,51,51,107,51,52,51, - 51,118,51,128,84,17,243,122,31,53,118,51,51,51,107,52, - 51,51,118,118,128,178,26,211,122,31,53,118,51,51,51,107, - 52,51,52,118,118,128,178,17,211,187,183,219,132,0,171,114, - 120,25,120,120,120,120,120,120,25,36,36,36,105,36,36,36, - 105,36,36,36,217,36,105,36,105,36,36,105,36,105,36,105, - 36,105,36,105,105,105,105,105,105,105,105,36,36,36,105,36, - 36,105,36,36,36,36,36,36,36,36,36,36,36,105,36,36, - 58,181,240,58,240,181,240,240,119,119,108,240,108,108,108,108, - 83,83,83,161,161,161,148,136,161,161,252,136,189,193,134,134, - 136,136,189,185,138,206,73,137,249,19,62,22,10,233,62,93, - 92,14,14,14,35,42,183,133,127,83,252,106,161,247,240,119, - 236,58,236,119,119,58,58,58,236,119,236,236,236,119,119,119, - 236,58,236,119,119,119,119,119,119,89,236,236,236,89,89,89, - 89,236,89,236,119,89,119,119,119,119,119,236,119,236,119,236, - 119,236,89,236,58,236,236,119,89,236,236,236,89,236,236,236, - 236,236,236,119,89,236,89,89,89,207,207,89,89,89,89,89, - 89,236,236,89,89,89,236,89,89,89,89,207,89,89,89,89, - 89,89,89,89,89,89,89,119,89,89,119,89,119,89,119,119, - 236,89,119,89,236,119,236,89,119,119,119,89,89,119,108,29, - 42,187,221,187,224,122,109,0,249,85,51,52,76,76,76,76, - 51,52,51,9,204,84,26,8,122,123,53,51,51,76,76,76, - 76,51,52,9,9,204,84,26,8,0,123,53,51,51,76,76, - 76,232,52,52,51,51,204,84,17,8,122,249,85,51,52,76, - 76,76,232,51,52,51,51,204,84,17,8,122,249,85,51,52, - 76,76,76,232,51,52,9,107,204,84,17,8,122,123,194,107, - 51,76,76,76,232,51,52,9,107,204,84,12,8,122,249,85, - 51,52,76,76,76,232,52,52,9,107,204,84,12,8,122,249, - 85,51,76,107,76,76,76,52,52,52,51,204,84,17,8,122, - 249,85,51,52,76,76,76,232,52,51,9,9,204,178,26,8, - 0,123,53,107,76,76,76,76,76,51,51,107,9,204,84,12, - 8,122,123,53,107,76,76,76,232,76,52,52,51,107,204,178, - 12,8,122,249,85,51,52,76,76,76,232,52,52,107,107,204, - 84,26,8,122,123,53,107,51,76,76,76,232,52,52,51,107, - 204,84,12,243,122,123,53,107,51,76,76,76,76,51,52,9, - 9,204,84,17,8,0,123,53,51,51,76,76,76,232,52,52, - 52,107,204,84,17,8,122,249,85,51,76,107,76,76,232,52, - 52,107,9,204,178,12,8,122,249,85,51,52,76,76,76,232, - 52,52,51,51,204,84,17,8,122,249,85,51,52,76,76,76, - 232,51,52,107,9,204,84,26,243,187,183,219,219,122,80,39, - 244,120,120,120,120,25,120,244,25,25,120,120,36,36,36,36, - 36,36,217,36,36,36,36,105,36,105,36,36,36,105,36,105, - 36,105,36,105,105,105,105,105,105,105,105,36,36,36,36,36, - 105,36,36,36,36,36,36,36,36,36,36,36,36,105,105,36, - 58,184,181,240,240,240,58,58,240,240,181,119,240,240,108,108, - 108,108,83,83,161,136,136,83,161,161,161,252,136,193,106,136, - 106,106,76,27,149,161,55,22,137,77,179,21,89,21,33,149, - 13,36,38,38,38,143,83,136,252,83,83,108,240,240,58,58, - 58,119,119,236,236,119,236,119,58,58,58,119,119,119,58,236, - 119,119,58,58,236,236,236,236,236,119,119,89,89,89,207,89, - 89,89,236,181,89,119,236,236,119,236,236,119,236,119,236,119, - 119,119,159,119,236,119,119,236,236,89,119,89,236,236,119,236, - 207,89,89,89,119,89,89,236,89,89,89,89,119,236,236,89, - 119,89,207,236,119,119,89,89,207,236,207,89,89,236,236,89, - 236,89,236,119,119,119,119,89,89,89,89,89,89,89,236,236, - 119,119,89,119,119,89,119,89,119,119,119,119,119,119,108,29, - 42,163,0,219,111,122,59,122,123,85,52,76,76,76,232,232, - 232,76,52,52,204,154,17,243,162,123,85,76,232,76,76,232, - 232,232,76,51,9,204,154,17,141,162,123,85,76,232,76,76, - 232,232,232,51,52,9,204,154,17,141,0,123,85,52,76,76, - 76,232,232,232,52,52,9,204,154,17,141,0,123,85,52,76, - 76,76,232,232,232,51,51,9,204,154,17,243,122,123,85,76, - 232,76,76,232,232,232,76,51,9,204,154,17,141,0,123,85, - 52,76,76,76,232,232,232,76,51,9,204,154,17,141,0,123, - 85,232,76,76,232,232,232,232,51,51,9,204,154,17,141,0, - 123,85,52,76,76,232,232,232,76,76,51,9,204,154,17,243, - 122,123,194,52,76,76,232,232,232,232,76,51,52,204,84,17, - 243,122,123,85,52,76,76,232,232,232,232,51,52,9,204,168, - 17,141,0,123,85,52,76,76,76,232,232,232,76,51,9,204, - 178,17,243,0,123,85,52,232,76,232,232,232,232,51,52,9, - 204,154,17,211,162,123,85,76,232,76,76,232,232,232,76,51, - 9,204,154,17,243,122,123,85,76,232,76,76,232,232,232,51, - 107,9,204,84,17,182,0,123,85,232,76,76,232,232,232,232, - 76,51,9,204,84,17,141,0,123,85,52,76,76,76,232,232, - 232,51,52,9,204,154,17,141,0,123,85,52,76,76,76,232, - 232,232,51,52,9,204,154,17,182,166,42,187,219,0,202,114, - 120,120,120,120,120,244,120,120,120,244,36,120,36,36,120,120, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,105,36, - 36,105,36,105,36,105,105,36,105,105,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,105,36,36,36,105, - 58,240,240,119,58,240,240,181,240,240,240,240,119,108,108,108, - 108,108,108,83,252,232,161,83,161,83,161,161,106,189,176,161, - 252,106,136,106,147,147,114,62,233,157,136,252,136,106,106,252, - 148,148,252,106,252,252,252,83,83,108,108,119,108,119,119,240, - 119,119,119,119,236,119,236,119,119,119,119,58,236,236,119,119, - 58,119,119,58,58,58,119,119,236,236,119,119,236,89,236,207, - 207,89,236,236,89,119,236,236,58,119,236,236,236,119,236,236, - 236,236,236,119,159,236,159,236,236,236,119,236,119,236,89,119, - 236,89,119,89,236,119,89,236,236,236,89,89,89,89,236,89, - 89,89,207,89,89,119,119,119,89,236,236,236,119,236,236,89, - 89,89,89,89,89,89,236,119,89,89,89,119,119,119,89,236, - 236,119,89,89,119,119,119,89,89,119,89,89,119,119,108,172, - 26,111,162,187,111,122,59,122,167,194,76,76,148,232,148,148, - 232,232,52,52,204,168,12,243,122,167,194,76,232,148,232,148, - 148,232,148,52,76,204,168,26,211,122,167,194,76,232,148,148, - 232,148,148,232,52,52,204,168,26,211,122,167,194,76,76,148, - 232,232,148,232,232,52,52,204,168,26,211,122,167,194,76,76, - 148,232,148,148,148,232,76,52,204,168,17,243,122,167,194,76, - 232,148,148,232,148,232,232,76,52,204,168,26,211,122,167,194, - 76,76,148,232,232,148,232,232,76,52,204,168,26,211,122,167, - 194,76,232,232,148,232,148,148,232,52,52,204,168,26,211,122, - 167,194,76,76,232,232,232,148,148,148,52,76,204,168,17,243, - 122,167,194,76,76,232,232,232,148,148,232,52,52,204,168,26, - 211,122,167,194,76,76,232,232,232,148,148,232,232,52,204,168, - 26,211,122,167,194,76,76,148,148,232,148,232,148,52,52,204, - 168,12,109,122,167,194,76,232,232,232,232,148,148,232,52,52, - 204,168,219,243,122,167,194,76,232,148,232,232,148,232,148,52, - 76,204,168,17,109,122,167,194,76,232,148,232,148,232,148,232, - 76,52,204,168,26,211,0,167,194,76,232,232,148,232,148,232, - 148,52,76,204,168,26,211,122,167,194,76,76,148,148,232,148, - 148,232,52,52,204,168,26,211,122,167,194,76,76,148,232,232, - 148,148,232,76,52,204,168,26,243,166,42,219,219,162,57,39, - 244,120,244,120,120,120,120,120,120,120,25,25,36,36,36,36, - 36,36,120,36,36,36,36,36,36,36,36,36,36,36,105,36, - 36,36,105,36,36,105,36,105,36,36,36,36,36,36,36,105, - 36,36,36,36,36,36,36,36,36,36,36,36,217,36,36,36, - 236,181,58,240,181,58,58,240,58,181,240,119,108,119,108,108, - 108,108,83,161,106,161,83,83,161,83,83,161,252,27,176,161, - 176,136,161,161,252,147,87,11,135,189,136,161,83,161,83,83, - 161,106,161,83,83,83,108,240,108,108,108,108,119,108,240,119, - 58,181,236,119,58,119,58,58,236,58,58,119,58,119,58,236, - 119,58,58,119,119,119,58,236,58,119,58,236,236,236,207,89, - 89,236,207,89,236,236,119,236,236,236,119,119,119,236,159,119, - 159,119,159,159,236,159,236,159,58,119,236,119,236,236,58,236, - 89,207,89,236,89,89,236,89,89,236,119,236,89,207,89,207, - 207,207,89,89,89,89,89,89,236,89,89,236,236,119,119,236, - 236,236,236,236,89,236,89,89,119,119,119,89,89,89,119,89, - 89,89,236,119,89,89,119,89,89,89,119,236,119,119,108,29, - 42,187,122,219,111,122,224,122,237,32,232,148,148,148,148,147, - 232,148,76,232,231,222,26,211,122,237,32,232,232,148,148,148, - 147,148,232,232,232,231,222,17,243,122,237,32,232,232,148,148, - 148,148,148,232,232,232,231,222,17,243,122,237,32,232,148,148, - 148,148,147,232,148,232,232,231,222,17,243,122,237,32,232,148, - 148,148,148,147,148,148,232,232,231,168,26,211,0,237,32,232, - 232,148,148,148,147,232,232,232,232,231,168,219,243,122,237,32, - 232,148,148,148,148,148,148,232,232,232,231,168,17,109,0,237, - 32,232,232,148,148,148,147,148,148,232,232,231,222,17,243,122, - 237,32,232,148,148,148,148,147,148,148,76,232,231,222,26,211, - 122,237,32,232,148,148,148,148,77,148,148,76,232,231,222,219, - 243,122,237,32,232,148,148,148,148,148,148,232,76,232,231,222, - 17,243,122,237,32,232,148,148,148,148,148,232,148,232,232,231, - 222,219,8,122,237,32,232,232,148,148,148,148,148,148,232,232, - 231,222,26,211,122,237,32,232,232,148,148,148,147,148,232,232, - 232,231,168,26,243,122,237,32,232,232,148,148,148,147,148,148, - 232,148,231,222,219,243,122,237,32,232,232,148,148,148,148,232, - 232,232,232,231,222,17,243,122,237,32,232,148,148,148,148,148, - 148,232,232,232,231,222,17,243,122,237,32,232,148,148,148,148, - 147,148,148,76,232,231,222,219,211,166,183,219,183,0,57,89, - 248,248,248,248,120,120,120,244,244,120,244,244,244,120,120,120, - 120,244,36,36,244,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,105,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,217,36,217,36,217,217,105, - 236,184,58,240,58,240,58,58,240,119,240,181,240,240,108,108, - 108,108,83,161,161,108,83,83,83,161,83,161,161,136,106,161, - 176,161,161,161,161,252,250,116,48,136,106,83,161,83,83,161, - 83,161,161,161,108,108,108,108,108,240,108,108,240,119,240,119, - 58,119,58,119,58,119,58,184,119,119,58,119,240,119,58,58, - 119,119,58,58,58,58,58,119,58,236,119,119,236,89,236,119, - 119,119,89,119,89,236,119,119,119,58,58,58,58,236,236,236, - 236,236,236,119,236,159,119,236,159,58,236,58,58,236,236,236, - 236,236,89,236,89,89,236,236,119,236,89,236,236,89,89,89, - 89,89,207,207,89,236,236,89,119,58,119,236,236,236,119,236, - 236,236,236,236,119,119,89,89,89,89,236,119,89,89,236,119, - 236,119,89,119,119,89,119,119,119,89,119,89,119,119,108,29, - 183,187,162,187,111,122,224,42,138,117,193,193,157,157,189,189, - 157,193,193,85,70,31,26,243,122,138,117,193,193,157,157,189, - 189,157,157,193,85,70,31,26,8,122,138,117,193,193,157,157, - 189,189,157,193,193,85,70,31,26,8,122,138,117,193,193,157, - 157,189,189,157,193,193,85,70,31,17,243,122,138,117,193,193, - 157,157,189,189,157,193,193,32,70,31,26,8,122,138,117,193, - 193,157,157,189,189,157,157,193,32,70,31,12,243,122,138,117, - 193,193,157,157,189,189,157,193,193,32,70,31,17,243,122,138, - 117,193,193,157,157,189,189,157,193,193,85,70,31,17,243,122, - 138,117,193,193,157,157,189,189,157,193,193,85,70,31,26,8, - 42,138,117,193,193,157,157,189,189,157,193,193,194,70,31,26, - 8,42,138,117,193,193,157,157,189,189,157,193,193,85,70,222, - 91,243,122,138,117,193,193,157,157,189,189,157,193,193,194,70, - 31,26,8,42,138,117,193,193,157,157,189,189,157,193,193,85, - 70,31,26,243,122,138,117,193,157,157,157,189,189,157,157,193, - 85,70,228,26,243,122,138,117,193,193,157,157,189,189,157,193, - 193,194,70,31,26,243,122,138,117,193,193,157,157,189,189,157, - 193,193,194,70,31,26,8,122,138,117,193,193,157,157,189,189, - 157,193,193,85,70,31,17,243,42,138,117,193,193,157,157,189, - 189,157,193,193,85,70,31,17,243,187,42,187,219,122,57,181, - 244,244,244,244,244,244,244,120,120,120,120,120,244,244,120,120, - 120,120,244,36,244,244,36,244,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,244,36,36,36,105,36, - 36,36,36,36,36,36,36,36,36,217,36,36,36,36,36,36, - 184,58,240,181,240,181,58,58,119,240,240,108,119,119,119,108, - 108,108,161,161,108,83,83,83,83,83,83,83,161,106,106,161, - 161,161,83,83,161,83,250,6,55,252,136,83,161,161,83,108, - 83,83,83,161,83,240,108,108,119,108,240,240,240,108,58,58, - 58,58,58,58,58,58,119,119,58,58,119,119,119,119,240,58, - 58,58,58,119,119,119,119,58,119,119,58,119,119,236,236,89, - 236,89,119,236,236,236,89,236,58,236,58,58,58,159,58,159, - 159,159,159,159,58,119,236,119,58,58,58,58,236,236,236,236, - 119,89,236,89,236,119,236,89,89,119,236,89,89,89,207,207, - 207,207,89,89,89,89,89,119,236,236,119,119,236,236,236,119, - 236,119,119,119,89,89,119,119,236,89,119,89,119,236,119,236, - 119,89,236,236,89,119,119,89,119,119,89,89,119,119,108,29, - 122,111,122,183,111,122,224,0,226,87,21,21,242,30,13,13, - 30,242,21,18,18,47,12,12,0,226,87,18,72,242,30,13, - 13,30,72,21,18,18,35,17,109,0,226,87,21,21,242,30, - 13,13,30,242,21,18,18,35,12,12,122,226,87,18,72,242, - 30,13,13,30,242,21,18,18,35,26,12,0,226,87,21,21, - 242,30,13,13,30,242,18,18,18,47,17,109,0,226,87,18, - 72,242,30,13,13,30,72,21,18,18,35,26,12,0,226,87, - 21,21,156,30,86,13,30,242,18,18,18,59,26,12,0,226, - 21,21,21,156,43,13,13,30,242,21,18,18,35,26,12,0, - 226,87,21,21,156,43,13,13,30,242,21,18,18,47,17,243, - 0,226,87,21,21,156,43,13,13,30,72,21,33,18,47,17, - 243,0,226,87,18,72,242,30,13,13,30,242,21,33,18,46, - 17,12,0,226,87,18,21,156,30,86,13,30,242,21,18,18, - 35,12,243,0,226,87,18,72,242,30,13,13,30,242,21,18, - 18,47,12,12,0,226,87,21,72,156,43,13,13,30,72,21, - 21,18,35,12,187,0,226,87,18,72,242,30,13,13,30,242, - 21,18,18,35,12,187,0,226,21,21,21,156,30,86,13,30, - 242,21,18,18,35,12,109,0,226,87,18,21,242,30,13,13, - 30,242,21,18,18,35,26,12,0,226,87,21,21,156,43,13, - 13,30,242,21,18,18,59,26,109,166,42,219,26,0,191,89, - 244,244,71,244,71,244,244,71,244,244,244,244,120,120,244,244, - 244,36,36,36,244,36,244,36,244,244,244,244,244,244,36,36, - 244,36,36,36,36,36,36,36,36,36,36,36,105,36,36,36, - 36,36,36,36,36,36,36,36,105,36,36,105,105,105,105,105, - 58,58,240,58,184,58,58,181,184,181,58,240,108,108,108,108, - 108,83,161,119,83,108,83,83,83,83,161,83,161,176,176,161, - 161,161,161,83,83,83,176,98,138,252,106,161,83,83,83,83, - 83,83,83,83,161,83,108,108,240,108,108,108,119,240,240,58, - 119,236,119,236,119,58,58,119,58,58,58,58,119,119,119,58, - 58,58,58,58,58,58,119,58,240,119,58,58,58,119,58,236, - 236,236,236,119,236,236,119,236,119,236,236,58,58,184,58,58, - 58,58,236,58,236,159,58,236,58,159,58,240,58,58,58,236, - 236,89,89,89,89,89,236,236,89,119,89,89,89,89,89,89, - 89,207,89,207,89,119,89,236,236,236,119,119,119,236,236,119, - 236,236,236,236,119,236,236,119,119,89,119,236,119,236,89,236, - 159,119,119,159,236,236,159,89,119,119,119,236,119,119,83,29, - 56,111,162,183,187,162,224,0,203,23,250,86,149,149,51,51, - 149,86,250,86,138,187,187,8,0,40,19,250,86,179,149,51, - 51,146,179,86,250,28,187,26,8,0,203,23,250,86,149,149, - 51,51,149,86,86,250,28,187,187,243,0,40,19,250,86,179, - 149,51,136,149,86,86,250,28,187,187,8,0,203,23,250,86, - 149,149,51,51,149,179,250,250,28,187,26,8,0,203,19,250, - 86,179,149,51,51,146,179,250,250,28,187,187,8,0,203,23, - 250,86,179,146,51,146,146,179,250,250,28,111,187,8,221,40, - 23,250,86,179,146,51,51,149,86,86,250,28,187,187,8,0, - 203,23,250,86,179,146,51,51,149,86,86,250,28,91,26,243, - 0,40,23,250,86,179,146,51,51,146,86,86,250,28,91,26, - 243,0,40,19,250,86,179,149,51,51,149,86,86,250,28,163, - 187,8,0,203,19,250,86,179,146,51,146,146,179,86,250,28, - 187,26,8,0,203,19,250,86,179,149,51,51,149,86,250,86, - 138,187,187,8,0,40,23,250,86,179,146,51,51,146,86,250, - 250,28,187,187,8,0,203,19,250,86,179,149,51,146,149,86, - 86,250,28,187,12,8,221,40,23,250,86,179,146,51,146,146, - 179,250,250,28,187,26,8,0,203,19,86,86,149,149,51,51, - 149,86,86,250,28,187,187,8,0,203,23,250,86,179,146,51, - 51,149,86,86,250,28,163,26,8,111,42,187,42,122,208,89, - 244,244,71,144,244,71,244,244,244,244,244,244,244,244,36,244, - 244,244,244,120,244,244,36,244,36,36,36,36,36,36,36,244, - 36,36,244,36,36,36,36,36,36,105,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,217,105,36,36,36,217,217,105, - 58,181,58,58,181,184,184,184,58,119,240,181,119,119,108,159, - 83,83,108,119,108,83,108,83,83,83,83,83,161,161,106,161, - 83,83,83,161,83,108,118,98,23,252,106,83,161,83,83,83, - 108,108,108,66,83,83,108,108,108,108,108,240,108,119,240,58, - 58,119,58,58,58,58,119,58,119,58,58,119,58,58,119,119, - 119,119,58,58,58,58,58,119,119,58,58,236,58,58,236,119, - 58,119,89,89,119,89,236,119,89,119,58,58,58,58,159,119, - 159,119,159,58,58,119,119,119,58,58,58,58,58,236,236,89, - 89,207,236,89,89,236,89,89,89,89,236,89,207,89,207,207, - 89,89,89,89,89,89,236,119,119,119,236,236,236,236,236,236, - 236,89,236,119,143,236,236,236,236,143,236,119,236,119,159,119, - 143,236,119,143,236,119,236,159,159,143,159,236,119,108,108,20, - 122,111,122,78,111,122,59,0,40,32,157,189,189,189,189,189, - 189,189,157,85,204,61,219,211,0,95,32,157,189,189,189,189, - 189,189,189,157,85,204,61,219,211,0,40,32,157,189,189,189, - 189,189,189,189,157,85,204,61,219,211,0,95,32,157,189,189, - 189,189,189,189,189,157,85,204,61,219,211,0,40,32,157,189, - 189,189,189,189,189,189,157,85,128,61,219,211,0,95,32,157, - 189,189,189,189,189,189,189,157,85,204,61,219,211,0,40,32, - 157,189,189,189,189,189,189,189,157,85,204,61,219,243,0,95, - 32,157,189,189,189,189,189,189,189,157,85,204,61,219,211,0, - 95,32,157,189,189,189,189,189,189,189,157,85,128,91,219,211, - 0,97,32,157,189,189,189,189,189,189,189,189,85,128,91,219, - 211,0,95,32,157,189,189,189,189,189,189,189,157,85,204,91, - 219,211,0,95,32,157,189,189,189,189,189,189,189,189,85,204, - 61,219,211,0,95,32,157,189,189,189,189,189,189,189,157,85, - 204,61,219,211,0,40,32,157,189,189,189,189,189,189,189,157, - 85,128,61,219,211,0,95,32,157,189,189,189,189,189,189,189, - 189,85,204,91,219,243,0,95,32,157,189,189,189,189,189,189, - 189,157,85,204,61,219,211,0,95,32,157,189,189,189,189,189, - 189,189,157,85,204,61,219,211,0,95,32,157,189,189,189,189, - 189,189,189,157,85,204,91,219,182,166,183,219,219,0,63,89, - 144,144,244,244,144,244,71,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,36,36,244,244,244,36,244,36,244,36,244, - 36,244,36,36,244,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,105,36,36,36,105,105,105,36,105,105, - 236,236,184,153,58,58,181,184,240,181,240,240,108,119,108,108, - 108,83,108,108,108,108,108,108,83,83,83,83,83,161,176,83, - 83,83,161,83,83,108,9,231,23,161,252,83,83,83,83,83, - 83,108,83,108,83,83,108,108,119,108,119,108,119,240,119,119, - 58,236,119,119,58,240,119,240,119,119,58,58,119,58,58,58, - 159,119,58,58,159,119,58,58,58,119,240,119,119,58,119,236, - 236,119,236,236,236,89,89,119,119,89,119,119,119,58,58,236, - 236,159,236,58,236,236,119,236,119,58,119,119,119,236,236,236, - 236,89,89,89,119,89,89,236,89,119,236,119,207,89,89,207, - 236,89,89,236,89,236,89,236,236,119,58,58,58,58,159,119, - 58,119,236,119,119,119,236,159,119,143,159,119,159,119,159,119, - 159,159,159,159,159,159,159,143,159,159,159,159,159,108,108,20, - 122,111,162,183,111,0,224,0,40,45,52,76,148,76,148,148, - 148,232,76,27,230,91,122,243,0,40,53,52,76,232,148,148, - 148,148,232,52,27,230,26,122,243,0,40,53,52,76,232,148, - 148,148,148,232,52,27,230,26,122,243,0,40,53,52,76,232, - 232,148,147,148,232,52,27,230,26,78,243,0,40,53,52,76, - 232,76,148,148,148,232,52,27,230,91,122,243,0,40,53,52, - 76,148,148,148,148,148,232,52,27,230,26,122,243,0,40,53, - 52,76,232,148,148,147,148,232,52,27,230,91,122,243,0,40, - 53,52,76,148,148,76,148,148,232,52,27,230,26,122,243,0, - 40,53,52,76,148,76,148,147,148,232,52,27,230,91,0,243, - 0,40,53,52,76,148,76,148,148,147,232,52,185,230,91,0, - 243,0,40,45,52,232,232,148,148,148,148,232,52,185,230,26, - 122,243,0,40,53,52,76,148,76,148,147,147,148,52,27,230, - 91,122,243,0,40,53,52,232,232,148,76,147,148,232,76,27, - 230,26,42,243,0,40,53,232,76,232,148,148,147,147,232,52, - 185,230,26,42,243,0,40,53,52,232,232,148,148,147,147,148, - 52,27,230,26,78,243,0,40,53,52,76,148,76,148,147,147, - 232,52,27,230,26,122,243,0,40,53,52,76,232,148,148,148, - 148,232,52,27,230,26,122,243,0,40,53,52,76,148,76,148, - 148,148,232,52,198,230,91,122,243,166,219,183,219,221,105,89, - 244,144,71,244,144,144,244,71,244,244,244,244,244,244,244,244, - 244,36,120,36,244,244,244,36,36,244,36,244,36,36,36,244, - 36,36,244,36,36,244,36,36,244,36,36,36,36,36,36,36, - 36,36,36,36,217,36,217,36,105,36,36,36,105,36,105,105, - 184,181,58,181,58,58,58,119,58,58,119,58,181,119,119,108, - 108,108,119,108,108,108,108,108,108,108,83,83,83,161,176,83, - 83,83,108,83,83,108,9,53,19,83,106,161,83,83,108,83, - 108,108,108,108,108,159,83,108,108,119,108,108,119,240,119,240, - 119,119,58,58,119,119,119,119,119,240,119,240,58,58,119,119, - 119,119,119,119,119,58,58,58,58,58,119,58,58,119,236,119, - 236,236,236,119,89,236,119,236,89,119,236,58,236,58,119,159, - 58,236,119,236,119,119,236,119,58,119,119,58,58,119,119,89, - 89,89,89,89,89,207,207,89,119,89,89,89,89,236,236,119, - 119,236,119,236,236,119,119,119,119,58,236,236,58,58,236,159, - 153,236,159,159,236,236,159,236,159,119,119,159,236,159,159,159, - 159,119,159,119,134,236,159,159,159,159,159,159,159,159,108,15, - 42,166,221,78,166,0,95,0,212,170,232,76,232,148,148,148, - 147,76,232,185,230,91,26,211,0,212,231,232,232,232,232,148, - 147,147,52,232,185,230,91,26,211,0,212,170,52,232,232,232, - 148,148,147,76,232,198,230,91,26,211,0,40,204,27,232,232, - 232,148,148,148,52,232,198,230,91,26,211,0,40,204,27,76, - 232,148,148,148,147,76,27,185,230,91,42,211,0,212,170,52, - 232,232,232,148,148,147,52,232,185,230,91,26,211,0,212,231, - 232,76,232,232,148,147,147,76,27,27,230,91,26,211,0,212, - 231,232,76,232,148,148,147,147,76,232,198,230,91,26,211,0, - 212,231,232,76,232,148,148,148,148,76,27,185,230,91,26,211, - 0,212,231,232,76,232,148,148,148,148,232,27,27,230,91,26, - 211,0,212,170,52,232,232,232,148,148,77,76,232,27,230,91, - 26,211,0,40,204,27,76,232,148,148,147,148,76,27,185,230, - 91,42,211,0,212,231,232,76,232,148,148,148,148,76,27,198, - 230,91,42,211,0,212,231,52,232,232,232,148,148,148,76,27, - 27,230,91,42,211,0,40,204,27,76,232,232,148,147,148,76, - 27,185,230,91,26,211,0,40,204,27,76,232,148,148,147,148, - 76,27,185,230,91,26,211,0,40,204,27,76,232,232,148,148, - 147,76,232,198,230,91,26,211,0,212,231,232,76,232,148,148, - 147,148,76,27,27,230,91,26,211,187,122,187,219,0,208,119, - 144,244,144,71,244,244,144,244,244,244,244,244,244,244,120,244, - 244,244,244,244,244,36,244,244,36,244,36,244,244,244,36,36, - 244,36,36,244,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,105,36,105,36,217,105,217,105,105,217,105, - 236,153,184,58,181,184,58,236,236,181,58,58,240,108,108,108, - 119,108,108,108,119,108,108,108,108,108,108,83,83,83,161,83, - 83,83,108,108,83,181,9,85,116,181,252,161,83,83,108,108, - 108,108,108,108,83,159,108,83,108,159,159,240,119,108,119,119, - 119,236,119,58,58,58,58,58,58,119,119,58,119,58,58,119, - 159,119,119,58,119,119,236,119,58,236,119,236,119,58,236,236, - 119,119,236,236,89,236,89,236,89,119,236,119,119,58,119,119, - 119,236,119,119,236,119,89,236,236,119,119,119,119,236,119,236, - 236,89,207,207,89,89,89,207,89,89,236,119,89,89,236,89, - 119,236,119,236,236,236,236,236,236,58,184,153,236,159,58,58, - 159,236,236,159,159,236,159,236,159,236,159,159,159,119,159,119, - 159,119,159,159,159,236,159,159,159,159,159,159,159,108,108,20, - 162,132,162,42,187,0,224,0,212,98,165,45,53,194,194,194, - 194,194,45,165,230,91,0,12,0,212,98,165,45,53,194,194, - 194,194,194,45,165,230,91,0,12,0,212,98,165,45,53,194, - 194,194,194,194,45,165,230,91,0,12,0,40,98,170,45,53, - 53,194,194,194,194,45,165,230,91,0,12,0,40,98,165,45, - 53,194,194,194,194,45,53,165,230,91,0,12,0,212,98,165, - 45,53,194,194,194,194,194,45,165,230,91,0,12,0,212,98, - 165,45,53,194,194,194,194,45,45,165,230,91,0,12,0,212, - 98,165,45,53,194,194,194,194,194,45,165,230,91,0,12,0, - 212,98,165,45,53,53,194,194,194,45,194,165,230,91,0,12, - 0,212,98,165,45,53,194,194,194,194,45,194,165,230,91,0, - 12,0,212,98,165,45,53,194,194,194,194,194,45,165,230,91, - 0,12,0,40,98,165,45,53,194,194,194,194,45,53,165,230, - 91,0,12,0,212,98,165,45,53,194,194,194,194,45,53,165, - 230,91,0,12,0,212,98,165,45,53,53,194,194,194,45,45, - 45,230,91,0,12,0,40,98,170,45,53,194,194,194,32,45, - 45,165,230,61,122,12,0,40,98,165,45,53,194,194,194,194, - 45,53,165,230,91,0,12,0,40,98,165,45,53,194,194,194, - 194,194,45,165,230,91,0,12,0,212,98,165,45,53,194,194, - 194,194,45,53,165,230,91,122,109,132,183,26,219,0,63,89, - 144,244,144,144,71,244,71,244,71,244,71,244,244,244,244,244, - 244,244,244,36,244,244,244,36,244,36,244,36,244,36,244,244, - 36,244,36,36,244,36,244,36,36,36,36,36,36,36,36,120, - 36,36,36,36,36,36,36,105,36,105,105,36,217,105,105,105, - 184,181,184,184,153,236,236,184,184,236,58,58,181,119,119,240, - 119,119,119,108,119,108,108,108,108,108,108,108,83,83,161,83, - 108,108,83,108,108,119,185,53,9,181,161,161,83,83,108,83, - 108,108,108,159,108,108,159,240,108,108,108,119,240,58,119,240, - 58,119,236,236,236,58,58,119,236,240,58,58,58,58,236,119, - 119,119,119,119,58,58,58,58,119,58,236,58,236,119,119,119, - 236,236,236,89,236,89,89,119,236,89,119,236,58,119,159,119, - 119,119,236,89,119,236,236,89,119,236,119,236,119,119,236,89, - 89,89,89,89,207,89,89,89,89,119,89,236,236,236,119,236, - 236,119,236,236,236,236,58,58,58,58,58,58,184,58,58,184, - 236,184,159,58,58,159,58,58,159,159,119,58,58,159,58,119, - 159,58,159,58,159,159,58,159,159,159,159,159,159,159,108,15, - 42,111,162,183,187,78,59,0,162,251,251,123,167,103,79,220, - 79,167,123,123,168,26,42,211,0,162,251,251,123,103,167,79, - 79,79,167,123,123,168,91,42,211,0,221,251,251,123,167,103, - 220,79,79,167,123,123,73,91,42,211,0,162,251,123,123,167, - 79,79,220,79,167,123,123,168,91,26,211,0,162,251,251,228, - 167,103,79,79,79,79,167,228,168,26,26,211,0,221,251,251, - 123,103,167,79,79,79,167,123,123,168,91,26,211,0,221,31, - 251,123,103,167,79,79,79,167,123,123,168,26,26,211,0,221, - 31,251,123,123,79,79,79,79,167,123,123,168,91,26,211,0, - 221,31,251,123,103,79,79,220,79,167,123,123,168,26,42,211, - 0,221,31,251,123,55,167,79,220,79,167,123,123,168,26,42, - 211,0,221,251,251,123,167,103,79,79,79,167,123,123,168,91, - 26,211,0,0,31,251,123,55,167,79,79,79,167,123,123,168, - 26,42,211,0,0,251,251,123,167,55,79,220,79,167,123,123, - 168,91,42,211,0,221,251,251,228,167,79,79,220,79,167,123, - 123,73,91,42,211,0,162,251,123,123,103,167,79,79,79,167, - 123,123,168,26,42,211,0,162,251,251,123,123,79,79,79,79, - 167,123,123,168,91,26,211,0,162,251,251,228,167,103,79,79, - 79,167,123,173,73,91,26,211,0,221,31,251,123,79,103,79, - 220,79,167,123,123,168,26,42,8,187,42,219,183,0,105,119, - 244,144,244,244,144,144,244,144,244,244,244,244,244,244,120,244, - 244,120,244,244,244,244,244,36,244,36,244,244,36,36,36,244, - 36,244,36,244,36,36,36,244,36,36,36,36,36,36,36,36, - 36,217,105,217,105,105,105,36,105,36,105,210,105,105,210,210, - 153,236,153,236,153,153,236,236,184,236,181,240,240,240,240,181, - 240,119,119,108,119,108,119,108,108,108,108,108,108,83,161,83, - 108,108,108,108,108,119,9,53,116,181,83,161,83,83,108,108, - 108,159,108,159,108,108,108,119,108,119,108,240,119,240,119,119, - 119,58,58,58,119,58,58,119,119,119,119,58,119,58,58,119, - 119,58,119,119,119,58,119,236,58,58,119,58,236,119,236,236, - 89,119,119,89,236,89,89,89,89,89,119,236,58,119,58,119, - 119,119,119,89,89,119,119,236,119,236,119,119,119,119,119,236, - 236,89,207,89,207,207,207,89,89,119,89,119,119,236,58,236, - 236,119,119,119,119,236,236,58,58,119,58,119,58,236,119,184, - 58,58,58,58,58,58,159,58,58,159,58,159,58,159,159,58, - 58,159,119,58,58,159,119,159,119,159,119,159,159,159,108,172, - 78,187,162,183,50,42,59,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,150,42,243,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,132,42,150,0,0,0,0,0,0,0, - 0,0,0,0,221,0,219,132,42,12,0,0,0,0,0,122, - 0,0,0,0,0,0,0,219,132,42,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,183,132,42,243,0,0,0,0, - 0,0,0,0,0,0,0,0,0,219,132,42,150,0,0,0, - 0,0,0,0,0,0,0,0,0,0,219,132,42,150,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,132,42,150,0, - 0,0,0,0,0,0,0,0,0,0,0,0,219,150,42,243, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,132,42, - 243,0,0,0,0,0,0,0,0,0,0,0,0,0,219,132, - 42,12,0,0,0,0,0,0,0,0,0,0,0,0,0,219, - 132,26,150,0,0,0,0,0,0,0,0,0,0,0,0,0, - 219,132,42,150,0,0,0,0,0,0,0,0,0,0,0,0, - 0,219,132,42,12,0,0,0,0,0,0,0,0,0,0,0, - 0,0,219,17,26,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,219,132,42,12,0,0,0,0,0,0,0,0,0, - 0,0,162,162,219,132,42,243,0,0,0,0,0,0,0,0, - 0,0,0,0,0,219,17,42,243,187,183,26,219,122,105,89, - 244,244,144,244,244,144,244,144,244,244,244,244,244,244,244,244, - 244,244,36,244,36,244,244,244,36,244,36,36,244,244,36,244, - 36,36,36,36,244,36,36,36,36,36,120,36,36,120,36,36, - 36,36,36,36,36,36,105,36,217,36,105,63,63,63,105,63, - 236,153,181,184,153,181,153,153,236,184,153,58,181,240,58,240, - 119,108,119,119,108,119,108,119,108,108,108,108,108,108,161,83, - 119,108,108,108,108,119,9,53,195,181,83,161,108,83,108,108, - 108,108,108,108,119,108,159,108,108,108,108,240,119,240,240,58, - 58,119,119,119,58,58,58,58,236,58,58,119,58,119,119,119, - 58,119,119,236,58,119,58,58,119,119,236,119,119,236,119,119, - 119,236,236,119,89,236,236,89,236,119,119,119,119,58,119,119, - 89,236,236,119,119,89,236,89,236,119,236,119,119,236,119,89, - 89,89,89,207,89,89,89,89,89,89,119,236,236,119,119,119, - 58,89,236,236,236,119,58,58,58,58,58,58,236,58,58,119, - 119,119,119,236,58,236,58,58,58,58,58,119,119,119,119,119, - 119,119,159,119,89,236,119,119,119,119,119,119,119,119,108,15, - 42,126,221,42,166,122,59,42,26,26,26,26,42,42,26,219, - 219,219,219,26,26,219,219,187,42,26,26,26,26,42,42,26, - 219,219,219,219,26,26,219,26,187,42,26,26,26,26,42,42, - 219,219,219,219,219,219,26,219,219,187,42,26,26,26,26,42, - 42,26,219,219,219,219,42,26,219,26,187,42,26,26,26,26, - 42,42,26,219,219,219,219,26,26,219,26,187,42,26,26,26, - 26,42,42,26,219,219,219,219,42,26,219,26,17,42,17,26, - 26,26,42,42,26,17,219,219,219,26,26,219,219,17,42,17, - 26,26,26,42,42,26,219,219,219,219,42,26,219,42,187,42, - 17,26,26,26,42,42,26,219,219,219,219,26,219,219,219,187, - 42,17,26,26,26,42,42,26,219,219,219,219,26,219,219,26, - 187,42,26,26,26,26,42,42,26,219,219,219,219,42,26,219, - 219,187,42,17,26,26,26,42,42,219,219,219,219,219,26,26, - 219,26,187,42,26,26,26,26,42,42,26,17,219,219,219,26, - 219,219,219,187,42,26,26,26,26,42,42,26,17,219,219,219, - 219,219,219,219,187,42,26,26,26,26,42,42,26,219,219,219, - 219,26,26,132,219,187,42,26,26,26,26,26,42,26,17,219, - 219,219,42,26,219,26,187,42,26,26,26,26,42,42,219,219, - 219,219,219,219,26,219,42,17,42,17,26,26,26,42,42,26, - 17,17,219,219,26,26,132,42,187,166,78,183,183,0,105,89, - 144,144,144,244,71,244,71,71,244,244,71,244,244,244,120,244, - 244,244,244,36,244,36,36,244,244,36,244,244,36,36,36,244, - 244,36,244,36,244,36,120,36,36,36,36,36,36,36,36,217, - 36,36,105,36,217,217,36,217,105,105,105,105,105,105,63,105, - 153,153,153,181,153,184,181,184,181,58,236,184,58,58,119,240, - 119,181,240,119,108,119,108,119,108,108,108,108,108,108,83,83, - 108,108,108,108,119,181,9,53,116,181,108,83,108,108,83,108, - 108,108,119,108,119,108,119,119,108,119,159,108,119,119,119,58, - 119,119,58,236,119,58,58,184,58,58,58,58,58,58,58,119, - 236,58,58,236,58,119,119,58,58,58,58,58,119,119,119,58, - 119,119,236,119,236,89,89,89,89,236,119,119,119,58,236,159, - 119,119,236,159,119,119,159,89,236,119,236,236,119,119,119,236, - 236,89,89,207,89,89,89,207,89,89,119,119,236,236,236,236, - 236,236,119,58,236,236,236,236,236,119,236,119,119,236,58,58, - 58,236,58,58,58,58,58,159,236,119,159,119,159,119,236,119, - 119,119,119,159,119,236,236,119,119,119,119,119,119,119,108,15, - 162,187,162,42,166,122,224,219,243,12,132,17,219,17,12,243, - 150,150,150,150,17,17,42,12,219,243,12,132,17,219,17,12, - 243,150,150,150,150,12,219,26,187,17,243,12,132,17,219,17, - 12,243,150,150,12,150,12,17,219,12,219,243,12,17,17,219, - 17,12,243,150,150,150,150,12,17,219,12,219,243,12,132,17, - 219,17,12,243,12,150,150,150,12,17,26,187,219,243,12,132, - 17,219,17,12,243,150,150,150,150,12,219,26,187,26,150,12, - 132,17,219,12,12,243,150,150,150,150,12,219,26,187,26,150, - 12,17,17,219,17,12,243,150,150,150,150,12,17,26,12,26, - 150,187,150,219,219,17,12,243,150,150,150,12,12,219,42,12, - 26,150,12,17,17,219,17,12,243,150,150,150,12,12,219,26, - 12,219,243,12,132,17,219,17,12,243,150,150,150,150,12,219, - 219,12,26,150,12,17,17,219,17,12,243,150,150,150,150,12, - 219,26,187,17,243,12,17,17,219,17,12,243,150,150,150,17, - 12,219,26,12,219,243,12,17,17,219,17,12,243,150,150,12, - 17,12,17,219,12,219,243,12,132,17,219,17,12,243,150,150, - 150,150,17,219,219,12,219,243,12,150,219,219,12,12,243,150, - 150,150,150,12,219,219,12,219,243,12,132,17,219,17,12,243, - 150,150,12,150,12,17,42,187,26,150,12,17,17,219,17,17, - 243,150,150,150,150,17,17,42,12,187,42,42,183,122,105,114, - 244,244,144,144,244,244,144,244,244,244,244,244,120,244,244,120, - 120,244,244,244,244,244,36,244,244,244,36,36,244,244,36,36, - 244,36,36,36,36,244,36,244,36,36,120,36,36,217,36,36, - 105,36,217,36,105,105,105,36,210,210,105,63,63,105,63,63, - 181,236,184,153,184,153,153,153,236,236,184,181,58,58,58,58, - 58,240,58,119,240,108,119,108,108,108,108,108,108,108,83,108, - 108,108,108,108,108,119,9,85,230,181,108,66,108,108,108,108, - 108,108,108,119,108,119,108,159,119,108,108,119,108,240,240,119, - 58,58,236,58,58,119,58,119,119,119,58,58,58,119,119,58, - 58,119,119,58,58,58,58,119,58,119,119,119,58,58,236,236, - 119,119,58,236,119,119,119,119,236,236,119,58,58,119,58,119, - 119,119,119,236,236,236,236,58,119,119,119,119,236,236,236,119, - 89,236,236,89,89,236,236,89,89,89,236,236,236,58,58,236, - 184,58,236,236,58,119,58,119,58,236,119,236,236,119,236,236, - 236,58,119,236,119,119,119,119,119,119,119,119,119,236,159,119, - 119,236,119,119,119,119,119,119,236,119,119,119,119,119,108,15, - 42,163,221,78,187,122,224,26,150,12,17,17,219,12,26,243, - 12,150,12,219,17,219,26,109,26,150,12,17,17,219,12,26, - 243,12,12,12,17,17,17,26,12,26,150,17,17,17,219,12, - 26,150,12,12,150,219,17,219,26,12,26,150,17,150,219,17, - 12,26,150,12,150,12,219,17,219,42,109,26,150,12,17,17, - 219,12,26,243,150,150,12,219,17,219,26,12,26,150,12,17, - 17,219,12,26,150,12,150,12,219,17,17,26,12,219,150,12, - 17,17,219,17,26,243,12,150,12,219,17,17,26,12,219,150, - 17,150,17,17,12,26,150,12,150,12,17,17,219,26,12,219, - 150,12,17,187,17,12,26,243,12,12,12,219,17,17,26,12, - 219,150,17,132,17,219,12,17,243,12,150,12,219,17,17,26, - 187,26,150,12,17,219,17,12,26,243,12,12,12,17,17,17, - 26,150,219,150,12,132,17,219,12,26,243,150,150,12,219,187, - 17,26,243,26,150,17,132,17,219,12,26,243,12,150,12,17, - 17,17,26,187,26,150,12,150,219,17,17,17,243,150,12,150, - 17,17,219,42,150,26,150,17,17,17,219,12,26,243,12,150, - 12,17,17,17,26,109,26,150,12,17,17,17,17,26,243,12, - 12,12,17,17,17,26,150,26,150,12,17,219,17,12,26,243, - 12,12,150,219,17,219,26,12,219,150,17,150,219,17,12,26, - 150,12,150,12,219,187,219,26,187,166,183,183,183,0,36,89, - 144,144,244,244,144,244,244,71,244,244,244,120,244,120,120,244, - 244,36,120,36,120,36,244,36,36,244,36,244,36,36,36,244, - 36,244,36,244,36,36,36,36,36,36,36,36,36,36,36,217, - 36,105,36,36,36,217,36,63,105,105,63,105,105,63,105,105, - 153,236,181,153,181,184,153,184,184,236,184,58,181,240,58,58, - 58,58,240,58,240,108,119,159,119,108,159,108,108,159,83,83, - 108,108,108,108,108,181,107,165,19,181,108,108,108,108,108,108, - 108,108,108,119,108,159,108,119,240,119,108,119,240,119,240,119, - 119,119,119,236,58,240,240,119,240,119,58,119,58,58,119,119, - 58,240,119,58,58,58,58,119,240,58,58,119,119,240,181,58, - 236,119,58,119,236,236,236,89,119,236,236,119,58,58,236,236, - 236,159,119,159,119,119,119,236,236,236,236,58,58,58,236,58, - 236,236,236,236,119,236,119,236,236,236,119,119,119,119,184,236, - 236,184,184,58,236,119,58,119,58,236,119,58,236,119,119,119, - 119,119,119,236,89,236,119,119,236,119,119,119,119,89,236,236, - 119,236,89,119,119,119,119,119,89,89,89,119,89,119,159,15, - 42,187,162,183,183,162,99,42,132,132,132,17,150,150,219,150, - 17,150,12,12,12,219,26,243,26,132,132,132,17,150,150,219, - 150,150,132,17,17,17,17,17,109,26,150,17,132,17,12,150, - 17,150,150,17,12,150,17,17,17,109,26,150,17,17,17,132, - 150,17,150,12,150,12,132,12,17,26,243,26,132,132,132,132, - 150,150,26,150,17,150,12,17,12,17,17,109,26,150,132,132, - 132,150,150,17,150,12,150,17,150,17,17,17,109,26,150,132, - 132,17,150,150,219,150,17,150,12,17,187,17,17,109,26,150, - 17,17,17,132,150,17,150,17,150,17,132,17,17,17,109,26, - 150,132,17,17,132,150,17,150,150,132,12,132,17,17,17,109, - 26,150,17,132,132,132,12,219,150,17,150,12,150,17,17,17, - 211,26,150,132,132,166,150,150,219,150,150,150,17,132,17,219, - 26,211,26,150,17,132,17,12,150,219,12,17,150,12,17,17, - 17,26,109,26,150,17,17,132,150,150,219,150,17,150,12,17, - 17,17,17,211,26,132,17,17,17,132,12,219,12,150,17,12, - 132,12,17,26,109,26,150,150,132,17,150,150,26,150,17,150, - 17,12,187,219,26,109,26,132,132,17,17,132,150,219,150,150, - 150,17,132,17,219,26,211,26,132,150,132,166,12,150,219,150, - 150,17,12,132,12,17,17,109,26,150,17,17,17,150,150,17, - 150,17,150,12,17,12,17,17,109,187,183,42,183,122,36,114, - 244,244,71,71,244,71,244,244,71,244,244,120,244,120,120,244, - 244,244,244,244,244,36,244,36,120,244,36,244,244,244,36,244, - 36,244,36,244,105,244,36,36,36,36,36,36,36,105,36,105, - 36,105,105,105,36,105,36,63,105,105,63,63,63,63,63,105, - 184,153,153,153,240,184,184,153,181,240,58,184,184,181,240,58, - 119,240,58,119,58,119,108,108,108,108,108,108,108,108,108,108, - 108,108,108,119,108,89,9,165,230,181,108,83,108,108,108,108, - 159,108,159,108,119,108,119,108,119,108,119,108,108,119,58,119, - 58,58,58,58,119,119,119,58,58,58,119,58,58,58,119,240, - 119,119,240,58,58,58,58,58,119,119,119,58,119,119,58,58, - 58,236,119,119,119,58,236,58,236,58,58,58,119,119,58,58, - 159,236,119,119,119,159,236,58,58,58,58,119,119,119,58,236, - 119,236,58,236,236,119,236,236,58,119,236,236,236,58,236,58, - 184,58,58,58,58,236,236,236,119,119,236,236,119,236,236,236, - 236,236,119,119,119,119,119,119,119,89,119,119,119,119,119,119, - 89,119,119,89,89,89,89,119,119,119,119,89,119,119,108,15, - 162,163,221,78,50,0,254,219,12,17,132,219,17,12,26,150, - 150,17,17,132,17,150,219,109,219,12,17,132,219,17,12,26, - 150,17,17,12,132,187,132,26,243,219,17,150,132,219,17,12, - 26,150,17,150,17,17,12,187,26,243,219,17,17,150,219,17, - 12,26,150,132,17,17,17,17,187,219,109,219,150,17,132,219, - 17,17,219,12,132,17,12,132,12,166,26,243,219,17,17,132, - 219,17,12,26,150,132,12,17,17,17,132,26,243,219,17,17, - 132,219,17,12,26,150,150,17,12,132,12,132,26,243,219,12, - 17,132,219,17,12,26,150,132,17,12,17,12,132,26,243,219, - 17,17,132,219,17,12,26,150,17,17,12,17,17,132,26,243, - 219,12,17,132,219,17,12,26,150,150,17,17,17,187,166,26, - 243,219,17,17,150,219,17,12,26,150,17,17,17,17,12,187, - 219,243,219,17,17,132,17,17,12,26,150,132,17,12,132,12, - 132,219,243,219,17,17,132,219,17,12,26,150,150,17,12,132, - 12,166,26,243,219,12,17,150,219,17,12,26,150,219,150,12, - 17,17,187,219,243,219,17,219,132,219,17,12,219,150,150,17, - 17,17,12,187,219,243,219,12,17,132,219,17,12,26,150,17, - 17,12,17,12,187,219,243,219,17,17,132,17,17,12,26,150, - 219,150,12,17,17,132,26,243,219,12,17,132,219,17,12,26, - 150,150,17,12,17,12,166,26,109,183,122,183,183,0,36,119, - 144,71,144,244,144,244,244,244,244,244,71,244,120,244,120,244, - 120,244,36,120,120,244,36,244,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,217,36,217,36,36,36, - 105,36,105,36,105,36,63,105,63,63,105,105,105,105,105,63, - 184,184,240,184,184,181,184,240,184,181,184,184,184,184,240,181, - 184,240,240,240,240,240,119,240,119,108,159,240,108,108,108,108, - 108,108,108,159,108,181,118,231,23,181,108,108,108,108,108,108, - 108,108,108,108,159,108,119,240,119,108,119,119,108,108,119,58, - 119,58,58,58,58,58,58,119,58,240,119,119,119,58,119,119, - 119,119,119,119,58,58,58,58,58,58,58,240,119,58,58,58, - 58,58,236,58,119,119,236,119,236,119,58,58,58,58,58,119, - 119,159,119,119,236,159,119,58,119,119,58,58,58,58,58,236, - 58,58,58,119,236,58,119,236,236,119,58,58,236,58,58,119, - 119,119,236,236,58,58,119,236,119,58,119,58,119,58,119,119, - 119,119,89,89,89,89,119,119,119,89,89,119,236,236,89,119, - 236,236,119,119,119,119,119,119,119,119,119,119,119,119,108,15, - 78,187,162,183,183,0,111,219,12,219,150,17,132,132,219,12, - 132,150,17,17,187,150,219,243,219,12,17,132,17,150,132,219, - 150,150,150,17,132,187,150,219,109,219,12,219,150,132,132,132, - 219,150,17,150,17,219,132,150,219,211,219,150,17,132,17,150, - 132,219,12,150,150,17,132,132,187,219,243,26,12,17,17,17, - 150,17,219,12,150,150,219,132,17,150,219,211,219,12,17,17, - 17,132,132,219,12,132,150,17,132,187,150,26,211,219,12,17, - 132,17,150,132,219,12,132,150,219,17,187,150,26,211,219,150, - 219,150,17,150,132,219,12,150,150,219,132,187,150,26,211,219, - 12,17,150,17,132,132,26,150,150,150,17,17,187,150,42,211, - 219,150,17,17,17,150,132,219,12,132,150,17,132,17,150,219, - 109,219,12,17,17,17,150,132,219,150,150,150,17,17,132,150, - 26,211,219,150,219,132,150,132,132,219,12,150,150,219,132,187, - 150,219,211,219,150,17,17,17,132,132,219,12,132,150,17,219, - 187,150,219,109,219,150,219,150,17,150,132,219,150,17,150,17, - 17,132,187,219,211,219,12,17,150,17,150,17,219,12,150,150, - 132,219,150,187,219,211,219,12,17,132,17,150,132,219,150,150, - 132,17,132,132,187,219,211,219,12,17,17,132,132,132,219,150, - 17,150,219,132,187,150,26,211,219,150,17,132,17,132,132,219, - 12,132,150,132,132,17,150,42,109,42,78,26,219,42,63,89, - 144,244,144,244,71,144,244,71,244,244,120,244,120,244,120,244, - 120,244,120,120,120,244,36,244,36,244,36,36,120,36,36,244, - 36,244,36,36,36,36,36,36,36,36,36,36,105,217,36,36, - 105,36,105,105,105,36,105,105,105,105,105,105,105,105,105,105, - 181,184,240,240,184,184,240,184,184,184,184,240,181,58,184,184, - 58,58,181,240,240,119,108,108,108,240,108,240,240,159,108,108, - 108,159,108,108,119,89,118,6,11,181,108,108,108,108,119,159, - 119,108,108,108,108,108,108,119,108,119,108,119,119,58,240,58, - 58,119,119,240,58,58,58,58,240,58,58,240,58,240,58,58, - 58,119,240,58,58,58,240,58,119,240,119,58,119,240,58,58, - 119,240,58,58,236,236,119,236,119,236,119,236,58,58,58,58, - 119,236,236,119,119,119,119,119,58,58,236,236,236,58,184,184, - 58,119,58,236,58,236,58,119,58,58,58,119,58,119,119,58, - 236,236,119,58,236,119,236,119,58,119,119,119,240,119,58,119, - 89,236,119,119,159,119,89,119,236,119,119,236,119,119,119,236, - 119,119,89,119,89,119,119,89,89,119,119,89,119,119,108,15, - 78,239,0,122,126,122,227,42,150,17,17,132,150,17,26,150, - 17,132,17,219,219,187,26,211,42,150,219,17,150,132,17,26, - 12,219,150,17,219,219,187,26,8,42,150,17,17,17,150,17, - 26,12,132,132,132,17,26,187,26,187,42,12,132,17,150,132, - 17,26,150,17,132,150,219,26,150,26,211,42,150,17,17,132, - 150,17,219,150,219,132,12,219,17,187,26,187,42,150,17,17, - 150,132,17,26,150,17,132,150,219,17,187,219,243,26,150,17, - 17,150,132,17,42,150,17,132,12,219,17,187,219,12,42,12, - 132,17,150,132,17,26,150,219,132,150,219,219,187,219,12,42, - 150,132,17,150,132,17,219,12,219,132,132,17,17,187,219,12, - 42,12,17,17,132,132,17,42,150,17,132,150,219,17,187,26, - 8,26,150,17,17,150,132,17,26,12,219,132,132,17,26,187, - 26,12,26,12,17,17,17,132,17,219,150,219,150,17,219,219, - 187,26,12,42,12,132,17,150,132,17,26,150,219,150,17,17, - 219,187,26,8,42,12,132,17,150,132,17,219,12,132,132,150, - 17,26,150,26,12,42,150,17,17,150,132,132,26,150,219,132, - 17,17,26,150,26,12,42,150,132,17,150,132,17,26,12,219, - 150,132,219,26,150,26,12,42,150,17,17,17,150,17,26,12, - 132,132,150,219,17,187,219,12,42,12,132,17,150,132,17,26, - 150,17,132,17,219,17,187,219,8,0,42,183,42,0,208,114, - 144,244,71,244,244,244,244,244,244,244,71,120,244,120,244,36, - 244,244,36,244,36,120,120,36,244,36,244,36,36,244,36,36, - 36,36,36,120,36,36,36,36,217,36,217,105,36,36,105,105, - 36,217,105,217,105,63,63,63,210,105,105,105,105,63,105,63, - 240,184,184,181,240,184,184,184,181,184,181,184,184,58,240,240, - 240,240,58,240,240,58,240,119,108,159,108,240,108,108,108,108, - 108,108,108,108,108,181,65,6,13,181,108,108,108,108,108,108, - 159,159,108,108,119,159,108,119,108,240,108,108,240,119,240,240, - 58,119,119,119,58,240,119,58,119,119,58,119,119,240,119,58, - 58,58,119,119,58,58,240,240,119,58,58,184,58,119,119,240, - 119,119,236,58,119,236,58,58,58,58,58,58,58,119,58,58, - 58,58,236,119,159,119,119,119,58,58,58,58,236,119,119,119, - 236,119,58,236,58,236,236,236,236,236,236,236,236,236,236,58, - 58,58,119,119,119,58,58,236,236,119,119,119,119,119,58,58, - 119,119,119,119,236,119,236,119,119,119,119,119,119,119,119,236, - 119,119,236,119,89,89,119,119,89,119,119,89,119,119,108,151, - 162,126,162,162,111,0,95,26,17,17,17,17,17,132,42,150, - 17,150,12,17,17,187,26,211,42,12,17,17,17,17,132,219, - 150,219,150,17,17,17,187,26,211,42,17,17,17,17,17,150, - 219,12,219,12,17,132,17,187,17,211,219,17,17,17,17,17, - 150,42,150,219,12,17,132,26,187,26,211,42,12,17,17,17, - 150,17,26,150,17,150,17,17,17,187,17,211,26,17,17,17, - 17,17,150,42,150,219,12,17,219,17,187,26,109,42,17,17, - 17,17,17,150,42,150,17,132,17,219,17,187,17,211,219,17, - 219,17,17,17,150,26,150,17,12,17,219,17,187,17,211,26, - 17,219,17,17,17,132,219,150,17,12,17,219,17,187,17,211, - 219,12,17,17,17,17,150,42,150,219,12,17,17,17,187,26, - 109,42,17,17,17,17,17,132,219,150,17,12,17,132,17,150, - 17,109,219,17,17,17,17,17,17,26,150,219,150,17,17,17, - 187,17,211,219,17,17,17,17,17,132,26,150,219,150,17,219, - 17,187,26,211,219,17,219,17,17,17,17,219,12,219,17,17, - 132,26,12,17,211,26,17,17,17,17,17,132,26,150,17,17, - 17,132,26,187,12,211,42,12,17,17,17,17,132,219,150,219, - 12,17,132,26,187,12,211,42,12,17,17,17,17,150,219,12, - 17,17,17,219,17,187,17,211,219,17,17,17,17,17,132,42, - 150,219,12,17,219,17,187,26,8,162,42,183,187,183,36,244, - 114,244,144,144,71,244,71,244,71,244,244,120,120,120,244,120, - 120,244,120,244,36,244,36,120,120,120,36,244,36,36,36,120, - 36,120,36,36,36,36,36,36,36,36,36,36,105,36,36,217, - 36,105,105,105,105,105,105,105,63,105,63,210,105,210,105,105, - 184,184,240,240,184,240,240,184,240,240,184,240,240,240,181,58, - 58,240,181,240,240,119,240,108,240,108,159,240,108,159,108,108, - 108,108,108,159,119,181,118,231,93,181,108,108,108,108,108,108, - 108,108,119,159,108,108,159,108,240,119,119,240,119,240,240,58, - 119,58,58,119,119,119,58,58,58,240,119,240,58,58,119,119, - 119,119,240,58,119,119,119,58,119,240,58,58,58,58,58,236, - 58,58,119,119,119,119,236,236,119,236,119,119,58,58,119,58, - 119,119,119,119,119,58,58,119,119,119,58,58,58,58,58,236, - 58,58,58,119,119,119,119,119,119,119,58,119,119,58,119,236, - 236,119,236,58,236,119,119,119,240,58,58,58,119,240,119,119, - 119,159,119,119,119,236,119,236,236,236,119,119,119,236,89,119, - 236,89,119,236,119,119,89,89,119,89,119,119,119,119,108,245, - 42,166,122,0,95,78,224,42,150,17,17,12,150,17,219,17, - 132,17,132,219,219,187,219,12,42,150,17,12,17,150,219,219, - 17,150,17,17,219,219,150,219,12,42,150,17,17,12,150,219, - 219,150,150,17,150,219,219,150,26,12,26,17,17,17,12,150, - 219,219,17,150,17,17,219,17,187,219,187,42,150,219,12,17, - 150,132,219,17,132,17,17,219,219,150,26,12,42,150,219,12, - 12,150,219,219,17,150,17,17,17,219,187,219,12,42,150,17, - 17,12,150,219,219,17,132,17,150,17,219,187,26,187,42,12, - 17,17,12,150,219,219,17,150,17,17,219,17,187,26,187,26, - 12,219,12,12,150,219,219,17,132,17,150,219,17,187,26,187, - 42,150,219,12,150,150,219,219,17,150,17,17,219,219,132,219, - 12,42,150,17,12,17,150,219,219,17,132,17,132,219,219,187, - 26,12,42,150,219,150,12,150,17,219,17,150,17,17,219,219, - 150,26,187,42,12,219,12,12,150,17,219,17,150,17,150,219, - 17,150,219,187,42,12,17,17,150,150,219,219,150,150,17,150, - 219,17,132,26,12,42,150,219,17,12,150,219,219,17,132,150, - 150,219,17,150,26,187,42,12,219,17,12,150,17,219,17,132, - 12,17,219,17,132,26,187,42,150,17,17,12,150,219,219,150, - 132,12,17,17,219,187,26,187,26,17,17,17,12,150,17,219, - 17,132,150,17,219,17,187,219,187,78,94,26,166,162,120,244, - 244,114,244,244,244,71,244,244,244,244,120,244,120,244,120,244, - 244,120,36,120,120,36,244,120,36,120,36,36,36,36,36,36, - 120,36,120,36,36,36,36,36,217,105,36,217,36,105,105,105, - 105,210,105,105,105,105,63,63,36,63,105,105,105,105,63,63, - 184,240,240,240,181,240,240,240,184,181,184,181,184,240,240,240, - 58,240,184,240,240,240,181,108,240,108,240,240,108,159,108,108, - 108,108,108,108,108,181,19,231,93,181,108,108,108,108,119,108, - 108,108,108,119,108,108,119,108,108,108,159,108,119,240,119,240, - 240,119,240,119,58,58,58,58,58,58,58,119,58,159,240,119, - 58,119,119,58,58,58,58,58,58,119,119,58,119,119,119,236, - 58,58,58,236,236,119,119,236,58,58,58,119,58,58,119,58, - 58,58,58,236,119,119,58,119,119,119,58,58,236,58,58,236, - 236,119,58,236,236,236,236,236,119,236,119,119,119,119,119,119, - 58,119,119,58,58,58,119,119,119,119,58,240,119,119,159,119, - 119,119,119,119,119,236,119,119,119,119,236,236,119,119,119,119, - 119,236,119,119,119,119,119,89,119,89,119,119,108,108,108,151, - 0,163,187,183,111,183,95,42,26,219,17,17,17,17,219,17, - 17,219,17,26,17,17,26,150,42,26,219,17,17,12,17,219, - 17,17,17,17,219,26,187,26,150,42,26,219,17,219,12,17, - 26,219,17,17,219,219,26,150,26,150,219,26,219,17,219,12, - 17,219,219,17,17,17,219,17,12,219,150,42,219,219,17,219, - 26,12,219,17,17,17,219,219,26,150,26,150,42,219,219,17, - 219,12,17,219,219,17,17,219,219,17,12,26,150,42,26,219, - 17,17,17,17,219,17,17,17,219,219,17,150,26,150,219,26, - 219,17,17,17,17,219,219,17,17,17,219,17,150,26,150,219, - 26,219,17,17,17,17,219,17,17,219,219,219,17,150,26,150, - 42,219,219,26,17,12,17,219,219,12,17,219,219,26,187,26, - 243,42,219,219,17,17,12,17,219,17,17,17,219,26,12,132, - 26,150,42,26,26,17,17,17,17,219,17,17,17,17,26,26, - 150,26,150,219,219,219,17,219,12,17,219,219,12,219,17,219, - 26,187,26,150,219,26,219,26,17,12,17,26,219,17,17,219, - 219,26,150,26,150,42,26,219,17,17,17,17,219,17,17,219, - 219,219,26,132,26,150,219,26,219,17,17,17,17,219,17,17, - 17,219,17,26,150,26,150,42,219,219,17,17,17,17,26,219, - 12,17,219,219,17,150,26,150,219,26,219,17,17,17,17,219, - 17,17,17,219,219,17,187,26,150,122,0,0,122,78,144,71, - 244,244,144,144,244,244,244,244,244,244,248,244,120,120,120,120, - 244,244,36,244,120,36,120,36,120,36,120,120,36,244,36,120, - 36,36,120,36,36,36,36,36,36,105,36,105,36,217,105,105, - 36,210,210,210,210,105,105,63,105,105,63,210,63,105,105,63, - 240,240,240,240,240,240,240,184,184,240,184,184,240,181,240,58, - 240,240,240,119,240,240,108,240,159,240,159,240,108,108,159,108, - 108,119,108,108,119,181,65,231,93,181,83,108,108,108,108,108, - 119,108,108,108,108,108,108,119,240,119,108,240,240,119,240,119, - 119,119,119,159,58,58,119,240,119,159,119,240,119,119,119,159, - 119,58,58,119,58,58,119,240,119,240,58,58,58,58,58,119, - 119,119,236,119,58,236,236,119,119,119,236,58,119,119,58,58, - 58,119,236,119,236,236,236,236,58,58,119,119,58,119,119,119, - 119,236,119,58,119,119,119,58,236,119,119,236,119,119,240,58, - 119,58,58,58,58,119,240,119,240,58,119,58,119,159,119,119, - 159,119,159,119,119,159,119,159,119,119,119,119,119,159,119,119, - 119,119,236,89,119,119,89,119,119,119,89,119,89,89,119,186, - 162,56,78,246,221,0,78,0,42,122,122,0,122,42,122,122, - 42,122,122,122,42,42,183,187,0,42,122,122,0,0,42,122, - 122,122,122,122,122,183,42,183,187,0,42,122,122,0,122,42, - 122,122,122,122,122,122,219,42,183,187,0,42,122,122,0,122, - 42,122,122,122,122,122,122,42,42,42,187,122,42,122,122,122, - 0,42,122,122,122,122,122,78,183,42,183,187,122,42,122,122, - 0,122,42,122,42,122,122,122,122,42,42,183,187,0,42,122, - 122,0,122,42,122,122,122,122,122,122,42,42,219,187,0,42, - 122,122,0,122,42,122,122,122,122,122,122,42,42,183,187,0, - 42,122,122,0,122,42,122,122,42,122,122,122,42,122,219,187, - 122,42,122,122,0,122,42,122,122,122,122,122,78,183,42,183, - 187,0,42,122,122,0,0,42,122,122,122,122,122,162,42,42, - 183,187,122,42,122,122,0,122,42,122,122,122,122,122,78,183, - 42,183,187,0,42,122,122,0,0,42,122,122,122,122,122,122, - 183,42,219,187,122,42,122,122,0,122,42,122,122,122,122,122, - 162,183,42,183,187,122,42,122,122,122,122,42,122,122,42,122, - 122,162,219,42,219,187,0,42,122,122,0,122,42,122,122,42, - 122,122,162,183,42,183,187,0,42,122,122,0,122,42,122,122, - 122,122,122,122,42,42,183,187,0,42,122,122,0,122,42,122, - 122,122,122,122,122,26,42,183,187,0,0,0,0,221,15,120, - 71,244,140,244,71,244,71,244,248,244,244,120,120,244,244,36, - 120,36,244,36,120,120,36,120,36,120,36,36,36,36,36,36, - 36,36,217,36,36,217,217,36,105,36,105,36,105,63,105,105, - 63,105,105,105,105,105,105,105,105,210,105,105,105,63,63,105, - 184,240,240,240,240,240,240,240,240,240,240,181,184,58,240,240, - 240,240,181,240,240,119,240,119,108,108,240,240,240,108,240,240, - 108,240,108,119,108,181,23,6,138,181,108,108,108,108,159,108, - 159,108,119,159,108,108,108,108,108,119,240,119,108,119,240,240, - 119,240,119,119,119,119,58,58,119,240,119,159,240,58,119,240, - 119,58,240,119,58,240,119,58,58,240,119,119,58,236,58,236, - 236,119,58,181,58,58,58,58,58,119,119,236,236,236,119,119, - 236,119,58,119,119,119,58,119,119,58,58,119,119,236,119,58, - 58,236,236,119,58,119,119,58,58,58,58,58,119,119,119,119, - 119,119,119,240,119,58,119,119,119,119,119,119,240,119,240,119, - 58,119,58,159,119,159,119,159,119,119,119,119,119,119,119,159, - 119,119,159,119,119,119,119,119,119,159,119,108,120,0,212,75, - 221,0,78,0,35,47,44,142,75,187,95,166,35,219,0,0, - 166,183,219,221,50,50,111,183,50,22,122,183,162,162,94,162, - 109,50,162,162,162,221,187,187,111,224,166,111,166,187,94,187, - 187,183,42,42,162,122,0,0,0,187,183,78,122,183,183,183, - 0,0,122,122,0,0,221,0,162,162,0,0,0,162,162,0, - 0,0,122,122,0,122,78,50,50,162,183,221,42,132,95,166, - 166,224,0,78,42,78,42,162,0,122,122,42,42,111,162,42, - 183,183,183,42,183,183,42,183,78,122,0,0,0,122,183,0, - 0,122,0,0,0,0,0,162,162,162,162,162,162,162,162,162, - 111,200,111,50,163,111,111,75,224,75,111,75,224,97,35,35, - 200,42,122,122,0,122,0,122,122,122,42,78,122,122,183,227, - 59,0,0,122,122,122,122,122,122,0,122,111,126,183,0,0, - 42,183,122,0,0,122,122,0,0,122,122,78,183,94,0,78, - 122,0,122,0,122,78,122,122,122,26,0,0,0,122,78,0, - 162,162,162,162,162,162,162,162,0,162,162,0,122,122,122,122, - 162,122,0,221,122,122,122,122,122,122,122,42,42,122,42,0, - 0,0,0,0,212,183,0,0,0,0,0,122,0,162,221,0, - 42,122,42,0,221,212,50,78,122,0,94,78,42,0,42,219, - 132,26,122,183,162,122,162,0,0,0,0,0,0,0,0,42, - 219,122,42,122,0,0,162,162,0,0,122,122,0,0,0,0, - 0,105,89,244,244,244,244,244,244,120,244,244,120,36,244,244, - 244,36,120,36,120,244,36,120,36,36,120,36,36,36,36,120, - 36,36,36,217,36,36,105,36,217,36,105,105,36,210,105,105, - 105,105,105,63,63,105,105,210,105,63,105,63,105,105,63,63, - 240,240,240,240,240,240,240,240,240,240,184,240,240,240,240,58, - 240,184,240,240,240,108,240,240,240,240,240,240,108,240,108,240, - 240,108,108,119,108,181,19,6,93,181,83,108,108,108,108,108, - 108,108,108,108,108,159,119,240,119,108,240,108,119,240,159,119, - 240,119,159,58,58,58,119,119,159,58,58,119,58,119,58,58, - 119,119,58,119,119,119,58,119,119,58,119,58,119,58,58,58, - 119,236,236,236,119,119,119,119,119,240,58,58,58,119,58,58, - 58,58,119,58,58,119,119,236,236,119,119,58,58,119,58,119, - 119,119,119,236,236,58,119,119,119,119,119,119,58,58,119,119, - 240,119,240,119,119,119,240,58,119,240,119,159,119,159,119,159, - 58,58,159,119,159,119,119,159,119,159,119,108,119,108,119,119, - 119,119,119,119,119,119,119,119,119,119,119,108,133,50,29,135, - 142,0,78,0,29,50,109,135,44,221,95,0,37,0,187,59, - 44,200,95,162,50,162,64,166,95,212,122,187,162,162,187,227, - 42,227,162,187,183,0,59,224,59,59,59,44,64,59,224,75, - 183,78,221,122,42,42,42,122,0,59,200,111,126,163,224,95, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78, - 122,162,162,162,162,0,187,164,203,122,26,95,132,254,99,182, - 99,34,187,126,126,187,95,219,122,221,122,0,122,64,224,97, - 111,97,111,59,224,163,187,0,162,187,64,64,214,44,99,64, - 99,64,224,166,0,0,0,221,162,50,22,162,50,162,162,162, - 163,35,200,47,47,35,200,59,97,95,47,59,223,64,64,29, - 35,78,122,26,42,0,0,0,0,246,78,183,183,243,64,214, - 235,44,122,78,183,42,183,78,78,122,42,34,64,64,44,34, - 224,44,64,0,254,42,26,224,47,109,64,44,34,59,122,126, - 26,187,42,0,35,224,42,122,42,187,0,0,0,187,187,0, - 162,162,0,0,0,0,50,40,50,94,183,50,162,42,122,42, - 42,42,42,122,42,219,122,122,219,17,17,132,17,26,219,42, - 0,162,162,0,0,162,0,0,162,0,0,42,0,42,187,0, - 219,162,56,37,241,50,187,183,162,162,183,42,78,42,183,162, - 42,183,187,183,221,187,111,187,122,42,122,122,122,0,0,109, - 182,243,109,187,162,0,122,122,122,0,0,42,122,0,0,0, - 12,120,114,244,244,248,244,120,120,244,120,120,36,244,120,36, - 36,244,36,120,36,36,120,36,36,120,36,120,36,36,36,120, - 36,36,36,36,36,105,36,105,36,105,105,36,105,105,210,105, - 63,63,63,105,105,63,105,105,105,105,63,105,63,63,63,105, - 240,240,247,240,240,240,247,184,240,240,184,240,181,240,240,181, - 240,240,240,240,240,240,108,240,240,240,240,240,108,240,108,108, - 240,240,108,108,108,181,23,6,138,169,83,108,240,108,108,108, - 119,108,119,108,108,108,159,108,240,108,119,108,240,119,108,119, - 58,119,159,119,58,58,58,119,58,58,240,119,159,119,119,58, - 240,119,58,119,58,58,240,240,58,58,58,58,58,119,181,184, - 119,58,58,58,119,58,58,119,119,119,119,58,58,119,119,119, - 119,58,58,119,58,58,240,119,58,58,58,58,58,119,58,58, - 58,119,58,119,119,58,58,58,58,240,119,58,58,240,119,119, - 119,119,119,240,119,58,119,240,119,240,119,240,119,159,119,119, - 119,58,58,119,159,119,119,159,119,108,119,159,119,108,108,119, - 108,108,119,119,119,119,119,119,119,119,119,108,151,163,229,229, - 133,162,122,0,223,50,0,111,224,122,122,37,22,221,183,78, - 50,50,50,50,162,163,187,215,26,122,0,187,162,163,163,212, - 78,162,122,50,162,162,64,64,47,64,47,64,59,95,42,42, - 162,122,42,122,122,122,42,122,0,59,59,224,224,200,35,111, - 0,0,0,0,0,0,122,183,78,0,0,0,126,42,162,162, - 94,183,163,163,162,0,187,37,37,42,26,183,166,59,46,37, - 203,75,42,162,162,162,162,183,122,0,64,47,46,64,47,59, - 35,44,44,29,254,0,0,95,44,47,99,200,95,212,37,224, - 254,95,95,99,99,99,221,0,0,162,50,162,162,50,212,122, - 122,162,50,162,95,46,75,163,50,162,94,187,111,44,47,44, - 35,42,42,26,42,50,209,24,209,221,187,183,183,37,50,246, - 246,111,214,221,183,187,111,166,187,183,122,59,47,59,44,34, - 187,187,44,122,44,0,99,44,187,111,59,64,111,122,187,111, - 187,122,42,34,20,95,122,0,122,78,26,162,78,111,219,42, - 75,200,224,75,59,59,162,50,162,162,50,50,162,17,187,183, - 162,162,162,221,122,187,0,162,162,122,122,78,78,162,78,0, - 162,162,162,122,187,187,0,26,26,183,0,42,162,162,42,0, - 163,226,162,46,187,132,239,94,187,50,162,42,187,111,132,183, - 139,0,187,166,78,0,0,42,162,0,0,0,0,0,0,42, - 254,187,183,0,0,0,122,122,0,0,0,42,42,0,0,42, - 67,25,89,244,244,244,244,244,120,244,120,120,36,244,244,36, - 120,244,36,244,36,120,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,105,105,217,105,105,105,105,105,105, - 105,105,63,63,105,210,105,105,105,105,105,105,105,105,63,63, - 240,108,240,240,240,240,240,108,240,240,108,240,240,240,108,240, - 240,108,240,240,240,108,240,240,108,108,240,240,240,108,108,108, - 108,108,108,119,108,89,23,6,216,39,83,108,108,108,108,159, - 108,108,108,159,108,108,108,159,240,240,108,240,108,108,240,240, - 119,240,119,159,119,58,119,240,119,159,58,58,119,240,119,240, - 58,58,119,58,58,119,119,58,119,240,240,119,240,58,58,119, - 240,119,58,119,58,58,119,58,58,119,240,119,58,58,58,58, - 58,119,119,58,119,119,119,119,240,58,119,119,119,58,119,119, - 119,58,119,58,58,58,58,119,119,119,58,119,119,119,240,119, - 240,58,119,240,119,119,58,58,119,58,119,159,119,240,159,240, - 159,119,119,159,119,119,119,108,119,119,108,119,119,119,119,119, - 119,119,119,119,159,119,119,119,119,119,119,83,15,75,171,135, - 229,46,0,122,24,44,0,94,203,97,166,37,22,95,215,183, - 183,162,162,42,183,50,162,162,239,126,187,95,166,203,241,162, - 111,166,50,163,163,183,59,64,64,35,111,75,221,0,122,122, - 122,42,122,122,183,0,122,122,0,47,59,46,59,59,35,99, - 0,0,122,183,122,42,162,0,122,183,0,111,133,126,0,162, - 183,37,50,97,162,0,126,203,183,122,219,0,0,0,187,203, - 37,203,50,162,162,162,50,162,0,26,253,29,223,64,34,99, - 44,34,192,224,0,219,44,99,183,183,0,40,22,37,40,224, - 59,109,75,37,212,99,225,224,0,0,162,163,50,224,162,162, - 50,78,227,50,50,47,59,200,47,97,162,166,24,44,35,46, - 59,42,122,42,42,50,35,241,75,162,221,183,164,14,50,164, - 37,212,166,64,162,187,95,126,187,183,187,0,183,44,64,64, - 44,254,150,59,64,183,59,111,95,95,224,109,56,166,111,187, - 221,111,20,29,253,95,243,47,152,35,254,162,26,254,224,111, - 34,34,29,29,20,44,0,122,162,183,221,78,122,95,111,78, - 162,162,162,162,162,111,162,122,122,37,162,162,162,162,162,0, - 162,162,162,166,99,224,122,219,0,75,241,94,162,162,166,12, - 59,200,212,241,132,78,162,187,183,0,162,183,132,111,42,162, - 162,132,109,109,166,0,122,0,0,42,183,219,42,0,0,162, - 78,122,0,0,78,122,26,122,0,0,78,0,0,0,0,219, - 182,36,114,71,244,248,248,120,244,120,120,244,120,36,120,244, - 36,120,36,36,120,36,120,36,120,36,36,36,36,36,36,36, - 36,36,36,36,36,105,105,105,105,36,105,105,105,105,63,105, - 105,105,105,105,105,105,105,210,105,105,63,105,63,210,105,36, - 240,108,247,240,247,240,240,240,240,240,240,240,240,240,240,108, - 240,108,108,240,240,240,108,240,240,108,240,108,240,240,108,108, - 108,83,108,108,108,181,250,6,216,39,83,83,240,108,108,108, - 240,108,108,159,108,108,108,108,108,108,108,240,159,240,119,108, - 159,108,119,108,119,119,119,159,119,240,119,240,119,58,119,119, - 119,58,58,58,58,58,58,240,119,119,119,119,58,119,119,58, - 119,119,58,58,58,58,181,240,119,119,119,119,119,58,58,58, - 58,240,119,58,119,240,119,119,119,58,240,240,119,58,58,58, - 119,240,119,119,119,240,119,240,119,119,58,58,240,119,240,119, - 119,240,119,240,119,159,119,240,119,240,119,119,119,119,119,119, - 159,119,159,119,119,119,119,119,119,119,119,119,119,119,119,119, - 159,119,119,119,119,89,119,119,119,119,119,83,15,241,229,135, - 229,171,162,34,34,75,0,162,37,203,163,122,94,22,50,162, - 42,162,78,50,50,162,162,141,95,215,162,0,219,50,203,50, - 183,40,78,212,50,95,162,111,183,219,0,99,44,0,122,42, - 122,122,122,183,111,183,0,0,0,35,59,59,47,64,44,64, - 0,0,42,122,221,219,0,0,0,183,0,187,0,187,0,162, - 162,227,42,75,42,0,94,50,122,122,42,0,0,162,0,97, - 22,37,22,78,0,162,50,162,42,29,34,44,35,64,34,35, - 44,44,111,0,99,44,111,42,126,187,78,111,164,164,40,95, - 97,95,200,22,22,37,212,99,34,166,215,50,163,183,239,183, - 50,187,166,183,22,75,34,35,35,126,183,34,44,47,34,47, - 35,17,0,122,42,163,42,42,163,50,26,183,226,212,212,212, - 241,50,22,224,111,187,224,95,95,111,111,187,122,95,239,95, - 34,64,183,47,171,35,183,59,99,59,239,221,219,224,219,42, - 47,44,75,109,35,95,192,57,152,245,97,0,187,224,224,109, - 223,44,29,178,171,224,122,162,50,162,162,162,122,150,187,0, - 162,42,50,42,122,187,162,162,122,241,162,0,0,162,0,0, - 162,0,0,99,44,214,239,26,122,163,142,59,59,243,182,224, - 187,187,224,162,42,219,187,162,183,187,122,26,17,166,0,94, - 0,99,99,211,109,166,183,0,42,219,183,132,187,187,0,162, - 0,0,0,162,187,183,42,0,0,0,0,0,0,122,0,109, - 211,105,114,244,244,244,248,120,120,244,36,120,120,36,120,244, - 120,36,120,36,120,36,36,36,36,36,36,36,36,217,36,36, - 36,217,36,36,36,36,36,217,105,105,217,36,217,105,105,105, - 210,105,105,105,105,217,36,105,105,36,210,105,105,105,105,105, - 108,240,240,108,240,108,108,108,108,240,108,108,240,240,108,240, - 240,240,240,108,108,108,240,108,108,240,108,240,108,108,108,108, - 108,108,108,108,108,119,250,6,41,181,83,108,108,108,108,108, - 108,108,108,108,108,159,108,108,240,240,159,108,108,240,240,119, - 240,119,240,58,119,58,58,119,240,119,159,58,58,58,58,119, - 240,240,58,119,240,119,240,58,58,58,240,58,119,240,240,119, - 119,240,119,240,119,240,58,119,240,58,58,58,58,119,119,119, - 119,119,240,119,240,119,119,119,240,119,119,58,58,58,58,119, - 240,119,119,58,58,119,119,119,58,58,58,119,119,119,58,119, - 240,58,119,119,240,119,159,119,240,119,108,159,119,240,119,240, - 119,159,119,159,119,159,143,119,119,143,119,119,159,119,159,119, - 119,159,119,159,236,119,119,119,119,119,119,108,245,59,229,245, - 229,186,163,223,142,162,162,0,56,75,162,50,0,95,162,94, - 94,78,227,95,246,162,212,183,0,0,122,94,0,215,183,163, - 37,241,75,183,111,50,95,111,37,22,122,99,29,183,0,122, - 122,42,122,239,126,224,95,0,0,95,224,64,47,34,223,171, - 0,0,183,122,183,122,219,183,0,122,0,166,59,166,0,0, - 75,91,22,241,162,0,40,42,122,187,219,187,0,0,0,187, - 164,50,50,59,59,122,162,187,239,171,59,64,24,64,214,35, - 64,183,0,64,214,212,164,59,219,50,183,187,78,183,187,111, - 219,187,224,241,164,22,95,187,47,59,183,0,203,50,94,37, - 94,162,50,200,163,162,187,34,187,239,46,44,200,46,35,35, - 64,111,26,26,42,24,22,187,24,122,17,162,37,94,162,75, - 94,0,209,221,44,122,95,109,59,224,224,111,183,64,29,221, - 99,215,162,34,171,59,44,254,59,95,0,0,187,187,224,29, - 178,139,64,214,64,97,171,15,208,171,111,0,187,254,109,59, - 158,253,224,254,35,163,0,42,37,162,94,0,42,224,111,162, - 50,78,0,162,221,91,122,162,0,164,111,187,224,254,109,0, - 0,0,122,64,64,214,166,42,122,164,84,92,59,183,212,50, - 0,0,26,183,221,183,0,183,111,111,0,42,221,0,122,163, - 0,99,254,122,221,183,162,122,42,78,162,0,162,111,187,0, - 0,0,0,0,162,0,0,78,0,0,0,0,122,122,0,99, - 109,105,114,248,248,248,244,120,244,120,120,120,36,244,120,36, - 244,36,120,36,36,120,36,36,36,25,36,36,36,36,36,36, - 36,36,36,217,36,36,105,105,217,105,36,105,63,217,217,217, - 36,105,105,105,105,105,105,217,105,105,105,105,105,210,105,105, - 240,108,108,108,240,240,240,240,240,240,240,240,240,240,240,240, - 108,240,240,240,240,108,240,240,108,108,108,108,108,240,66,108, - 108,108,108,108,108,181,250,6,62,114,247,108,108,108,108,108, - 108,108,108,159,108,240,240,159,108,108,240,159,240,108,159,108, - 159,119,159,58,240,119,240,119,159,119,240,119,159,240,119,58, - 119,119,240,119,240,119,119,240,119,58,240,119,240,119,58,240, - 119,119,119,119,119,119,240,119,119,240,119,58,58,240,119,58, - 58,119,119,119,58,240,119,119,119,119,119,58,240,240,119,58, - 58,240,119,240,119,240,58,240,119,240,240,119,240,119,240,119, - 119,240,119,240,119,119,240,119,159,119,119,240,119,159,119,119, - 119,119,119,236,119,119,119,119,119,159,119,119,119,119,119,119, - 119,159,119,119,119,119,119,119,119,119,119,83,15,61,253,223, - 253,229,44,162,223,47,126,95,50,50,227,162,122,183,78,166, - 227,78,42,37,212,183,111,162,162,0,24,178,46,162,95,162, - 162,162,50,95,42,94,221,183,164,50,224,44,20,29,42,122, - 122,122,0,221,50,224,111,224,50,183,183,163,162,163,44,29, - 78,0,0,126,187,94,183,183,187,0,0,95,20,227,0,0, - 50,50,24,61,122,0,239,0,183,166,17,183,0,122,0,183, - 22,212,37,163,171,162,162,162,0,224,239,64,46,187,59,224, - 187,0,99,44,162,164,14,47,215,187,0,0,0,0,132,59, - 42,26,183,26,243,200,59,163,212,187,192,221,162,50,246,212, - 94,183,126,163,42,200,64,126,162,20,135,29,35,34,224,111, - 59,111,122,42,26,163,37,75,209,26,183,221,221,37,61,183, - 46,203,50,78,111,0,122,122,166,215,95,126,183,59,64,64, - 47,254,34,29,111,0,183,221,0,0,0,26,142,29,20,245, - 44,61,200,224,223,95,192,171,245,20,26,162,183,187,187,111, - 47,224,42,42,42,94,162,162,50,42,50,0,187,59,109,0, - 162,162,0,0,0,0,0,162,0,164,214,64,192,225,192,187, - 0,0,0,111,150,224,78,0,162,183,163,163,163,0,50,37, - 0,162,0,166,26,187,187,224,126,163,212,0,0,0,42,61, - 0,182,111,162,183,183,162,162,0,162,42,122,0,42,187,122, - 0,78,42,122,162,162,162,122,122,0,0,0,122,0,0,64, - 109,120,114,244,244,248,244,120,244,120,120,120,36,120,120,36, - 244,36,120,36,120,36,36,36,120,36,217,36,36,217,36,217, - 36,36,36,36,105,36,105,105,105,63,105,36,105,105,105,105, - 105,217,105,217,105,217,36,105,217,105,105,105,105,105,105,105, - 108,240,240,247,240,247,240,240,247,240,240,108,108,240,240,240, - 240,108,108,240,240,240,108,108,240,240,108,240,108,108,240,108, - 108,108,108,108,159,108,43,6,62,74,161,108,108,108,159,108, - 159,240,240,108,240,108,159,108,159,240,159,108,159,240,108,58, - 240,240,119,119,58,58,58,119,108,159,119,240,119,119,240,58, - 119,240,119,58,58,119,240,58,58,58,119,240,58,58,119,58, - 119,240,58,119,240,119,58,119,240,119,240,119,240,58,119,240, - 58,58,119,240,119,119,240,58,240,119,240,119,119,119,240,119, - 240,58,119,119,240,119,119,119,240,119,119,119,240,119,119,240, - 58,119,240,119,159,159,119,58,58,236,240,58,58,119,119,240, - 58,58,159,159,159,119,159,119,159,119,119,119,159,119,159,119, - 159,119,119,159,119,89,119,119,119,119,119,83,15,122,47,44, - 223,29,20,0,126,46,122,50,50,37,75,50,183,162,162,50, - 203,22,97,17,50,163,215,162,162,163,75,163,126,94,162,163, - 50,221,183,50,94,227,126,162,183,40,163,64,29,34,183,0, - 122,122,42,122,0,187,166,224,59,224,50,42,122,166,42,95, - 162,0,122,59,221,166,42,122,187,0,0,0,0,0,0,0, - 187,22,50,183,0,0,94,162,0,0,0,0,0,0,0,126, - 164,22,22,22,15,42,122,56,0,162,0,44,34,187,59,59, - 0,64,254,59,241,241,203,0,150,166,111,162,0,0,219,227, - 0,42,26,122,42,243,227,183,183,50,126,64,183,50,162,162, - 162,163,163,75,47,47,183,183,219,111,59,224,142,34,224,126, - 166,219,122,122,26,183,200,22,78,162,22,212,22,50,22,162, - 35,50,0,64,166,0,122,26,26,26,42,26,0,192,34,59, - 15,64,111,122,0,0,0,122,122,42,35,171,135,29,162,75, - 95,145,59,235,24,97,64,0,126,187,95,0,162,78,0,0, - 162,0,122,0,122,50,78,42,50,50,221,0,183,166,187,162, - 162,162,0,0,0,0,162,162,0,37,64,64,192,225,192,166, - 0,0,0,0,0,0,162,0,0,0,126,46,111,183,162,40, - 162,162,42,224,97,163,50,162,183,111,94,0,183,162,162,163, - 162,182,182,187,187,162,42,78,162,162,183,50,162,162,162,0, - 0,122,122,122,162,122,122,122,122,122,122,0,122,0,0,145, - 12,36,114,248,120,244,248,248,120,244,120,120,120,120,120,120, - 36,36,36,120,36,120,36,36,36,36,120,217,36,36,36,36, - 217,36,36,217,36,217,105,105,210,105,105,105,105,217,105,105, - 105,63,105,63,105,36,63,36,105,105,210,210,217,217,217,105, - 108,240,240,240,240,240,240,240,240,108,240,240,240,240,240,240, - 240,240,240,108,240,240,240,240,108,240,240,240,240,108,240,240, - 108,108,108,108,108,181,43,6,62,71,247,108,108,108,240,108, - 108,159,108,108,159,108,240,159,240,240,159,240,240,159,159,240, - 119,108,159,240,159,58,240,119,119,58,58,159,58,58,240,119, - 58,240,119,58,58,58,159,240,159,58,58,58,58,240,58,240, - 119,58,240,119,240,119,159,119,58,119,240,119,119,240,119,119, - 58,240,119,119,159,119,240,119,240,119,240,119,184,58,58,58, - 119,58,58,58,58,240,119,58,58,58,240,119,240,119,119,58, - 58,58,240,119,119,58,58,58,58,236,58,58,184,236,236,58, - 58,236,58,236,119,119,119,119,119,159,119,119,119,236,119,119, - 159,89,119,119,119,236,119,119,159,119,119,83,229,111,135,229, - 151,135,38,42,126,239,227,162,163,59,221,162,50,163,162,183, - 50,50,163,111,183,183,94,0,163,84,163,42,209,162,94,126, - 163,163,50,126,126,94,163,50,42,162,183,44,29,44,35,122, - 0,0,122,42,0,0,162,95,221,224,219,122,111,163,162,42, - 26,187,221,42,0,0,0,0,183,183,219,122,42,0,0,59, - 47,22,22,187,111,0,162,163,0,0,162,50,162,162,183,95, - 50,94,94,187,29,44,95,75,187,29,35,223,34,44,29,183, - 99,95,126,59,59,183,0,0,187,166,99,44,35,50,163,171, - 171,182,95,162,95,183,26,243,243,200,22,95,59,50,212,203, - 203,50,97,203,163,162,162,59,47,187,183,183,0,94,0,122, - 166,122,122,122,219,50,241,61,75,95,164,241,92,183,162,50, - 163,162,50,64,183,0,122,219,26,17,12,42,0,0,64,99, - 109,47,42,219,26,26,26,26,26,226,73,59,166,42,0,162, - 37,215,95,111,111,219,99,44,224,183,78,42,42,26,42,42, - 42,122,42,0,0,162,162,78,122,42,0,0,221,50,162,78, - 42,162,111,75,187,75,50,162,162,241,64,99,34,44,225,183, - 162,0,0,0,0,0,0,0,0,50,97,50,50,182,97,187, - 42,50,109,221,162,95,99,224,227,0,0,162,122,0,162,162, - 122,235,95,162,221,94,162,183,162,162,42,22,187,122,0,162, - 0,219,122,0,0,0,122,122,0,122,42,0,0,0,26,214, - 26,36,114,244,120,244,120,120,120,120,120,120,120,120,36,244, - 36,120,36,120,36,36,36,36,36,217,36,36,36,217,36,36, - 36,217,36,217,36,36,217,36,105,217,105,105,36,36,105,217, - 36,210,105,105,63,36,105,105,217,36,36,105,105,36,105,105, - 240,240,247,240,240,240,240,240,108,240,247,240,240,240,240,240, - 240,240,240,240,108,108,108,240,66,240,240,240,240,240,108,108, - 108,108,108,108,108,119,87,6,167,248,161,240,108,108,240,240, - 240,108,159,240,108,159,240,108,159,240,108,159,240,240,108,159, - 159,119,240,119,240,159,58,58,240,159,119,240,119,240,58,159, - 119,119,240,159,240,119,240,58,119,240,184,119,240,119,58,58, - 58,58,119,58,58,119,119,159,119,159,58,58,159,58,184,58, - 58,58,119,240,119,58,119,240,119,240,58,58,58,58,58,58, - 58,58,58,58,119,58,119,240,119,240,58,58,159,58,58,58, - 58,119,236,240,184,58,58,58,58,184,236,58,236,159,184,58, - 236,58,236,159,236,236,143,236,236,236,159,119,159,119,236,159, - 119,119,159,119,119,119,119,119,119,119,119,83,133,109,229,135, - 171,229,133,229,162,135,162,0,40,37,50,50,42,183,94,162, - 94,162,94,224,37,78,162,122,56,24,241,50,75,122,94,241, - 163,209,221,183,42,212,163,183,111,162,162,64,29,35,44,47, - 0,122,122,0,0,227,20,34,122,50,183,42,141,215,162,183, - 162,227,187,42,0,0,0,0,122,0,0,0,162,132,59,225, - 64,183,239,162,64,166,224,162,183,0,162,0,0,162,97,183, - 241,162,0,0,224,20,47,47,187,135,29,44,223,29,64,215, - 44,239,95,227,183,0,0,0,95,212,96,155,152,162,162,132, - 47,203,37,187,223,162,42,17,219,50,40,50,200,212,212,162, - 162,0,47,200,163,163,239,122,166,64,59,111,162,126,64,126, - 111,122,99,187,99,209,14,22,22,26,99,95,50,162,37,50, - 37,40,212,224,122,122,122,42,42,219,122,215,163,46,94,162, - 0,0,111,40,187,12,12,26,111,24,22,0,162,183,162,42, - 164,162,163,35,239,163,64,171,183,122,26,26,26,26,0,42, - 42,0,122,0,122,0,0,0,0,122,122,122,162,163,50,50, - 50,50,163,239,212,163,78,0,122,162,182,224,182,182,35,42, - 0,122,122,122,0,78,162,122,0,94,0,212,164,37,187,183, - 163,215,203,0,162,162,126,235,187,0,122,0,0,122,0,0, - 0,99,109,227,0,221,221,0,162,162,183,94,0,0,0,0, - 0,187,42,0,122,0,0,42,0,42,122,0,0,0,141,214, - 150,63,114,244,248,120,244,248,120,120,120,120,120,120,120,36, - 244,36,36,36,120,120,36,217,36,36,36,105,217,36,217,36, - 105,36,105,36,105,105,105,105,105,105,217,105,105,105,105,105, - 105,105,105,210,36,105,105,105,36,105,105,36,36,105,217,105, - 108,240,66,240,247,240,247,240,240,240,247,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,108,240,240,240,240,240,240, - 240,159,108,159,108,108,87,116,167,25,161,240,108,108,159,108, - 159,108,240,108,108,108,108,108,108,159,108,108,108,240,108,240, - 119,240,119,240,119,58,58,58,240,159,58,240,119,58,240,119, - 184,58,159,58,240,58,159,240,58,119,240,58,58,58,58,184, - 58,236,58,58,240,240,119,240,119,58,58,58,58,58,58,58, - 58,159,58,240,119,58,58,58,58,240,119,58,58,58,58,184, - 184,236,236,184,58,240,119,240,119,119,119,58,240,58,58,58, - 58,58,236,58,58,236,236,184,58,184,236,184,236,236,236,184, - 236,236,236,159,119,119,119,119,119,119,119,119,159,119,119,159, - 159,236,143,159,119,236,236,119,159,119,119,108,151,187,20,135, - 20,135,229,102,212,34,200,163,241,59,42,94,239,94,42,94, - 221,95,162,162,50,183,0,0,162,42,22,75,162,122,0,50, - 163,50,162,221,162,50,42,221,224,166,42,224,34,34,44,171, - 78,0,0,162,44,135,133,59,254,183,239,0,122,0,59,162, - 94,0,0,0,183,183,219,183,0,0,0,122,64,64,166,47, - 95,0,162,50,99,78,64,111,94,50,42,162,163,163,163,0, - 163,241,162,0,166,245,239,95,122,44,29,24,44,34,122,64, - 126,241,126,0,219,42,227,44,37,50,35,15,111,0,0,0, - 0,0,162,35,15,96,162,0,0,0,122,99,95,26,50,187, - 221,162,111,59,126,94,75,50,162,132,59,59,126,162,224,224, - 122,166,95,166,99,64,64,59,200,132,224,187,99,50,42,50, - 22,78,0,254,122,122,0,122,122,0,162,24,35,59,111,200, - 0,42,109,224,50,50,183,126,164,37,14,164,24,64,162,50, - 163,162,183,50,44,163,214,171,122,42,42,26,183,26,42,0, - 42,42,42,26,42,0,162,162,162,122,0,26,78,50,50,50, - 162,162,163,183,215,162,0,0,162,0,122,166,166,187,111,42, - 162,162,162,122,162,163,162,162,78,122,42,22,50,0,0,0, - 50,219,226,37,221,187,162,162,122,122,122,122,122,122,0,0, - 0,0,187,214,78,122,122,12,187,162,162,50,122,42,187,162, - 0,78,162,122,0,0,162,162,162,42,122,0,0,162,235,64, - 109,217,114,244,120,248,120,120,120,120,120,36,36,36,36,120, - 36,36,120,36,36,36,36,36,36,105,36,36,105,36,105,36, - 105,36,105,36,105,105,105,105,105,63,105,217,105,217,36,105, - 105,210,105,105,105,217,217,105,105,105,105,63,105,105,105,105, - 240,240,240,240,240,134,184,247,240,240,240,240,184,247,240,240, - 240,240,240,240,240,240,240,240,240,240,240,108,66,240,108,66, - 108,108,108,108,108,119,87,6,123,25,161,108,108,240,108,108, - 108,108,108,240,108,240,240,108,240,108,108,159,240,240,240,159, - 240,159,240,58,240,240,240,184,58,240,159,58,184,58,58,240, - 58,159,240,58,58,58,240,58,58,240,58,58,240,58,184,58, - 58,159,58,119,119,58,58,58,58,58,58,58,58,58,58,58, - 58,119,159,58,58,58,58,119,119,58,58,58,58,58,236,58, - 58,184,184,58,58,58,58,58,236,184,58,58,236,236,159,58, - 153,58,184,58,236,184,184,236,236,236,184,58,58,58,159,58, - 236,159,119,143,236,159,159,143,159,143,159,159,236,159,143,236, - 236,159,119,236,236,159,119,159,119,119,108,83,151,26,135,171, - 229,20,135,38,142,24,135,40,46,183,162,0,163,212,162,0, - 166,183,59,50,0,50,0,122,122,50,209,22,37,0,122,75, - 200,163,26,221,162,221,0,183,78,126,50,224,224,35,34,20, - 35,0,47,245,245,186,186,122,42,162,44,44,212,44,133,171, - 162,122,0,162,162,0,0,122,0,0,0,126,44,224,95,187, - 254,0,122,50,95,42,59,166,183,164,163,42,241,150,254,37, - 219,241,209,0,162,224,0,42,0,162,182,29,223,59,0,99, - 40,75,183,122,221,64,133,20,35,37,50,59,183,183,166,122, - 122,215,61,15,245,44,0,0,221,122,42,187,64,221,246,111, - 0,50,78,47,97,221,47,212,94,59,221,0,187,50,162,94, - 0,99,56,187,126,59,95,182,224,59,95,78,44,192,162,241, - 24,50,0,122,0,0,122,0,0,42,75,59,35,35,75,183, - 0,187,59,59,59,50,162,44,29,59,50,22,75,59,50,50, - 50,0,200,59,59,40,225,171,122,42,122,0,0,42,122,0, - 122,122,42,26,122,0,0,162,162,122,0,219,26,162,37,50, - 50,50,40,239,94,42,122,122,0,0,0,0,78,122,122,0, - 0,122,162,0,227,126,162,122,162,0,50,221,0,162,162,162, - 212,109,212,46,162,12,166,42,26,42,122,0,0,122,122,0, - 0,0,42,111,162,0,182,99,183,126,50,50,78,56,50,183, - 0,0,0,0,187,122,221,0,42,162,78,0,0,56,64,214, - 26,105,114,248,120,120,244,120,120,120,36,120,120,120,36,120, - 36,36,36,36,36,36,36,36,105,36,105,105,36,217,105,105, - 36,105,105,105,217,105,217,105,63,105,105,105,105,105,105,217, - 105,36,36,105,217,105,36,36,36,105,210,105,105,105,105,210, - 240,240,247,240,247,184,240,240,240,240,240,240,240,184,240,240, - 240,240,240,240,240,240,240,108,240,108,240,240,108,240,240,108, - 108,108,108,108,108,108,21,116,123,155,161,240,108,108,240,108, - 108,240,108,159,108,108,240,108,108,108,108,108,108,240,108,108, - 159,240,240,159,159,58,159,58,240,119,58,58,240,58,58,58, - 240,58,159,58,58,58,159,58,58,58,184,58,58,58,184,184, - 58,58,184,153,58,58,58,58,58,58,58,58,153,159,159,58, - 58,58,58,58,58,58,184,58,58,58,58,58,58,184,236,184, - 184,184,58,153,236,159,236,159,58,184,58,184,184,58,236,58, - 236,58,58,184,58,236,184,184,184,236,236,153,236,236,236,184, - 236,58,119,159,236,119,119,159,119,159,236,159,119,159,159,119, - 159,159,119,159,236,159,236,159,159,119,119,108,151,0,34,135, - 135,229,229,135,29,142,163,162,22,177,14,183,212,37,0,78, - 239,221,109,75,221,163,183,0,221,111,209,22,91,95,200,22, - 61,22,61,200,0,0,162,111,126,50,50,37,163,61,59,29, - 35,29,186,229,171,29,111,0,183,42,35,15,15,229,245,15, - 42,0,162,162,50,162,122,122,0,0,0,224,64,187,126,78, - 59,0,0,163,95,26,187,59,95,37,95,219,22,162,183,209, - 42,178,154,42,162,0,0,26,0,122,162,99,29,26,254,35, - 203,219,141,26,95,47,29,50,35,59,50,212,187,95,12,142, - 187,254,29,155,35,50,50,75,35,224,150,221,182,40,40,42, - 59,162,162,34,35,75,59,59,111,47,59,47,122,219,227,187, - 162,221,59,183,183,64,64,59,99,59,95,183,99,44,224,22, - 111,50,162,162,0,42,26,42,122,187,35,187,187,50,50,122, - 42,224,99,59,99,50,224,192,192,20,214,64,203,200,44,142, - 34,221,47,75,95,163,214,171,42,42,17,122,0,0,0,0, - 122,0,122,183,0,75,163,0,0,122,0,26,26,122,50,50, - 50,42,162,42,94,183,50,0,0,0,162,42,99,59,109,0, - 122,42,0,162,227,122,0,162,162,0,0,122,94,50,243,122, - 162,111,14,22,203,162,0,42,122,122,122,122,0,122,0,0, - 122,42,0,0,183,162,187,122,219,99,211,224,150,42,122,122, - 0,0,219,150,182,183,162,0,122,122,42,0,0,221,99,99, - 26,63,114,120,120,120,120,120,120,120,25,36,120,36,36,36, - 36,36,36,36,36,36,36,36,217,36,36,105,36,105,36,105, - 36,217,217,36,105,105,217,36,105,105,217,217,36,105,105,105, - 105,105,217,36,105,63,105,210,105,105,105,210,105,210,105,105, - 240,134,240,240,134,240,240,240,240,240,184,247,240,240,240,240, - 240,240,240,240,240,108,240,240,108,66,108,108,240,240,108,108, - 108,108,240,240,240,108,87,116,123,155,161,108,108,108,108,108, - 159,108,240,108,108,108,108,240,240,240,240,240,159,240,159,240, - 240,159,240,240,240,240,240,240,58,159,240,58,58,184,58,159, - 58,58,58,184,184,184,58,184,184,240,184,184,184,58,240,58, - 159,236,236,58,58,184,236,58,159,58,58,236,58,153,236,153, - 153,58,159,58,159,236,58,184,153,184,58,184,153,184,184,159, - 236,236,153,58,159,236,153,159,236,236,58,58,58,58,159,184, - 159,236,153,236,58,159,58,236,236,58,184,58,184,184,184,58, - 159,236,159,119,159,236,159,236,159,236,119,119,159,159,119,159, - 236,159,159,119,159,236,119,119,108,119,108,108,133,0,111,34, - 20,135,229,229,29,24,163,37,221,92,206,164,239,40,162,122, - 94,183,219,212,94,40,95,122,59,163,163,0,215,182,44,97, - 22,22,163,22,219,122,162,92,75,50,162,50,37,164,111,59, - 0,64,186,253,15,221,219,221,0,0,225,135,171,171,15,229, - 162,0,78,162,162,162,162,0,0,0,0,224,59,95,56,111, - 44,162,42,22,47,26,227,192,64,50,24,141,24,37,37,200, - 163,44,46,0,0,122,0,219,122,42,0,94,224,162,64,59, - 183,0,219,187,37,37,50,50,171,245,75,50,226,241,95,177, - 75,150,34,44,0,163,75,241,99,59,254,26,17,59,200,0, - 44,64,0,35,44,34,163,59,200,163,34,152,29,163,78,78, - 162,122,166,224,0,99,29,192,64,47,59,162,183,26,64,162, - 162,162,162,78,0,122,0,0,0,75,75,122,42,42,187,42, - 219,59,59,59,224,183,97,44,34,34,29,192,44,126,224,34, - 245,162,78,0,35,95,64,192,95,42,26,122,42,192,122,0, - 0,126,171,29,187,171,171,42,0,42,122,0,26,26,162,37, - 50,78,209,50,162,42,59,50,122,78,78,0,78,78,122,0, - 162,162,162,163,187,0,0,162,162,0,42,0,42,224,24,162, - 94,183,22,241,99,0,0,0,42,42,122,0,122,122,0,122, - 26,26,0,122,50,162,0,26,219,254,254,182,150,26,182,42, - 0,0,187,162,0,78,42,122,0,0,122,122,122,42,42,0, - 0,221,44,47,163,217,144,248,120,120,120,36,120,36,36,244, - 36,36,36,217,36,36,217,36,36,105,105,36,105,105,105,217, - 105,105,105,105,105,36,105,105,105,105,105,36,105,217,36,210, - 105,217,105,105,105,105,63,36,105,105,105,105,105,105,105,210, - 240,240,66,240,247,134,240,240,240,247,184,184,240,240,240,240, - 247,240,240,247,184,240,240,240,240,240,240,108,66,240,108,66, - 240,108,108,108,108,181,21,116,251,186,252,108,108,108,108,108, - 108,108,159,159,159,159,108,159,240,108,240,108,240,240,240,159, - 240,119,240,159,119,159,58,240,240,58,240,159,58,184,58,184, - 240,159,58,159,58,240,58,58,58,159,184,240,184,58,58,58, - 159,184,58,58,58,159,184,236,153,153,159,184,58,159,58,58, - 159,236,184,236,159,58,236,58,58,159,236,58,58,236,153,184, - 159,58,58,159,184,159,236,159,184,153,159,153,153,153,236,159, - 184,159,184,153,58,58,159,58,236,236,236,236,236,236,236,236, - 184,236,236,159,119,159,119,236,159,159,159,236,119,159,236,119, - 143,119,159,159,159,119,159,119,159,119,108,108,133,50,178,135, - 29,253,253,135,34,203,142,47,22,183,0,162,50,183,22,10, - 50,50,122,162,50,44,0,29,44,47,95,111,47,111,99,187, - 95,224,59,22,35,203,162,37,162,162,221,0,0,50,162,126, - 0,0,245,135,245,59,122,29,183,162,59,245,135,171,171,152, - 162,42,0,50,209,241,37,26,12,12,12,214,47,254,122,64, - 64,0,162,35,225,224,95,34,34,221,212,219,111,224,50,26, - 75,209,122,0,122,122,0,42,0,122,42,122,0,78,34,187, - 0,162,59,47,162,22,22,22,241,20,152,46,164,241,46,22, - 22,35,241,50,59,64,163,212,150,111,50,132,219,12,200,166, - 254,192,95,162,200,35,75,111,241,64,171,15,245,15,29,64, - 183,162,162,183,59,166,166,95,64,64,254,162,0,42,224,183, - 50,162,50,122,97,200,162,0,50,35,50,26,26,214,29,219, - 166,224,224,254,163,223,35,99,44,214,34,34,192,44,0,0, - 126,162,122,122,29,200,99,171,64,122,42,122,0,152,183,42, - 122,29,135,109,75,50,50,0,122,26,42,0,26,12,78,50, - 162,187,35,42,162,162,183,162,162,162,162,111,42,26,26,0, - 162,162,162,64,152,0,0,162,162,0,122,0,126,209,14,183, - 162,183,122,14,109,0,42,0,42,42,122,0,122,122,0,42, - 26,42,0,50,75,163,42,122,12,187,166,109,111,56,99,243, - 162,162,0,26,187,162,42,221,42,0,17,122,0,221,219,0, - 0,219,145,64,8,217,144,244,120,120,120,36,120,36,36,36, - 36,36,36,36,105,36,105,105,36,105,105,36,217,210,105,36, - 217,105,210,105,105,36,217,105,217,105,105,36,105,105,105,105, - 105,36,105,217,36,36,105,210,105,210,105,210,105,105,105,105, - 240,153,240,240,240,240,240,240,240,240,240,240,134,240,240,134, - 240,240,240,184,247,240,240,240,240,240,240,240,240,108,240,240, - 108,108,108,108,108,83,18,116,251,54,161,108,108,240,240,159, - 240,240,108,108,108,108,159,108,159,159,108,240,159,240,119,240, - 159,240,240,240,108,159,240,58,58,159,58,240,240,58,240,159, - 58,58,58,240,184,58,240,184,184,58,58,58,58,159,184,184, - 58,58,58,159,58,58,58,159,58,58,159,236,159,153,153,159, - 153,159,236,159,236,153,184,159,236,236,184,184,153,159,58,153, - 159,153,153,153,236,236,184,153,153,58,236,58,58,58,184,236, - 58,58,159,58,58,153,236,153,159,184,184,184,184,184,184,159, - 236,236,159,236,236,236,236,159,119,236,236,159,236,159,119,159, - 159,119,236,159,119,159,159,159,119,119,108,83,133,24,135,151, - 229,229,229,151,55,50,135,135,151,20,97,162,50,50,14,22, - 50,163,162,37,97,166,59,34,59,64,34,64,59,59,50,0, - 37,241,37,61,47,246,162,162,0,0,78,162,162,162,35,187, - 0,0,34,15,135,171,15,151,221,163,162,171,245,253,253,135, - 183,187,221,203,91,75,94,219,243,26,162,203,141,99,219,254, - 34,0,0,126,64,64,126,224,224,183,122,26,183,163,42,94, - 109,35,59,0,0,42,0,26,0,122,122,0,0,183,44,0, - 0,162,152,151,171,34,0,95,59,94,34,223,37,22,73,168, - 22,37,92,20,64,64,0,78,241,164,212,221,219,26,50,162, - 166,34,20,183,200,95,200,0,35,245,171,171,171,171,171,229, - 171,78,183,162,221,182,166,0,0,0,0,0,162,187,94,59, - 0,162,162,0,75,209,163,122,37,35,26,26,26,64,64,224, - 35,183,187,162,67,135,47,35,99,34,44,50,64,192,162,0, - 162,0,0,78,34,163,150,254,224,0,122,254,215,64,122,42, - 26,158,47,183,221,122,126,0,42,26,122,0,42,26,42,94, - 162,163,162,212,212,0,50,50,163,162,0,183,59,0,0,0, - 0,26,0,150,245,64,0,162,162,0,0,224,50,22,164,150, - 162,183,182,22,94,122,122,0,42,42,122,122,122,42,0,122, - 26,42,0,91,50,42,141,219,126,219,111,111,254,183,132,99, - 150,0,0,0,0,42,0,221,162,122,111,122,0,122,219,0, - 0,235,214,64,187,36,144,120,120,120,120,25,120,120,36,36, - 25,25,36,25,25,36,36,36,217,36,36,105,36,36,36,105, - 36,105,36,36,217,105,105,217,105,36,36,105,36,105,217,217, - 36,105,36,36,105,105,63,105,210,105,105,105,105,105,105,63, - 240,240,240,240,240,240,247,134,240,240,240,247,134,240,247,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,108,108, - 108,108,108,240,108,181,18,116,137,152,161,240,108,240,108,240, - 240,159,159,240,159,108,240,108,108,159,159,108,240,240,240,159, - 240,159,159,58,240,159,240,240,184,184,58,58,240,58,58,58, - 184,184,58,159,184,58,159,184,184,184,184,184,58,58,58,159, - 58,159,58,184,184,159,236,184,236,236,184,236,58,58,236,58, - 153,153,153,159,159,153,236,159,184,236,159,58,159,184,58,236, - 184,58,58,159,153,236,159,58,159,159,159,236,159,159,159,153, - 153,58,153,153,58,159,58,236,58,58,58,236,236,236,236,236, - 236,236,119,159,143,119,236,236,159,119,236,159,236,159,236,119, - 143,119,143,159,119,119,119,159,119,159,119,108,173,104,171,229, - 229,229,151,151,197,64,229,223,109,59,239,0,50,163,0,162, - 0,163,50,46,212,221,64,95,183,46,34,200,122,99,224,22, - 22,224,22,22,132,0,221,50,94,0,122,94,42,162,200,183, - 122,0,26,34,15,135,152,151,94,47,162,224,15,192,15,152, - 78,111,94,75,14,200,37,26,219,162,22,14,22,50,141,219, - 34,162,0,224,59,29,132,44,44,111,42,26,209,50,163,22, - 47,64,214,166,0,0,0,42,122,0,122,0,0,183,59,0, - 0,34,229,171,15,111,0,17,99,132,162,37,37,209,226,48, - 177,50,209,223,132,99,0,0,212,203,0,50,75,150,166,111, - 219,44,225,44,162,221,0,59,245,29,34,171,171,20,192,29, - 245,183,42,78,94,162,162,187,126,187,162,0,0,94,162,109, - 224,0,0,78,0,42,162,162,75,224,42,122,64,44,163,126, - 192,0,42,164,164,187,122,223,224,44,166,0,44,171,162,0, - 64,0,42,64,183,162,162,162,42,42,183,187,162,42,162,219, - 122,94,50,50,22,50,162,0,42,26,0,0,0,122,26,162, - 162,241,0,212,26,122,122,91,75,162,221,219,141,99,132,162, - 162,162,50,0,182,152,187,162,0,0,99,234,95,164,241,182, - 162,162,214,126,0,122,0,0,122,42,0,0,0,42,0,122, - 26,26,122,0,122,219,254,150,224,182,254,182,182,42,122,111, - 42,0,42,225,183,162,221,42,0,122,122,78,162,162,42,0, - 0,158,64,64,187,105,71,120,120,120,120,36,120,25,36,120, - 36,36,36,36,36,25,36,36,36,105,217,105,105,105,105,105, - 105,217,217,36,36,36,105,217,105,217,217,105,217,36,105,217, - 36,105,105,210,63,36,105,105,105,210,105,105,105,105,105,105, - 240,134,240,240,240,134,240,247,240,240,240,134,247,134,240,134, - 240,240,240,240,240,134,240,240,240,240,240,240,240,240,240,240, - 240,240,240,108,119,108,173,116,137,152,252,108,159,240,159,240, - 184,240,159,159,108,159,159,119,240,119,240,58,184,58,119,240, - 58,240,240,240,159,58,240,58,58,184,159,159,58,184,184,184, - 58,240,58,240,58,184,58,58,240,58,58,58,184,184,184,58, - 184,58,153,58,184,236,159,184,159,184,184,159,159,159,184,159, - 58,159,184,153,58,159,184,153,153,159,236,184,153,236,159,159, - 58,159,153,153,159,159,236,159,236,153,236,153,236,153,236,159, - 58,153,58,58,58,159,184,184,159,58,58,159,159,236,236,159, - 159,236,236,236,119,159,159,159,119,143,119,143,119,143,119,143, - 119,159,119,159,119,159,119,159,119,119,108,83,133,92,135,135, - 151,229,55,151,229,46,26,26,219,254,163,94,50,163,75,42, - 162,187,50,163,50,42,35,75,183,34,34,64,0,166,111,35, - 241,91,50,59,122,162,0,46,164,162,0,0,50,37,0,126, - 122,0,224,126,59,171,229,151,122,254,50,37,44,29,253,15, - 0,150,12,50,24,22,37,12,162,14,22,22,50,141,59,56, - 225,50,162,59,224,44,111,44,111,59,0,241,46,0,183,241, - 95,64,59,64,111,0,122,219,42,26,122,42,122,219,47,0, - 42,64,99,59,224,0,122,126,254,50,22,22,50,241,50,37, - 24,22,22,203,219,59,0,0,0,162,0,22,164,150,187,47, - 78,44,64,34,59,162,122,171,171,59,224,29,20,171,29,34, - 245,163,78,162,183,126,126,163,162,94,0,0,95,78,162,64, - 64,183,0,59,224,50,78,50,24,78,26,42,99,29,192,35, - 109,50,135,164,14,187,44,253,29,224,122,0,99,171,162,50, - 192,0,192,152,221,162,61,50,0,122,26,229,29,215,122,26, - 42,0,26,75,209,209,163,122,26,26,42,0,0,26,26,122, - 42,97,132,122,12,183,0,183,37,0,0,187,227,99,99,99, - 187,162,162,26,0,44,126,0,0,243,171,192,59,164,219,99, - 17,78,64,141,122,122,0,0,42,122,122,122,122,122,0,122, - 42,26,122,122,42,42,111,78,187,122,254,187,122,0,0,94, - 221,0,214,25,99,0,0,162,166,0,42,0,78,0,42,0, - 182,234,99,64,109,105,144,120,120,120,120,120,36,120,25,36, - 36,133,36,36,25,36,217,36,105,105,36,105,105,105,105,217, - 36,36,36,36,217,105,36,36,36,105,105,105,36,105,36,36, - 105,217,105,36,36,105,105,105,105,105,105,105,210,105,105,63, - 240,240,247,134,247,134,240,134,240,240,247,184,240,240,247,134, - 240,240,240,240,247,240,240,240,240,66,184,240,240,240,240,240, - 240,240,240,240,108,181,79,19,137,171,247,108,240,240,159,240, - 240,240,159,58,159,240,159,58,240,58,58,240,184,184,184,58, - 58,58,58,240,58,236,184,184,58,184,184,184,184,240,159,240, - 58,58,58,240,58,184,159,58,159,184,159,236,58,58,153,236, - 159,58,58,58,159,153,236,184,184,153,159,236,184,159,236,184, - 58,58,58,153,58,159,58,58,153,184,236,58,159,236,184,153, - 236,58,58,153,159,184,159,184,58,159,58,159,58,184,58,159, - 58,159,159,153,236,159,153,236,58,236,58,236,184,184,236,236, - 159,153,159,119,236,236,236,236,159,159,119,159,119,159,119,159, - 236,119,143,159,236,119,119,159,119,119,119,83,133,14,15,229, - 201,133,135,200,50,164,12,219,132,132,47,111,75,50,200,162, - 50,50,162,94,162,0,34,34,187,47,59,219,162,22,22,37, - 75,162,50,75,122,183,42,241,22,164,22,50,37,164,183,122, - 122,141,22,163,50,111,171,20,162,47,187,14,97,64,35,29, - 42,150,12,163,187,22,187,219,50,164,22,50,246,215,254,0, - 64,162,162,254,224,44,126,254,254,59,187,142,26,183,162,24, - 219,47,64,47,64,187,0,183,122,122,122,122,162,183,59,0, - 224,212,22,22,203,0,0,187,59,215,164,164,50,177,22,203, - 92,37,37,212,166,44,0,0,0,97,47,99,46,111,26,47, - 162,44,44,34,171,59,15,245,245,29,44,15,152,151,171,15, - 186,203,254,162,95,59,192,224,141,64,122,0,239,171,0,111, - 224,224,221,59,219,64,224,187,224,42,26,26,26,42,99,44, - 122,44,245,22,14,192,47,200,35,254,122,94,22,192,35,50, - 59,95,192,171,0,0,162,50,162,0,122,29,64,224,126,42, - 122,162,162,187,22,75,61,162,12,26,42,0,0,42,26,42, - 187,64,219,17,42,17,183,162,42,0,0,64,122,166,111,99, - 64,78,162,42,0,59,42,0,0,182,225,225,215,163,12,192, - 224,0,44,187,122,122,0,0,42,42,122,122,122,42,0,122, - 26,42,122,0,42,221,122,17,219,150,99,182,166,42,162,163, - 42,0,214,155,225,78,221,183,17,0,26,187,42,183,122,0, - 158,192,64,64,12,63,144,120,120,120,25,36,36,120,36,36, - 120,36,36,36,36,36,105,36,217,105,36,105,217,36,105,105, - 105,105,105,105,105,63,63,63,105,105,210,63,105,105,105,105, - 105,105,105,105,105,36,105,210,36,105,217,36,105,105,105,105, - 134,134,240,240,184,247,134,247,240,240,240,134,240,184,184,247, - 134,240,240,240,240,134,240,184,184,240,240,240,240,134,240,240, - 184,240,184,240,240,108,173,11,137,234,161,240,240,240,240,184, - 58,58,240,58,240,184,184,184,184,184,184,58,240,184,240,240, - 184,184,184,159,240,184,240,240,184,58,240,58,159,58,159,58, - 184,159,159,58,184,58,58,153,184,236,236,184,184,184,58,184, - 236,184,153,236,159,58,184,159,58,58,236,159,236,153,184,159, - 153,153,58,58,153,236,153,153,58,184,184,159,159,159,184,159, - 159,159,236,58,236,153,236,153,153,153,153,159,153,58,153,236, - 236,153,236,159,184,58,58,159,153,159,236,159,58,58,184,159, - 236,159,236,236,159,159,159,159,119,236,159,119,159,119,159,143, - 119,159,119,143,119,159,119,159,119,159,159,108,38,241,178,229, - 20,22,212,37,14,164,150,150,132,166,183,26,59,142,223,94, - 95,37,50,50,78,221,59,44,183,0,166,212,241,75,50,37, - 37,94,61,35,122,162,221,42,219,37,22,22,50,203,75,163, - 26,241,162,122,50,50,133,59,94,95,34,50,222,183,95,99, - 42,26,183,209,24,22,243,26,162,14,14,162,37,50,44,224, - 126,50,162,166,224,95,122,254,200,59,47,132,254,42,0,46, - 122,44,111,111,64,59,0,78,122,0,0,0,0,187,34,0, - 141,203,203,37,50,0,0,254,95,187,59,200,50,164,221,22, - 99,95,94,111,64,64,0,0,132,34,64,109,75,111,132,35, - 78,224,44,44,44,219,29,186,245,34,47,171,229,152,245,171, - 133,95,254,94,0,166,221,142,171,78,0,0,0,171,64,0, - 59,224,59,224,0,0,166,59,122,26,26,122,42,122,166,17, - 241,42,26,78,75,142,73,162,221,171,50,73,14,192,171,64, - 221,183,166,56,0,0,50,162,162,42,78,78,183,224,47,0, - 162,187,22,37,241,209,163,0,12,219,0,0,122,122,26,26, - 0,254,122,132,132,42,99,162,0,0,42,214,0,122,141,64, - 214,183,0,0,212,99,0,162,0,254,44,64,183,150,254,214, - 44,42,182,183,122,26,42,0,26,42,122,0,122,122,122,42, - 26,26,26,0,0,162,0,99,99,214,182,224,99,42,122,50, - 163,162,224,54,152,187,42,187,219,219,122,78,162,187,162,42, - 158,192,214,214,109,36,71,120,25,36,120,120,25,36,36,36, - 217,36,36,217,36,217,36,105,36,36,105,105,36,105,105,105, - 63,105,63,105,105,105,105,105,63,63,105,105,63,105,105,210, - 105,105,63,63,36,105,210,105,210,105,105,105,210,210,36,105, - 240,240,247,240,240,240,240,134,240,240,247,240,240,240,240,240, - 240,240,134,240,247,240,240,240,184,240,184,240,108,240,240,240, - 240,240,240,240,240,108,55,23,137,192,252,134,240,184,240,240, - 240,184,184,184,159,240,58,184,240,184,184,184,240,184,184,184, - 240,240,159,184,240,58,184,240,240,58,184,240,58,240,58,58, - 58,58,58,159,58,184,58,58,184,184,184,58,236,184,184,159, - 153,184,159,236,184,58,236,159,184,159,153,184,58,153,236,58, - 58,153,58,58,159,58,58,159,236,58,236,153,236,153,58,153, - 153,159,159,184,159,184,58,58,58,58,236,159,153,159,153,159, - 58,159,58,58,153,159,153,58,159,184,184,159,184,58,58,58, - 236,58,159,159,236,119,119,159,119,236,159,236,159,119,119,159, - 236,159,119,159,236,159,159,159,159,119,159,108,38,162,163,50, - 94,37,14,164,14,14,183,132,141,141,132,183,26,35,29,0, - 162,200,50,162,122,0,239,44,163,59,22,14,22,75,187,162, - 94,0,50,35,221,0,122,75,241,104,221,0,162,221,200,104, - 50,164,78,162,162,162,133,142,126,122,20,163,233,209,0,212, - 212,241,20,178,84,223,192,8,12,162,0,162,22,50,214,29, - 192,192,35,50,183,0,221,26,200,224,44,187,59,0,0,126, - 42,95,122,95,34,219,0,0,0,0,0,0,0,183,44,26, - 219,187,203,75,223,171,0,183,64,47,47,212,37,50,162,37, - 163,40,224,162,224,192,0,162,44,64,224,183,75,122,99,224, - 162,183,163,254,50,162,50,245,133,171,44,15,64,227,95,126, - 186,95,166,239,0,214,95,152,95,0,0,0,162,0,64,111, - 109,64,59,59,122,0,0,122,42,219,219,219,122,132,95,226, - 73,241,132,219,99,73,14,183,132,152,203,164,200,57,171,152, - 212,0,0,162,212,0,50,0,0,187,219,183,187,162,0,0, - 162,22,24,61,42,75,59,0,26,26,0,0,162,162,0,42, - 0,254,64,219,182,122,132,99,0,0,224,42,183,0,99,44, - 225,183,0,212,47,187,0,162,0,182,192,182,241,99,59,59, - 64,111,109,162,26,26,42,0,42,26,122,122,122,42,122,0, - 26,26,26,0,0,75,162,150,111,219,78,0,0,0,0,163, - 61,163,42,158,96,44,0,0,183,42,187,187,0,0,0,78, - 219,182,224,254,122,36,244,244,25,36,25,120,36,36,36,36, - 25,217,36,217,36,217,217,105,105,36,36,105,105,217,105,36, - 210,105,210,210,105,105,105,105,105,63,63,105,63,210,105,210, - 63,105,105,63,210,63,63,105,63,63,63,105,63,63,105,105, - 153,134,240,240,134,240,134,240,240,134,240,134,240,240,134,247, - 134,247,240,240,134,247,240,240,240,184,240,240,240,240,240,240, - 240,240,240,240,240,108,173,11,137,158,161,240,184,240,240,184, - 184,184,240,184,240,184,184,58,184,240,240,240,159,240,240,240, - 184,184,184,240,184,159,240,184,184,184,240,184,58,58,240,240, - 184,184,153,58,184,236,184,159,184,159,58,184,184,184,184,153, - 184,58,153,159,236,184,184,58,184,153,58,184,184,159,184,159, - 159,58,159,159,153,153,159,58,159,153,159,58,159,58,153,58, - 58,184,184,159,58,159,153,159,159,153,159,58,159,236,159,153, - 153,58,153,159,58,236,58,184,236,159,236,236,58,58,58,58, - 159,159,119,236,159,236,236,236,159,159,236,159,119,143,159,236, - 236,119,159,236,159,119,119,159,159,108,159,108,71,0,183,212, - 164,164,14,14,164,14,219,42,42,26,42,219,26,150,92,95, - 135,50,203,212,122,122,183,29,29,44,209,24,209,37,37,163, - 37,162,94,64,0,187,84,73,73,177,47,50,241,239,40,126, - 92,46,35,14,241,126,29,29,162,126,171,15,50,46,209,29, - 164,177,46,34,151,226,73,64,8,219,61,24,183,47,171,47, - 47,44,104,14,22,0,12,221,183,59,224,166,0,0,42,44, - 47,0,64,44,59,0,0,0,221,162,163,50,0,42,15,254, - 26,122,225,102,133,102,133,15,111,50,162,35,212,50,75,162, - 50,50,44,29,203,75,50,22,241,22,241,163,183,0,59,50, - 203,37,212,212,162,162,37,241,245,15,34,20,95,95,59,42, - 245,97,150,47,95,239,96,166,95,224,122,122,0,50,50,59, - 95,141,44,171,95,0,0,26,42,183,26,26,26,150,50,50, - 162,46,47,132,183,40,254,24,75,254,0,0,95,34,163,171, - 44,0,22,14,212,0,0,0,0,183,162,0,0,0,0,219, - 224,42,50,94,0,162,162,26,26,42,0,0,50,50,0,42, - 162,141,245,219,219,0,0,225,192,183,224,221,109,0,64,64, - 254,122,0,241,187,42,0,162,0,99,214,97,212,99,99,64, - 64,99,64,122,26,26,122,0,42,122,122,122,122,122,122,0, - 42,26,26,0,26,22,0,26,164,162,0,122,162,0,122,162, - 163,50,0,78,234,152,0,0,0,42,122,221,0,0,42,183, - 0,0,0,0,26,105,244,120,120,25,36,36,25,36,133,36, - 36,36,217,36,217,105,36,217,36,217,105,105,105,36,105,105, - 105,105,105,105,210,63,210,105,63,105,105,63,63,105,63,105, - 105,63,63,105,105,105,105,63,105,105,63,63,105,63,210,63, - 153,153,240,240,153,240,153,153,153,153,240,153,153,240,153,153, - 153,240,153,240,184,153,240,240,240,240,240,184,240,134,240,184, - 240,240,184,240,108,108,173,30,137,214,252,240,134,240,240,240, - 240,184,240,240,240,240,240,240,240,58,184,240,159,184,184,240, - 159,240,58,240,58,58,240,159,159,58,58,184,159,58,58,58, - 236,58,58,58,184,236,236,184,153,153,184,159,236,153,58,58, - 153,159,153,184,184,58,153,58,58,159,58,58,58,159,58,58, - 236,153,236,58,58,236,236,58,58,58,159,153,153,58,159,184, - 58,236,159,153,236,58,236,236,159,159,153,236,159,236,58,58, - 153,58,236,153,159,159,58,159,153,184,159,236,58,236,159,58, - 58,58,58,236,159,159,159,236,236,119,159,236,159,119,159,159, - 143,159,119,159,159,159,159,159,119,159,119,108,38,0,219,150, - 132,141,141,141,132,56,142,46,142,46,75,111,111,111,75,141, - 47,203,22,50,0,78,183,59,59,141,111,224,163,209,163,163, - 200,95,183,56,164,163,14,164,163,50,223,163,203,241,183,24, - 46,200,132,142,47,75,24,44,215,75,142,171,46,162,50,187, - 246,40,104,95,164,241,203,241,64,17,46,223,47,99,59,95, - 111,75,166,75,209,37,187,215,150,166,50,200,0,221,254,99, - 44,122,44,44,166,0,0,50,50,94,94,37,37,0,44,64, - 17,219,122,29,29,171,29,59,50,50,44,15,254,59,64,163, - 183,50,46,29,15,59,200,37,164,164,241,95,0,183,59,122, - 59,94,212,40,212,50,50,50,22,44,64,29,59,34,34,59, - 15,95,111,99,64,111,47,227,224,239,64,64,0,162,162,162, - 163,126,166,64,99,0,162,78,122,42,42,17,141,14,14,164, - 22,14,73,22,162,97,224,209,187,162,122,141,227,59,126,224, - 64,0,14,164,162,126,224,254,64,64,78,0,162,162,162,221, - 64,99,44,183,0,162,162,122,17,42,0,0,94,50,0,50, - 50,243,192,221,0,212,162,183,214,166,183,166,224,0,132,224, - 99,162,56,162,0,0,0,162,0,59,99,241,224,59,99,59, - 224,254,99,42,42,26,26,0,42,42,0,122,122,122,122,0, - 0,122,122,0,75,75,162,111,22,50,50,78,183,78,122,0, - 42,163,162,0,214,171,182,0,42,42,0,42,163,162,42,122, - 0,0,0,111,99,105,71,120,120,25,36,36,36,36,36,36, - 217,36,217,36,36,105,105,105,105,105,217,105,105,105,217,105, - 105,105,63,105,105,105,210,105,63,63,105,105,63,105,63,63, - 105,63,63,63,63,63,105,63,63,63,105,63,105,105,105,63, - 153,153,134,153,153,153,153,153,240,153,153,153,153,153,153,153, - 153,153,184,153,184,184,134,153,134,184,134,184,184,240,240,240, - 240,184,240,240,184,108,173,93,168,64,252,108,108,240,240,240, - 184,240,159,58,240,240,159,58,240,240,240,58,159,58,240,58, - 159,58,58,58,159,58,58,159,240,184,184,58,58,153,236,236, - 184,58,184,153,184,184,184,153,184,184,153,153,184,159,184,153, - 184,184,184,159,236,184,159,236,58,58,159,184,159,58,153,153, - 159,58,184,159,58,159,159,153,184,236,236,58,58,159,236,58, - 153,184,236,58,159,159,159,159,58,58,58,159,153,159,159,159, - 159,153,159,58,236,236,153,159,58,184,159,159,153,159,153,236, - 153,153,159,159,236,153,236,159,159,159,119,159,159,159,119,159, - 119,159,159,159,119,119,108,159,159,108,108,108,33,0,132,219, - 22,47,132,219,141,219,223,222,135,129,135,190,135,135,226,46, - 223,97,50,50,94,22,162,0,0,50,162,50,78,24,203,0, - 44,44,0,47,14,22,46,42,22,22,24,183,0,183,200,209, - 241,35,34,26,47,64,44,97,122,227,212,44,29,47,223,142, - 42,162,50,50,22,47,246,92,104,162,50,162,183,221,225,99, - 34,0,224,17,22,203,50,187,64,122,78,84,50,122,99,126, - 64,44,44,141,162,50,50,22,22,50,221,37,92,163,219,35, - 44,26,17,26,183,37,37,37,75,34,171,46,42,183,183,40, - 42,215,22,61,64,34,20,34,47,37,246,0,212,241,111,183, - 99,111,254,254,0,162,50,50,162,37,35,171,44,15,20,35, - 171,47,0,227,141,44,245,57,29,192,152,47,0,162,50,50, - 162,162,78,166,162,162,162,50,0,42,26,254,177,73,92,73, - 73,92,206,130,42,24,209,241,200,50,166,214,44,44,254,59, - 212,0,221,0,0,166,111,95,95,221,162,162,162,162,162,0, - 0,221,166,0,0,162,122,0,0,162,162,0,0,78,111,183, - 22,241,0,0,122,78,162,0,0,0,187,150,141,64,44,99, - 44,183,254,99,34,47,0,111,162,166,224,224,99,59,182,224, - 224,211,64,56,26,26,122,0,42,42,122,0,0,0,0,0, - 0,0,26,183,91,35,50,221,162,162,227,0,163,187,162,0, - 162,163,0,0,141,225,192,162,163,203,59,29,129,50,0,0, - 78,78,0,202,59,63,244,36,36,36,25,36,133,25,25,217, - 36,217,217,105,217,217,217,217,217,105,105,105,63,105,105,105, - 210,210,105,105,105,63,63,63,105,105,63,63,105,63,105,105, - 210,105,63,105,63,63,63,63,63,63,63,63,63,63,63,63, - 153,153,153,153,153,153,153,153,240,218,153,153,153,153,153,153, - 153,153,184,153,153,153,153,184,153,184,184,184,184,184,184,184, - 240,184,184,240,240,83,15,138,137,99,252,134,240,184,159,240, - 58,58,184,58,58,58,58,58,240,58,240,58,184,236,58,58, - 58,184,159,58,159,58,240,119,58,58,184,184,58,184,184,58, - 184,58,58,58,184,184,58,184,159,184,184,153,153,184,159,184, - 153,58,159,184,184,236,159,153,236,236,236,58,184,58,58,184, - 184,236,159,153,236,153,58,58,159,184,58,58,236,159,236,159, - 153,159,184,153,153,153,159,184,153,159,184,58,236,153,58,58, - 58,153,153,159,184,58,236,159,236,153,159,184,159,58,159,58, - 58,236,159,159,159,159,159,58,159,58,159,159,119,159,159,159, - 119,159,119,159,159,159,159,119,159,159,108,108,38,0,219,183, - 14,164,47,47,150,219,29,48,223,253,177,253,20,172,177,35, - 135,226,162,37,50,162,223,126,162,162,50,162,0,24,212,37, - 50,171,0,246,22,164,177,209,84,209,209,215,0,221,223,22, - 122,200,224,162,129,47,221,163,212,200,200,34,44,20,245,15, - 42,46,241,164,200,166,37,92,162,50,22,50,50,162,166,141, - 34,166,12,183,183,183,50,0,254,219,187,163,200,162,166,78, - 64,47,183,47,183,92,162,22,22,162,212,241,22,59,0,59, - 99,150,26,17,219,200,104,164,44,44,22,241,0,122,0,122, - 0,0,44,22,37,46,44,171,126,122,0,0,203,95,183,122, - 166,122,221,42,183,0,122,50,37,50,22,29,64,34,29,187, - 171,44,0,0,0,0,0,0,221,221,0,0,162,162,50,50, - 162,162,162,0,162,50,162,50,162,0,187,206,168,168,73,73, - 73,177,206,31,50,92,178,209,26,42,50,162,224,64,0,162, - 183,0,0,0,0,99,224,225,225,0,0,162,162,162,162,0, - 0,0,0,0,0,0,0,0,0,162,0,78,99,192,192,215, - 26,75,163,0,162,163,75,162,162,241,50,187,225,192,192,44, - 225,221,214,254,155,34,122,187,162,183,59,109,111,187,111,187, - 126,166,150,183,26,26,0,0,122,122,0,0,0,0,0,122, - 42,0,26,221,0,61,50,0,0,42,162,0,94,42,50,162, - 42,187,162,0,183,187,219,37,14,92,14,24,104,122,0,162, - 42,0,224,171,224,63,71,120,25,36,25,36,36,105,36,36, - 105,36,217,217,105,105,105,217,217,105,105,36,210,63,105,105, - 105,105,63,63,105,105,105,63,63,63,63,63,105,63,63,63, - 63,105,63,105,105,105,105,105,105,105,105,63,63,105,63,63, - 153,153,240,240,153,240,153,153,153,240,153,153,218,240,153,240, - 184,184,184,153,153,153,184,153,240,184,134,184,184,184,240,240, - 240,240,240,240,240,83,173,138,168,64,252,108,184,240,184,236, - 184,58,58,236,58,159,159,236,58,159,58,58,58,184,153,236, - 236,58,236,184,236,236,58,184,184,58,153,236,236,236,184,159, - 58,153,153,153,236,153,153,184,153,153,153,159,58,153,184,184, - 159,184,153,153,153,184,153,184,159,184,159,153,236,58,240,58, - 58,184,236,58,184,58,58,153,159,58,153,153,159,153,159,58, - 58,134,236,58,58,58,159,153,184,153,236,159,159,58,153,153, - 153,58,58,159,153,153,159,236,159,184,236,159,236,159,159,159, - 159,159,153,236,236,58,58,159,58,159,119,159,58,159,159,159, - 159,159,159,119,159,159,108,119,159,108,119,83,38,0,221,122, - 164,22,190,104,95,132,253,222,177,135,190,135,177,223,46,223, - 135,223,50,22,162,122,135,94,50,162,162,162,0,154,37,178, - 0,254,94,0,50,164,50,224,209,104,59,221,164,0,24,209, - 0,221,132,200,29,142,246,162,212,190,224,223,44,29,171,34, - 78,226,104,222,22,215,14,164,50,22,22,22,50,50,162,132, - 99,95,0,122,26,91,215,94,111,162,183,122,50,162,221,183, - 0,166,122,122,0,164,162,78,50,0,203,50,203,99,0,95, - 111,227,183,26,219,26,141,64,163,187,37,22,162,0,122,0, - 0,200,152,203,164,14,59,78,0,42,0,111,50,254,162,0, - 42,78,187,162,126,219,0,42,162,212,221,14,99,59,224,163, - 171,44,0,0,42,122,122,122,42,122,42,0,162,162,162,0, - 162,162,0,0,122,42,162,0,162,0,14,73,73,73,137,168, - 206,206,73,177,37,42,75,37,162,50,162,50,224,162,50,44, - 187,0,0,0,0,122,95,95,0,162,162,0,162,162,162,162, - 0,0,0,0,0,0,0,0,0,0,224,192,225,78,183,0, - 78,162,97,0,61,75,22,37,50,50,162,221,225,99,99,64, - 99,122,225,215,155,34,42,59,78,78,64,183,126,94,183,94, - 183,187,166,183,122,122,0,0,42,42,42,0,0,0,122,0, - 122,0,183,0,0,50,200,122,0,0,0,162,0,122,183,78, - 162,162,0,162,187,109,187,162,50,162,0,221,162,0,0,162, - 0,0,234,192,162,208,244,36,120,217,36,36,217,25,36,133, - 36,105,217,105,217,217,217,105,105,105,105,63,105,105,105,63, - 63,210,105,105,63,63,63,105,63,105,105,105,63,105,105,105, - 63,63,105,63,63,63,63,63,63,63,63,105,105,63,105,105, - 184,240,134,240,134,240,240,134,240,153,240,240,153,240,153,153, - 153,153,240,153,184,184,153,153,240,184,240,153,240,134,240,134, - 184,184,240,240,240,247,48,138,168,224,161,153,134,184,184,236, - 153,236,184,159,58,236,159,236,184,184,184,184,236,236,184,153, - 236,184,236,153,184,236,184,236,184,58,184,184,184,236,236,153, - 58,58,184,184,159,184,236,184,159,58,153,184,159,236,153,159, - 184,159,184,159,184,184,159,153,184,184,58,159,159,58,153,159, - 159,184,184,58,236,153,58,236,153,58,58,236,153,236,153,159, - 58,184,184,159,159,236,184,153,58,159,184,159,184,58,58,58, - 159,236,153,159,58,153,159,236,58,159,236,184,236,153,236,153, - 184,58,159,159,153,159,58,159,58,159,159,159,159,159,159,159, - 159,119,108,119,108,119,159,108,119,108,159,108,71,0,219,254, - 141,42,22,14,241,17,29,251,223,177,253,177,48,142,24,29, - 229,151,50,14,162,0,95,162,50,0,50,50,24,209,50,24, - 0,0,186,186,223,187,14,241,61,50,47,104,95,122,168,228, - 0,221,142,226,183,40,221,122,221,142,223,44,24,142,29,200, - 142,104,241,251,14,47,22,203,162,50,50,50,50,22,50,187, - 95,95,224,42,219,17,166,183,224,183,42,50,50,26,99,47, - 26,34,99,224,183,37,162,50,209,94,50,162,200,166,0,122, - 59,94,163,187,26,78,26,243,239,203,164,37,44,44,0,0, - 40,29,29,64,40,94,187,183,162,122,44,15,111,42,162,122, - 78,122,78,122,0,183,0,122,122,42,162,50,164,224,64,59, - 171,46,122,26,122,122,42,0,42,26,122,0,162,162,0,0, - 50,162,162,162,0,26,122,0,0,226,73,137,73,73,73,164, - 203,212,94,162,162,50,162,37,0,162,122,42,166,183,44,34, - 162,50,212,0,0,183,111,254,162,162,162,0,0,162,162,0, - 0,94,42,0,0,0,0,0,162,162,183,64,221,0,0,50, - 111,61,162,59,187,162,42,42,162,0,0,219,0,56,141,254, - 183,182,44,162,192,224,162,26,162,0,254,99,99,99,99,224, - 111,111,99,132,162,162,78,0,0,122,0,0,0,0,122,0, - 0,0,219,122,0,50,61,187,0,164,162,0,162,0,94,183, - 162,162,42,182,254,224,254,0,0,42,122,0,0,0,0,183, - 122,0,182,109,162,210,71,36,36,25,133,36,36,217,36,36, - 217,105,217,105,217,105,217,217,217,217,105,105,217,210,105,105, - 63,63,63,63,105,105,63,105,63,63,63,105,63,63,63,105, - 63,63,105,105,63,63,63,105,105,105,63,63,63,63,63,63, - 240,240,240,240,240,240,134,240,134,240,153,134,240,153,240,153, - 240,153,153,240,240,153,240,240,240,240,240,240,240,240,240,240, - 240,184,184,240,240,108,137,138,137,49,247,184,184,184,153,184, - 58,184,153,236,236,184,153,236,58,236,58,58,184,184,236,58, - 184,236,184,184,236,153,236,184,236,184,153,236,153,184,184,159, - 184,153,153,184,236,58,184,184,236,153,58,153,153,184,184,153, - 184,159,184,159,184,184,153,159,184,153,184,153,236,159,58,58, - 184,159,58,184,184,58,153,184,58,153,153,159,58,159,184,236, - 153,184,236,236,236,159,58,58,184,159,236,236,153,159,159,159, - 236,159,58,58,159,58,153,153,153,153,159,159,184,58,159,184, - 236,159,153,159,159,159,153,58,159,58,159,159,119,159,119,159, - 159,159,159,159,119,119,159,119,159,119,108,83,33,0,141,132, - 56,14,206,50,47,141,253,129,129,253,20,190,253,135,142,29, - 103,151,50,22,50,0,0,162,162,162,50,22,209,221,78,163, - 0,0,15,229,133,47,177,223,84,84,22,37,22,251,168,168, - 246,50,203,94,0,190,92,94,122,24,177,64,64,24,34,50, - 40,104,14,104,14,40,35,50,50,50,50,50,162,50,50,95, - 166,59,132,26,183,17,42,42,224,26,8,227,94,111,99,64, - 26,44,64,59,99,78,183,50,46,163,162,22,24,219,162,0, - 132,44,50,241,219,26,17,42,132,26,187,95,59,20,47,163, - 163,224,183,78,122,0,221,132,122,47,100,35,224,0,42,94, - 183,111,42,183,162,122,183,0,0,0,50,246,178,22,59,99, - 29,95,42,12,26,0,0,0,42,12,26,0,50,50,0,0, - 162,50,50,50,0,122,122,162,92,73,92,22,212,0,0,0, - 0,162,22,37,50,50,22,37,0,171,254,187,44,109,171,104, - 14,164,37,94,50,162,64,221,162,162,50,162,0,0,0,0, - 163,22,209,37,50,75,162,162,162,162,162,150,166,0,0,162, - 162,0,26,254,254,183,0,162,0,0,0,183,99,221,0,166, - 183,225,99,42,187,94,94,187,162,0,254,214,64,44,64,235, - 64,99,64,150,22,50,37,162,0,0,0,0,0,0,0,0, - 0,162,132,166,122,97,50,162,162,164,50,42,162,122,122,183, - 122,0,26,99,0,166,187,78,111,200,109,111,162,162,122,0, - 122,0,0,221,42,105,244,36,133,36,36,105,217,36,217,105, - 186,217,105,210,36,186,105,186,210,105,105,210,63,105,105,63, - 105,105,105,105,63,63,63,208,63,63,63,63,105,63,63,63, - 63,105,63,63,105,105,105,63,63,63,105,63,105,63,105,105, - 240,134,247,134,240,247,134,240,240,134,240,153,153,134,153,153, - 240,153,153,153,240,153,134,153,134,134,134,240,134,184,240,134, - 184,240,153,58,240,108,20,237,168,95,161,240,236,184,153,236, - 236,236,184,184,153,58,153,153,184,58,153,184,153,153,153,236, - 184,236,236,153,153,184,58,184,236,58,153,58,153,153,153,153, - 184,159,153,184,153,153,236,159,184,153,184,159,153,153,184,159, - 153,184,153,153,184,159,184,153,58,153,159,153,153,184,153,236, - 236,184,184,184,159,58,184,159,58,236,153,153,153,58,159,58, - 153,159,184,159,153,58,58,236,153,159,184,58,153,236,153,159, - 153,159,153,236,153,58,159,159,58,153,153,236,159,153,153,184, - 236,58,236,58,153,58,159,159,58,58,58,240,159,159,159,119, - 159,119,159,159,159,159,159,159,159,159,159,108,102,0,221,164, - 221,164,162,29,150,219,223,222,129,135,129,135,222,228,135,223, - 229,135,50,22,50,0,162,0,162,162,50,122,122,162,0,0, - 0,0,20,171,186,34,200,203,84,24,92,73,22,62,130,253, - 37,221,104,164,162,92,92,104,246,129,203,44,142,35,34,187, - 219,47,177,92,246,50,24,0,50,50,50,50,50,162,50,187, - 166,162,20,219,122,122,162,122,95,141,183,0,56,99,59,34, - 111,47,44,132,95,221,132,50,22,50,221,221,163,183,187,0, - 0,64,95,221,29,109,17,42,141,95,132,141,187,0,221,42, - 78,111,187,78,0,0,0,183,50,47,142,166,99,95,95,59, - 183,183,224,183,183,183,183,187,215,166,183,37,44,14,14,94, - 182,221,42,183,42,42,0,47,122,26,12,26,162,50,0,0, - 50,61,162,162,162,122,122,50,50,0,0,0,0,0,0,0, - 0,0,50,37,50,162,122,0,14,64,64,200,75,162,99,95, - 73,22,50,24,37,78,192,162,162,162,162,162,162,0,0,162, - 75,61,22,61,22,209,50,162,50,162,0,141,192,225,99,78, - 42,212,183,64,122,162,162,50,162,50,162,215,152,166,0,166, - 95,59,225,224,0,0,0,0,0,0,0,0,122,183,183,166, - 59,132,0,50,37,122,50,50,162,50,0,0,162,162,50,37, - 162,162,187,46,162,42,50,122,162,0,221,0,0,0,0,122, - 183,0,183,111,42,221,162,141,187,22,22,219,109,162,219,0, - 162,0,122,225,182,155,244,36,217,25,36,217,217,36,217,36, - 105,105,105,186,105,105,105,105,210,210,105,105,210,210,105,63, - 63,63,63,63,63,63,63,63,63,63,105,208,63,105,63,63, - 208,105,105,63,63,63,63,105,105,63,105,63,105,63,63,63, - 134,134,240,134,134,134,134,240,134,240,240,153,240,134,240,153, - 153,134,153,240,134,153,240,240,240,240,153,240,184,153,153,184, - 184,153,184,184,153,108,48,237,48,8,247,184,153,236,153,153, - 153,153,236,236,58,153,153,236,153,153,58,236,58,58,153,153, - 153,153,184,184,184,236,153,153,184,153,184,153,236,153,236,184, - 236,236,159,153,159,184,184,134,236,184,184,153,184,184,236,134, - 184,153,184,184,153,184,153,159,153,184,184,184,159,58,184,159, - 159,58,58,58,58,184,58,236,236,159,58,58,159,184,159,184, - 159,184,159,159,58,159,153,159,159,236,159,159,184,184,58,159, - 58,58,58,159,159,236,184,236,159,58,58,159,236,58,159,153, - 184,159,159,153,159,159,153,159,159,159,159,58,159,119,159,159, - 159,119,159,159,119,159,119,159,119,119,108,108,33,0,122,14, - 164,0,14,22,150,219,177,222,228,135,24,29,142,162,177,15, - 223,75,37,14,162,0,162,50,50,50,50,164,50,162,0,0, - 50,162,44,151,253,50,50,50,14,50,50,226,24,209,177,104, - 164,162,162,40,212,59,171,229,40,172,126,59,59,59,241,111, - 122,104,203,40,37,222,167,50,50,22,50,50,50,50,50,183, - 227,0,183,44,95,187,166,141,254,183,0,0,166,64,44,34, - 64,44,44,0,0,111,183,0,221,0,0,61,50,162,37,183, - 0,0,34,224,34,223,224,219,26,17,254,132,187,122,0,0, - 183,166,126,0,0,122,95,37,37,162,64,95,224,122,111,59, - 78,162,97,162,162,126,166,221,219,183,183,40,215,253,92,14, - 37,0,42,26,26,0,0,245,122,12,12,17,0,50,162,162, - 162,50,50,50,162,0,94,50,221,0,183,0,0,0,0,0, - 0,0,0,0,162,162,40,162,206,95,158,47,212,22,0,187, - 241,22,94,163,0,42,64,162,162,50,50,162,50,162,0,122, - 50,163,212,162,162,162,162,162,0,0,50,50,163,64,234,166, - 254,235,166,50,50,22,50,61,22,22,162,122,126,132,99,254, - 141,150,225,64,0,0,42,162,183,187,183,183,187,183,0,0, - 0,162,0,42,50,50,183,50,50,37,0,162,162,162,50,50, - 0,162,50,164,0,0,42,162,162,162,122,122,162,0,162,0, - 0,0,111,111,99,183,94,94,95,37,78,42,42,111,162,162, - 162,0,64,192,109,63,120,133,36,36,105,133,217,105,36,105, - 105,105,105,105,105,105,105,105,105,105,63,186,63,63,63,105, - 63,63,63,105,63,63,105,208,105,63,208,63,63,208,105,63, - 63,63,208,63,208,63,63,63,63,63,63,63,208,105,105,105, - 153,153,240,247,153,240,134,240,134,134,240,134,153,153,240,134, - 240,240,134,240,240,134,153,153,134,153,153,134,153,240,153,153, - 184,153,153,58,184,108,172,237,92,95,247,240,153,236,153,236, - 184,153,153,236,236,184,184,58,58,153,153,153,153,184,153,153, - 153,153,236,236,153,153,236,153,153,153,184,184,184,184,153,184, - 153,153,153,153,153,153,58,184,153,236,159,184,153,184,184,184, - 184,184,153,159,153,58,236,184,153,153,159,236,153,184,153,236, - 153,153,58,159,58,153,159,184,184,159,184,58,159,153,159,184, - 184,159,153,184,159,159,159,58,184,153,236,58,159,184,236,159, - 153,159,184,58,159,236,159,236,159,153,153,159,153,236,159,184, - 236,153,58,236,153,58,236,159,236,58,58,159,159,159,159,159, - 159,119,119,119,159,119,159,159,159,159,119,108,33,73,227,0, - 50,212,216,37,104,141,104,177,55,142,50,50,0,50,50,226, - 37,203,37,14,162,122,0,162,50,50,50,37,50,0,0,0, - 22,50,59,20,122,0,50,50,50,50,50,47,0,221,190,226, - 162,94,221,164,40,59,15,229,50,177,162,50,219,200,142,254, - 47,40,22,209,209,178,73,37,162,37,50,50,50,162,50,50, - 0,162,0,56,64,95,0,224,162,162,162,0,99,44,34,44, - 95,56,221,0,0,183,183,122,0,0,94,37,50,162,50,50, - 183,0,162,47,64,163,111,241,203,215,132,183,0,0,0,0, - 183,122,183,183,44,34,37,94,78,254,42,94,122,94,183,126, - 183,215,166,150,126,95,42,0,42,95,78,221,0,29,95,164, - 73,94,219,219,26,122,42,245,42,122,26,26,122,50,50,162, - 162,162,22,22,162,0,221,183,59,163,35,224,122,122,122,0, - 122,122,0,0,162,162,164,14,94,37,47,219,64,162,0,254, - 132,221,22,0,162,183,64,162,162,162,50,162,162,0,0,221, - 0,0,122,162,162,162,162,162,187,35,35,241,50,254,141,59, - 64,0,0,162,50,97,50,162,162,162,0,122,17,214,192,192, - 34,225,192,64,0,166,245,171,192,34,44,44,35,50,50,50, - 50,50,162,0,0,50,122,0,0,162,162,0,0,0,50,187, - 0,94,212,0,0,162,162,162,78,0,0,122,162,162,162,0, - 0,122,166,182,211,224,162,162,221,162,122,122,0,150,162,162, - 162,78,192,225,224,210,244,36,217,36,36,105,105,105,105,105, - 105,105,105,105,105,210,63,105,210,105,105,105,105,105,63,105, - 63,105,208,63,105,208,63,63,208,63,63,105,63,208,63,105, - 208,63,63,63,105,208,63,63,105,208,105,63,208,63,63,105, - 240,153,134,134,134,134,134,153,134,240,153,134,240,153,153,240, - 153,134,240,153,153,153,240,153,153,240,218,240,134,153,153,240, - 153,184,153,236,184,108,190,79,73,8,247,184,153,153,153,153, - 153,184,153,153,153,236,153,236,153,153,184,184,184,236,184,153, - 184,236,153,153,153,184,184,153,184,184,153,153,153,153,236,153, - 184,159,184,184,153,153,153,153,159,184,153,153,159,184,236,153, - 153,153,184,153,58,134,184,159,184,184,153,153,159,58,184,184, - 159,58,184,236,153,58,159,184,58,153,236,184,236,58,58,58, - 184,159,58,184,159,159,58,159,184,159,159,153,153,236,184,236, - 153,153,236,153,159,184,184,159,236,58,58,184,159,184,153,159, - 159,58,159,159,58,159,159,236,159,159,159,119,159,119,159,143, - 159,159,159,159,119,159,119,159,119,108,119,108,33,137,222,40, - 14,14,31,50,47,12,94,164,104,50,50,104,226,168,50,22, - 50,61,37,241,162,0,162,162,162,50,50,0,0,0,162,50, - 50,162,111,111,37,50,164,50,22,162,47,141,126,166,177,228, - 0,221,0,203,203,95,229,151,221,47,50,47,20,172,47,241, - 75,130,84,209,37,162,122,162,50,22,50,22,22,162,50,50, - 162,40,50,164,37,0,0,241,164,164,22,221,94,187,221,0, - 183,0,183,42,227,126,122,0,0,162,37,61,162,42,50,162, - 224,0,0,0,59,34,40,50,22,37,162,64,29,34,111,50, - 212,163,35,34,135,20,183,111,111,183,183,183,183,166,162,95, - 0,122,111,150,166,183,183,126,166,99,94,183,162,171,241,22, - 73,0,26,26,219,122,111,171,227,122,26,26,122,162,50,162, - 0,0,50,50,50,254,192,224,95,111,50,35,162,56,0,0, - 0,0,0,0,50,50,50,164,0,50,122,42,34,0,162,221, - 132,163,73,14,162,183,59,0,162,162,0,0,0,0,122,26, - 42,0,0,162,162,162,162,162,22,209,24,14,61,0,192,64, - 0,0,0,0,0,152,59,0,162,0,187,99,225,44,47,141, - 64,99,64,99,0,42,44,59,109,224,187,111,162,50,162,162, - 162,162,162,0,122,0,0,0,0,94,50,162,162,94,94,50, - 50,162,162,0,162,0,0,162,0,162,162,122,0,162,0,0, - 162,0,122,99,254,99,187,0,0,0,94,162,122,78,78,162, - 0,219,171,225,200,191,36,36,105,217,105,217,217,186,105,105, - 210,105,105,105,63,105,105,210,105,63,63,63,63,208,63,63, - 63,208,63,63,208,63,105,208,63,63,208,208,63,63,63,208, - 63,63,105,63,63,105,208,63,63,63,63,63,63,63,208,57, - 153,153,240,134,153,153,134,153,134,153,134,153,153,153,153,153, - 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,240, - 218,184,153,153,153,247,223,167,92,166,247,240,184,58,153,236, - 153,153,153,153,153,153,153,153,184,153,153,153,184,153,58,153, - 184,153,153,184,153,153,184,153,153,184,184,58,159,184,184,153, - 153,236,153,58,184,184,153,153,153,184,184,159,153,184,184,159, - 184,153,184,153,184,153,153,184,159,184,184,153,153,153,159,153, - 184,184,159,58,58,58,184,184,58,159,153,159,184,159,159,184, - 58,159,184,159,184,159,240,240,159,184,58,58,159,159,184,159, - 58,184,58,159,184,184,159,184,159,153,153,58,159,240,159,184, - 159,58,159,159,236,159,159,159,236,236,159,159,159,159,159,159, - 159,159,159,159,159,159,159,119,119,159,119,108,33,137,228,55, - 22,37,0,142,235,246,14,233,50,50,177,172,253,212,135,22, - 209,37,37,22,78,0,162,162,162,50,50,162,162,162,50,50, - 50,162,239,46,209,178,50,22,22,50,34,92,215,162,14,241, - 122,0,73,104,164,212,151,229,0,142,50,190,111,50,14,14, - 37,177,47,132,162,183,150,42,50,22,50,22,50,162,162,50, - 50,50,22,50,162,0,0,94,22,37,163,111,44,20,111,0, - 0,0,0,0,0,94,0,162,50,50,50,162,162,162,163,162, - 75,224,0,0,0,166,99,59,94,212,50,29,171,171,200,212, - 37,37,75,224,224,59,44,47,122,94,227,163,183,162,0,187, - 0,221,0,183,187,183,215,78,183,183,162,162,50,95,241,92, - 22,162,26,42,42,0,104,75,0,0,219,26,42,162,50,162, - 50,0,0,162,50,0,183,50,0,126,200,22,56,245,99,0, - 0,50,0,162,14,94,150,122,162,150,243,141,162,162,254,254, - 221,141,164,92,50,122,254,12,26,122,0,0,26,12,8,8, - 8,42,0,0,0,0,0,0,0,122,22,241,22,0,254,0, - 0,0,0,0,162,152,50,0,0,219,44,44,192,64,44,192, - 29,64,99,42,0,0,0,0,162,0,0,0,0,0,0,0, - 0,162,162,0,0,0,0,0,162,37,162,0,122,183,162,50, - 212,0,0,0,0,162,162,162,0,0,0,0,162,0,0,0, - 162,0,122,67,109,59,99,183,0,0,0,162,163,162,0,0, - 0,26,192,225,59,96,120,36,105,133,105,105,105,105,63,36, - 63,105,63,105,105,105,105,63,105,63,63,63,63,63,105,105, - 63,105,208,63,63,208,63,105,208,63,208,63,208,63,63,208, - 105,208,208,208,63,63,105,208,208,208,63,96,171,145,99,235, - 134,153,134,240,240,134,240,153,153,153,153,153,153,153,153,153, - 153,153,153,134,153,153,153,153,153,153,153,153,153,153,153,153, - 184,153,153,153,184,108,190,167,226,243,247,184,153,153,184,153, - 153,184,153,184,153,236,184,184,153,153,153,184,153,58,153,58, - 153,153,153,153,184,184,153,236,58,153,236,153,153,153,153,153, - 153,153,159,153,153,153,184,184,159,153,184,153,159,153,153,153, - 153,159,153,184,184,184,184,153,153,184,159,184,153,184,153,159, - 184,153,153,184,159,58,58,58,184,159,58,184,159,236,159,236, - 153,184,184,184,159,159,58,58,159,58,159,58,236,236,153,236, - 159,236,159,236,236,153,236,159,236,58,58,159,159,236,159,184, - 184,153,159,159,240,184,159,159,159,159,159,159,119,159,159,159, - 159,159,159,159,119,159,159,159,159,119,108,108,33,130,29,79, - 48,122,122,50,94,164,50,233,162,50,226,212,50,0,20,164, - 151,50,37,22,94,221,162,50,50,50,22,0,162,50,50,50, - 162,162,50,84,209,37,50,50,50,162,246,113,37,123,84,233, - 246,221,251,104,50,163,33,151,162,97,0,123,0,212,123,142, - 47,142,26,26,26,42,26,0,50,22,50,50,162,50,0,212, - 162,162,37,37,212,0,0,162,50,22,97,50,64,47,59,0, - 37,209,209,212,75,50,162,50,50,50,78,162,0,162,50,50, - 162,34,122,0,0,0,0,95,64,224,95,47,200,200,50,162, - 94,221,95,64,64,64,183,78,42,122,0,95,59,224,183,126, - 0,122,0,183,50,42,122,95,183,122,42,0,0,166,94,22, - 92,0,219,42,219,162,212,162,162,122,42,26,122,0,162,0, - 162,162,0,162,162,162,162,0,122,162,78,166,47,225,44,209, - 0,92,212,22,92,0,243,141,219,141,187,183,0,243,47,111, - 0,254,215,94,183,122,187,150,42,122,26,26,12,12,150,12, - 26,26,122,26,26,26,0,26,12,26,26,26,122,34,34,245, - 166,0,0,0,56,245,215,0,215,235,64,254,47,225,192,192, - 99,141,56,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,183,187,0,0,0,0,0,162,221,162,0,0,0,50,94, - 0,0,0,0,162,162,0,162,162,162,0,0,162,0,0,162, - 162,0,0,183,225,99,243,14,164,164,162,183,239,50,0,162, - 0,0,162,0,0,63,120,105,105,105,36,63,105,105,105,63, - 105,63,105,105,63,63,63,105,63,105,105,63,105,208,208,208, - 105,63,208,105,208,63,208,208,63,208,63,208,208,105,208,63, - 63,105,105,105,208,105,208,234,64,64,214,67,214,139,158,139, - 153,153,134,153,134,153,134,153,153,153,153,153,153,218,153,218, - 218,153,153,153,240,153,153,153,240,153,153,153,153,153,153,153, - 153,184,153,184,184,247,142,79,92,215,247,240,153,153,153,236, - 236,153,218,153,153,153,236,236,236,236,153,184,236,184,153,153, - 153,153,153,236,153,236,153,153,236,184,153,153,153,184,184,184, - 184,153,184,184,159,153,184,134,184,153,184,153,184,184,159,184, - 153,184,159,153,159,134,184,184,134,184,184,159,153,159,153,153, - 184,159,236,153,184,159,153,58,236,184,159,153,184,153,159,184, - 159,184,159,184,159,159,159,58,159,236,159,184,159,58,159,153, - 159,236,184,159,184,184,153,159,159,159,159,58,159,184,184,159, - 184,159,159,159,159,159,159,184,159,159,58,159,159,159,159,159, - 159,159,159,159,159,159,159,159,159,159,159,108,33,22,223,201, - 201,200,166,254,94,50,94,226,164,46,129,162,129,226,50,94, - 222,50,22,22,122,162,162,22,50,50,50,162,162,50,50,50, - 50,94,122,223,209,50,50,22,50,162,162,50,162,167,73,35, - 0,162,0,162,0,94,88,38,162,200,42,92,37,78,42,215, - 219,42,215,40,221,40,94,0,0,0,162,162,162,162,42,20, - 34,40,37,50,0,0,0,0,50,22,50,0,162,0,0,162, - 200,209,209,209,22,0,162,162,162,0,0,221,187,0,162,50, - 50,46,187,0,0,0,0,0,0,78,111,47,64,47,59,59, - 254,111,99,95,221,183,0,183,122,122,219,40,47,59,111,99, - 0,0,0,42,183,162,162,183,78,221,56,99,50,95,241,14, - 92,0,17,17,122,162,50,162,50,162,0,26,26,0,0,162, - 50,162,162,162,0,162,162,162,122,0,0,225,225,187,163,44, - 254,75,162,162,187,0,12,141,183,183,162,0,122,243,183,50, - 94,44,64,183,224,221,187,122,122,12,12,17,17,26,12,17, - 26,0,26,219,26,26,122,26,26,42,17,26,42,248,192,245, - 245,64,0,0,183,245,183,141,192,192,34,214,44,44,141,215, - 219,0,0,0,162,0,0,162,162,162,162,0,0,0,0,0, - 187,64,126,0,122,0,0,0,78,42,94,0,0,162,50,162, - 0,122,0,122,0,162,0,162,162,162,0,0,50,162,0,0, - 162,0,0,0,214,64,212,22,22,22,50,97,215,122,78,162, - 0,0,0,0,0,208,120,105,105,105,36,105,63,105,105,105, - 105,105,63,105,105,105,63,105,63,63,105,208,105,105,63,208, - 208,105,208,63,208,63,63,208,63,208,63,63,208,63,105,105, - 208,63,208,152,225,214,64,235,64,235,235,67,234,67,192,64, - 153,153,153,153,153,153,134,153,153,153,218,218,134,218,134,218, - 153,153,218,153,153,153,153,153,153,153,153,153,153,153,153,153, - 153,153,184,236,153,108,226,167,73,187,247,240,236,218,153,153, - 153,236,153,143,153,143,153,153,153,184,236,153,153,153,153,184, - 184,236,153,153,153,153,184,153,184,153,153,153,184,153,236,153, - 153,153,159,184,153,184,153,184,153,159,184,159,153,153,153,153, - 159,153,153,184,153,184,153,153,184,159,184,153,184,153,184,159, - 153,184,159,58,153,236,58,184,159,184,58,58,184,58,159,58, - 236,58,153,184,153,159,58,159,236,159,58,58,236,153,236,58, - 153,159,184,153,153,184,58,184,236,159,236,153,159,236,58,184, - 184,184,159,159,240,159,240,240,159,159,240,159,159,159,159,159, - 159,159,159,159,159,108,159,159,108,159,119,108,197,50,253,103, - 55,228,162,92,92,164,14,75,40,201,209,47,201,223,22,212, - 190,162,22,37,122,0,50,22,50,50,50,0,162,162,0,162, - 50,50,122,223,209,162,50,162,50,95,50,221,221,42,22,24, - 221,0,221,212,162,212,38,55,183,190,0,92,212,17,246,212, - 56,40,163,203,212,92,226,50,94,122,26,42,42,26,12,135, - 229,133,241,24,223,142,223,223,223,223,142,162,0,162,162,221, - 162,162,0,183,15,15,20,172,47,46,47,47,47,0,162,162, - 162,183,95,0,0,0,0,0,0,0,0,0,0,0,183,15, - 29,20,95,37,141,224,0,183,0,183,183,42,224,224,215,95, - 0,122,0,126,183,0,0,183,126,166,141,29,94,35,137,206, - 92,122,26,26,0,162,162,162,50,50,122,26,26,122,0,162, - 162,162,162,162,162,162,0,0,0,0,212,166,47,209,50,42, - 224,50,59,183,94,162,219,166,162,162,162,26,56,122,0,162, - 94,26,224,59,59,0,56,12,219,17,132,17,26,17,219,122, - 122,0,17,26,122,219,0,0,122,26,26,42,162,155,47,171, - 29,245,29,122,219,186,0,95,152,99,254,254,183,221,0,150, - 64,59,0,162,162,111,0,0,78,162,162,162,162,0,0,126, - 64,99,40,0,122,42,162,122,162,50,162,0,162,42,94,162, - 122,64,183,0,162,162,0,162,162,162,0,0,50,162,0,0, - 0,162,0,0,219,50,162,212,42,215,221,40,42,94,50,162, - 0,219,64,111,0,63,105,36,105,105,63,105,105,105,105,63, - 105,63,105,105,63,105,105,63,208,63,208,63,63,208,105,105, - 63,63,208,105,208,208,105,105,105,105,105,105,105,105,208,57, - 234,158,99,235,99,145,99,235,235,158,214,44,158,158,158,214, - 153,134,134,153,153,218,134,153,218,218,153,218,218,218,218,134, - 218,153,153,218,153,153,153,153,153,153,153,153,153,153,153,153, - 153,153,153,184,240,247,47,167,92,215,247,240,153,236,153,218, - 218,153,153,153,153,153,184,153,153,184,153,153,153,153,153,153, - 184,153,184,159,184,153,184,153,153,184,236,153,184,184,159,184, - 159,153,153,184,153,159,184,184,153,153,159,184,159,184,159,153, - 184,184,153,159,184,184,159,184,159,153,184,159,159,159,153,58, - 153,159,153,159,184,159,153,159,58,153,58,58,159,236,184,184, - 159,159,159,184,153,184,159,184,58,153,153,159,58,159,153,58, - 236,236,159,58,153,184,236,159,153,159,184,159,159,153,236,159, - 184,184,240,159,240,159,159,240,159,159,159,108,159,159,159,159, - 159,159,159,108,119,159,108,159,159,108,159,108,38,22,129,79, - 228,201,226,22,14,164,14,50,0,200,104,172,203,0,164,84, - 223,22,164,22,94,162,10,50,50,37,50,162,162,162,94,122, - 162,162,50,24,24,50,50,50,50,46,84,84,46,215,226,62, - 42,123,163,164,137,40,151,229,212,177,183,226,50,17,132,40, - 221,203,24,46,46,209,200,223,75,122,122,42,219,26,150,29, - 135,29,64,29,171,229,245,186,186,229,171,221,0,162,162,162, - 162,162,162,95,38,244,102,102,245,151,133,229,42,0,162,162, - 162,50,254,0,162,162,42,26,42,42,42,42,42,122,42,133, - 20,20,35,50,183,126,126,166,42,221,227,95,187,95,183,47, - 0,183,183,111,126,166,126,95,224,59,111,227,0,24,168,73, - 73,0,17,42,0,64,59,59,59,163,94,26,219,122,0,0, - 162,50,162,0,162,162,162,0,111,212,92,187,162,75,183,59, - 47,111,224,183,17,162,162,0,219,243,141,67,141,150,141,221, - 221,0,59,47,224,221,122,26,219,26,219,219,219,42,122,122, - 0,0,17,26,42,42,0,122,26,12,219,0,162,192,187,224, - 224,224,64,187,183,171,122,122,95,64,44,254,254,99,47,192, - 254,152,162,162,122,171,225,224,162,122,122,78,122,0,254,99, - 224,111,162,0,122,78,78,162,162,50,50,0,162,162,0,162, - 0,111,254,187,162,162,0,162,162,0,0,0,162,0,26,224, - 109,99,122,0,0,0,187,254,12,243,17,42,0,94,183,0, - 122,234,192,158,95,63,36,105,105,105,63,105,105,63,105,63, - 105,63,63,105,63,105,105,105,105,63,105,208,105,63,208,208, - 208,63,208,63,105,208,208,208,57,191,208,57,192,225,99,64, - 64,214,99,214,235,158,214,158,158,158,158,158,158,158,158,214, - 153,218,134,153,134,218,153,134,218,134,218,218,153,218,218,218, - 218,218,218,153,218,153,218,153,218,218,153,218,153,218,218,153, - 153,153,153,218,153,108,104,123,226,17,247,184,153,153,153,184, - 184,153,153,153,153,153,153,184,184,153,184,153,153,153,153,184, - 153,184,153,153,159,184,153,153,184,153,184,153,153,159,153,153, - 153,159,159,153,184,159,153,184,184,184,134,184,159,184,153,159, - 184,153,184,134,159,184,153,184,134,159,184,153,184,153,159,184, - 159,184,159,153,184,159,58,236,159,58,159,184,159,184,159,184, - 153,236,153,184,159,159,236,159,153,58,58,58,184,153,58,153, - 159,159,236,159,184,236,159,153,58,153,184,236,159,159,184,159, - 159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159, - 159,108,159,159,159,159,119,159,159,159,108,83,38,14,228,18, - 55,18,201,0,40,50,22,22,40,103,103,242,164,162,14,249, - 37,164,22,164,0,50,22,22,22,22,22,162,50,50,50,50, - 162,162,14,37,229,50,50,37,162,92,130,14,22,226,104,233, - 237,30,129,221,137,177,209,75,173,129,0,56,246,17,219,104, - 162,126,241,75,126,22,75,24,75,26,26,26,219,42,150,34, - 135,162,0,227,34,183,0,0,0,34,142,162,0,0,0,0, - 122,0,0,122,95,162,0,0,0,0,0,0,162,50,162,50, - 50,212,47,162,50,162,42,12,150,219,42,132,150,17,42,34, - 20,34,34,37,203,183,215,166,59,109,126,95,95,254,183,47, - 59,162,95,183,59,227,34,254,142,95,166,50,221,73,14,14, - 14,0,219,42,0,59,59,44,192,171,171,122,8,26,0,162, - 162,0,162,0,162,162,162,163,225,209,14,63,171,95,94,166, - 141,254,0,42,141,0,50,0,17,150,132,183,219,132,150,50, - 22,215,0,94,126,0,162,162,162,0,0,0,0,162,162,78, - 42,122,12,12,219,26,0,42,12,12,42,0,0,64,111,166, - 111,224,64,192,171,171,0,122,0,56,99,192,29,192,192,171, - 192,59,0,162,0,192,171,192,34,187,0,0,162,162,94,183, - 50,162,162,78,0,0,162,0,162,37,50,0,0,0,162,50, - 0,183,111,171,224,183,111,187,78,162,0,182,224,150,166,95, - 221,0,0,162,40,0,99,122,0,162,187,254,219,0,162,0, - 183,17,183,224,111,208,25,105,105,105,105,105,63,105,105,105, - 63,208,105,63,208,63,208,208,63,208,63,105,208,208,63,63, - 105,105,63,105,208,105,63,234,64,214,64,49,64,67,145,214, - 235,158,158,158,158,192,158,158,158,158,214,158,214,158,214,158, - 218,134,153,153,218,218,218,218,153,218,218,218,218,134,218,218, - 134,218,218,218,218,218,153,153,153,218,153,153,153,153,153,218, - 218,218,153,153,153,247,46,251,92,94,247,240,153,218,153,153, - 153,153,153,184,184,184,184,153,153,153,184,153,153,236,153,184, - 153,159,153,153,184,153,159,153,184,153,153,58,134,58,159,184, - 153,184,184,184,153,159,134,184,159,58,153,134,153,184,159,153, - 159,184,58,153,184,159,153,58,153,184,159,184,184,159,184,58, - 159,184,58,159,58,240,159,159,184,159,184,153,159,184,159,58, - 159,159,58,159,58,184,159,159,184,159,159,236,58,159,236,134, - 184,184,236,159,184,58,58,159,58,236,159,153,58,184,153,159, - 184,184,159,159,159,240,159,159,159,159,159,159,108,159,159,159, - 159,159,159,159,159,159,159,159,159,159,159,108,38,162,222,228, - 197,18,72,164,26,50,22,162,73,249,249,138,50,104,212,212, - 22,14,37,162,0,162,50,22,50,22,50,0,50,162,162,162, - 162,50,22,50,154,241,50,22,50,162,164,35,84,206,14,48, - 92,190,94,104,0,50,0,104,73,95,164,0,221,26,26,40, - 75,50,75,46,200,46,46,241,212,219,219,219,26,122,99,29, - 229,122,0,133,133,133,229,187,0,133,133,94,0,0,0,0, - 0,0,0,78,34,239,0,0,162,162,162,162,50,61,50,50, - 50,50,224,0,162,162,162,0,26,219,42,26,26,26,26,12, - 29,34,29,97,22,183,126,183,227,95,59,219,126,59,166,56, - 225,59,64,47,171,47,95,215,56,219,187,22,104,222,233,73, - 50,0,219,26,221,141,141,42,26,141,183,0,26,26,122,182, - 44,64,206,14,0,0,219,152,64,50,64,44,64,221,162,162, - 95,34,47,59,44,126,162,99,94,132,95,141,221,221,42,94, - 14,0,221,0,94,0,162,162,162,162,0,162,162,162,162,0, - 0,0,122,26,12,17,0,122,17,219,0,0,0,152,171,192, - 20,225,34,34,192,171,0,26,219,221,0,182,34,225,47,254, - 221,0,0,0,162,34,34,64,64,59,64,42,162,162,50,162, - 50,50,26,42,0,162,0,162,50,221,0,0,0,162,162,50, - 0,234,34,99,254,95,158,44,75,26,162,183,224,182,0,0, - 0,0,42,47,35,42,235,221,122,17,162,219,64,0,162,0, - 0,162,0,0,78,105,120,105,105,105,105,105,105,63,63,105, - 105,63,105,105,105,105,105,105,105,105,208,63,105,63,105,105, - 105,105,208,57,192,214,64,64,99,235,214,235,158,214,158,192, - 192,158,158,158,214,158,214,214,214,214,158,158,158,158,214,214, - 218,218,134,218,134,218,134,218,218,218,134,218,218,218,153,218, - 218,218,134,218,218,218,218,218,153,218,218,218,218,218,153,153, - 153,153,153,153,153,247,104,31,92,166,247,184,218,153,218,153, - 236,153,153,153,153,153,153,184,184,153,153,153,153,153,153,153, - 159,153,184,159,153,184,153,159,153,159,184,153,153,159,153,159, - 159,153,159,153,159,184,184,153,153,153,159,236,58,153,236,159, - 153,159,153,58,153,153,184,159,159,153,159,153,159,159,240,159, - 184,159,159,153,153,58,184,159,184,184,159,240,159,159,58,240, - 184,159,159,58,159,184,184,184,184,153,159,159,159,159,184,58, - 159,159,184,159,184,159,159,58,159,159,153,159,159,153,159,159, - 159,184,184,159,134,159,159,159,159,159,159,159,159,159,159,159, - 119,159,159,159,159,119,159,159,159,119,108,83,38,162,73,168, - 129,55,33,55,42,246,50,0,233,233,31,216,73,50,162,221, - 92,14,162,162,0,162,94,29,0,0,40,122,50,94,215,40, - 162,0,50,162,253,24,61,37,22,163,46,223,253,209,73,177, - 246,104,251,73,73,104,50,135,222,95,24,226,122,219,0,34, - 184,35,22,163,46,163,163,75,239,42,26,26,17,42,64,64, - 229,0,29,88,133,133,74,143,0,151,229,94,0,0,0,0, - 0,0,0,42,44,0,162,0,50,50,50,162,162,94,162,162, - 162,40,95,0,0,0,162,122,183,219,42,17,26,26,239,206, - 64,44,223,44,37,0,56,183,0,221,219,227,166,95,166,215, - 64,47,183,224,95,219,95,166,183,183,212,212,73,73,206,46, - 42,122,12,26,219,141,219,254,34,15,94,162,42,122,26,59, - 44,67,203,92,0,0,0,122,75,162,163,215,215,59,59,162, - 221,224,59,47,44,212,0,225,241,254,29,171,254,186,0,0, - 215,95,111,183,166,126,111,166,47,59,59,47,59,95,59,59, - 47,59,56,219,12,219,0,26,12,26,0,0,0,171,29,192, - 29,29,34,29,29,171,0,0,122,0,0,183,141,221,0,0, - 219,42,122,0,0,64,64,99,224,59,99,50,162,162,162,50, - 42,219,183,183,122,0,0,94,37,50,50,0,0,0,162,0, - 0,192,192,192,192,0,22,50,50,0,162,162,0,0,0,0, - 42,0,187,183,224,221,132,211,254,122,0,42,219,122,94,162, - 162,0,99,64,94,208,36,186,105,105,186,105,63,105,105,63, - 63,208,208,63,63,63,63,63,208,63,105,36,63,105,208,57, - 234,158,64,214,99,235,235,235,214,158,214,158,158,158,158,158, - 145,158,214,158,158,214,158,158,158,214,158,214,64,214,214,158, - 218,218,134,218,218,218,218,218,218,218,218,218,218,218,218,218, - 218,218,218,218,218,218,134,218,218,218,153,153,153,218,153,153, - 153,218,153,153,153,247,47,137,92,183,247,240,134,153,218,153, - 153,153,159,159,184,159,153,153,184,153,153,184,184,153,153,236, - 159,153,153,159,153,153,134,58,153,153,159,184,153,153,153,153, - 58,153,159,153,153,153,159,159,153,153,159,143,159,153,153,159, - 153,159,153,159,159,236,153,153,153,236,153,153,153,153,159,159, - 153,159,184,159,153,153,153,184,159,159,184,159,184,240,159,159, - 159,184,184,159,184,58,58,159,240,159,184,159,58,184,159,58, - 159,240,58,159,184,159,153,159,159,240,58,159,159,184,159,184, - 184,159,134,184,153,134,184,159,159,159,159,159,159,159,119,159, - 159,159,159,159,159,159,119,159,119,159,159,83,38,251,33,228, - 222,31,228,197,203,50,50,0,249,73,233,62,62,0,56,50, - 122,95,0,0,122,221,162,223,162,0,0,20,143,33,143,33, - 35,0,162,0,47,34,163,40,132,59,104,0,164,95,24,92, - 22,14,84,104,92,221,173,46,166,129,48,55,221,17,42,229, - 218,241,46,241,241,212,50,46,95,26,183,42,26,26,64,47, - 133,50,20,135,151,133,38,74,0,171,20,183,0,0,0,0, - 200,29,190,95,224,0,50,0,0,162,50,162,162,162,224,29, - 44,47,29,20,229,15,20,20,229,171,239,26,17,92,73,233, - 92,182,44,34,46,212,0,0,0,122,0,0,78,0,166,0, - 42,122,215,0,0,183,0,122,122,0,37,0,206,14,26,243, - 219,42,26,0,219,64,192,15,29,158,126,50,42,122,12,187, - 64,241,84,183,183,0,0,221,164,50,46,152,15,225,44,59, - 162,162,42,111,224,122,0,64,34,0,150,64,64,34,187,183, - 254,171,44,35,44,34,64,44,15,171,171,171,29,29,171,171, - 245,245,95,0,26,26,122,150,17,122,0,0,0,171,171,34, - 34,225,44,44,192,171,0,0,0,0,0,0,0,0,0,42, - 219,42,122,0,0,78,122,221,0,162,122,0,166,214,95,122, - 42,183,183,126,12,183,162,0,162,162,0,0,0,0,0,0, - 122,183,95,44,214,0,22,22,50,0,162,162,0,0,0,254, - 224,0,0,0,0,162,183,17,183,0,162,78,0,42,94,0, - 0,150,192,171,64,63,36,105,105,105,105,105,105,63,105,105, - 105,105,63,105,105,105,105,36,36,63,208,191,192,214,99,99, - 225,192,234,234,214,158,214,214,214,214,214,158,214,214,145,214, - 214,214,158,99,158,214,158,214,214,64,214,214,158,101,158,158, - 218,218,218,134,88,134,88,218,218,218,88,88,218,218,218,218, - 218,218,218,218,218,218,218,218,218,218,218,218,218,153,218,218, - 218,153,218,218,218,240,241,251,92,42,247,184,153,153,153,153, - 153,153,153,153,153,153,184,184,153,184,184,159,153,58,153,153, - 153,159,153,153,184,184,153,153,159,159,153,236,236,153,236,153, - 153,153,153,159,153,58,153,153,153,236,153,153,143,153,153,143, - 153,153,159,153,236,153,236,153,236,153,153,153,153,184,134,153, - 58,153,159,153,159,159,58,184,153,184,159,159,240,159,159,240, - 159,159,153,236,159,184,159,159,184,159,184,184,159,240,159,153, - 159,58,184,184,153,159,240,159,159,159,240,159,240,159,153,159, - 184,184,184,159,159,184,153,134,159,159,159,159,159,159,159,159, - 159,159,159,159,159,159,159,159,159,119,119,83,38,222,55,228, - 103,55,228,33,223,50,50,37,175,73,14,206,233,94,212,187, - 162,50,162,0,14,37,0,142,22,50,0,151,33,38,55,151, - 133,46,0,162,163,29,44,29,223,142,142,34,44,47,47,178, - 22,164,142,0,215,46,79,177,141,222,190,47,40,42,42,34, - 229,241,223,46,24,35,92,44,26,12,190,42,12,26,15,50, - 151,221,0,0,0,0,0,221,0,29,34,162,0,212,95,95, - 40,95,75,94,126,0,162,162,50,162,162,162,37,50,215,151, - 229,135,229,15,229,20,20,29,20,151,15,40,177,249,206,73, - 206,35,47,44,34,50,162,0,0,122,227,122,0,166,0,183, - 219,0,132,122,166,126,0,122,122,94,50,168,104,150,219,150, - 0,219,26,0,133,133,20,44,35,44,95,162,50,26,219,0, - 141,37,226,42,34,0,0,241,164,50,171,44,224,50,221,219, - 241,50,162,0,183,162,162,166,34,0,0,0,162,162,50,162, - 47,192,44,44,64,64,59,99,29,44,44,34,44,34,44,34, - 171,15,212,0,150,12,122,122,0,0,0,0,122,171,29,192, - 29,34,225,29,29,245,0,0,0,0,0,0,122,0,0,0, - 122,183,122,0,0,162,162,162,162,162,0,183,99,171,225,95, - 183,94,183,183,166,111,78,162,162,0,0,0,0,162,0,219, - 219,219,162,122,111,78,22,61,0,162,162,162,0,0,166,214, - 224,0,0,187,150,132,214,183,122,221,78,111,219,122,221,0, - 182,64,34,192,40,63,36,105,105,105,63,105,105,105,63,105, - 208,105,105,105,105,63,191,202,234,225,64,139,64,139,234,158, - 57,152,158,214,214,214,214,214,64,214,235,214,214,235,158,49, - 158,214,158,214,158,214,214,214,158,101,158,214,234,64,158,214, - 218,218,218,218,218,88,134,218,88,134,218,88,218,88,218,88, - 218,218,218,88,134,88,218,218,218,88,218,134,218,153,218,218, - 153,218,153,218,134,247,59,137,92,94,247,240,218,153,143,236, - 153,153,184,159,159,184,134,184,153,153,153,153,153,159,153,153, - 236,153,159,153,153,159,153,134,236,153,153,153,153,153,236,143, - 153,153,153,159,153,236,153,236,143,143,236,236,143,143,153,236, - 236,153,153,153,153,143,236,134,143,236,236,236,236,236,236,153, - 159,236,153,236,153,153,236,159,153,159,159,159,159,240,159,159, - 153,159,159,153,153,153,153,159,184,240,240,159,240,58,159,159, - 153,58,153,159,159,153,184,159,240,159,159,240,159,240,159,159, - 184,159,159,153,159,159,159,153,159,58,236,159,159,159,134,159, - 159,159,119,159,159,159,159,159,159,159,159,108,55,251,55,79, - 55,79,55,33,177,162,22,22,249,73,10,73,14,200,14,221, - 0,183,163,50,14,50,0,183,209,50,0,133,197,133,55,135, - 129,103,163,50,241,223,200,44,46,142,223,229,229,151,229,15, - 171,47,0,190,0,221,162,241,221,246,215,104,94,50,50,163, - 183,164,209,75,50,46,24,142,12,26,47,122,12,26,245,162, - 135,20,15,229,151,151,15,133,133,229,186,212,183,15,29,166, - 0,0,0,219,227,42,0,0,162,0,0,0,50,50,0,59, - 15,20,20,223,20,34,223,178,29,104,0,0,162,92,168,73, - 73,206,46,64,29,29,50,0,0,0,122,187,0,221,221,219, - 132,183,162,0,99,0,42,183,37,212,226,226,141,219,219,132, - 221,0,122,47,38,20,34,47,47,35,47,122,50,42,42,0, - 59,59,99,132,0,162,0,75,95,192,40,163,163,178,50,47, - 133,75,162,162,0,162,50,0,221,187,64,95,162,0,37,224, - 34,20,44,34,47,224,224,35,44,44,44,44,44,44,44,44, - 34,171,183,42,8,17,122,0,183,162,0,0,122,225,29,171, - 171,171,192,29,171,15,122,0,0,224,254,0,0,122,122,0, - 0,122,122,0,221,122,0,0,0,224,64,44,59,75,224,59, - 99,166,0,122,219,166,162,212,162,0,122,0,162,162,0,183, - 183,132,132,215,17,221,209,50,219,162,162,0,122,224,64,99, - 59,0,0,99,234,219,59,187,0,0,99,224,150,122,162,162, - 171,64,64,214,59,208,36,105,105,105,63,105,105,105,105,36, - 105,105,191,152,192,44,35,99,139,67,158,235,158,67,171,214, - 235,67,214,214,64,214,235,158,214,214,214,158,214,64,234,35, - 158,214,158,49,178,49,158,64,234,35,158,214,158,158,158,158, - 218,218,88,134,218,88,218,88,218,88,218,218,88,218,218,218, - 88,218,218,218,218,218,218,134,88,134,88,218,218,218,218,218, - 153,218,218,218,218,247,200,137,92,26,247,184,153,218,153,153, - 153,153,153,134,153,153,184,184,184,184,159,159,153,236,153,236, - 153,153,153,153,153,153,184,153,153,236,134,153,143,153,153,153, - 236,153,153,153,153,134,236,153,153,153,143,143,236,143,143,153, - 153,236,236,153,143,236,143,143,236,143,153,143,143,153,153,236, - 236,134,236,134,236,236,153,236,236,153,134,159,159,159,153,159, - 159,159,159,159,58,159,159,134,159,159,159,159,159,159,159,159, - 159,153,58,58,153,240,134,159,159,240,159,159,159,159,153,159, - 184,159,153,159,153,159,153,159,236,134,159,159,159,143,119,159, - 159,159,159,159,143,159,143,119,159,119,159,108,173,55,129,251, - 55,55,79,197,48,50,14,0,206,10,164,24,164,223,203,221, - 40,162,162,0,22,37,0,0,226,50,142,15,38,33,38,229, - 135,135,20,50,50,46,200,46,59,253,48,229,229,229,229,229, - 151,229,0,50,0,0,221,221,0,162,221,212,162,94,37,0, - 0,0,0,162,0,0,0,150,12,12,162,78,26,42,171,0, - 20,135,186,186,151,133,151,38,38,55,102,227,0,0,0,0, - 0,0,0,78,162,183,162,111,47,47,44,47,78,0,0,221, - 20,253,29,24,223,223,223,47,94,0,0,0,0,162,164,73, - 73,137,130,241,64,171,20,212,0,0,0,221,141,219,183,183, - 224,95,150,40,0,0,162,164,164,94,166,26,150,64,47,245, - 97,42,0,34,245,29,29,44,64,34,29,0,162,0,0,0, - 200,47,47,224,166,34,239,163,47,245,22,22,183,84,241,95, - 245,152,163,50,50,22,37,162,64,59,152,152,163,163,162,166, - 99,171,44,34,111,95,224,59,64,59,200,47,35,47,47,35, - 64,20,221,0,162,162,0,122,50,94,0,0,0,171,111,183, - 95,254,59,99,35,64,0,0,0,155,186,171,78,0,0,0, - 0,162,50,163,163,162,0,0,0,64,47,64,99,59,64,64, - 64,64,111,122,183,166,0,50,162,0,219,0,50,0,0,150, - 17,166,187,12,132,162,22,0,109,162,0,42,99,99,224,59, - 64,150,0,0,99,44,95,0,0,0,219,17,0,42,94,183, - 158,214,47,44,94,36,36,105,105,105,36,208,192,192,57,152, - 192,225,44,235,49,235,101,192,139,214,158,44,158,214,49,49, - 214,49,158,158,214,214,214,214,214,214,214,214,214,158,158,214, - 214,214,158,235,234,214,158,214,234,214,158,214,214,235,99,214, - 88,88,134,88,88,218,88,218,88,218,88,88,218,88,88,218, - 88,88,218,88,218,88,218,218,218,218,218,88,218,218,218,218, - 218,134,218,218,153,247,75,190,92,162,247,240,153,153,143,218, - 153,143,153,153,184,153,236,153,153,134,236,153,153,143,153,153, - 143,236,153,159,236,153,58,153,159,236,236,236,143,143,153,153, - 143,236,236,236,159,153,153,143,236,153,143,143,236,236,236,143, - 143,153,143,236,143,153,143,143,143,143,153,236,236,236,134,236, - 134,236,236,153,143,153,143,153,236,236,153,153,153,58,153,153, - 153,153,159,153,159,236,184,134,184,159,159,159,159,159,153,153, - 159,159,159,159,159,159,184,159,159,159,159,159,159,159,153,134, - 58,58,153,58,153,159,159,159,159,236,236,159,119,134,143,159, - 236,159,159,159,143,159,134,119,159,159,119,83,229,226,223,129, - 79,55,173,197,190,37,22,0,50,200,226,209,14,94,46,215, - 162,0,104,48,50,22,162,0,104,0,151,37,0,75,177,135, - 172,226,223,59,0,59,59,142,200,29,20,229,229,229,135,151, - 151,151,34,0,212,164,50,137,162,162,168,167,0,221,50,50, - 0,221,94,94,0,0,0,254,17,17,37,94,12,17,171,0, - 142,226,15,229,15,229,15,151,15,15,38,212,0,122,122,122, - 122,42,56,42,50,0,254,59,59,224,59,47,44,200,0,0, - 94,223,223,200,44,200,42,0,0,0,0,0,0,0,0,0, - 50,92,73,206,84,47,245,186,200,162,162,59,141,95,221,183, - 224,254,99,99,166,50,37,221,219,254,44,15,15,151,151,102, - 0,26,183,47,29,20,29,34,35,29,20,78,162,187,122,42, - 239,44,46,29,15,186,64,94,64,133,171,22,111,209,37,0, - 200,20,171,0,50,61,50,162,34,47,59,192,44,75,111,227, - 59,29,44,44,75,95,224,59,47,59,224,44,44,99,59,59, - 224,200,59,40,162,50,162,162,0,122,50,78,0,155,47,0, - 162,221,162,0,166,44,0,0,0,171,15,245,171,183,0,0, - 94,241,241,22,162,122,122,0,0,64,99,59,47,59,47,59, - 59,64,59,59,224,219,0,162,162,0,219,0,162,0,0,141, - 150,95,132,166,42,37,22,162,122,162,162,162,99,59,224,109, - 111,64,187,42,0,56,42,0,0,0,183,219,122,183,94,183, - 44,44,99,99,187,244,120,36,36,63,245,192,44,64,214,182, - 214,139,158,214,214,214,99,234,44,158,158,158,214,158,139,34, - 214,35,214,214,214,214,214,214,235,214,235,214,214,214,214,235, - 178,235,158,158,158,214,178,214,214,235,214,214,214,158,158,158, - 218,218,88,134,88,134,88,218,88,88,218,88,88,218,88,218, - 88,88,218,88,218,88,88,218,218,88,218,218,88,134,88,218, - 218,218,153,218,153,240,241,168,104,42,247,240,143,218,153,153, - 143,153,236,153,153,159,153,159,184,153,153,153,153,159,134,236, - 153,153,153,143,153,153,153,159,153,236,134,153,153,143,143,143, - 236,134,153,134,236,236,143,236,143,143,236,143,143,143,143,236, - 153,143,153,153,153,143,236,143,236,143,143,143,143,143,143,143, - 143,153,143,143,153,143,153,143,153,153,153,153,236,153,159,58, - 159,159,153,159,236,153,236,58,153,134,159,153,134,153,159,159, - 159,153,153,236,153,159,184,159,159,240,184,159,153,159,159,159, - 153,159,159,153,159,236,153,153,134,159,159,143,159,159,159,143, - 134,159,143,159,159,236,159,159,119,159,240,108,55,222,129,38, - 79,197,79,72,226,22,209,46,226,92,14,14,22,0,221,212, - 29,228,55,55,190,50,162,163,241,0,129,212,0,0,0,0, - 50,163,239,212,200,46,163,200,35,104,29,135,229,173,229,55, - 151,229,229,126,162,50,0,137,221,221,203,162,0,122,221,94, - 0,162,37,94,162,221,0,224,26,42,50,162,26,26,34,0, - 75,241,20,171,135,151,15,133,229,229,133,227,26,12,17,187, - 26,78,0,162,0,0,219,122,122,42,26,42,224,229,0,122, - 122,97,46,163,94,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,212,206,73,178,151,100,133,241,212,221,162,0,162, - 126,42,0,0,162,40,29,245,245,186,229,20,245,15,229,47, - 0,122,122,171,20,44,29,20,20,44,200,0,122,111,17,122, - 0,163,64,44,44,171,47,122,122,171,29,59,59,200,50,0, - 122,29,20,162,37,163,162,0,95,246,162,166,126,0,187,122, - 64,171,34,44,59,187,75,200,224,111,75,224,97,163,163,50, - 212,22,226,104,0,162,50,50,162,162,0,0,0,187,0,162, - 162,162,162,0,122,227,0,122,29,192,34,34,34,44,166,162, - 75,22,75,221,0,0,0,0,0,224,64,59,99,224,99,64, - 47,59,99,64,224,183,0,0,162,0,141,0,162,0,0,0, - 162,219,132,42,37,209,61,162,122,162,162,162,162,187,59,111, - 95,254,59,111,26,17,26,42,0,109,99,225,26,212,162,122, - 192,225,44,44,215,210,96,171,44,225,235,214,99,158,158,99, - 171,99,171,158,158,158,214,158,214,158,214,214,235,214,214,214, - 7,235,49,49,49,214,214,214,235,49,214,214,214,214,158,158, - 234,145,178,214,214,235,235,214,158,214,158,158,158,158,158,158, - 88,88,218,88,88,88,88,88,218,88,88,88,218,88,88,88, - 88,88,88,218,88,218,88,218,218,218,218,88,134,88,218,88, - 218,218,134,218,153,247,59,73,92,162,247,134,153,218,143,153, - 153,143,143,143,153,153,153,236,159,153,159,236,143,143,143,236, - 143,236,153,153,236,153,236,153,143,143,236,143,236,143,143,143, - 143,143,236,236,153,143,236,143,143,143,218,143,143,143,143,143, - 236,236,143,236,236,143,236,143,236,236,143,143,236,236,236,236, - 236,236,236,236,236,236,143,236,236,143,236,153,134,236,153,236, - 153,236,153,153,159,153,153,159,236,153,58,58,159,236,153,153, - 159,153,153,236,153,153,134,184,153,153,159,159,153,159,153,159, - 153,236,159,153,159,159,236,159,153,134,159,159,236,159,159,159, - 236,159,143,159,143,143,143,159,143,143,159,108,151,37,168,222, - 251,55,220,156,142,129,168,24,22,14,14,50,50,203,222,55, - 103,229,129,229,55,75,46,142,209,126,29,162,221,0,221,122, - 212,246,162,0,142,142,126,200,200,241,142,142,253,229,229,173, - 151,173,133,229,183,162,122,0,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,162,162,0,0,0,122,122, - 203,241,20,29,34,15,135,133,245,186,38,126,42,26,17,219, - 122,122,122,122,122,42,26,26,26,219,219,183,183,224,0,183, - 126,183,183,162,0,0,0,122,122,0,122,122,56,0,122,221, - 122,0,0,0,221,212,37,22,223,151,133,20,46,95,212,95, - 95,239,59,44,15,25,102,151,245,171,171,15,34,219,122,0, - 122,0,183,15,171,29,44,44,95,183,224,224,59,95,42,0, - 221,0,221,126,35,44,224,254,166,42,224,35,59,64,109,183, - 59,24,44,224,94,221,122,0,0,0,0,0,0,0,0,0, - 224,64,35,44,47,183,183,50,163,212,37,22,40,203,203,164, - 203,203,209,104,162,0,0,162,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,34,64,64,44,44,44,200, - 50,94,162,0,0,0,122,0,0,224,47,59,59,95,59,99, - 47,59,47,227,0,0,162,0,0,122,187,0,0,0,0,162, - 0,221,122,162,14,42,0,78,78,122,122,183,221,0,221,78, - 78,183,183,221,192,158,44,17,0,64,34,192,111,94,122,122, - 192,44,99,95,0,214,214,67,225,99,235,214,214,171,234,158, - 152,158,152,214,234,158,158,158,234,214,49,235,235,235,7,235, - 7,49,49,49,235,49,235,49,235,49,235,235,214,214,49,214, - 235,235,235,145,158,214,158,158,158,158,158,178,158,158,158,214, - 88,218,88,218,88,88,88,88,88,218,88,88,88,88,218,88, - 88,218,88,88,88,88,88,218,88,218,88,218,88,218,88,134, - 218,218,218,218,153,240,203,190,104,42,247,153,218,218,143,218, - 218,153,153,153,143,153,153,134,236,153,236,153,236,236,153,143, - 236,143,236,134,153,143,153,153,153,236,143,143,143,143,207,143, - 236,236,143,143,153,153,143,236,218,143,236,236,236,236,143,143, - 143,134,236,153,143,236,143,143,143,143,236,236,143,143,134,153, - 143,134,153,143,143,134,236,134,153,143,153,143,236,143,143,143, - 143,153,236,153,236,153,153,236,153,159,153,153,236,153,236,153, - 236,159,153,159,236,153,58,153,159,159,153,236,153,153,159,236, - 153,153,236,134,236,134,159,143,236,159,236,143,159,143,143,143, - 159,143,159,143,159,159,159,143,159,159,119,108,33,162,212,212, - 241,226,104,226,190,123,177,137,37,92,164,203,104,177,172,104, - 200,200,241,59,104,47,104,200,95,56,163,122,215,187,50,183, - 40,50,183,122,183,122,221,215,227,221,122,42,166,163,95,166, - 111,200,95,47,219,26,122,183,94,56,221,42,122,122,219,40, - 56,122,56,56,42,183,122,183,42,221,42,183,183,183,183,42, - 187,50,75,95,97,224,95,59,200,47,29,150,150,150,187,17, - 219,219,219,12,150,150,132,150,166,219,183,42,42,215,166,224, - 59,221,122,219,166,109,254,254,254,254,254,99,254,99,99,141, - 166,132,42,219,166,132,219,132,42,56,132,75,59,200,182,29, - 44,34,44,34,47,47,59,95,47,47,64,59,187,187,150,150, - 183,187,109,59,59,224,224,94,183,95,254,59,95,183,122,42, - 219,219,219,122,187,111,162,187,219,224,109,183,187,111,59,59, - 224,254,59,95,219,122,42,122,122,122,42,122,42,42,187,183, - 187,254,150,166,26,26,111,17,95,111,95,95,59,46,200,47, - 47,200,95,239,187,183,187,183,187,42,42,42,183,183,183,187, - 219,166,254,166,132,219,42,183,214,44,64,35,44,47,64,44, - 47,219,26,42,42,42,42,26,42,224,99,111,111,111,254,59, - 224,109,111,111,187,162,122,187,42,219,219,122,122,122,122,122, - 42,219,26,37,187,187,166,42,183,183,26,42,219,219,183,78, - 162,0,122,42,227,111,187,162,42,78,166,99,224,183,0,0, - 187,215,0,0,0,234,235,214,152,234,171,171,158,171,158,158, - 214,64,139,91,35,35,235,35,64,35,35,59,26,91,67,99, - 44,158,158,158,158,158,158,214,158,214,214,214,235,49,49,235, - 214,158,158,158,158,158,158,158,158,158,145,145,235,214,214,158, - 88,88,218,88,88,88,88,88,88,88,88,88,88,88,88,88, - 88,88,88,88,218,88,88,218,88,88,218,218,218,88,218,88, - 88,218,88,218,134,247,59,73,164,221,247,153,153,218,218,143, - 218,143,218,236,153,236,236,153,159,153,143,153,134,143,143,143, - 143,143,236,236,153,143,236,143,143,143,143,207,236,143,143,207, - 143,143,143,143,236,236,143,236,143,143,143,143,143,143,236,236, - 143,236,236,236,143,236,236,236,236,143,143,153,236,143,236,236, - 143,143,236,236,143,236,143,143,236,143,236,143,236,236,236,236, - 143,143,236,143,143,236,134,236,236,236,153,134,236,134,236,134, - 236,159,153,153,159,153,236,153,236,153,153,159,236,236,153,159, - 236,134,236,134,236,236,159,159,143,159,159,143,159,159,159,143, - 159,159,119,143,159,236,159,143,143,159,143,119,108,236,38,95, - 94,162,122,162,122,162,221,0,162,50,37,22,163,50,50,50, - 50,50,94,50,37,221,0,0,221,142,118,86,164,164,164,37, - 164,164,164,14,177,164,50,0,0,0,251,137,37,0,212,14, - 14,14,14,73,168,216,62,0,0,221,0,212,73,14,22,164, - 22,164,164,164,37,37,164,22,212,0,0,0,94,50,212,212, - 183,212,183,50,42,162,183,162,162,212,162,221,162,246,246,183, - 50,183,183,50,183,42,50,246,162,78,246,37,0,0,78,246, - 162,183,50,50,94,94,94,212,239,239,227,227,40,0,0,0, - 94,162,94,221,94,221,221,221,246,183,215,94,42,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,221,94,162,221, - 0,0,221,221,162,162,0,162,78,162,0,0,162,162,0,162, - 162,162,0,0,215,221,183,50,94,162,162,162,162,94,162,187, - 42,94,42,0,0,0,162,162,162,94,78,94,221,162,162,221, - 122,0,0,0,0,0,0,0,0,162,0,221,122,122,162,78, - 78,122,122,0,0,221,122,122,94,221,183,122,42,42,56,78, - 42,183,183,183,183,221,78,162,162,162,122,122,78,162,78,42, - 183,183,183,78,122,221,183,122,122,0,0,0,162,162,122,122, - 162,122,0,0,221,122,0,221,78,183,42,122,42,122,122,56, - 122,56,122,183,183,183,162,78,162,183,122,122,162,42,162,122, - 122,122,122,122,0,0,0,162,183,78,78,122,162,183,42,0, - 0,0,0,122,99,152,158,178,214,75,61,187,111,61,50,162, - 162,162,42,42,26,26,26,12,26,26,12,26,219,122,42,78, - 162,162,162,50,91,37,61,59,64,35,101,49,178,158,158,158, - 158,158,158,158,158,158,158,214,49,214,214,145,101,235,214,158, - 88,88,218,88,88,88,88,88,88,88,88,88,88,88,218,88, - 88,88,88,88,88,218,88,88,88,88,218,88,218,88,218,88, - 134,88,153,88,218,240,200,92,104,42,247,134,218,143,218,218, - 218,143,153,143,143,153,153,153,236,153,236,143,207,143,143,127, - 143,143,143,143,159,143,153,236,143,236,236,143,143,236,143,143, - 143,236,236,236,153,143,143,143,207,218,218,143,143,236,143,143, - 143,143,143,143,143,143,143,143,143,153,236,143,153,236,143,153, - 236,236,143,143,236,143,236,236,143,236,134,236,143,143,143,143, - 143,143,143,143,236,236,143,153,143,143,236,236,134,236,153,236, - 143,236,143,159,143,143,153,143,153,143,153,143,153,134,153,236, - 159,143,236,159,153,159,143,236,159,143,236,159,236,159,143,159, - 143,236,134,159,143,143,236,159,159,236,159,159,119,108,83,151, - 203,24,241,24,221,162,246,0,14,84,84,84,24,84,84,84, - 84,73,24,73,73,40,0,221,0,250,250,55,14,168,222,168, - 206,222,31,123,237,168,104,0,162,42,79,237,206,92,22,31, - 249,249,249,249,123,11,11,42,0,50,221,212,249,233,113,73, - 10,206,206,84,73,84,73,168,177,0,162,94,203,59,241,59, - 241,59,22,200,241,35,75,224,75,226,212,50,94,40,75,75, - 59,75,59,241,75,200,200,97,224,200,24,190,162,215,50,163, - 163,187,166,166,126,111,126,187,166,126,254,97,226,183,126,122, - 47,212,126,163,163,75,75,75,163,163,50,50,50,212,203,162, - 162,203,212,212,79,104,162,94,50,50,50,50,50,162,94,164, - 0,162,122,50,162,163,111,163,163,187,163,187,50,187,111,187, - 104,94,183,78,212,91,163,111,163,187,163,111,50,94,50,187, - 50,40,94,0,162,183,163,187,187,187,163,183,187,126,187,111, - 187,111,50,104,162,183,94,163,111,187,183,187,183,187,187,187, - 187,187,187,183,203,0,0,221,203,42,26,50,187,187,111,163, - 187,187,91,26,50,183,162,122,0,97,162,26,50,42,42,94, - 162,162,162,162,183,162,162,0,0,0,221,183,183,219,50,42, - 187,50,42,26,26,42,219,122,0,0,0,94,221,26,42,42, - 187,42,26,162,42,78,183,42,221,0,0,0,162,162,42,42, - 42,42,42,42,78,42,42,162,78,162,162,0,0,0,0,122, - 221,162,26,234,245,245,109,42,26,26,26,26,17,12,8,101, - 101,101,7,235,7,235,7,7,7,7,7,7,235,49,7,7, - 101,101,101,8,8,8,243,8,8,91,111,211,42,42,50,187, - 61,35,139,64,35,49,214,214,49,145,158,145,49,49,49,145, - 88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88, - 88,88,88,88,88,88,218,88,218,88,88,218,88,218,218,88, - 218,88,218,88,218,247,241,226,164,122,153,153,218,218,143,218, - 218,218,143,236,153,153,143,153,143,153,143,143,143,218,143,218, - 127,143,143,143,236,236,153,236,143,143,143,218,143,236,143,207, - 143,143,143,143,236,143,218,143,143,236,236,207,143,143,143,207, - 143,143,207,143,207,143,143,236,143,143,236,143,143,236,143,236, - 143,153,236,236,236,143,143,236,143,143,143,236,236,143,143,236, - 143,207,236,143,143,236,236,143,236,143,143,143,236,143,134,236, - 143,236,143,236,236,143,159,236,143,159,236,143,236,236,134,236, - 159,236,143,236,134,119,134,236,159,134,236,143,143,159,236,159, - 143,143,236,119,143,143,143,143,143,143,236,236,143,159,108,151, - 163,142,200,223,50,42,50,122,84,130,168,168,130,130,130,233, - 233,233,168,206,222,212,0,162,0,43,206,14,123,31,249,31, - 31,123,167,31,62,233,166,221,203,97,14,233,62,237,249,237, - 167,62,237,62,123,93,11,42,0,212,162,94,62,249,233,249, - 249,249,233,233,233,233,249,233,168,0,94,162,203,241,22,75, - 35,35,200,209,59,241,35,209,75,177,40,94,162,40,22,35, - 139,241,59,241,22,75,59,75,59,224,24,48,0,239,227,142, - 75,224,111,224,224,224,200,97,224,111,111,187,48,94,183,0, - 163,212,163,163,163,22,22,163,22,163,40,50,50,203,104,221, - 162,97,22,23,165,137,162,50,50,50,162,162,50,162,221,177, - 0,122,183,203,163,61,187,163,239,50,187,163,224,224,75,111, - 226,94,221,0,104,50,163,187,163,111,111,224,111,97,163,75, - 111,46,212,0,162,166,75,163,163,163,111,163,126,163,111,111, - 97,111,75,172,162,163,40,163,111,37,187,37,111,163,163,111, - 187,111,111,187,104,122,42,227,142,50,111,111,111,187,187,163, - 111,187,126,187,111,163,78,122,0,59,50,187,50,163,187,50, - 91,50,187,50,26,42,212,162,122,0,163,50,91,187,163,187, - 163,187,37,163,111,91,187,50,162,0,0,95,94,187,163,187, - 163,163,111,187,91,162,187,183,50,162,0,0,126,50,187,50, - 187,187,187,187,163,187,183,42,91,162,183,0,0,0,0,187, - 95,50,99,158,139,211,12,8,8,7,7,67,7,7,7,7, - 7,7,235,7,7,49,49,49,49,7,49,7,235,7,7,67, - 7,7,7,7,67,7,67,101,67,101,8,67,67,101,8,8, - 8,8,187,211,211,59,49,139,187,91,187,49,49,49,49,49, - 88,88,218,88,88,88,88,88,88,88,88,88,88,100,88,88, - 88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,218, - 88,218,88,218,88,240,200,92,104,91,153,153,218,218,218,218, - 218,127,218,127,143,143,236,143,159,143,236,236,207,236,143,207, - 143,207,207,143,153,143,236,143,143,207,207,143,207,143,207,143, - 143,143,143,143,143,236,236,236,207,143,143,143,218,143,207,143, - 143,207,143,207,143,207,207,143,207,143,143,143,236,143,236,143, - 143,143,153,143,236,236,143,236,236,236,143,143,143,236,236,143, - 236,143,143,236,143,143,143,236,143,236,143,236,143,236,143,143, - 236,143,236,143,236,236,143,143,236,143,236,143,153,143,236,236, - 143,134,236,236,143,143,143,236,143,143,236,143,236,143,236,143, - 236,159,143,143,119,143,236,236,236,236,143,236,236,236,108,151, - 177,46,75,29,227,162,221,0,73,31,31,130,31,222,233,31, - 222,233,249,113,65,94,122,162,221,92,249,31,31,123,31,233, - 130,130,177,84,31,233,95,50,227,183,22,216,41,237,237,216, - 216,220,216,138,220,93,11,42,0,183,0,37,41,62,62,62, - 62,41,41,167,167,103,62,41,135,0,183,122,46,178,24,241, - 35,241,241,209,209,209,200,35,241,226,50,183,26,75,46,209, - 75,22,75,35,24,22,209,59,35,241,142,177,0,227,183,223, - 59,200,59,200,200,35,59,200,35,59,59,61,79,212,94,0, - 241,37,163,37,50,163,37,163,22,203,163,200,163,92,40,122, - 221,40,203,137,92,122,50,163,50,183,50,163,50,50,212,129, - 0,122,94,92,224,200,224,111,111,111,75,95,224,224,75,37, - 142,50,183,122,172,91,75,75,75,75,200,22,109,75,97,111, - 75,142,163,78,162,254,241,97,163,61,97,97,111,97,163,109, - 97,61,97,129,122,215,215,200,61,111,111,187,97,111,111,97, - 163,163,163,61,47,0,94,183,142,26,187,111,163,61,97,111, - 163,163,187,50,163,75,122,162,0,47,50,163,50,187,50,187, - 50,187,50,91,163,183,200,183,0,122,104,26,50,187,91,163, - 187,91,187,26,50,183,91,126,221,122,0,47,50,163,50,187, - 187,183,61,50,183,187,50,91,50,78,122,0,95,111,50,187, - 163,163,37,187,91,163,187,94,187,212,162,0,0,42,78,166, - 224,166,101,8,8,49,67,7,49,49,182,7,67,49,67,67, - 67,235,7,235,67,67,7,67,235,235,67,67,7,235,235,235, - 49,141,67,7,67,49,49,49,7,67,67,67,67,7,67,7, - 49,7,101,101,101,139,139,67,101,67,8,141,182,182,7,182, - 88,88,88,88,88,88,88,88,88,100,100,88,100,88,88,100, - 88,88,88,88,88,88,88,88,88,88,88,218,88,218,88,218, - 88,218,88,218,218,240,59,92,104,221,153,153,218,88,88,218, - 218,88,218,143,143,153,236,143,236,143,143,143,127,143,127,218, - 127,143,143,143,236,143,236,143,143,143,207,143,207,143,143,207, - 143,236,236,143,143,143,143,236,143,207,236,207,207,143,143,207, - 143,143,143,143,207,143,207,143,143,207,143,143,143,143,143,236, - 236,143,143,143,143,236,143,143,143,143,143,143,143,143,143,143, - 143,207,143,143,143,143,143,236,143,236,143,143,143,143,89,143, - 236,143,236,143,143,143,236,143,143,143,236,143,236,143,143,236, - 236,236,143,236,236,236,143,236,236,143,159,236,236,143,236,143, - 143,236,236,143,236,143,143,143,143,236,143,143,143,143,159,151, - 73,48,46,34,215,122,78,122,209,233,222,222,31,31,233,233, - 222,222,222,113,118,50,162,94,183,168,249,62,249,233,31,31, - 206,206,233,233,62,73,183,0,0,122,73,216,216,216,138,138, - 138,138,216,216,237,93,11,219,0,50,0,50,216,41,41,62, - 62,237,167,62,62,228,167,62,222,0,78,0,203,253,168,24, - 223,24,35,35,35,241,241,241,22,35,94,183,221,126,163,75, - 209,35,35,35,35,75,35,59,35,35,46,177,0,50,227,226, - 59,59,59,200,59,35,35,35,47,59,47,109,197,246,183,0, - 104,50,126,75,163,163,75,97,163,75,203,75,22,209,203,122, - 0,95,92,0,122,42,50,212,50,37,22,22,163,37,246,129, - 0,122,183,24,95,241,97,223,253,253,253,24,97,224,200,163, - 223,50,221,122,172,91,75,200,111,75,200,75,75,75,59,97, - 22,172,200,0,162,95,241,75,111,97,61,97,75,200,111,75, - 224,75,75,129,0,183,40,95,97,97,97,61,97,61,97,111, - 111,111,163,50,223,0,94,183,142,50,111,111,95,61,97,61, - 111,163,111,187,187,46,0,0,0,47,50,187,91,37,37,37, - 37,111,50,50,50,50,46,183,122,0,47,183,111,126,187,163, - 111,200,241,187,163,111,50,95,94,122,162,47,187,187,163,91, - 163,187,50,187,163,91,183,183,187,162,0,0,95,50,91,187, - 91,91,187,163,187,163,187,50,187,212,0,0,0,187,183,166, - 59,95,7,49,7,67,67,141,7,141,49,235,235,49,235,141, - 67,67,235,7,141,7,141,49,141,7,141,7,67,235,235,7, - 141,49,141,49,49,235,235,7,235,49,67,67,49,49,141,67, - 67,49,7,49,49,67,67,7,67,7,67,7,49,67,141,67, - 88,88,88,88,88,100,88,100,88,169,169,100,88,100,88,88, - 100,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88, - 88,88,88,88,88,240,59,92,241,26,153,153,218,127,218,127, - 127,143,127,127,143,143,143,236,153,236,218,218,143,127,143,127, - 127,127,207,143,143,143,143,127,127,127,127,127,127,127,207,143, - 207,143,143,207,143,207,143,143,143,143,143,143,207,143,207,143, - 207,207,207,207,143,127,127,143,236,143,236,207,143,143,143,143, - 143,143,236,143,143,143,143,143,143,236,207,143,207,207,143,207, - 143,143,207,143,207,143,143,143,143,143,207,143,207,143,143,143, - 143,236,143,153,236,236,143,236,236,143,143,236,143,143,143,143, - 143,143,236,143,143,143,143,143,143,236,143,143,143,89,143,236, - 236,236,143,143,143,236,89,236,236,143,143,127,143,236,108,133, - 222,135,190,223,162,0,162,163,73,130,84,84,154,154,222,222, - 130,84,130,73,220,162,162,50,0,222,167,31,168,206,206,233, - 62,62,167,167,41,249,166,0,0,0,168,216,62,62,62,249, - 62,62,62,167,167,216,11,187,0,183,0,212,216,237,237,62, - 237,41,167,79,62,167,249,41,222,0,94,0,200,168,253,177, - 253,253,168,177,84,178,178,24,24,226,212,162,0,212,241,24, - 24,35,35,24,24,209,178,200,24,209,226,48,0,215,187,223, - 35,35,35,35,35,47,35,35,47,35,47,203,38,50,183,0, - 104,75,203,203,75,40,163,203,75,22,241,203,163,226,163,78, - 0,95,104,221,50,94,75,22,209,22,209,203,203,50,94,222, - 0,0,221,46,241,200,61,142,253,46,223,135,24,75,241,163, - 226,246,187,0,48,91,224,22,59,75,241,139,75,75,75,59, - 97,253,104,122,122,111,241,75,200,97,75,200,61,75,111,111, - 97,111,224,48,122,183,227,200,97,61,111,111,97,75,61,111, - 111,111,111,187,190,0,183,183,46,163,61,97,97,97,97,97, - 97,37,187,163,50,75,0,0,0,47,61,37,126,61,61,61, - 37,61,61,26,91,78,142,212,122,0,104,91,163,163,187,91, - 35,35,35,163,187,126,187,163,183,122,0,47,61,50,187,187, - 91,163,187,91,50,187,50,50,97,162,0,0,95,166,50,187, - 166,187,163,187,91,187,187,187,187,50,122,0,0,126,126,111, - 47,40,7,235,141,7,67,235,67,7,235,7,141,7,8,141, - 7,67,235,235,7,235,141,7,141,7,141,7,141,7,67,7, - 7,235,7,141,141,67,141,99,7,235,7,67,67,49,235,7, - 141,67,235,235,7,8,67,141,7,141,67,67,67,7,7,67, - 88,100,88,100,88,100,100,88,100,88,100,100,100,100,88,100, - 100,88,100,100,100,100,169,88,88,88,169,218,169,218,169,218, - 169,218,169,218,88,240,224,92,241,42,218,153,88,218,88,218, - 88,218,218,127,207,143,143,143,143,143,143,127,218,218,218,218, - 127,127,127,127,207,143,218,143,207,127,143,143,218,143,143,143, - 207,127,143,207,143,207,207,207,207,143,143,143,207,143,143,143, - 143,143,127,127,143,218,207,127,236,143,143,143,207,236,143,143, - 143,207,143,236,143,218,236,236,143,236,236,143,143,143,207,143, - 207,143,207,143,207,143,207,143,207,143,143,143,207,143,143,143, - 143,143,143,143,143,143,143,143,236,143,143,143,236,143,143,143, - 143,143,143,143,236,236,143,143,207,143,236,236,143,236,236,143, - 143,236,236,143,143,143,143,143,143,89,236,143,143,127,159,38, - 251,129,177,135,212,162,122,95,209,73,206,84,14,14,209,84, - 84,84,168,233,130,183,0,212,94,206,233,233,168,130,14,233, - 249,31,233,233,249,249,215,0,0,122,177,216,237,62,167,249, - 249,249,62,167,249,138,216,50,0,94,122,212,216,216,216,237, - 237,41,216,237,167,167,123,249,222,0,183,0,40,222,222,177, - 168,177,222,222,177,177,177,177,84,168,163,78,0,200,226,177, - 223,226,24,226,24,24,226,35,226,24,226,172,0,183,183,177, - 35,64,47,47,35,47,35,24,47,24,142,241,79,212,183,0, - 46,14,209,209,164,241,241,22,75,163,75,241,22,226,40,221, - 0,75,226,183,164,73,164,14,14,241,22,22,22,163,94,129, - 0,162,215,226,75,46,111,223,253,26,59,20,223,224,35,163, - 226,94,183,122,15,50,22,59,75,75,75,22,75,59,224,59, - 200,48,104,122,221,95,200,22,75,111,75,241,75,59,75,75, - 75,75,46,223,0,183,212,200,163,75,111,97,111,75,75,75, - 111,200,163,163,190,162,183,239,142,163,61,97,111,75,61,111, - 111,97,111,126,239,75,0,0,0,47,50,163,163,163,163,37, - 61,22,163,50,50,162,142,50,42,0,47,42,61,111,126,97, - 35,111,35,187,50,111,50,75,94,122,221,47,50,50,187,239, - 187,163,187,50,187,91,42,187,75,78,0,0,95,126,187,187, - 187,187,91,50,187,50,187,50,187,50,122,0,0,254,224,224, - 64,200,49,141,7,67,141,7,67,99,67,67,7,141,7,235, - 145,7,7,141,141,7,141,7,141,7,235,141,7,235,235,141, - 235,235,7,67,7,141,7,235,141,141,7,235,141,7,141,49, - 67,67,141,7,67,7,67,49,67,7,67,67,7,99,235,67, - 88,100,88,88,88,100,100,88,100,100,88,100,88,100,88,100, - 100,88,100,88,100,88,100,169,169,169,88,100,100,88,100,169, - 100,169,88,169,218,153,59,104,241,26,153,218,218,88,188,88, - 127,88,127,127,143,143,207,143,207,143,207,218,127,127,88,218, - 127,127,218,127,127,127,127,127,127,143,218,218,143,218,207,207, - 143,143,218,127,207,143,143,143,143,207,207,143,143,207,207,127, - 207,127,143,143,207,143,218,143,143,207,143,143,143,207,143,207, - 143,143,236,143,207,143,143,143,143,143,143,143,207,143,127,207, - 143,143,207,127,143,143,143,207,143,207,143,143,143,207,207,143, - 207,143,127,143,143,143,207,143,143,207,143,207,143,89,143,207, - 143,143,236,143,127,143,236,236,127,143,143,143,236,143,143,236, - 236,236,143,143,236,89,143,89,143,236,143,127,143,236,159,133, - 228,228,129,129,22,122,162,241,130,130,84,84,130,84,84,84, - 209,209,177,154,168,163,0,221,183,209,206,168,31,73,22,206, - 73,22,14,137,31,62,219,122,221,221,73,249,233,249,249,62, - 31,249,167,249,249,93,175,59,0,183,162,203,216,62,41,62, - 237,237,237,62,31,31,233,249,222,122,162,78,203,222,222,168, - 48,177,168,168,222,177,84,226,84,222,212,50,0,104,226,84, - 178,142,142,24,226,24,223,35,142,24,226,48,0,50,26,190, - 35,47,35,35,35,35,47,35,35,142,44,35,79,212,183,0, - 104,163,92,209,209,209,84,92,24,209,241,46,164,226,203,122, - 162,95,92,50,137,48,22,22,164,22,75,97,203,50,50,129, - 0,122,215,226,203,24,75,223,135,84,253,135,223,200,59,241, - 226,215,50,0,135,61,59,22,35,22,139,209,75,209,200,75, - 75,135,104,122,122,111,35,59,22,59,75,75,22,75,224,75, - 75,75,46,172,122,94,95,200,75,97,75,61,200,111,111,75, - 224,97,97,91,190,162,78,166,226,187,111,75,109,75,75,75, - 97,111,163,111,163,104,0,221,0,40,94,163,187,97,61,37, - 163,61,37,187,91,50,142,227,0,162,47,50,126,111,187,35, - 111,111,35,50,166,126,187,200,227,162,0,34,183,91,50,187, - 50,91,163,187,50,187,163,50,163,162,0,0,95,126,50,163, - 187,163,187,163,187,187,91,26,26,95,78,0,0,254,224,47, - 47,95,7,235,49,141,235,7,141,67,235,49,141,235,7,141, - 145,7,141,7,235,7,141,7,67,67,235,7,141,7,141,7, - 235,145,141,67,7,49,7,141,7,235,235,7,141,235,7,141, - 7,67,235,141,67,67,235,235,235,141,141,7,141,67,67,49, - 88,88,100,100,88,88,100,88,100,100,100,88,100,100,100,88, - 100,100,100,169,88,169,100,88,100,100,88,88,88,169,88,88, - 88,88,169,88,88,240,59,104,241,162,218,153,188,218,127,88, - 188,88,127,127,207,127,143,207,127,127,127,127,127,207,127,127, - 88,127,127,218,127,127,127,218,127,127,143,207,143,143,143,127, - 207,143,143,143,207,143,207,127,218,143,207,143,143,143,207,127, - 127,127,127,127,143,127,143,127,143,143,207,143,143,207,143,207, - 143,143,143,143,207,143,207,143,207,143,207,143,207,143,143,207, - 207,143,143,207,143,207,143,143,143,207,143,207,143,143,143,127, - 143,143,207,143,143,207,143,143,207,143,143,143,207,143,143,207, - 143,143,143,143,143,207,143,236,143,127,236,143,236,236,143,143, - 143,236,236,143,143,143,143,89,143,143,89,143,143,236,159,133, - 228,129,129,129,37,122,163,227,84,84,73,209,84,130,84,130, - 84,84,84,206,222,40,0,94,215,73,14,130,14,206,22,84, - 14,50,37,209,31,233,239,0,221,56,48,249,206,14,73,206, - 31,233,233,137,123,93,233,104,0,50,0,40,216,249,249,62, - 123,62,79,233,130,253,84,31,222,0,183,162,203,130,135,253, - 177,177,177,84,84,226,223,142,46,48,50,183,122,200,226,178, - 24,24,142,24,223,24,226,35,226,35,178,48,0,239,42,223, - 35,47,59,64,47,35,35,47,35,47,24,35,38,50,78,162, - 46,22,241,203,40,241,209,92,92,84,24,209,209,226,239,183, - 0,95,104,50,22,50,187,22,241,163,203,163,163,212,22,129, - 0,122,183,226,37,35,75,223,135,48,135,223,75,200,35,200, - 226,183,187,0,172,37,200,209,59,241,22,35,200,35,22,75, - 75,135,104,122,221,95,35,241,22,224,22,59,22,59,22,59, - 75,75,241,48,42,56,40,200,75,111,95,97,97,200,61,75, - 109,97,75,37,20,162,122,215,223,163,97,75,61,111,75,75, - 61,111,163,111,126,142,0,0,0,47,50,163,163,75,61,37, - 75,61,37,111,187,50,142,50,122,162,47,50,111,187,224,24, - 111,97,35,111,187,163,50,75,94,122,0,142,94,187,187,187, - 187,187,163,187,163,91,187,126,163,122,0,0,95,163,187,91, - 187,187,187,111,91,183,187,187,50,163,78,0,0,224,224,64, - 47,47,141,7,141,235,7,141,7,141,145,7,141,235,7,7, - 235,235,141,67,141,7,235,235,7,141,7,141,235,141,141,7, - 235,7,7,49,235,235,141,7,67,235,235,141,67,67,7,235, - 235,141,7,49,67,141,141,7,141,7,67,141,7,235,141,67, - 88,88,88,100,100,100,100,88,100,100,100,100,100,100,100,100, - 100,100,100,100,100,100,100,100,88,169,169,169,100,88,100,169, - 169,88,169,169,88,153,200,164,241,26,218,218,88,169,88,127, - 127,188,88,88,127,143,127,143,127,127,127,88,127,88,127,88, - 127,88,88,88,88,127,218,127,218,218,127,207,207,127,207,143, - 143,207,207,143,143,127,143,143,127,143,143,207,207,207,143,143, - 143,207,143,207,127,143,127,143,207,143,207,143,207,143,143,207, - 143,207,127,207,143,127,207,143,143,207,143,207,143,207,143,127, - 127,207,207,143,143,127,207,127,143,143,143,207,143,207,143,143, - 207,143,127,207,143,143,207,143,143,143,207,143,143,207,143,143, - 207,207,143,207,143,143,143,143,143,236,143,236,143,143,143,143, - 143,143,143,143,143,143,143,143,127,143,143,89,143,143,236,38, - 228,129,48,129,40,162,212,162,14,14,84,206,14,14,206,84, - 73,92,84,84,233,203,0,183,94,73,130,206,168,130,22,22, - 14,22,209,209,249,233,97,0,0,246,73,175,233,73,73,167, - 90,249,249,233,62,93,249,47,0,212,0,212,62,62,62,233, - 233,249,31,168,168,84,84,233,222,122,162,162,75,222,84,223, - 223,223,24,223,223,223,24,24,209,253,40,94,0,104,177,226, - 209,46,35,24,209,223,24,35,35,35,226,177,0,227,42,190, - 59,35,47,47,35,47,64,35,64,35,47,75,18,212,183,0, - 226,203,203,163,241,37,46,14,241,14,92,203,164,24,40,122, - 162,95,164,61,50,203,14,22,22,209,14,92,22,22,22,173, - 0,122,94,142,37,142,224,223,222,61,22,59,35,59,200,241, - 177,50,239,0,29,61,75,241,59,75,241,200,75,35,59,75, - 200,48,104,0,0,224,241,35,75,75,200,61,35,75,22,139, - 75,75,35,135,0,221,111,22,75,75,61,97,61,97,75,61, - 75,109,61,75,172,221,183,183,142,111,61,111,200,109,61,111, - 111,97,111,111,111,46,0,122,0,34,50,187,91,37,37,61, - 37,61,37,183,187,26,24,227,122,0,142,42,187,187,35,59, - 209,35,59,35,187,187,187,95,215,42,221,47,50,91,163,91, - 163,91,163,187,187,50,187,187,163,122,0,0,224,50,50,187, - 163,187,91,50,187,187,163,187,26,97,183,0,0,141,99,59, - 64,254,235,7,235,235,141,235,7,235,141,7,49,235,141,7, - 141,235,8,67,7,141,235,67,235,235,141,67,7,8,141,235, - 99,235,141,49,141,7,235,67,7,8,141,235,7,141,235,141, - 7,235,235,8,235,7,141,67,141,8,235,141,7,67,7,8, - 88,100,100,197,88,100,100,100,100,100,100,100,100,100,100,100, - 100,100,100,100,100,169,100,100,100,100,100,100,100,169,169,100, - 100,100,88,88,88,153,47,164,241,221,207,153,88,169,169,88, - 88,188,127,88,88,127,127,127,127,127,143,127,127,127,127,127, - 127,127,127,207,127,127,127,127,127,127,127,127,143,127,127,218, - 127,127,127,127,207,127,218,143,207,143,143,143,143,207,207,127, - 127,127,127,127,127,127,188,127,143,207,127,143,207,143,143,127, - 127,143,143,143,143,218,143,207,143,143,143,207,143,143,143,143, - 127,127,127,143,207,127,143,127,207,143,207,127,143,143,127,127, - 207,143,127,143,127,127,143,207,127,143,127,127,143,143,143,143, - 127,143,143,143,207,143,143,143,143,143,143,143,127,143,143,127, - 143,143,127,143,127,127,143,89,143,127,143,127,143,127,236,55, - 173,129,177,129,40,221,203,50,14,14,130,233,233,84,168,14, - 73,84,73,73,233,200,0,246,227,92,233,206,130,206,209,206, - 206,84,92,24,31,249,241,0,122,215,92,206,73,73,206,206, - 206,206,233,233,220,237,249,241,0,227,0,203,41,249,249,249, - 233,233,233,130,168,177,130,249,222,0,183,221,203,253,178,24, - 223,223,24,177,223,223,24,35,35,222,163,94,122,95,226,223, - 24,24,46,209,24,24,223,35,24,209,190,48,122,126,187,223, - 209,224,59,200,200,35,59,35,47,47,35,200,38,50,227,0, - 104,241,203,37,209,14,75,22,95,163,75,75,241,24,40,162, - 162,95,137,79,162,164,241,164,22,164,22,241,75,37,22,228, - 122,221,183,226,22,35,200,253,129,47,35,35,47,35,35,200, - 190,94,166,0,172,37,200,75,22,139,209,22,59,224,200,75, - 224,20,241,122,0,224,46,75,61,75,59,111,75,35,75,22, - 61,75,46,172,122,183,95,75,75,224,97,224,163,212,163,163, - 97,111,111,37,46,122,221,183,24,111,111,75,111,200,75,75, - 61,97,97,111,97,46,0,0,0,142,50,187,163,61,61,61, - 75,61,61,111,163,162,46,227,56,0,104,50,187,187,111,187, - 91,109,24,61,187,163,163,163,94,122,0,47,183,91,183,111, - 187,187,91,61,227,187,163,183,163,78,0,0,59,187,187,187, - 187,187,187,111,187,187,91,50,91,212,42,0,0,254,47,254, - 47,47,141,7,141,141,235,7,141,235,243,67,7,141,141,235, - 141,7,141,67,49,141,235,141,7,141,141,7,141,8,7,67, - 67,141,141,8,141,8,141,235,49,141,8,141,141,7,141,145, - 7,141,141,8,8,7,49,7,141,8,7,141,49,141,235,141, - 88,100,100,100,197,100,102,100,100,102,100,100,100,100,100,100, - 100,100,100,100,100,100,100,100,100,100,100,169,169,100,100,169, - 169,169,169,169,218,218,95,104,203,26,169,218,127,169,88,169, - 127,169,88,188,127,88,88,218,127,127,127,88,127,127,127,127, - 127,127,127,88,88,169,169,88,127,127,143,127,127,143,218,127, - 143,127,127,127,127,127,127,127,127,127,207,143,127,127,143,143, - 143,127,127,127,127,127,127,127,127,127,143,127,207,127,127,143, - 127,127,207,143,207,127,143,127,127,207,143,127,207,127,127,127, - 127,143,143,127,143,143,207,143,143,127,127,127,127,127,143,143, - 127,127,143,207,143,143,127,207,143,127,143,207,127,127,143,207, - 143,207,143,127,127,207,143,143,207,143,143,236,89,143,143,89, - 143,143,236,143,236,127,143,127,143,89,127,127,143,236,236,133, - 228,228,135,253,212,162,163,239,14,31,137,177,73,92,92,73, - 14,92,209,92,190,104,0,94,126,163,177,226,92,177,73,84, - 73,92,92,92,73,164,47,122,78,163,22,137,137,137,177,177, - 177,137,92,137,137,73,92,47,0,183,162,40,190,190,226,92, - 92,226,190,226,73,92,226,92,177,0,162,162,212,50,241,203, - 37,22,203,241,22,203,241,203,37,226,241,183,122,104,164,104, - 104,241,92,104,241,104,241,241,241,75,24,177,0,126,40,226, - 223,177,73,177,177,190,190,190,177,190,177,92,55,212,166,122, - 104,22,75,241,104,104,241,104,200,163,95,212,203,24,203,183, - 0,95,92,226,59,24,24,226,226,104,46,241,46,241,37,129, - 0,122,42,104,241,241,203,104,241,241,241,241,241,241,75,37, - 223,212,126,162,29,37,241,209,104,241,200,241,241,241,241,241, - 203,177,200,122,162,75,75,75,241,75,75,241,75,75,200,200, - 59,163,104,135,122,94,126,241,241,46,59,163,111,163,97,37, - 212,212,183,162,0,0,122,94,104,50,163,163,163,97,75,75, - 75,163,163,239,163,46,0,162,0,47,50,50,50,212,212,163, - 50,163,163,50,187,50,46,94,183,0,47,162,94,50,42,187, - 94,187,163,94,183,94,42,40,183,122,122,142,162,94,42,50, - 50,50,227,227,187,50,187,50,163,162,0,0,59,50,50,50, - 183,50,162,187,50,42,183,78,183,163,183,0,0,99,99,47, - 64,47,7,67,7,235,141,49,141,67,7,141,235,141,12,7, - 141,235,8,141,67,67,7,141,7,8,8,7,8,7,141,49, - 7,8,8,243,7,141,7,8,7,8,8,8,141,67,141,235, - 8,7,8,8,141,7,141,235,7,141,49,8,235,67,49,49, - 100,100,100,100,100,100,100,102,88,100,102,100,102,100,102,100, - 100,74,100,100,100,100,74,100,100,100,100,100,100,88,100,88, - 169,100,169,100,188,153,224,241,203,221,169,218,88,169,169,169, - 169,127,169,169,127,127,127,218,218,88,127,127,88,127,88,127, - 188,169,207,127,88,88,39,88,127,127,127,143,127,127,143,127, - 218,127,218,127,127,207,127,127,218,127,127,143,207,127,127,127, - 218,127,127,127,127,127,127,127,143,127,127,127,127,127,127,127, - 127,127,143,127,143,127,207,127,127,127,127,127,127,143,143,127, - 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, - 127,127,127,127,127,127,127,127,127,127,127,127,143,127,127,127, - 207,143,143,143,143,143,207,127,143,127,127,143,143,127,143,143, - 127,143,143,127,143,143,127,127,143,127,143,127,127,143,159,133, - 251,229,173,129,22,0,163,183,14,249,249,249,233,73,233,130, - 130,233,233,233,31,200,0,94,239,209,206,233,168,130,168,233, - 233,206,233,249,62,168,241,0,215,126,37,233,233,62,233,206, - 233,233,31,220,237,216,233,40,162,163,221,203,62,41,167,62, - 167,62,167,31,249,123,249,123,135,0,122,94,215,168,31,222, - 222,168,168,168,168,168,177,84,177,177,203,94,122,95,14,24, - 24,209,209,209,209,92,24,226,24,24,177,190,0,126,200,226, - 104,46,47,46,24,24,24,92,209,24,209,241,55,221,183,0, - 104,241,164,163,40,14,209,14,92,167,31,123,212,226,40,221, - 0,95,92,138,142,241,203,75,59,24,104,24,24,46,37,129, - 0,162,215,104,142,209,47,46,35,46,226,24,241,35,35,203, - 223,94,183,162,190,35,24,35,24,46,95,200,75,200,59,241, - 200,190,203,221,0,111,46,46,163,241,75,75,22,200,200,75, - 75,75,200,135,0,215,221,94,221,221,215,221,162,0,0,162, - 162,162,0,162,212,0,0,183,40,183,163,163,111,163,163,95, - 163,75,111,126,163,200,0,122,0,47,50,111,163,126,227,163, - 239,40,95,187,239,212,46,183,42,221,104,187,183,50,50,126, - 50,50,215,94,183,50,42,40,50,122,122,47,50,126,187,187, - 183,183,183,50,227,50,187,183,75,42,0,0,47,162,42,50, - 183,183,162,42,94,94,94,183,162,163,183,0,0,47,64,47, - 64,47,141,235,141,235,7,141,145,141,235,7,141,7,8,235, - 8,235,8,7,7,141,145,7,235,141,7,141,8,7,150,7, - 141,7,8,8,8,8,235,150,235,67,7,8,8,8,7,141, - 7,8,8,8,8,141,141,7,141,7,141,141,235,235,145,214, - 100,100,100,100,102,100,102,100,102,100,100,102,100,100,100,100, - 102,100,74,74,33,74,100,100,100,169,102,100,169,100,100,100, - 100,169,100,169,169,153,200,104,241,26,169,236,39,169,88,100, - 88,169,88,169,169,169,169,100,100,188,127,127,127,127,207,127, - 127,127,169,127,140,169,169,39,169,88,127,127,127,127,127,127, - 127,127,88,127,127,127,127,127,127,127,127,127,127,127,127,127, - 127,127,88,127,127,127,169,39,169,127,127,127,127,127,169,127, - 88,127,127,127,127,127,127,127,127,88,127,88,127,88,169,88, - 127,127,127,169,127,127,127,127,127,127,127,88,127,169,127,127, - 127,127,143,207,143,127,127,127,127,127,127,127,127,127,127,127, - 127,127,127,127,207,127,127,143,127,127,143,127,143,127,127,143, - 127,127,127,143,127,127,89,127,127,89,127,143,127,143,207,55, - 129,228,129,228,203,0,203,221,209,73,130,249,31,113,233,31, - 233,222,130,206,222,104,0,162,40,164,130,31,73,168,168,168, - 73,233,73,206,137,92,104,0,78,40,241,206,14,73,206,113, - 206,206,73,31,249,62,62,95,0,221,221,241,206,233,233,73, - 154,168,84,177,84,84,168,31,168,0,122,94,246,223,178,24, - 24,24,226,178,209,209,209,24,209,48,203,215,162,40,241,24, - 46,241,241,209,209,35,35,209,104,24,177,223,0,183,95,226, - 241,111,97,200,75,209,22,75,200,75,200,241,173,212,94,0, - 241,209,14,212,22,209,22,14,22,216,92,138,130,226,203,56, - 0,40,203,246,187,200,200,200,75,75,95,200,59,22,241,129, - 0,0,183,97,29,44,24,44,24,24,24,223,75,46,35,46, - 24,40,187,122,226,46,34,34,34,44,163,163,212,163,59,200, - 59,226,40,122,0,111,223,24,97,75,61,75,200,75,75,200, - 200,200,104,172,0,221,0,221,162,0,162,94,162,221,0,0, - 162,162,183,50,223,162,122,183,203,126,111,111,111,111,109,111, - 224,109,224,109,97,241,162,94,0,104,111,97,111,50,91,111, - 111,111,111,111,187,187,46,50,56,122,104,187,111,109,187,132, - 111,166,187,187,187,111,187,163,227,122,0,142,239,187,187,187, - 91,187,50,187,26,183,187,42,40,162,0,0,59,163,111,26, - 187,91,111,50,187,26,50,91,187,212,42,122,0,99,47,47, - 64,44,8,235,141,141,7,7,235,141,235,235,141,67,7,235, - 67,235,141,141,7,141,235,67,7,243,7,141,141,49,141,235, - 235,7,8,8,8,141,7,141,7,67,7,8,67,8,49,8, - 7,141,7,8,7,8,7,141,49,8,8,8,235,225,225,158, - 100,102,102,100,100,100,102,100,102,102,100,102,100,102,100,100, - 102,100,100,74,100,74,100,74,100,33,74,100,74,140,100,100, - 100,74,100,100,88,153,224,164,40,162,169,218,169,169,140,169, - 100,169,169,169,127,127,88,169,88,88,127,218,127,127,127,127, - 127,127,127,127,39,169,169,127,140,169,169,169,88,169,88,127, - 169,127,88,127,88,127,127,88,127,127,127,127,127,88,88,88, - 88,127,88,88,169,88,88,127,169,127,88,127,88,127,169,127, - 88,169,169,127,169,88,169,127,127,169,127,169,127,127,39,169, - 169,88,127,169,127,127,127,127,127,127,127,169,127,88,127,127, - 88,127,127,127,127,127,127,127,127,127,127,88,127,127,127,127, - 207,143,207,127,143,127,127,127,127,127,127,127,127,127,127,127, - 127,143,127,143,143,127,143,127,127,143,127,127,127,143,236,133, - 228,173,229,38,164,162,75,183,14,62,233,249,233,73,233,233, - 130,222,233,130,222,164,0,94,212,92,31,233,84,233,233,73, - 73,31,209,73,233,73,241,122,162,126,203,206,164,14,14,73, - 73,206,233,137,137,62,249,40,0,183,221,104,73,73,14,22, - 253,168,84,177,84,24,84,222,177,0,221,183,246,226,209,59, - 46,35,35,209,46,46,75,46,22,172,241,122,78,95,241,35, - 35,241,241,241,209,209,24,35,35,35,177,223,0,183,95,226, - 241,75,59,59,75,35,59,209,200,241,200,200,228,239,78,0, - 200,14,163,183,203,209,241,14,22,31,164,50,22,223,40,122, - 0,219,251,173,47,164,226,209,24,46,75,75,254,212,37,251, - 0,221,94,75,223,35,35,47,47,35,35,35,163,200,46,104, - 104,212,78,0,241,241,241,200,203,212,94,221,0,162,212,200, - 241,104,212,122,221,111,47,35,111,200,163,75,61,75,111,75, - 75,200,203,104,0,221,162,0,0,0,162,162,162,94,162,0, - 94,162,126,95,241,122,78,183,104,111,224,111,111,111,75,61, - 224,166,162,50,183,162,162,162,0,40,163,187,126,126,50,187, - 187,111,111,111,111,239,104,227,122,122,104,111,187,111,187,187, - 187,50,50,187,50,111,126,239,187,122,0,104,239,126,126,166, - 91,183,187,163,187,50,187,50,163,78,0,0,59,187,126,187, - 187,91,42,163,50,26,187,50,42,37,183,0,0,99,64,99, - 47,47,235,141,235,67,235,235,141,7,150,7,150,235,67,7, - 141,235,141,49,141,7,235,67,235,141,7,8,7,8,7,8, - 235,141,7,141,8,7,243,235,141,235,141,7,8,8,49,141, - 235,141,7,8,141,8,7,8,7,67,7,243,8,8,235,235, - 100,102,100,102,102,197,102,102,100,100,102,100,102,100,102,102, - 100,102,102,100,102,100,102,74,74,74,74,102,74,33,100,169, - 74,88,140,169,100,218,47,104,241,42,100,236,140,33,169,74, - 140,74,74,140,100,74,140,140,140,140,100,74,100,100,100,100, - 140,140,74,74,74,140,140,74,169,140,140,39,127,39,127,140, - 88,169,39,88,39,88,169,127,127,88,88,88,88,127,127,127, - 127,140,140,169,140,39,140,169,169,74,127,140,127,169,169,140, - 169,127,169,74,127,127,169,140,127,127,88,140,140,169,127,169, - 140,169,169,169,127,169,127,127,127,169,169,127,88,39,169,169, - 207,39,39,169,127,127,127,169,88,169,88,127,127,88,127,127, - 127,39,127,127,127,127,127,39,143,127,127,127,127,127,127,127, - 127,127,127,127,127,127,127,127,127,143,127,127,127,127,207,38, - 129,129,103,33,241,221,164,183,73,249,168,62,233,206,130,73, - 84,84,233,233,123,46,122,50,166,209,130,233,209,73,168,14, - 73,233,209,168,206,168,46,122,212,40,203,206,14,14,14,14, - 22,10,206,206,249,249,62,95,0,162,183,104,206,73,14,92, - 168,154,168,84,84,84,154,233,48,0,78,50,50,84,168,24, - 24,24,84,84,84,209,24,209,24,222,241,221,162,40,92,35, - 241,209,241,209,209,241,35,35,209,209,177,48,0,212,95,223, - 22,75,224,59,75,35,75,200,35,59,200,209,129,215,50,0, - 104,92,162,94,241,164,209,14,212,37,22,212,50,190,241,78, - 162,40,190,138,26,35,24,24,209,209,177,97,200,241,104,129, - 0,183,183,241,34,64,35,35,35,35,35,24,75,75,200,46, - 24,212,78,0,104,203,239,94,0,0,0,162,162,162,246,212, - 94,212,246,162,162,126,46,35,163,61,163,61,200,111,200,109, - 109,97,212,212,0,221,215,221,221,0,0,0,0,246,212,162, - 162,221,221,183,94,122,221,183,97,111,111,111,224,109,111,224, - 109,111,212,0,0,221,221,162,0,212,187,95,187,187,126,163, - 111,111,254,111,109,50,75,239,122,0,200,111,111,109,187,111, - 111,187,126,26,187,163,187,212,95,122,42,104,187,187,187,187, - 187,187,126,50,187,126,187,187,97,94,0,0,47,163,187,91, - 50,187,163,26,91,50,91,187,183,212,183,122,0,99,44,47, - 47,47,7,141,7,235,141,235,12,235,12,235,8,235,235,67, - 67,7,8,141,49,141,235,67,7,141,67,141,235,243,235,141, - 7,8,7,8,141,49,8,7,8,7,8,235,8,141,7,8, - 235,141,235,8,67,243,67,141,7,141,235,8,67,8,49,8, - 100,102,100,100,100,100,100,102,102,100,102,102,102,100,100,102, - 100,100,102,74,102,100,100,102,100,102,169,100,74,74,71,100, - 100,100,74,100,169,218,47,164,203,221,74,188,169,140,140,33, - 140,169,74,140,169,140,140,74,100,140,169,140,140,140,140,74, - 74,140,140,140,140,140,169,140,33,140,140,140,140,140,169,39, - 140,140,169,169,127,140,74,169,127,39,127,127,127,140,169,140, - 88,169,169,33,140,127,140,127,133,74,169,102,140,169,33,39, - 74,133,38,140,143,89,143,127,143,236,127,102,74,127,133,74, - 74,127,127,169,127,169,127,127,143,207,88,39,127,127,127,169, - 169,88,39,169,88,127,127,127,127,127,39,169,127,169,127,127, - 39,127,127,39,127,127,127,127,127,127,127,127,127,127,127,127, - 127,127,127,127,127,127,127,127,127,127,127,127,127,127,143,133, - 228,229,129,38,164,0,37,212,164,233,130,31,130,31,233,233, - 233,233,233,31,130,241,221,163,212,22,84,168,73,168,31,206, - 130,206,206,168,31,73,241,0,239,40,50,233,233,206,233,31, - 31,233,249,237,237,62,31,40,0,212,221,104,233,31,31,31, - 31,228,249,31,31,222,123,123,177,162,94,227,212,177,31,222, - 222,168,222,168,168,130,168,168,168,177,104,239,183,126,46,178, - 24,209,209,209,24,24,24,84,226,178,226,177,0,239,126,226, - 209,209,209,35,35,24,24,209,35,209,209,46,222,239,95,0, - 241,14,241,241,14,241,209,14,164,203,241,241,14,142,164,183, - 221,200,164,104,75,24,24,24,226,24,84,46,35,24,241,48, - 162,94,94,46,29,24,44,24,64,24,44,24,75,35,35,24, - 104,50,183,122,40,94,94,78,162,221,246,50,94,162,212,40, - 162,212,94,221,221,126,200,35,224,75,75,75,75,75,75,75, - 75,163,94,215,0,0,94,162,221,0,0,221,0,246,104,40, - 212,94,162,221,94,162,94,227,95,111,224,111,224,111,75,61, - 109,109,187,94,215,122,0,0,0,0,0,183,187,50,187,37, - 111,111,224,111,111,163,104,187,122,221,241,111,111,111,111,111, - 163,187,187,50,187,111,163,50,126,183,122,46,187,132,132,187, - 187,111,187,91,183,187,187,183,40,42,122,0,47,50,187,187, - 187,187,187,50,26,183,50,91,183,163,187,0,0,47,44,64, - 44,44,141,235,141,199,141,235,8,235,8,7,67,235,7,141, - 7,67,8,67,67,67,7,141,7,182,67,8,7,141,7,182, - 49,141,7,141,8,67,141,7,254,7,243,7,141,141,67,8, - 7,67,67,8,7,141,67,141,67,67,235,8,7,150,49,182, - 102,100,102,102,102,102,102,102,100,102,100,102,102,102,102,102, - 102,102,74,102,33,71,102,74,71,33,102,102,74,71,33,169, - 74,71,100,169,169,236,95,40,203,0,74,143,140,74,74,74, - 74,74,74,33,144,33,74,169,140,74,140,140,140,140,140,169, - 140,33,140,169,74,33,140,74,140,33,169,102,33,140,33,74, - 140,33,140,140,133,133,151,102,127,114,127,127,127,169,71,33, - 140,169,144,127,140,140,88,71,15,71,133,33,102,140,114,38, - 186,15,133,159,127,102,102,58,133,47,29,15,38,71,245,15, - 25,133,140,39,169,127,169,100,71,140,127,169,140,169,140,127, - 39,127,169,127,207,207,143,207,169,169,169,169,127,127,169,169, - 169,169,169,39,127,127,39,127,39,39,127,127,127,39,127,127, - 127,127,127,127,127,127,127,127,127,127,88,127,127,127,207,133, - 228,173,129,197,104,0,203,221,183,221,246,0,221,0,221,215, - 221,162,122,0,221,212,0,163,246,183,94,221,215,221,221,221, - 215,246,221,221,162,162,40,162,239,94,122,40,104,40,40,164, - 40,40,40,212,50,94,162,212,0,166,221,221,246,94,183,215, - 50,212,40,215,221,212,221,162,94,0,227,50,0,215,221,183, - 221,221,221,94,221,215,221,221,221,246,75,40,94,221,50,215, - 94,94,212,163,40,212,246,221,94,221,94,203,0,126,40,212, - 183,183,162,50,42,50,239,94,50,50,227,221,200,227,40,0, - 215,221,183,94,221,215,221,40,215,183,94,246,246,162,40,183, - 94,221,221,215,0,221,0,221,162,221,221,122,221,162,162,37, - 0,183,183,0,0,56,162,122,162,42,162,122,162,162,162,0, - 94,227,50,78,221,162,162,162,162,221,221,221,162,162,0,0, - 0,0,221,122,0,221,221,221,162,162,162,42,50,42,42,42, - 162,162,0,162,0,0,0,0,0,0,162,212,50,94,164,164, - 212,94,162,0,215,78,162,162,221,162,78,162,162,42,183,246, - 212,94,221,221,221,246,221,0,0,221,162,0,162,221,183,42, - 162,162,122,0,56,0,94,94,183,0,227,162,78,162,78,78, - 162,162,162,122,162,162,122,221,94,78,0,246,162,162,162,78, - 162,162,162,0,162,162,162,162,162,94,183,0,166,0,0,0, - 162,162,162,122,162,162,0,0,162,162,183,183,0,64,44,44, - 47,44,8,7,7,8,235,67,7,235,67,141,7,235,235,141, - 235,7,141,141,67,141,67,49,141,67,141,67,67,67,150,235, - 141,49,67,235,243,8,141,141,49,150,7,67,235,12,8,141, - 150,7,150,7,8,235,12,8,141,12,7,141,235,141,235,243, - 102,100,102,102,102,102,102,102,102,102,102,102,102,100,102,102, - 102,102,71,102,102,74,102,102,74,71,100,102,100,102,71,169, - 100,102,74,100,127,218,59,40,40,122,248,153,169,140,169,74, - 74,33,144,74,140,140,140,140,169,74,33,74,33,140,169,140, - 140,74,74,140,140,74,140,140,140,74,71,71,71,71,71,74, - 140,169,38,133,15,15,248,140,33,74,127,127,140,127,127,140, - 39,169,169,33,169,127,127,140,151,15,133,39,143,143,236,127, - 71,15,224,96,235,67,7,235,215,95,215,141,34,34,192,42, - 152,126,15,74,127,127,140,102,38,71,236,127,169,88,169,39, - 169,127,140,88,74,133,155,207,127,169,127,140,169,127,39,127, - 39,127,39,127,39,127,140,169,39,127,39,39,39,39,39,39, - 39,140,169,127,39,127,169,88,127,127,39,127,169,127,143,38, - 129,151,173,197,104,0,50,183,20,190,172,172,142,104,219,15, - 172,29,29,190,142,212,221,163,94,29,172,142,142,29,142,0, - 20,172,172,172,15,129,212,94,126,40,87,142,172,29,172,172, - 162,18,133,15,172,172,229,212,0,239,162,47,173,15,172,172, - 34,40,47,15,172,29,142,172,47,0,227,94,227,20,142,29, - 172,29,142,40,29,172,29,142,34,47,0,40,183,0,29,29, - 172,44,142,46,183,29,142,29,142,29,142,122,221,126,50,47, - 15,20,15,15,15,47,95,29,142,142,142,142,183,162,75,122, - 166,142,142,44,142,47,47,215,142,142,142,142,142,47,162,227, - 50,162,20,159,173,192,20,15,166,95,142,99,47,47,142,227, - 0,94,162,95,142,47,47,47,142,40,59,47,47,142,142,34, - 40,56,221,221,122,212,212,246,221,56,221,221,0,0,0,0, - 0,0,0,0,221,0,215,95,166,95,97,95,162,59,200,47, - 95,215,221,0,162,0,0,0,0,0,0,40,212,94,164,164, - 104,40,162,162,162,221,221,221,183,40,95,95,97,212,162,246, - 40,221,0,0,0,221,221,0,0,94,212,221,0,0,0,221, - 42,126,95,166,166,166,183,0,166,0,122,183,183,183,183,183, - 221,162,183,183,183,183,183,56,221,183,162,0,42,183,221,183, - 221,122,0,183,56,183,122,183,78,162,187,0,221,78,183,183, - 162,183,0,0,122,183,162,122,183,0,162,183,0,47,44,47, - 44,47,235,8,235,243,145,141,235,141,235,141,235,141,235,141, - 235,67,8,8,7,141,235,7,141,7,141,67,141,7,17,7, - 254,7,141,7,150,8,67,150,235,141,67,141,7,243,141,67, - 150,235,141,7,141,7,243,141,7,150,49,141,7,8,7,150, - 197,102,100,100,102,197,102,102,102,102,102,102,102,102,102,100, - 102,74,102,74,102,102,100,102,74,102,102,74,102,100,102,102, - 74,74,100,169,100,188,95,37,203,0,102,143,74,33,74,74, - 74,140,74,100,74,33,74,74,74,140,140,140,127,88,127,127, - 127,33,140,169,140,140,140,74,140,74,74,133,102,102,127,169, - 169,114,71,133,15,142,64,71,39,71,74,127,127,169,169,127, - 33,140,127,89,143,127,143,143,140,245,248,159,127,71,102,58, - 133,44,227,122,122,8,141,42,122,254,95,254,142,64,95,254, - 219,47,203,133,217,133,169,140,140,127,169,169,39,127,169,140, - 169,127,153,140,171,44,224,152,108,127,169,88,140,127,169,169, - 140,169,140,39,127,127,127,127,39,39,127,39,39,127,39,169, - 169,127,127,169,39,127,127,39,127,127,169,169,127,169,89,133, - 228,228,15,33,241,0,203,94,20,135,172,48,48,48,0,172, - 48,172,48,172,48,50,162,37,246,142,15,172,172,172,15,94, - 172,15,172,190,172,229,163,162,40,40,65,47,172,15,172,173, - 40,190,47,172,172,172,173,163,0,239,0,47,15,15,20,172, - 172,104,95,172,172,29,172,172,142,0,95,94,215,29,29,172, - 29,172,172,166,15,172,172,29,172,142,162,75,50,0,142,192, - 47,172,34,172,246,15,29,172,29,142,29,0,122,75,42,172, - 208,15,15,15,105,142,95,29,29,29,29,172,200,162,59,122, - 40,15,142,192,34,172,29,40,80,172,172,192,172,15,94,183, - 215,0,191,161,108,80,15,105,132,47,142,142,34,142,171,95, - 94,183,221,47,15,172,172,15,172,142,145,172,29,80,172,34, - 95,0,215,122,212,200,212,246,94,0,0,0,0,221,94,0, - 0,0,0,0,0,0,166,254,47,47,47,29,215,34,29,34, - 29,40,246,0,221,0,0,0,0,0,221,203,164,246,104,104, - 190,203,94,221,94,122,162,0,95,142,225,29,47,40,212,221, - 0,0,0,0,221,0,0,0,0,0,162,212,162,0,0,0, - 215,47,34,44,47,34,95,162,183,0,166,64,47,47,64,47, - 99,215,47,47,64,99,47,47,26,50,122,221,44,59,47,99, - 47,95,183,59,47,254,47,99,224,162,187,0,42,59,59,254, - 47,99,111,162,47,99,254,47,99,126,78,183,221,64,44,47, - 59,47,7,141,235,7,235,7,235,67,235,12,235,141,7,141, - 235,141,7,67,141,49,141,235,150,49,8,49,150,235,150,235, - 67,67,67,141,49,243,67,243,67,67,7,141,67,7,12,67, - 150,67,235,67,67,182,7,150,67,12,235,182,67,182,182,49, - 102,100,102,102,100,102,102,102,102,102,102,102,102,102,102,102, - 102,38,102,74,102,102,102,33,71,102,102,74,74,74,33,74, - 169,100,88,74,100,188,59,37,203,0,25,236,140,140,74,74, - 74,33,144,74,74,74,74,140,33,74,88,169,127,140,169,127, - 127,39,140,33,140,33,140,33,144,140,38,36,127,140,140,33, - 169,127,140,133,142,99,225,71,127,133,74,102,140,143,127,236, - 236,143,127,140,102,58,186,34,192,95,132,96,235,67,7,235, - 122,56,122,78,0,182,145,17,219,221,183,221,183,183,215,162, - 0,221,40,47,44,224,245,143,169,127,140,169,127,127,169,127, - 140,108,47,47,221,132,102,58,127,127,39,127,140,39,140,88, - 127,143,127,127,127,39,39,39,140,140,140,140,127,140,127,39, - 127,140,127,127,140,169,140,169,169,127,127,140,127,88,143,133, - 173,228,129,33,104,0,203,215,172,173,48,172,190,48,0,172, - 172,172,172,172,48,212,221,50,183,47,172,172,172,190,48,246, - 47,172,190,172,190,172,212,78,40,50,47,142,172,172,142,15, - 246,83,173,142,172,172,15,212,0,50,221,95,15,172,172,29, - 142,47,95,172,29,172,29,29,142,0,163,94,215,29,142,29, - 142,142,172,166,34,29,142,142,29,142,0,95,246,0,142,47, - 47,142,47,29,215,172,142,142,142,47,142,221,56,200,212,192, - 15,15,15,172,186,47,40,190,142,142,142,34,142,162,200,0, - 95,29,47,47,47,47,47,40,142,142,142,47,142,172,221,212, - 221,221,15,180,254,180,192,161,40,254,47,47,47,142,192,40, - 221,183,0,47,29,192,47,192,172,47,47,142,47,142,47,47, - 215,0,94,162,215,40,122,0,212,94,162,221,221,40,227,0, - 162,221,122,0,0,0,215,215,141,95,95,47,215,47,47,142, - 44,47,95,162,221,94,221,162,94,94,40,104,40,246,40,221, - 40,40,221,0,0,0,0,0,166,47,47,47,40,215,246,94, - 221,162,0,0,122,0,0,0,0,0,221,246,94,0,0,0, - 0,215,95,47,47,214,99,162,183,0,95,47,254,254,99,254, - 95,187,254,254,99,95,254,47,56,166,122,215,64,254,95,99, - 47,95,227,141,141,95,141,254,95,162,183,0,183,254,254,254, - 254,47,166,122,141,95,141,95,95,95,162,183,0,64,44,44, - 59,47,67,235,235,7,99,7,235,141,235,141,7,150,7,141, - 145,67,67,141,7,67,8,7,243,49,243,49,150,49,8,141, - 67,67,49,141,235,243,141,141,67,67,67,67,141,235,150,67, - 141,141,49,141,7,141,49,141,141,8,67,67,67,49,141,235, - 100,88,100,100,102,102,197,102,102,102,102,102,102,102,102,102, - 102,74,102,102,102,102,102,74,102,74,102,102,248,102,240,240, - 159,159,100,74,188,247,142,203,241,0,102,127,100,74,74,74, - 74,74,74,169,140,140,169,140,39,127,127,39,169,127,127,140, - 39,127,39,169,140,39,169,140,102,120,133,38,140,88,127,39, - 127,169,127,71,20,95,47,38,71,229,15,25,245,248,159,127, - 71,102,184,192,7,235,221,221,183,47,0,0,122,8,67,122, - 0,126,26,0,0,183,243,219,122,219,215,227,0,0,78,183, - 0,122,122,183,126,25,143,127,127,143,143,127,143,143,127,127, - 133,20,99,183,0,122,12,74,236,39,127,169,33,140,127,127, - 127,119,34,127,236,127,169,169,127,169,127,127,140,127,140,127, - 140,127,140,169,127,127,33,169,127,140,169,127,140,127,143,133, - 129,129,129,21,226,0,241,183,29,48,251,142,190,48,221,172, - 172,190,190,190,172,94,122,203,246,142,172,142,190,190,15,162, - 142,172,142,142,142,43,104,122,163,221,142,34,142,142,142,172, - 246,180,173,142,142,190,15,40,0,126,221,40,172,172,142,190, - 142,142,141,172,29,142,172,142,104,0,126,40,215,29,47,142, - 142,47,172,215,47,172,142,142,142,104,0,183,94,0,172,47, - 142,47,47,172,215,192,142,47,29,142,29,221,221,95,246,142, - 15,80,15,180,191,142,141,142,47,142,47,142,142,0,200,0, - 141,172,142,47,47,142,142,141,142,142,142,142,47,29,94,183, - 183,122,15,15,114,34,172,120,40,47,47,47,47,47,29,200, - 0,94,0,47,142,172,47,64,180,142,47,47,199,142,47,47, - 47,0,239,221,221,227,56,162,40,203,246,221,246,200,95,162, - 221,94,162,0,0,0,0,141,95,47,47,142,141,47,142,192, - 34,29,171,94,162,94,221,142,40,40,246,94,0,162,162,221, - 40,95,215,221,162,162,0,246,246,215,221,221,221,215,94,246, - 246,215,221,0,0,0,0,0,0,0,0,221,162,162,0,221, - 0,221,246,141,47,47,47,162,126,0,215,95,95,47,47,47, - 47,215,47,254,47,254,99,59,221,166,0,183,47,95,47,95, - 95,95,166,166,95,95,254,47,95,78,126,0,215,95,99,95, - 254,47,183,122,95,254,95,254,254,111,78,183,0,64,64,47, - 47,47,8,145,141,145,141,235,235,67,235,67,235,243,145,141, - 235,141,49,8,141,235,67,235,150,235,150,235,150,235,235,141, - 7,8,235,8,235,8,141,8,182,67,141,235,8,235,8,141, - 8,141,49,141,235,8,145,8,141,8,141,49,141,235,8,235, - 133,133,245,133,88,102,102,102,102,102,102,38,102,102,102,102, - 102,102,102,102,102,71,102,102,102,102,102,102,127,88,176,128, - 185,179,247,247,240,38,47,40,212,0,245,207,74,33,74,33, - 74,33,140,88,169,127,169,38,217,127,127,140,169,140,127,169, - 169,169,127,127,169,169,140,33,102,133,133,248,169,127,127,143, - 127,143,143,236,151,95,141,34,192,192,26,171,26,187,152,235, - 67,7,235,219,67,122,0,166,183,122,0,0,0,141,145,219, - 219,122,122,0,0,0,122,122,42,219,227,40,42,0,0,0, - 0,0,0,0,183,182,102,240,127,71,71,236,186,34,171,127, - 245,95,132,183,122,122,67,188,83,245,248,127,39,127,39,127, - 89,133,56,71,245,127,127,127,39,169,140,127,140,127,140,127, - 140,127,127,140,169,127,39,169,33,39,169,33,127,127,127,38, - 228,129,135,33,226,0,241,94,29,190,172,190,142,48,0,172, - 172,142,29,223,190,50,78,203,215,142,172,142,190,142,129,221, - 142,190,142,190,48,98,14,0,97,246,172,142,142,172,142,172, - 212,254,47,142,172,172,172,40,0,212,94,95,15,190,142,142, - 142,104,40,142,172,142,142,142,104,56,126,40,215,47,142,190, - 47,29,172,215,142,142,142,47,142,142,0,239,215,0,34,47, - 47,142,47,142,40,142,47,142,142,47,142,221,221,200,212,192, - 180,20,20,15,151,47,40,47,142,47,47,47,142,0,104,0, - 47,142,142,47,47,47,47,40,47,47,47,47,142,142,221,215, - 94,162,71,55,250,192,172,114,142,254,142,47,180,225,172,95, - 221,227,221,47,47,142,47,47,44,142,141,142,47,47,47,47, - 95,221,227,162,183,40,221,50,40,212,203,162,94,40,200,227, - 183,227,162,0,0,0,40,95,47,47,47,192,246,47,40,40, - 40,215,47,94,122,0,0,215,221,221,94,221,221,221,97,203, - 40,162,221,221,215,221,0,246,246,221,221,215,221,0,0,0, - 0,0,94,212,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,246,246,215,221,221,162,221,221,0,221,221,215, - 166,95,254,95,47,141,47,141,122,187,0,215,47,254,254,47, - 95,40,166,95,254,254,141,141,126,162,187,0,183,47,141,95, - 254,95,166,221,95,95,95,95,254,227,162,187,0,64,44,47, - 44,47,141,145,7,199,141,235,141,7,235,141,235,243,235,141, - 145,141,7,67,141,49,141,235,12,7,150,235,243,67,235,150, - 235,12,235,141,7,182,243,141,141,7,150,7,141,49,8,8, - 141,141,49,150,49,141,49,141,8,141,8,49,150,49,141,49, - 91,91,91,91,102,88,100,100,100,102,102,102,102,102,102,102, - 102,102,38,102,74,38,102,102,102,102,102,102,74,66,189,32, - 32,93,135,186,74,122,212,241,75,221,43,184,74,74,71,74, - 88,39,88,127,143,74,192,64,182,15,240,127,169,88,169,39, - 127,140,169,248,38,140,127,71,133,133,151,133,245,248,159,127, - 71,102,58,186,47,166,59,47,47,95,254,187,99,0,0,122, - 8,67,122,132,145,17,26,78,0,0,0,0,0,183,243,26, - 56,122,221,78,0,0,0,0,0,42,50,94,94,122,0,0, - 0,0,122,221,122,243,219,152,235,67,7,235,221,221,0,25, - 15,126,126,183,187,122,145,247,252,183,171,89,127,127,127,71, - 96,225,0,67,26,119,89,33,140,39,127,140,127,140,127,140, - 169,140,140,127,127,169,169,39,127,169,140,39,88,140,127,102, - 173,129,129,72,226,0,241,215,142,190,190,223,190,48,122,172, - 172,172,190,142,48,212,162,241,212,47,172,190,142,190,15,94, - 47,172,142,190,251,195,162,221,95,215,173,190,190,142,190,15, - 40,47,142,190,105,172,129,50,122,50,221,215,15,15,47,190, - 142,47,40,29,142,172,172,172,200,221,163,215,215,47,47,142, - 190,142,172,246,192,172,172,47,142,47,162,126,94,221,142,142, - 47,142,47,172,215,172,142,47,142,47,142,94,0,104,246,192, - 15,80,15,180,191,142,141,142,47,190,47,142,142,0,47,221, - 141,142,47,142,47,47,190,141,142,47,142,47,47,172,50,183, - 212,0,69,172,80,180,15,208,40,47,47,145,47,142,29,47, - 162,183,0,99,180,142,142,47,142,142,47,47,142,47,47,142, - 47,162,94,0,212,40,215,246,40,40,203,50,221,94,95,95, - 95,47,94,122,183,221,47,47,47,47,142,172,40,141,141,215, - 141,215,0,0,0,0,0,221,215,183,246,162,94,215,40,40, - 203,104,246,221,221,221,221,0,221,0,0,0,221,0,0,221, - 0,221,221,212,203,50,0,0,0,122,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,221,221,227,221,0,0,0, - 221,215,141,40,141,95,254,47,183,227,122,215,47,95,95,47, - 95,126,166,95,95,95,95,59,95,94,166,0,221,95,95,95, - 254,47,183,122,95,141,95,95,254,187,94,166,0,64,34,47, - 44,47,7,235,141,235,67,145,150,235,141,67,7,8,235,67, - 145,141,7,141,67,235,141,235,150,49,8,49,141,141,235,150, - 235,12,235,67,99,49,12,182,17,99,17,235,67,67,235,12, - 67,12,67,12,235,67,67,49,12,141,150,67,12,49,8,99, - 0,0,26,26,139,234,152,245,133,102,102,102,102,38,102,38, - 102,102,102,102,102,102,102,71,102,102,71,102,127,66,118,157, - 32,52,38,133,100,234,47,212,163,221,66,247,74,140,74,134, - 169,39,127,108,47,47,215,219,102,58,127,127,127,39,140,169, - 127,140,127,245,158,25,88,71,133,133,172,234,219,219,152,145, - 67,7,235,183,215,183,215,219,187,215,122,0,162,0,0,0, - 141,145,219,122,150,219,122,122,0,0,0,0,0,0,56,221, - 42,219,183,0,0,0,0,221,221,183,162,122,0,0,0,0, - 0,122,183,166,78,64,162,0,122,8,67,122,0,166,17,99, - 47,95,227,132,56,162,162,17,158,162,122,245,58,236,127,35, - 95,221,219,183,8,248,74,143,140,169,127,140,33,39,127,140, - 33,127,140,140,127,127,140,169,169,33,140,127,169,127,88,38, - 228,129,135,21,226,0,241,212,142,172,190,190,223,48,56,190, - 172,190,190,142,190,50,78,241,212,47,172,142,190,142,48,246, - 142,172,142,190,190,92,61,94,75,246,15,190,142,142,142,129, - 40,47,190,47,173,18,18,122,122,95,94,215,142,18,40,190, - 142,47,215,142,142,142,47,142,200,215,75,40,215,142,47,142, - 142,142,172,215,142,142,47,142,142,142,0,75,212,221,142,47, - 142,47,142,172,215,47,142,142,47,142,47,221,122,47,50,34, - 15,172,20,15,15,142,40,47,47,142,47,47,104,0,104,0, - 95,190,47,142,47,142,47,40,172,47,47,142,47,142,246,183, - 212,221,15,199,29,15,172,180,111,47,47,47,47,47,34,40, - 221,212,221,47,47,47,142,47,199,47,47,47,47,47,142,192, - 95,0,212,221,183,95,95,241,47,246,40,246,94,215,40,95, - 47,47,94,122,183,183,47,142,47,192,47,80,246,215,40,40, - 215,104,40,0,221,162,0,50,241,40,40,221,221,162,227,47, - 142,104,246,221,122,0,94,221,246,94,221,227,126,221,0,215, - 215,215,221,0,221,246,221,0,0,0,0,0,0,0,221,0, - 0,183,0,0,0,0,0,0,162,0,221,95,40,219,183,94, - 183,215,99,47,254,47,141,95,221,227,122,183,141,95,254,99, - 47,227,166,95,95,95,254,95,95,183,183,0,183,95,95,95, - 141,95,183,78,95,95,141,95,95,227,42,187,0,44,44,44, - 142,47,145,235,141,235,141,145,243,235,141,7,254,67,235,8, - 235,141,49,141,49,7,141,235,141,235,141,67,235,8,7,141, - 49,8,67,67,150,235,243,67,150,141,8,182,235,12,235,150, - 182,243,141,8,182,235,150,145,243,67,141,141,8,141,182,243, - 0,42,219,26,50,26,91,12,91,235,102,102,25,102,102,102, - 102,102,102,102,102,71,102,102,74,33,100,100,169,143,83,179, - 176,106,247,181,58,142,142,164,241,0,133,240,127,74,140,153, - 127,39,133,29,99,183,0,42,12,74,236,39,127,169,33,140, - 127,127,127,245,133,134,161,66,144,15,34,95,99,0,0,122, - 8,67,122,0,132,215,221,0,0,42,221,0,0,0,0,0, - 42,150,42,0,122,183,122,219,0,122,0,0,0,0,0,0, - 0,122,187,122,0,0,0,122,215,183,122,122,0,0,0,0, - 0,183,219,42,162,122,0,0,0,141,145,17,26,221,0,221, - 95,95,126,166,254,215,227,162,0,122,0,171,247,108,171,221, - 0,122,219,0,150,192,74,159,143,169,140,127,39,169,39,127, - 114,33,169,140,140,127,33,140,127,39,127,33,169,140,207,133, - 228,229,135,21,226,0,104,183,29,48,172,190,190,15,56,172, - 29,190,142,142,177,163,94,241,40,47,172,190,142,190,15,94, - 142,172,172,142,190,172,37,246,46,215,142,142,142,190,190,15, - 104,141,172,40,201,118,23,78,0,40,246,132,173,83,172,47, - 142,142,141,142,142,172,142,172,104,221,59,239,40,142,142,172, - 142,34,172,215,142,142,190,47,142,47,162,95,212,0,172,142, - 47,47,47,172,254,142,47,190,47,142,142,94,162,59,221,142, - 57,172,171,180,15,47,47,47,47,142,47,142,142,0,47,162, - 141,180,47,47,142,47,142,254,47,47,47,47,142,34,50,239, - 227,0,191,173,244,192,15,191,47,47,47,47,47,47,34,200, - 0,239,122,47,64,180,47,47,142,142,47,47,47,47,47,142, - 47,0,95,162,239,142,47,40,221,162,162,0,0,183,40,97, - 126,95,221,122,221,215,47,47,47,47,142,172,215,215,215,246, - 221,0,0,50,50,94,162,221,221,221,162,0,0,0,0,221, - 215,221,215,162,0,0,246,246,94,246,0,40,95,40,0,215, - 166,183,221,221,0,162,94,221,0,0,0,0,0,0,221,221, - 0,227,183,0,0,162,212,94,40,0,122,183,215,215,221,221, - 221,221,40,254,47,95,99,95,183,187,0,215,47,95,95,95, - 95,95,227,141,95,95,95,254,239,183,239,162,221,141,95,95, - 95,47,221,42,95,95,95,254,254,183,94,166,0,64,34,47, - 47,47,145,67,235,141,7,235,8,235,17,235,150,235,7,141, - 145,141,49,141,67,235,141,235,12,7,141,150,235,141,235,182, - 141,49,141,235,12,235,235,8,182,150,67,150,235,12,235,67, - 8,182,150,67,243,235,17,235,235,8,67,150,49,12,67,17, - 0,0,0,0,0,187,243,187,12,235,102,102,102,133,102,133, - 102,102,102,102,102,102,102,102,102,71,74,33,140,127,159,83, - 161,66,161,59,102,19,35,40,203,0,133,240,88,33,140,133, - 15,127,151,141,141,221,221,122,67,188,83,245,248,127,39,127, - 140,127,38,43,77,45,194,170,86,173,94,0,221,0,0,0, - 141,145,219,183,42,40,126,183,0,0,0,0,0,0,0,0, - 0,122,122,0,0,0,0,42,243,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,215,219,162,122,122,0,0,122, - 162,183,183,166,221,183,0,0,0,183,150,219,42,0,0,221, - 215,95,40,166,132,126,59,0,0,0,0,133,236,25,171,0, - 0,78,0,0,56,243,8,186,74,143,127,127,39,127,169,88, - 127,39,127,33,140,127,127,127,169,169,140,140,169,169,127,133, - 251,173,229,72,226,0,241,94,142,190,190,172,190,48,162,190, - 190,190,142,190,177,212,221,241,215,47,172,190,142,190,129,221, - 172,172,172,29,172,15,22,162,203,40,172,142,172,190,142,15, - 40,104,172,47,173,250,19,162,122,126,94,215,86,250,250,190, - 190,104,40,172,142,172,47,172,142,221,97,203,215,142,142,199, - 190,142,172,141,190,34,142,142,142,142,0,95,163,122,142,47, - 47,142,47,172,40,142,47,142,47,142,172,215,221,200,94,29, - 180,171,171,15,191,104,40,142,47,142,142,29,142,0,200,162, - 95,34,47,142,47,47,180,95,142,142,47,47,47,172,215,215, - 40,221,15,144,173,172,15,15,40,47,47,47,47,47,142,95, - 221,239,162,47,47,47,142,142,180,47,141,142,47,47,47,47, - 47,0,75,162,95,172,47,215,221,221,0,221,183,122,221,40, - 95,95,94,122,183,221,34,47,47,47,141,40,221,221,162,0, - 0,0,0,162,221,94,221,221,0,0,0,0,0,0,0,183, - 166,221,0,0,0,0,0,221,0,0,0,56,215,40,183,47, - 95,40,221,0,162,0,0,0,0,183,227,78,215,166,95,221, - 0,94,95,95,221,183,227,162,183,0,221,221,0,221,0,0, - 0,221,221,221,215,40,254,47,94,187,0,183,99,95,95,47, - 141,215,166,95,95,141,95,95,95,94,219,0,183,95,40,141, - 95,47,183,183,95,95,254,95,95,227,183,183,0,44,44,47, - 34,142,235,141,235,141,49,141,67,235,17,235,12,235,141,67, - 235,141,49,141,67,49,243,235,8,67,235,150,235,243,49,67, - 150,49,141,235,243,141,145,150,67,219,67,243,235,150,67,235, - 141,67,219,67,243,235,150,141,235,150,182,166,67,150,67,182, - 0,0,0,122,122,132,158,4,235,49,102,102,102,102,102,102, - 102,102,102,102,38,100,71,33,100,102,100,100,88,143,127,236, - 66,247,88,0,251,70,224,212,75,26,38,240,127,169,140,15, - 40,217,15,40,187,132,17,122,158,247,252,227,171,89,127,127, - 127,245,222,242,128,32,117,231,23,79,73,22,162,0,0,0, - 42,243,26,0,183,94,246,162,122,0,0,0,0,0,0,0, - 122,122,122,0,0,0,0,0,122,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,162,183,56,122,122,0,0,122, - 221,94,183,183,183,215,0,0,0,0,122,56,122,26,122,0, - 215,95,95,239,183,221,0,122,122,0,122,34,171,42,166,0, - 122,0,122,0,221,42,0,254,186,39,39,38,140,102,140,236, - 127,127,143,236,143,236,143,127,127,127,33,127,169,39,39,38, - 228,229,129,72,177,0,241,221,47,177,190,48,48,48,221,29, - 190,142,142,142,177,212,78,209,212,47,190,142,190,190,48,94, - 47,172,172,172,190,48,203,221,163,215,47,142,190,142,190,172, - 40,47,172,142,190,15,173,50,0,97,40,246,47,47,15,142, - 190,47,141,142,29,172,142,29,104,94,95,40,215,47,47,142, - 47,190,15,40,47,142,142,142,142,142,162,163,40,42,180,47, - 142,142,47,142,47,142,47,142,142,47,142,50,221,166,221,29, - 57,172,15,15,208,142,40,47,142,47,47,142,142,0,200,162, - 47,47,47,47,47,47,34,40,47,47,47,47,47,142,212,183, - 163,50,124,15,80,15,180,208,40,47,47,47,47,47,44,104, - 221,239,221,47,142,47,47,99,47,190,40,235,180,47,47,142, - 142,0,95,221,40,47,212,221,122,122,221,78,212,183,0,0, - 215,40,0,122,0,56,47,142,47,246,246,246,246,162,221,0, - 0,0,0,0,221,246,246,221,0,0,0,0,0,0,0,183, - 183,122,0,0,0,0,0,0,0,0,221,221,221,246,246,95, - 47,95,221,0,0,0,0,0,0,56,95,59,59,47,47,95, - 0,215,95,59,95,212,212,0,0,162,221,122,0,0,0,0, - 0,0,221,221,221,0,221,95,227,239,0,215,47,95,141,95, - 47,166,40,95,95,95,95,254,166,227,183,0,56,95,95,95, - 141,59,221,42,95,95,254,254,59,126,78,227,0,64,44,47, - 47,214,235,8,235,12,235,141,235,235,12,235,150,235,141,8, - 235,243,7,141,67,235,150,235,141,141,67,17,235,150,235,49, - 150,235,182,49,49,141,235,243,99,150,182,182,67,235,141,145, - 243,182,150,182,182,49,49,141,145,243,67,132,99,182,243,49, - 0,0,0,0,0,0,42,99,234,158,102,102,102,102,102,133, - 102,102,102,102,102,102,102,102,100,33,100,88,88,88,88,143, - 66,161,135,0,173,98,40,212,40,122,133,247,88,88,127,186, - 59,99,47,95,215,166,183,0,122,187,158,122,0,245,71,173, - 15,50,162,122,223,66,106,242,130,75,187,50,94,162,0,0, - 0,122,0,162,0,162,122,0,0,0,0,0,0,122,122,122, - 122,122,0,0,0,0,0,0,122,122,0,0,0,0,0,0, - 0,0,0,122,0,122,0,122,221,221,122,0,0,122,0,122, - 122,162,162,0,0,0,0,0,0,0,0,0,0,122,42,0, - 246,40,95,246,215,183,122,122,0,0,0,0,187,0,0,0, - 0,0,0,0,0,183,0,0,12,248,133,25,245,133,15,102, - 240,127,71,102,236,133,34,171,127,240,207,140,33,114,127,133, - 129,129,135,21,226,0,203,221,215,203,203,241,104,226,0,203, - 241,104,104,104,92,212,221,200,50,183,200,75,75,200,104,221, - 95,40,47,47,104,29,212,221,50,40,141,40,47,40,104,142, - 40,215,40,104,95,203,47,163,221,40,227,221,215,221,246,246, - 95,40,221,40,95,47,47,47,40,212,126,40,221,40,40,40, - 141,47,47,221,95,47,40,40,40,95,221,163,163,0,59,95, - 47,254,47,47,40,47,47,47,47,47,47,50,221,239,50,29, - 15,15,180,15,15,47,40,141,47,47,47,40,142,0,200,50, - 40,47,40,141,47,40,47,215,40,47,40,40,141,104,246,215, - 50,42,217,105,15,15,208,120,40,40,47,254,254,47,254,95, - 221,187,221,254,47,47,47,40,47,47,254,47,254,47,47,47, - 95,0,212,221,183,246,94,94,221,221,221,0,0,0,0,0, - 183,227,221,42,221,221,99,47,40,221,221,94,50,246,221,221, - 0,0,221,0,221,221,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,221,94,40,95,95,163,47, - 95,40,50,0,0,0,0,0,0,122,215,95,141,95,95,95, - 227,227,40,40,215,246,221,221,0,0,221,162,0,221,122,221, - 221,221,215,246,40,212,94,162,221,183,0,215,95,141,40,141, - 40,187,166,95,215,95,40,141,215,183,50,0,183,95,95,95, - 95,95,183,183,95,95,95,95,95,126,42,183,0,64,44,34, - 44,142,67,141,235,141,235,8,235,235,150,235,12,235,141,67, - 235,132,67,141,67,235,12,235,67,67,49,150,235,141,99,67, - 141,99,141,49,235,141,235,182,182,141,99,67,182,235,141,235, - 182,182,141,182,67,99,235,243,141,99,182,182,235,141,235,182, - 0,0,0,0,0,0,0,122,91,139,102,102,102,102,102,102, - 102,102,102,102,102,102,102,100,102,74,33,88,88,88,88,218, - 66,223,172,0,40,137,183,75,75,122,102,240,127,127,39,102, - 95,183,95,95,126,166,254,183,227,0,0,122,0,64,142,95, - 183,0,0,0,183,24,20,34,59,163,221,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122, - 122,0,0,0,0,0,0,0,0,122,122,0,0,0,0,0, - 0,0,0,0,122,0,0,122,122,122,122,122,0,0,0,0, - 122,221,221,221,0,0,0,0,0,0,0,0,0,0,0,0, - 122,227,111,95,183,183,122,122,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,150,59,234,26,152,17,17, - 152,235,8,7,235,122,0,0,151,102,71,169,140,169,39,133, - 24,226,35,103,104,0,50,122,50,50,162,221,221,94,215,162, - 221,162,0,0,0,50,0,94,246,0,221,246,246,215,221,0, - 0,0,0,0,0,0,37,122,212,221,246,221,221,215,221,215, - 215,215,215,122,221,122,221,215,0,183,221,215,0,215,40,215, - 40,40,215,215,221,0,0,0,94,40,183,183,221,215,246,40, - 246,246,246,246,246,215,215,215,215,94,94,221,183,221,215,40, - 40,40,40,215,215,40,215,141,215,215,227,212,56,40,122,215, - 183,17,183,215,56,221,215,141,40,141,95,99,47,0,40,0, - 141,95,40,95,40,141,95,40,141,47,95,215,95,95,94,183, - 212,0,47,47,47,47,142,142,40,141,40,47,95,141,47,212, - 221,40,221,183,40,141,132,141,141,215,215,132,141,141,141,141, - 95,162,227,0,0,227,94,122,78,221,0,0,0,0,0,0, - 0,42,221,221,221,221,215,40,246,221,50,212,94,162,94,215, - 221,0,221,162,221,162,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,0,215,215,40,95,239,95, - 59,212,227,221,221,162,122,0,0,78,126,227,95,126,95,75, - 187,183,122,0,0,0,0,0,0,0,0,0,0,0,0,221, - 215,122,221,221,221,246,212,0,221,50,78,0,215,215,221,221, - 56,221,183,56,56,122,0,42,162,183,183,0,162,183,221,221, - 221,122,0,94,183,183,56,221,0,221,162,94,0,64,47,59, - 47,254,141,7,235,7,235,243,235,141,182,49,8,145,150,67, - 235,150,235,141,141,235,219,235,67,141,235,12,235,243,254,235, - 243,182,150,67,145,243,235,182,243,141,17,235,141,235,12,235, - 99,243,8,132,235,141,235,243,182,12,235,243,235,187,235,99, - 0,0,0,0,0,122,0,0,0,42,139,245,102,102,102,38, - 102,38,102,102,197,102,102,100,102,102,100,88,88,33,88,218, - 66,0,40,97,48,164,47,40,40,0,245,153,102,236,236,140, - 40,0,212,95,97,166,111,126,224,0,0,0,0,183,221,0, - 162,162,162,162,0,0,0,122,221,162,162,50,221,162,0,0, - 0,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,122,0,0,122,0,122,122,122,122,122,122, - 122,122,122,122,122,0,0,0,0,0,0,0,0,0,0,0, - 183,215,126,95,94,183,0,122,122,0,0,0,0,0,0,0, - 122,0,0,0,0,0,0,0,0,0,0,132,99,219,99,0, - 0,42,8,49,122,0,111,17,219,0,20,127,140,140,140,33, - 55,18,55,66,48,0,212,94,249,249,249,233,31,233,206,233, - 206,206,233,31,206,241,0,212,227,14,73,73,92,73,233,73, - 73,73,206,206,31,206,48,0,94,239,203,62,168,206,137,137, - 206,206,206,168,206,206,233,177,0,162,183,190,237,233,137,206, - 168,137,137,206,73,73,73,206,222,104,162,94,203,226,226,190, - 226,92,226,226,226,104,92,241,164,164,142,0,162,215,212,164, - 104,104,104,104,92,104,104,92,164,164,14,172,0,227,183,164, - 10,73,10,233,62,41,237,62,73,14,14,22,48,40,183,221, - 104,50,40,241,104,104,104,104,104,104,104,40,203,40,241,162, - 162,40,104,212,40,246,40,40,104,104,104,40,104,203,162,190, - 122,215,215,203,212,212,37,203,212,104,104,104,104,164,164,92, - 50,94,78,0,203,203,203,212,246,221,0,0,221,0,221,0, - 162,0,0,0,221,221,221,221,246,212,212,50,50,212,212,221, - 221,221,246,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,0,221,42,221,183,221,215, - 183,162,0,0,122,200,162,78,0,95,246,40,183,215,183,94, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 221,122,221,162,221,221,221,215,183,162,183,162,246,0,221,56, - 0,56,40,0,221,183,40,221,162,94,122,0,122,0,122,122, - 0,0,122,0,0,0,0,0,162,122,122,122,0,141,95,95, - 95,166,243,67,141,235,235,141,235,141,49,235,150,235,132,67, - 145,150,235,141,67,235,17,235,235,141,235,150,49,141,243,99, - 150,141,141,182,145,132,99,49,187,67,219,235,254,235,254,99, - 99,150,182,219,99,99,235,109,99,219,235,254,235,254,99,235, - 0,0,0,12,94,42,122,0,162,26,91,61,214,213,102,133, - 102,102,133,102,102,102,102,102,102,102,102,71,74,74,74,134, - 23,104,190,0,48,50,111,241,163,0,245,240,133,108,108,171, - 0,0,215,40,95,239,215,215,0,0,0,0,0,0,0,122, - 0,0,0,0,0,0,0,0,0,162,162,221,162,0,0,221, - 0,0,0,122,122,122,0,122,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,122,122,0,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,215,40,227,227,221,78,0,0,122,122,0,122,0,0,0, - 0,0,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,141,145,17,42,122,0,122,0,246,127,140,74,114,38, - 18,38,55,66,177,0,163,40,168,73,73,73,206,14,92,168, - 73,73,206,130,167,48,0,183,104,206,249,206,73,31,62,206, - 249,249,31,249,62,41,228,0,183,246,92,41,249,249,249,233, - 206,233,206,249,62,249,41,228,162,183,221,251,216,93,62,62, - 62,249,249,249,249,62,62,237,220,94,122,0,172,137,168,206, - 177,168,137,73,177,73,84,73,168,222,173,122,227,104,92,73, - 14,14,14,14,14,14,14,73,73,73,73,173,0,239,221,190, - 10,73,206,206,206,206,137,206,113,73,73,14,18,40,221,246, - 251,14,168,137,168,206,92,92,137,137,137,123,137,168,142,221, - 221,47,92,251,73,216,216,226,73,92,190,137,249,249,206,55, - 0,227,183,222,31,31,18,79,79,220,79,18,220,18,18,43, - 48,94,94,221,226,226,37,203,212,221,0,0,0,0,0,0, - 50,14,246,50,162,0,113,22,246,246,94,40,164,212,0,0, - 0,221,162,221,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,50,92,94,14,209,0,84, - 50,94,0,0,162,40,162,183,0,142,40,47,22,50,50,94, - 0,0,0,0,0,0,0,0,0,0,221,47,246,180,180,162, - 112,180,0,162,0,246,0,221,212,183,122,40,2,0,2,142, - 124,124,1,0,180,180,47,1,47,187,122,0,95,162,50,162, - 94,162,94,183,50,162,163,162,162,203,187,122,0,29,29,29, - 29,47,141,67,150,235,182,12,49,150,182,8,150,67,219,141, - 235,17,67,150,141,49,183,67,67,12,235,132,99,182,26,182, - 12,109,243,219,235,254,17,64,150,254,132,150,64,219,254,17, - 235,150,182,150,150,99,219,141,182,132,150,64,219,254,17,99, - 0,0,219,235,145,42,12,26,0,26,205,26,26,145,245,102, - 155,102,102,102,133,102,102,102,102,102,102,102,74,74,140,176, - 137,203,251,246,0,40,104,75,203,0,104,102,248,184,248,171, - 0,0,183,183,221,183,183,221,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,0,0,0,221,221,122,0, - 0,0,0,0,0,122,0,0,0,0,0,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, - 122,227,166,215,183,221,122,42,0,0,0,0,122,122,122,122, - 122,0,0,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,183,150,219,122,122,0,183,150,122,151,127,140,140,15, - 18,18,55,43,190,0,212,203,92,164,22,73,73,73,73,206, - 206,92,73,92,31,48,0,162,104,92,73,206,73,206,73,206, - 233,206,206,137,137,249,173,0,183,50,73,249,233,249,249,249, - 31,233,233,206,233,73,206,123,0,221,183,173,216,175,249,62, - 167,249,167,167,137,123,222,31,220,183,42,0,190,222,84,84, - 190,177,177,24,24,92,226,24,209,222,228,122,183,142,14,22, - 14,14,92,22,14,14,22,14,14,73,84,79,122,239,183,190, - 14,50,14,14,164,22,164,22,164,22,14,14,242,203,42,221, - 251,22,190,222,73,168,92,92,177,137,177,137,73,190,226,0, - 221,104,137,198,123,93,216,92,226,92,104,206,31,233,175,79, - 0,183,40,173,73,222,21,251,173,173,103,79,79,55,79,87, - 137,221,183,246,40,246,94,221,162,0,0,0,0,0,0,0, - 162,37,94,221,0,0,131,5,22,162,94,40,50,221,0,221, - 94,221,162,246,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,221,162,22,50,164,22,0,50, - 0,162,94,162,50,0,0,0,0,172,40,221,92,212,212,22, - 0,0,0,221,0,221,215,0,183,0,40,2,124,1,124,162, - 81,2,0,50,162,246,246,0,78,183,162,35,246,0,81,47, - 2,81,2,0,112,40,40,47,190,221,0,0,44,50,94,50, - 78,78,50,0,61,0,163,162,50,97,187,162,0,225,34,29, - 20,44,243,141,150,67,141,8,49,150,235,150,141,141,219,49, - 235,17,67,17,67,49,183,67,235,150,235,141,182,49,17,49, - 254,243,99,243,67,235,17,67,49,132,67,17,67,182,243,67, - 182,99,150,99,12,67,182,150,150,67,17,67,182,243,67,182, - 0,0,0,219,141,235,145,199,49,235,100,67,91,139,245,102, - 102,155,102,133,102,102,38,102,102,102,74,102,71,102,18,127, - 246,246,251,92,190,164,200,97,203,0,122,22,179,30,241,166, - 0,0,0,122,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,122,0,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,227,227,166,94,162,122,0,162,0,0,0,0,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,56,42,219,0,0,99,47,114,127,88,71,135, - 38,38,55,72,190,0,163,40,10,10,65,10,22,14,22,209, - 14,206,73,14,31,129,0,162,104,73,14,73,206,206,233,233, - 31,31,233,233,73,206,55,0,42,40,92,206,233,164,73,206, - 206,62,249,233,233,92,10,55,0,78,0,251,93,249,233,249, - 233,249,233,31,130,168,130,233,18,50,162,0,172,73,104,226, - 92,73,177,24,46,46,209,46,241,222,173,0,94,223,14,37, - 22,22,14,37,50,164,22,22,37,37,24,18,0,239,42,190, - 94,164,37,164,22,14,209,37,37,50,164,14,18,40,183,221, - 228,50,164,29,73,73,164,203,164,92,241,73,164,177,142,221, - 0,47,137,31,14,93,175,215,14,164,164,113,22,246,50,38, - 0,50,183,251,92,190,21,48,173,203,129,135,137,173,251,55, - 203,0,162,94,212,221,221,0,0,0,0,0,0,0,0,0, - 0,246,94,0,162,162,5,230,160,5,221,162,0,221,0,221, - 0,221,94,221,162,50,0,0,0,0,0,0,0,0,0,0, - 50,203,164,48,200,0,0,95,203,14,212,215,162,162,0,0, - 0,162,162,0,221,0,0,0,0,190,22,0,164,162,37,164, - 0,162,0,162,0,221,104,50,183,221,162,180,112,1,2,40, - 81,180,122,40,0,104,180,162,50,221,221,142,47,221,1,180, - 180,2,81,215,124,180,40,2,190,219,162,0,142,162,0,50, - 162,162,162,0,50,0,163,50,50,200,166,0,0,29,44,29, - 29,44,7,7,141,235,8,49,235,12,235,182,7,235,12,235, - 145,8,235,150,49,145,219,235,145,141,235,49,67,145,8,235, - 49,8,49,235,182,235,235,67,145,99,67,211,150,49,141,99, - 49,182,49,49,12,49,235,101,99,49,12,49,49,67,145,235, - 0,0,0,219,49,235,192,225,158,145,25,234,91,205,102,155, - 102,133,102,25,133,102,102,102,102,102,102,102,140,240,21,40, - 246,40,246,246,173,92,111,40,75,0,0,0,237,168,92,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,221, - 56,221,221,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,122,0,0,0,122,0,122,122,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,183,183,215,183,162,122,122,0,0,0,0,0,122,0,122, - 122,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,145,150,0,183,127,127,39,140,48, - 79,38,173,72,223,0,40,95,62,73,220,50,50,22,22,94, - 50,14,73,22,167,48,162,162,104,14,123,233,73,233,233,233, - 14,14,73,233,206,206,55,0,78,212,92,233,233,206,206,233, - 206,233,233,249,113,22,14,103,0,221,183,222,116,11,206,233, - 31,249,233,168,73,84,24,73,201,50,122,162,48,209,241,209, - 241,35,92,241,241,59,22,75,37,222,55,0,94,190,164,50, - 50,50,22,37,37,37,37,50,50,22,73,33,0,212,219,249, - 131,37,162,50,37,14,84,22,50,162,37,14,220,40,183,221, - 251,50,50,241,226,14,22,0,162,14,22,164,50,177,92,221, - 122,104,48,50,92,11,13,162,241,40,22,164,94,162,22,79, - 0,227,95,228,22,226,251,24,177,200,190,48,48,222,129,104, - 212,221,221,162,50,50,162,162,0,0,0,0,0,0,0,162, - 0,221,0,0,0,0,10,11,110,82,221,221,0,0,0,162, - 162,0,0,50,221,94,0,0,0,0,0,0,0,0,0,0, - 162,246,94,190,251,183,221,50,50,37,50,94,0,162,0,162, - 0,162,0,0,0,0,0,0,0,0,162,0,162,221,162,162, - 0,0,0,0,162,162,229,163,183,162,241,246,1,1,1,221, - 81,2,0,212,0,124,112,61,40,42,183,104,2,40,180,112, - 112,124,81,81,112,47,124,124,183,219,0,0,44,0,0,50, - 162,163,162,50,78,162,42,22,183,241,126,0,0,225,29,34, - 29,142,219,17,150,141,17,150,150,219,12,26,219,17,219,150, - 17,183,219,56,42,26,122,42,26,42,183,42,0,42,0,183, - 122,122,42,183,122,42,42,0,122,183,122,42,0,42,42,0, - 42,56,42,122,42,122,42,122,26,42,122,42,122,122,122,26, - 243,145,235,141,235,141,145,8,158,145,25,155,54,102,133,133, - 25,133,155,102,25,25,133,102,120,38,71,71,18,250,79,164, - 0,104,40,190,104,40,224,40,203,0,162,162,137,0,138,0, - 0,0,0,0,0,0,0,0,0,0,0,0,221,221,221,0, - 0,0,0,0,0,0,0,0,0,0,0,122,122,122,122,122, - 221,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,0,0,0,0,0,0,0,0,0,0, - 0,0,183,221,162,221,0,0,0,0,0,0,0,0,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,182,132,0,0,244,119,127,102,151, - 79,38,55,87,177,0,212,50,237,233,233,206,206,73,168,73, - 168,206,206,73,31,48,0,162,104,14,73,113,73,137,168,31, - 73,92,73,206,73,73,173,0,94,40,164,206,73,73,73,168, - 73,168,206,137,206,73,206,251,0,42,0,48,216,138,237,206, - 73,206,73,168,168,168,73,73,79,162,122,162,190,73,24,177, - 177,84,177,24,226,24,226,24,14,222,173,122,183,142,14,73, - 73,92,73,73,92,92,73,92,73,73,177,18,0,50,183,206, - 131,131,164,164,162,50,61,162,162,50,14,14,55,203,94,246, - 251,37,164,14,226,92,92,241,164,73,73,92,92,190,142,122, - 162,104,48,50,226,92,31,50,92,22,212,14,14,37,22,55, - 0,50,212,190,212,37,203,40,104,226,190,190,48,190,142,104, - 104,221,162,94,203,203,162,246,94,0,0,0,0,0,94,104, - 37,203,221,0,162,50,10,5,175,14,42,0,0,0,0,221, - 162,50,164,190,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,40,190,221,56,0,0,0,0,0,0,0,0,162, - 0,0,0,0,0,0,0,0,0,162,0,162,162,94,0,221, - 0,162,0,0,0,0,172,203,183,183,104,0,180,112,1,47, - 81,124,0,50,50,81,180,24,95,56,221,47,221,1,40,112, - 180,81,1,1,180,180,124,0,241,187,0,0,29,162,122,50, - 50,163,163,94,94,162,94,162,0,104,126,0,0,64,34,34, - 29,64,78,183,183,183,183,94,221,183,183,221,183,94,221,183, - 94,162,183,221,221,94,94,221,183,221,0,221,122,221,122,162, - 221,42,221,221,162,221,221,183,78,162,162,162,94,221,162,162, - 221,162,0,183,162,183,221,162,221,221,42,221,94,162,183,246, - 219,235,145,145,235,7,225,235,225,235,155,102,25,25,102,155, - 155,102,155,133,25,248,25,25,248,25,248,248,190,40,92,92, - 173,246,104,104,203,40,75,126,126,0,40,137,0,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,221,0,0,0,0, - 0,0,0,0,0,0,162,0,0,0,0,0,0,122,221,221, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,122,0,0,0,171,159,39,15,142, - 33,38,55,87,177,0,40,241,14,123,11,237,249,206,233,206, - 206,14,14,73,137,222,0,78,104,206,70,6,249,73,73,206, - 233,249,249,62,233,233,251,0,42,40,92,62,31,73,73,206, - 206,137,206,249,233,233,175,251,0,94,183,173,175,10,41,93, - 62,233,31,233,206,168,206,73,79,50,122,78,226,73,14,14, - 92,14,73,14,14,14,14,14,14,137,103,122,94,190,14,73, - 209,73,92,73,206,168,137,168,73,73,73,21,0,50,126,190, - 14,164,215,113,160,11,93,93,93,41,73,73,103,40,227,221, - 251,22,92,226,177,177,73,168,137,190,137,48,137,206,142,162, - 162,47,137,43,137,73,92,137,251,31,137,168,137,137,14,173, - 0,94,0,0,0,212,203,164,104,190,48,137,137,190,104,92, - 92,40,212,40,203,212,203,246,164,212,162,246,37,212,94,246, - 50,212,246,162,162,40,104,22,22,73,22,212,37,22,37,50, - 94,246,163,190,0,162,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,104,183,221,162,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,162,221,162,221,162,221, - 0,212,50,94,221,0,0,0,183,221,142,162,162,40,40,124, - 180,47,221,50,50,50,0,104,200,183,183,142,0,180,122,47, - 40,124,47,180,246,40,40,221,104,183,0,0,29,162,122,78, - 78,50,162,122,78,221,50,42,0,104,187,0,0,44,34,142, - 44,47,151,151,151,55,151,55,186,55,133,55,133,55,38,55, - 38,55,38,38,38,38,38,38,197,38,55,38,38,38,197,38, - 197,197,38,33,197,33,197,33,33,33,33,33,33,33,197,33, - 33,33,197,33,197,197,197,197,33,197,197,38,33,197,197,33, - 0,0,0,132,141,235,225,199,158,158,155,133,155,155,133,155, - 133,155,133,25,25,133,133,25,133,25,217,89,142,48,40,173, - 79,0,104,79,173,190,59,40,203,0,190,11,212,0,246,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,95,57,244,171,92, - 18,38,55,72,48,0,203,40,14,0,237,10,164,14,162,92, - 14,249,73,50,168,48,0,162,241,73,195,13,10,14,22,249, - 14,37,14,206,233,175,251,0,183,203,164,73,206,73,73,73, - 73,73,14,249,94,14,175,173,0,122,0,173,131,249,22,206, - 41,22,14,22,22,22,14,22,55,162,122,94,104,14,14,164, - 22,14,14,22,14,37,22,22,162,222,129,0,219,190,22,22, - 22,22,61,22,14,50,22,22,50,50,73,242,0,227,239,73, - 22,203,113,82,160,116,11,116,160,131,50,37,173,203,183,221, - 103,50,162,37,37,104,14,94,215,37,40,164,92,251,142,221, - 162,104,251,173,92,241,104,92,177,14,164,203,164,22,14,203, - 0,94,221,0,221,50,37,104,104,73,223,190,104,104,226,226, - 164,94,94,94,221,221,246,221,104,37,221,40,92,164,50,94, - 221,221,0,0,0,246,212,22,14,73,22,164,14,14,37,37, - 22,37,0,162,0,221,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,183,221,94,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,221,0,0,0,0,0,0, - 162,22,212,94,221,0,0,0,0,162,142,162,246,40,40,1, - 180,162,40,94,212,162,162,142,200,122,227,104,0,50,0,50, - 0,0,0,162,221,0,246,162,104,187,0,0,29,162,162,0, - 50,42,162,78,94,162,163,162,162,104,111,0,0,44,44,34, - 34,224,151,151,229,151,151,151,151,229,133,151,151,133,151,133, - 186,38,133,55,133,38,38,151,102,38,38,33,38,38,33,102, - 33,33,38,102,33,38,33,38,33,33,33,33,72,33,21,33, - 21,21,72,33,102,38,102,33,72,33,33,38,33,102,33,33, - 0,92,173,94,235,99,145,99,225,235,155,102,155,155,155,155, - 25,133,155,133,25,248,25,102,25,25,155,83,18,40,190,18, - 48,104,87,203,137,123,203,40,40,0,40,104,246,0,0,94, - 94,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,122,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,78,95,184,99,142, - 33,38,55,87,48,0,203,163,73,61,216,206,206,206,14,233, - 73,167,206,206,249,190,0,94,241,14,216,249,233,249,206,62, - 206,22,22,14,14,206,251,0,94,241,14,22,22,14,73,233, - 233,249,175,233,162,113,41,137,0,162,183,79,37,233,206,50, - 249,22,10,14,14,14,14,22,79,50,42,227,104,22,14,22, - 22,14,22,22,22,50,37,22,162,222,173,122,78,190,22,22, - 37,22,37,22,22,93,93,10,22,50,92,242,0,212,95,226, - 50,212,10,131,5,41,160,160,82,82,113,212,228,40,183,221, - 173,50,212,212,37,104,92,22,212,209,92,92,14,137,142,221, - 221,104,190,162,0,162,212,37,50,221,0,0,221,0,0,221, - 221,94,221,246,246,246,50,212,40,164,164,203,40,104,190,92, - 212,0,221,221,0,221,221,0,246,0,0,221,246,212,221,162, - 162,0,0,0,0,162,162,162,0,94,162,0,0,0,0,94, - 50,50,0,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,162,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 94,162,40,50,162,162,94,221,0,0,212,162,0,221,221,0, - 50,162,22,42,37,50,162,190,97,122,239,104,0,50,0,162, - 0,37,162,37,162,22,221,61,104,183,0,0,190,162,50,0, - 50,37,0,212,162,0,162,163,94,104,187,0,0,34,34,34, - 44,224,229,229,229,151,151,229,229,229,151,151,151,55,151,151, - 151,228,151,151,55,133,38,173,55,133,151,38,133,38,38,173, - 38,135,55,151,38,38,18,38,38,38,38,197,38,38,197,33, - 38,33,33,38,48,55,151,38,33,38,20,151,103,38,38,38, - 0,116,128,212,42,219,235,99,225,158,54,186,155,102,133,155, - 155,102,155,25,133,25,133,133,25,25,244,250,138,221,221,48, - 18,40,251,221,18,168,111,40,200,0,94,164,0,0,0,212, - 94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,42,0,190, - 18,38,55,87,177,0,22,40,73,22,216,249,233,233,206,249, - 233,31,233,249,167,177,0,221,203,92,11,233,128,216,113,249, - 249,249,206,14,22,10,129,0,42,203,92,249,233,14,22,22, - 14,14,14,206,50,10,131,173,0,221,221,79,14,14,233,113, - 31,203,14,14,14,22,14,22,103,50,162,212,226,14,14,164, - 164,22,14,22,164,37,22,22,162,168,129,122,183,190,14,37, - 37,22,50,22,10,98,70,206,212,50,73,21,0,227,215,168, - 175,50,162,50,50,162,94,50,22,22,164,162,173,75,50,221, - 228,0,22,37,246,212,14,164,37,164,164,203,164,251,226,221, - 0,104,137,43,250,162,164,164,40,22,22,22,162,50,5,104, - 0,162,221,104,22,246,246,50,0,0,37,104,241,203,22,164, - 221,221,221,221,0,221,0,0,0,0,0,0,0,0,162,162, - 0,162,0,0,0,0,0,0,0,94,221,0,94,246,94,212, - 37,162,0,0,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,203,92,162,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,94,94,50,221,246,94,183,0,0,0,221,0,94,37, - 50,50,37,50,50,221,162,226,104,122,215,142,162,50,162,50, - 0,22,50,37,162,212,0,50,46,239,122,0,29,162,50,0, - 163,162,0,162,163,0,122,50,163,104,111,0,0,225,34,142, - 44,59,245,229,15,229,15,151,229,151,151,151,151,151,103,133, - 55,151,151,151,151,151,55,151,38,38,38,46,173,133,38,151, - 20,173,151,129,38,38,38,38,38,55,38,18,38,38,38,38, - 33,18,33,20,173,229,229,38,38,38,38,38,55,38,18,38, - 92,95,37,192,99,17,225,225,225,225,235,91,145,25,102,155, - 133,155,133,25,25,248,25,248,248,55,83,18,92,137,48,190, - 190,40,0,0,0,0,95,40,40,0,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,221,183,0,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223, - 33,55,55,72,190,0,75,203,73,22,249,31,249,233,233,62, - 249,14,31,206,233,223,0,162,200,14,230,233,137,206,22,206, - 249,249,249,233,249,206,222,0,183,203,164,206,249,14,206,14, - 14,22,164,233,50,37,113,251,0,122,56,173,14,14,14,206, - 249,14,164,14,14,22,14,22,167,162,122,215,142,22,22,22, - 22,22,14,22,164,50,164,14,50,168,129,0,78,172,14,22, - 22,22,22,10,22,216,93,14,22,22,73,21,0,183,215,137, - 41,11,131,41,175,50,122,0,122,162,164,50,251,95,221,221, - 173,162,94,37,162,162,22,164,104,37,92,104,137,167,104,221, - 221,104,168,43,43,37,22,40,212,50,22,10,22,37,82,10, - 221,162,221,73,82,82,0,50,73,137,167,123,137,167,92,221, - 0,221,94,246,162,0,0,0,0,0,162,0,0,0,221,162, - 0,162,0,0,0,0,0,0,221,221,0,0,50,10,10,10, - 0,22,50,0,0,0,0,0,0,0,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,212,164,50,94,162,0,0,0, - 0,0,0,0,0,221,0,0,221,0,0,0,0,0,0,0, - 0,162,94,94,50,221,246,0,221,221,142,162,162,0,0,162, - 162,50,50,50,50,78,50,142,95,122,227,104,162,37,50,22, - 122,50,162,78,162,122,162,0,46,183,0,0,172,162,162,162, - 22,162,162,0,50,50,50,0,50,104,187,0,0,34,44,34, - 44,99,38,133,38,38,38,38,102,38,33,38,38,33,102,38, - 33,33,33,38,33,38,229,38,133,21,33,38,143,38,21,38, - 102,33,33,33,134,21,72,33,33,38,72,134,87,72,72,134, - 72,72,134,38,33,127,33,87,72,72,21,33,38,87,134,72, - 13,221,246,95,47,47,202,171,192,192,49,49,8,152,155,186, - 155,155,155,133,155,245,96,217,114,190,220,0,0,104,173,18, - 0,162,162,0,0,0,95,163,163,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 18,38,38,72,177,0,40,37,14,50,73,14,73,73,14,31, - 233,22,233,249,249,48,0,94,40,92,11,206,130,206,73,73, - 206,206,233,233,249,249,251,0,122,104,92,14,233,14,233,233, - 206,73,22,233,50,221,10,103,0,215,221,79,14,164,22,73, - 233,73,22,22,14,164,22,22,103,50,221,50,226,14,14,164, - 22,164,14,22,22,94,22,22,22,73,129,215,212,223,14,22, - 22,37,22,22,10,22,233,73,37,50,14,18,162,183,26,31, - 82,6,116,60,116,93,216,233,209,14,94,50,228,203,122,50, - 123,0,0,221,0,0,0,162,22,73,10,137,79,220,97,122, - 221,40,137,18,138,50,221,212,203,162,162,37,10,5,5,104, - 221,0,246,113,5,10,246,18,32,32,32,198,85,32,85,104, - 251,0,94,94,0,0,0,0,0,0,0,0,0,221,162,162, - 0,162,162,0,0,0,0,0,0,0,0,162,10,5,10,22, - 0,50,162,0,0,0,162,0,0,0,0,221,221,0,0,0, - 0,0,0,0,0,0,0,0,0,221,162,221,162,0,162,50, - 50,162,0,0,0,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,162,162,104,94,221,221,226,162,50,162,0,0, - 162,0,0,50,50,162,0,190,75,122,227,142,50,22,40,37, - 162,50,22,0,0,0,37,0,46,50,0,0,172,162,162,42, - 50,162,162,162,162,163,50,122,162,104,126,0,0,34,44,142, - 29,47,29,135,20,135,20,48,129,104,212,47,241,226,241,75, - 142,229,151,129,229,151,129,55,253,229,151,79,38,84,226,177, - 201,201,38,79,38,55,79,55,33,201,33,201,197,197,197,197, - 197,197,242,38,197,55,38,38,55,38,55,33,201,33,201,197, - 9,56,141,141,99,47,80,34,202,152,67,235,8,26,139,101, - 101,139,139,101,67,44,64,7,199,40,104,0,0,246,221,0, - 221,221,212,162,246,162,95,40,163,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,0,162,94,94,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 33,38,55,72,190,0,40,40,14,50,249,206,206,14,14,73, - 73,14,14,14,31,190,0,221,40,73,30,73,233,233,73,206, - 206,233,206,73,10,233,48,0,122,200,14,73,14,22,22,14, - 175,233,233,249,50,50,22,251,0,215,183,251,10,206,22,22, - 14,14,22,22,14,22,14,22,167,50,183,246,223,37,22,164, - 22,22,164,164,22,50,22,37,50,73,135,221,227,172,14,50, - 22,37,212,22,14,22,233,73,22,162,41,79,0,183,219,177, - 131,11,11,11,11,116,11,6,82,82,0,37,251,163,0,215, - 251,104,0,48,51,250,28,50,13,128,23,220,18,138,164,162, - 221,164,23,198,170,65,14,40,40,246,0,162,22,22,22,92, - 162,0,215,249,82,5,5,93,115,117,117,198,117,117,32,79, - 43,221,0,162,0,0,0,0,162,50,246,162,0,162,162,221, - 221,164,0,0,0,0,0,0,0,0,0,0,50,162,162,0, - 0,0,0,0,0,0,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,94, - 162,0,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,221,0,0,162,0,15,40,122,221,203,0,0,0,0,0, - 0,162,0,122,122,162,0,48,241,122,183,104,50,50,50,37, - 122,22,37,122,0,0,50,162,46,183,162,122,142,162,37,50, - 162,163,37,163,0,50,61,0,50,104,166,0,0,34,34,44, - 29,47,0,0,0,0,183,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,122,0,0,78,122,122,0,0,0,0,0,0,0,0,0, - 221,0,0,0,0,0,162,0,0,162,0,0,0,0,0,0, - 118,7,145,44,47,214,99,99,215,183,141,235,101,12,12,7, - 101,7,8,7,7,20,18,43,137,0,40,164,164,104,104,0, - 221,0,246,164,190,164,95,163,97,122,122,0,0,0,0,50, - 221,221,162,162,162,0,0,221,221,0,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223, - 21,18,55,87,177,0,75,203,14,50,62,206,233,206,14,206, - 206,22,14,92,249,177,0,94,40,168,93,206,113,233,206,14, - 206,206,73,73,14,206,222,0,183,241,164,22,37,164,14,162, - 164,73,73,233,22,37,10,251,0,0,215,251,14,113,73,50, - 14,22,22,212,164,22,22,22,103,162,0,94,226,22,37,22, - 22,164,14,22,22,22,22,22,50,177,48,122,78,190,14,50, - 22,22,22,22,164,164,206,73,22,162,216,18,0,163,187,251, - 175,216,60,60,11,11,160,60,160,160,0,37,228,40,183,215, - 137,18,173,79,115,32,117,79,115,117,32,9,118,204,14,221, - 0,73,32,157,32,9,50,10,73,10,50,162,162,50,131,177, - 122,162,183,175,5,10,22,233,23,65,19,123,173,43,87,18, - 18,0,162,221,0,0,0,190,40,246,212,221,94,94,162,0, - 123,137,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,0,0,0,0,221,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,40,0,0,0,0,0,0, - 162,162,162,0,0,0,129,75,122,0,212,0,122,122,162,0, - 162,162,0,0,0,162,0,172,104,122,227,241,50,46,162,14, - 122,22,50,162,162,162,50,162,46,183,162,0,142,162,50,22, - 61,22,22,22,162,162,22,162,37,46,187,0,0,192,34,44, - 171,34,0,0,0,0,59,0,0,0,0,0,0,0,0,0, - 0,0,162,78,162,59,0,0,0,0,0,0,0,0,0,0, - 0,122,0,0,59,215,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,59,212,0,0,0,0,0,0,0, - 19,141,254,215,132,254,221,0,0,0,42,182,150,8,8,235, - 235,235,7,235,7,67,173,11,190,221,40,92,40,164,40,50, - 104,0,221,221,92,164,40,40,75,0,221,0,221,0,0,37, - 50,162,0,0,0,0,0,162,221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,142, - 21,38,55,87,177,162,22,40,14,50,206,206,92,22,50,206, - 73,237,206,14,206,190,0,221,40,251,216,73,206,206,14,73, - 73,10,22,14,14,73,177,0,212,37,164,14,10,73,233,73, - 14,10,37,14,22,50,113,251,0,78,215,251,14,14,206,14, - 73,22,22,22,22,37,164,50,167,78,221,227,226,22,37,164, - 37,37,164,22,212,22,22,22,50,168,48,0,78,29,14,22, - 22,50,22,50,22,164,14,73,22,50,14,197,0,40,42,48, - 249,130,179,30,250,51,93,11,10,82,221,22,251,212,183,221, - 251,0,190,19,170,170,194,237,53,85,193,189,27,117,177,221, - 0,206,32,157,32,250,162,82,82,5,10,0,10,10,82,175, - 0,212,94,104,0,0,0,0,0,162,162,0,221,0,0,0, - 0,221,221,0,0,0,0,190,221,0,94,246,246,50,162,0, - 167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,37,162,0,0,221,221, - 0,0,0,0,0,0,0,0,0,221,0,0,0,0,0,0, - 0,0,0,0,162,0,173,200,122,0,0,0,0,0,0,0, - 0,0,0,0,162,0,162,162,221,42,215,241,22,209,162,209, - 0,22,78,50,0,162,50,0,24,183,0,0,35,162,0,50, - 50,162,50,22,50,78,37,162,50,104,111,162,0,34,142,47, - 29,44,0,0,122,0,64,0,0,0,0,0,0,0,0,0, - 0,0,0,42,0,64,0,0,0,0,0,0,0,0,0,0, - 0,122,122,0,44,239,0,0,0,0,0,0,0,0,0,0, - 122,78,0,183,0,122,0,122,0,0,0,0,0,122,122,239, - 43,166,122,221,221,0,0,0,122,0,122,0,122,183,42,7, - 225,99,145,235,145,141,215,92,246,221,0,221,0,221,212,40, - 221,221,0,0,221,122,212,94,40,122,122,0,0,0,0,162, - 50,50,162,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190, - 33,38,38,72,177,162,75,203,14,50,62,249,206,73,206,31, - 206,41,233,233,31,177,0,50,94,167,113,73,206,73,14,175, - 73,206,14,14,22,113,48,0,126,40,50,93,93,162,113,73, - 73,206,206,73,206,0,73,251,0,94,246,48,14,22,22,73, - 73,22,37,22,22,37,22,50,103,162,122,94,226,22,50,37, - 22,37,22,37,50,37,22,50,162,177,48,0,94,142,14,50, - 37,37,37,22,164,37,92,73,50,37,92,18,0,40,246,177, - 175,233,130,5,5,5,113,73,0,50,162,50,228,212,221,56, - 137,173,172,87,251,92,22,50,50,22,23,189,107,204,22,221, - 162,73,117,193,118,137,162,10,5,50,164,0,50,10,10,173, - 0,164,94,162,0,221,0,0,40,0,0,0,162,221,162,162, - 221,0,0,0,0,162,0,162,162,162,0,162,162,221,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,246,0,0,0,0,221,190,221,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,162,162,0,162,0,0, - 162,162,162,162,221,0,203,221,0,78,212,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,162,215,104,37,37,164,22, - 50,50,50,0,162,122,50,162,104,183,162,0,200,50,162,50, - 50,78,122,162,50,50,162,50,50,241,95,183,0,44,34,44, - 29,142,0,122,75,0,64,0,0,0,0,122,0,0,0,0, - 0,0,0,227,0,35,0,0,0,0,0,0,0,0,0,0, - 0,122,203,94,44,212,0,0,0,0,0,122,0,0,0,0, - 122,183,122,162,0,0,0,0,122,0,0,0,0,122,183,122, - 43,246,183,183,0,0,0,0,122,0,122,42,122,42,221,235, - 215,221,95,246,95,40,221,50,0,221,183,212,0,0,0,0, - 0,0,0,0,162,0,221,0,162,162,122,221,0,0,162,0, - 162,50,162,0,0,50,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190, - 18,103,173,72,190,162,75,40,92,73,233,73,206,92,73,206, - 73,14,14,73,233,226,0,212,212,168,22,14,73,22,14,249, - 73,233,73,73,14,73,190,0,50,40,50,110,230,0,233,14, - 37,22,22,73,233,14,14,130,122,183,163,48,14,73,14,22, - 14,22,14,164,14,14,22,14,123,162,56,94,104,14,22,164, - 22,50,22,14,22,22,73,22,22,73,190,122,221,142,14,22, - 14,22,37,22,14,22,137,73,37,14,73,79,122,126,227,190, - 249,233,233,123,222,14,10,5,22,212,22,37,129,50,183,122, - 48,246,48,104,79,48,162,203,162,190,70,18,23,65,0,221, - 162,22,65,65,220,162,61,22,50,14,104,94,94,221,164,129, - 0,0,0,0,0,0,0,0,246,0,0,0,162,221,221,162, - 94,0,0,162,50,50,162,50,203,50,94,162,162,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,162,226,221,0,0,0,104,173,246,0,162,0,0,221, - 0,0,0,162,162,0,0,0,0,221,221,162,162,37,162,50, - 37,37,50,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,122,122,212,50,37,209,37, - 22,162,22,0,50,162,50,162,35,94,78,0,200,162,50,50, - 37,50,162,122,162,42,122,212,94,40,126,78,0,44,34,44, - 29,47,0,122,104,0,64,0,0,0,0,0,122,0,0,0, - 0,0,162,47,0,64,0,0,0,0,122,0,0,0,0,0, - 0,42,226,212,192,50,0,122,0,0,0,162,162,0,0,0, - 50,59,215,122,0,122,0,0,162,162,0,0,0,50,200,94, - 79,246,122,0,0,0,0,0,0,0,0,42,219,221,221,40, - 0,0,0,0,40,0,0,0,0,162,94,221,0,0,0,0, - 0,0,0,0,40,0,162,221,0,221,0,215,0,0,0,162, - 162,50,50,162,246,40,215,0,0,162,50,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47, - 33,55,55,21,177,0,203,203,37,164,14,137,241,14,164,14, - 92,137,92,73,226,190,0,212,40,212,73,14,14,73,164,203, - 73,164,14,14,14,22,177,0,163,50,0,216,10,164,73,73, - 92,92,92,73,92,92,22,48,0,162,212,92,73,73,73,73, - 73,137,73,73,73,73,73,14,251,162,183,215,104,73,177,104, - 22,14,14,92,177,190,73,177,73,48,226,122,221,142,164,73, - 73,92,92,92,104,73,14,92,226,92,104,103,0,75,94,241, - 164,92,241,92,92,226,226,190,73,226,73,92,222,40,94,0, - 92,164,104,92,190,137,123,92,190,251,137,104,251,190,203,78, - 50,203,22,92,251,164,73,190,73,48,177,190,177,92,14,203, - 0,0,221,0,0,0,0,0,0,0,162,162,0,0,162,162, - 0,0,0,0,162,50,50,50,37,246,162,0,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 0,0,0,0,0,0,0,221,246,221,0,0,0,162,0,221, - 162,0,0,0,0,0,0,0,0,0,0,162,94,50,50,50, - 37,22,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,122,0,221,94,212,50, - 42,50,162,122,183,78,215,162,75,183,162,122,75,162,162,42, - 162,163,162,42,50,221,162,227,162,40,187,94,0,192,34,44, - 29,47,0,122,142,0,64,0,0,122,0,0,0,122,0,0, - 0,0,221,47,0,44,0,0,122,0,0,122,0,0,0,0, - 122,0,226,37,192,40,0,0,122,122,78,162,162,122,0,0, - 200,142,212,0,122,0,0,78,162,78,122,0,0,200,142,40, - 104,221,122,0,0,0,0,0,0,0,0,0,221,221,246,212, - 94,162,0,162,221,0,0,0,94,221,0,221,0,0,0,0, - 0,0,0,0,162,0,0,246,0,0,0,0,162,0,0,221, - 50,50,50,162,94,50,94,0,0,162,50,50,50,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 33,151,103,72,177,162,75,37,37,92,73,62,14,14,50,206, - 206,41,14,31,62,226,0,50,203,14,216,233,73,206,14,22, - 233,73,73,206,41,206,226,0,126,212,122,216,206,14,233,22, - 73,175,41,175,206,249,233,48,162,94,95,104,206,206,233,206, - 73,164,14,22,14,73,73,10,123,162,162,50,104,50,50,206, - 175,204,160,50,14,22,14,14,14,137,46,122,94,104,203,14, - 22,50,41,113,22,14,206,14,73,73,73,129,0,40,227,164, - 14,168,50,212,37,212,22,50,164,164,14,14,177,212,183,221, - 142,164,164,22,212,190,173,162,190,190,22,92,137,14,203,221, - 94,40,164,31,190,73,73,92,73,14,14,14,92,164,221,221, - 0,0,0,162,162,0,162,0,162,162,162,162,162,0,0,0, - 0,0,0,0,0,0,0,0,162,0,162,162,0,0,162,221, - 162,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,40,0,0,0,221,0,0,0,122,221,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,221, - 78,50,78,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,0,122,122,0,0,0,162, - 183,162,50,162,162,50,183,162,40,78,42,122,95,162,94,162, - 50,122,183,50,162,183,162,122,162,40,187,42,0,34,34,44, - 29,47,0,122,46,0,64,0,0,0,0,0,0,0,122,0, - 0,0,94,46,0,64,0,0,122,122,0,0,122,0,0,0, - 0,0,226,212,171,50,0,0,0,0,162,122,122,122,0,0, - 75,29,183,0,122,122,0,162,0,122,122,0,0,203,34,239, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 221,0,215,212,221,0,0,0,0,162,0,221,162,0,0,0, - 0,162,0,162,0,221,0,122,221,0,162,94,221,0,0,0, - 0,0,0,0,0,221,122,0,0,0,162,50,50,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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, - 33,55,55,21,48,162,75,40,212,73,14,14,73,14,14,73, - 206,168,10,22,137,190,0,50,40,164,62,233,73,73,233,14, - 206,233,206,233,249,73,24,0,183,37,162,73,14,206,14,14, - 113,206,113,14,22,206,62,177,162,122,239,92,73,206,73,14, - 14,50,22,164,22,22,22,22,103,162,183,126,94,206,216,93, - 30,70,160,0,50,37,22,164,14,222,104,122,221,142,164,22, - 22,50,41,233,22,92,164,22,22,50,92,129,0,163,239,164, - 212,0,50,50,162,50,212,212,212,50,162,50,48,212,162,162, - 190,164,212,212,162,162,162,162,212,37,203,40,104,92,203,183, - 78,104,92,22,92,37,22,50,50,37,50,40,221,162,0,221, - 0,0,0,94,162,162,162,162,162,0,0,162,162,162,162,0, - 0,0,0,0,0,0,0,0,0,162,0,221,0,0,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,50,162,0, - 0,0,0,104,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,162,0,0, - 162,0,37,22,0,50,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,104,94,0,0,183,0,0,0,0, - 162,162,94,162,162,162,162,94,163,183,221,0,200,221,0,94, - 50,162,162,50,162,50,162,0,162,40,111,94,0,44,44,44, - 29,47,0,42,142,0,64,0,0,122,0,0,122,0,0,0, - 0,0,183,142,122,44,0,0,0,0,122,0,0,122,122,122, - 122,0,223,37,171,227,0,122,0,122,122,122,122,122,0,0, - 203,171,212,0,0,0,122,122,162,122,122,0,0,203,171,215, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,221,0,0,0,0,0,0,0,162,0,221,0,0,0, - 0,221,162,0,0,0,0,221,183,0,221,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,162,162,162,162,162, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,0,0,0,0,0,0,142, - 33,55,228,72,177,162,75,37,212,206,206,206,233,233,175,233, - 233,73,206,50,130,177,0,50,40,212,206,233,233,249,249,14, - 62,233,233,233,62,206,104,0,50,97,50,10,14,237,233,249, - 73,164,22,14,14,14,206,177,0,0,126,104,14,206,206,73, - 10,37,22,164,22,22,37,22,123,162,221,227,122,195,98,216, - 9,165,82,162,22,22,22,22,22,168,104,122,162,47,164,14, - 22,22,50,50,22,14,37,22,22,50,14,222,0,212,50,104, - 94,221,50,50,50,50,50,50,50,50,221,50,222,212,162,94, - 190,164,203,37,212,50,50,50,246,246,50,212,212,92,203,221, - 162,40,92,37,164,212,50,50,50,50,50,162,162,0,94,162, - 162,162,221,212,162,0,0,0,0,0,0,162,221,0,162,94, - 162,162,162,0,0,0,162,162,221,221,0,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,50,22,50, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 162,0,50,37,162,37,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,47,183,0,0,221,0,0,162,0, - 0,94,162,0,162,162,162,50,163,183,122,0,75,122,0,94, - 162,0,0,37,162,94,61,221,162,212,166,78,0,44,44,44, - 34,59,0,78,142,0,64,0,0,0,0,0,0,122,0,0, - 0,0,162,142,122,44,0,0,122,0,122,122,0,122,0,0, - 122,0,223,50,171,50,0,122,0,0,0,0,122,42,221,50, - 212,171,50,0,0,0,122,122,0,122,42,221,50,212,171,50, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,221,162,0,0,0, - 0,0,0,0,0,0,221,0,0,0,0,0,0,0,162,162, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 201,38,103,21,48,0,241,40,22,14,249,41,206,206,233,249, - 62,216,206,22,31,190,0,183,164,164,206,62,249,22,14,22, - 233,14,164,37,206,233,226,122,40,40,162,41,93,22,14,175, - 22,14,233,206,175,14,206,190,0,162,163,104,14,37,10,73, - 22,37,22,37,22,22,37,14,103,162,183,162,162,60,117,230, - 230,60,82,162,164,22,14,164,22,137,200,0,221,104,14,37, - 22,22,22,22,22,37,37,37,164,50,73,48,0,95,215,92, - 50,162,162,162,221,221,221,94,221,0,0,94,222,212,122,162, - 177,92,22,212,212,94,212,50,94,212,212,212,94,92,212,221, - 183,40,104,37,22,50,50,212,50,37,162,50,50,162,203,226, - 0,162,162,246,0,0,0,0,0,0,221,0,0,94,162,246, - 40,37,50,162,0,162,0,0,0,162,0,221,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 162,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,0,50,162,0, - 162,0,0,0,0,0,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,190,50,162,0,221,0,0,122,0, - 0,162,50,162,50,50,50,162,75,162,122,122,95,0,0,162, - 0,162,0,61,122,50,241,50,162,239,166,94,0,44,34,64, - 29,59,0,42,223,0,64,0,122,122,0,122,122,0,0,122, - 0,0,183,47,122,64,0,122,0,122,0,0,122,122,122,122, - 0,0,177,203,171,183,0,0,122,122,122,122,0,0,0,200, - 37,171,183,0,122,122,0,122,122,0,0,122,203,37,171,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,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,0,0,0,0,0,0,0,0,162,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0, - 0,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 201,38,55,72,48,0,203,40,50,37,73,206,22,22,212,164, - 92,206,73,14,206,223,0,50,163,50,14,14,233,14,14,14, - 206,14,73,22,233,14,226,0,163,40,0,13,110,10,22,14, - 14,113,233,73,206,206,73,226,0,162,163,40,14,92,73,14, - 14,14,14,14,14,14,14,14,31,162,94,50,215,113,93,107, - 13,90,113,22,14,73,206,14,14,168,104,0,183,104,164,92, - 14,14,10,92,206,14,14,14,92,14,92,177,0,163,215,104, - 22,212,164,37,22,164,164,22,164,164,37,22,222,40,0,162, - 104,203,164,40,40,40,40,212,164,203,40,203,203,164,212,0, - 221,212,164,104,104,104,14,92,164,73,164,164,92,92,226,177, - 0,162,94,212,0,0,0,0,162,221,246,221,0,212,50,0, - 94,164,203,50,94,94,162,50,94,50,162,94,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,40,162,0,162,22,50,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,29,227,78,122,94,0,0,0,0, - 0,162,162,162,50,50,94,162,75,42,122,221,163,0,0,162, - 0,50,162,37,162,50,50,162,183,94,126,183,0,44,142,44, - 20,95,0,42,142,0,64,0,0,0,0,0,0,122,0,122, - 122,162,246,142,0,64,0,122,122,122,122,0,0,122,122,122, - 122,122,177,212,171,50,0,0,0,122,122,122,122,0,221,104, - 212,171,50,0,0,122,0,122,122,122,122,56,104,212,171,50, - 0,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,162,162,162,0,122,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,162,0, - 0,0,0,0,0,0,0,0,0,0,162,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,122,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,162,162,0,0,0,0,0,0,0,0, - 0,0,162,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,203, - 222,129,48,103,92,122,50,162,162,50,50,163,203,104,24,75, - 203,212,212,212,246,164,0,221,246,221,40,40,215,40,203,203, - 203,40,212,212,162,94,203,122,94,50,162,22,206,40,241,104, - 104,104,104,203,40,215,246,164,162,0,183,162,50,203,40,104, - 241,104,92,104,104,104,164,212,142,50,122,162,0,0,0,0, - 0,221,40,104,203,40,212,212,246,50,40,0,0,40,162,50, - 40,203,40,37,212,164,203,203,37,50,94,104,0,221,94,212, - 40,203,203,203,203,203,22,203,40,203,40,246,104,212,0,221, - 40,221,50,212,246,221,50,212,212,40,94,246,246,246,212,221, - 221,246,221,94,50,212,212,212,212,40,40,212,50,212,94,104, - 0,221,94,94,162,162,0,94,246,94,94,0,0,162,164,212, - 221,212,212,94,221,221,221,221,221,50,50,50,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,221,0,0,162,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,200,183,94,42,227,0,0,0,0, - 0,162,162,122,94,162,162,162,227,162,122,122,95,0,0,0, - 0,50,0,50,162,78,78,162,0,94,183,183,0,44,44,44, - 29,75,0,219,223,0,64,0,122,0,0,0,0,0,0,0, - 162,0,94,47,122,29,0,0,0,0,0,122,122,122,122,0, - 122,0,48,212,15,183,0,122,122,0,0,0,122,78,122,223, - 37,152,183,0,122,0,0,0,0,122,162,0,223,22,152,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,0,0,0,0,0,0,0,122,0,0,0,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,50,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,221, - 221,0,122,0,0,122,0,0,0,221,221,221,0,0,221,162, - 94,221,221,0,0,0,0,0,0,0,0,0,221,183,246,94, - 227,215,221,221,0,0,0,0,0,0,162,0,0,221,221,221, - 246,221,221,221,221,0,0,0,0,0,0,0,122,122,0,221, - 162,221,183,221,0,221,0,221,0,0,0,0,122,122,0,221, - 122,56,56,215,221,183,221,221,122,162,0,0,0,0,0,162, - 0,221,215,221,215,221,221,56,221,221,162,0,0,0,0,162, - 221,78,94,183,183,215,56,162,122,183,221,183,162,0,0,221, - 162,221,212,246,221,0,162,221,0,221,0,221,162,0,162,0, - 0,221,0,0,0,0,0,0,0,0,0,221,0,0,0,0, - 0,0,0,0,0,162,221,221,221,246,162,162,0,0,212,164, - 50,94,162,162,0,50,37,50,162,50,162,50,162,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,162,122,221,162,0,0,162,122,0, - 122,122,0,0,122,122,0,0,0,78,0,0,162,0,0,0, - 0,0,221,0,0,0,122,0,0,0,162,162,0,126,163,111, - 95,162,0,183,34,0,64,0,0,0,0,0,0,0,0,122, - 122,0,227,142,122,44,0,122,122,122,122,0,0,122,122,122, - 122,122,177,50,229,26,122,122,122,0,0,122,0,0,122,223, - 212,229,42,122,122,122,0,0,122,0,0,122,142,212,229,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,162,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,162, - 0,162,162,162,162,0,0,162,162,162,0,0,162,162,162,162, - 162,162,162,0,162,162,162,0,162,162,0,221,162,162,162,162, - 162,0,162,162,221,162,0,162,162,162,94,162,0,162,0,0, - 0,0,221,162,162,162,0,162,0,162,162,162,0,162,162,162, - 162,162,162,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,122,122, - 122,122,0,122,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,215,221, - 246,246,215,0,0,221,162,0,0,0,0,0,0,0,0,162, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,221,221,221,50,162,0,0,0,162,212, - 162,162,162,50,50,50,37,162,50,162,162,0,0,162,94,162, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,162,0,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,42,223,0,64,0,0,122,0,0,0,0,122,0, - 122,0,183,104,42,44,0,0,122,0,0,122,122,122,122,0, - 122,122,172,50,152,94,0,162,122,122,122,0,0,0,0,142, - 50,152,94,0,78,122,122,122,0,0,0,0,223,50,152,94, - 0,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,0,0,0,0,162,0,0,0,0, - 0,0,221,162,0,0,162,0,0,122,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 164,73,73,92,73,14,14,22,14,14,14,14,92,92,73,14, - 92,92,92,92,92,73,14,92,73,73,73,73,73,168,168,73, - 168,73,168,206,137,168,73,73,168,168,168,73,73,137,73,168, - 137,137,168,137,137,168,137,137,222,168,137,137,222,137,137,137, - 168,137,137,130,168,137,168,168,168,73,73,73,73,168,168,177, - 73,73,168,168,73,177,73,92,73,73,168,73,73,177,168,73, - 73,168,137,168,168,73,73,73,92,92,73,177,168,73,92,168, - 168,168,168,137,177,168,168,177,168,92,168,190,73,226,92,203, - 40,40,221,162,203,40,50,94,221,221,246,94,22,92,92,92, - 92,164,92,168,137,190,73,164,164,164,92,92,92,92,164,92, - 164,50,203,212,0,0,0,162,162,162,0,0,0,0,0,0, - 162,0,162,162,162,162,162,162,162,162,162,0,0,0,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,162,162,0,162,0,162,162,0,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 0,0,0,219,34,0,64,0,0,0,0,0,0,0,0,0, - 122,162,227,47,122,64,0,0,122,122,0,0,0,122,122,122, - 122,122,48,50,152,162,122,122,122,0,122,122,0,0,221,226, - 50,152,50,0,122,122,0,122,122,0,0,221,104,50,152,50, - 40,183,94,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,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,0,0,0, - 0,0,162,0,0,0,0,0,40,183,94,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,103,222,253,168,177,92,164,226,84,73,177,84,168,177,177, - 84,73,84,168,84,168,222,222,222,222,129,222,222,222,222,222, - 129,222,222,129,129,129,251,129,251,129,222,228,129,228,129,228, - 129,103,228,228,228,228,129,228,228,55,103,55,103,103,31,228, - 129,228,168,103,228,103,55,129,228,228,55,31,173,55,228,228, - 228,251,55,55,55,79,228,55,55,55,55,103,55,201,79,38, - 55,79,38,79,201,173,228,103,31,228,55,79,55,55,228,251, - 55,38,55,79,55,79,79,55,79,55,103,103,251,137,104,104, - 104,40,40,226,222,14,203,104,212,221,0,226,137,92,190,48, - 177,48,251,55,222,168,222,228,228,228,228,228,103,228,31,228, - 251,73,164,94,162,0,0,221,162,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,241,212,94,162,162,0, - 0,221,0,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,203,50,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,190,212,0,0,221,221,0,0,212,104,50,0,221, - 212,212,162,0,0,0,162,241,241,0,0,0,0,0,0,0, - 0,0,0,162,0,163,226,177,222,48,177,177,177,177,84,92, - 177,226,24,92,92,209,92,92,24,14,226,209,92,209,209,164, - 209,164,22,22,203,37,37,50,50,50,50,50,50,164,37,241, - 162,0,0,183,223,0,64,0,122,0,0,0,0,0,0,0, - 0,0,94,142,42,44,0,122,122,122,122,122,122,0,122,0, - 122,0,177,37,152,221,0,122,122,0,0,0,122,0,0,104, - 50,152,0,0,122,0,0,122,0,122,122,0,104,37,152,221, - 212,221,94,0,0,0,0,0,0,0,0,0,0,0,0,212, - 162,162,162,0,0,0,0,0,162,0,0,0,0,0,94,50, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,221,221,212,221,94,0,0,0,0,0, - 0,0,0,0,0,0,0,212,162,162,162,0,0,0,0,0, - 0,0,0,0,0,0,94,50,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,33,55,55,103,135,222,222,129,135,222,222,177,168,222,177, - 168,177,84,177,226,177,177,168,168,222,222,135,222,222,222,168, - 135,168,253,222,168,222,129,129,129,228,135,129,129,129,222,129, - 129,222,178,229,135,222,222,129,129,151,222,103,135,151,135,222, - 229,129,35,129,151,228,103,129,229,228,133,129,129,228,55,229, - 129,129,251,228,151,228,55,55,228,228,55,173,55,151,38,173, - 228,151,103,133,55,55,229,151,228,151,55,55,129,228,55,135, - 173,55,173,151,55,55,151,173,151,103,151,173,222,104,40,142, - 104,164,173,48,104,40,203,164,221,221,203,173,226,50,190,92, - 24,129,129,55,129,129,129,129,129,228,129,129,228,55,228,229, - 48,164,0,0,221,212,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,46,40,0,0,162,212, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,212,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,163,163,163,162,0,0,0,0,0,162,162,0,0,0,75, - 46,226,163,0,0,0,50,135,223,162,0,0,0,0,0,0, - 0,0,162,162,0,162,46,48,135,129,129,253,222,223,135,135, - 135,177,226,223,226,223,253,253,223,177,177,226,253,190,253,177, - 223,223,223,223,209,241,24,46,241,209,46,209,46,226,24,177, - 163,0,0,219,34,0,64,0,0,0,0,0,0,0,0,0, - 0,0,183,104,42,64,0,0,122,122,0,0,122,0,122,122, - 122,0,177,94,152,162,0,122,122,0,122,0,122,0,0,203, - 50,152,162,0,122,122,0,122,0,0,122,0,212,50,171,162, - 212,0,246,94,0,0,0,0,0,0,0,0,0,0,0,162, - 94,162,221,0,0,122,221,0,0,0,0,0,0,162,221,50, - 0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,162,183,162,212,0,246,94,0,0,0,0, - 0,0,0,0,0,0,0,162,94,162,221,0,0,122,221,0, - 0,0,0,0,0,162,221,50,0,94,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,0, - 21,66,102,197,38,33,38,38,33,38,38,197,38,38,55,55, - 55,55,55,103,103,103,229,55,55,55,55,228,151,228,38,55, - 55,129,55,55,151,55,228,129,38,38,55,55,55,103,55,38, - 55,228,35,151,151,229,55,103,55,55,133,55,38,55,55,38, - 55,55,55,103,55,38,103,151,55,228,55,55,103,133,55,55, - 55,55,228,151,103,229,151,55,151,38,103,151,55,103,38,55, - 55,38,55,38,38,55,38,55,55,55,173,38,38,151,151,228, - 151,55,103,129,151,55,55,55,55,55,228,48,172,104,203,142, - 46,48,55,135,226,177,241,246,0,203,104,212,40,142,223,177, - 229,135,48,223,129,151,228,228,229,228,151,228,151,55,129,190, - 162,94,203,40,212,212,94,246,0,0,94,162,162,162,0,0, - 0,0,212,162,0,0,0,0,0,0,162,162,162,0,40,223, - 163,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,46,104,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,215,104,75,215,50,162,0,0,0,0,122,104,59,46,20, - 135,151,229,48,229,135,135,135,46,0,0,0,0,0,0,0, - 0,0,0,0,221,40,47,162,163,34,135,228,229,129,229,135, - 223,229,135,135,135,20,135,15,48,229,20,20,135,135,135,229, - 253,229,135,253,29,177,135,20,135,135,135,15,135,15,229,133, - 46,0,0,221,29,0,64,0,0,0,0,0,0,0,122,0, - 0,0,246,47,56,44,0,122,122,0,122,122,0,122,122,122, - 122,0,48,50,245,162,122,122,0,0,122,122,122,122,122,94, - 50,245,162,122,122,122,0,122,122,122,122,122,212,37,152,221, - 203,0,0,162,0,0,0,0,0,162,0,162,0,0,221,162, - 94,162,162,0,0,221,0,0,0,0,0,0,0,162,221,221, - 37,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,203,0,0,162,0,0,0,0, - 0,162,0,162,0,0,221,162,94,162,162,0,0,221,0,0, - 0,0,0,0,0,162,221,221,37,37,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0, - 66,170,66,66,134,66,66,66,250,247,66,66,66,66,134,66, - 134,66,134,66,134,43,33,72,134,134,156,134,134,72,72,143, - 156,103,88,242,197,72,197,33,72,197,72,134,197,33,197,197, - 38,197,38,103,38,201,197,38,197,201,38,55,55,151,103,38, - 197,102,38,38,33,33,197,197,127,33,33,33,88,33,33,38, - 38,38,129,103,38,55,38,33,38,197,33,38,55,201,38,72, - 197,228,103,55,38,201,103,55,55,55,228,229,79,33,38,55, - 38,38,38,55,201,38,33,38,33,33,229,55,251,48,129,251, - 103,38,55,151,48,48,200,0,0,212,162,0,40,212,47,104, - 200,162,97,142,135,55,151,55,55,55,55,38,55,31,223,241, - 212,40,241,212,0,0,221,162,40,40,40,50,94,162,0,0, - 0,0,94,162,94,200,94,221,94,40,212,0,0,162,0,162, - 0,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,183,94,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 221,0,0,0,0,183,0,0,40,183,227,59,229,38,197,33, - 55,55,55,151,33,38,135,163,0,0,0,0,0,0,0,0, - 0,0,0,221,0,94,226,75,122,47,223,229,38,38,38,229, - 229,186,151,151,229,151,229,151,151,151,135,229,229,229,151,151, - 229,186,151,133,151,151,151,151,133,151,151,151,151,133,55,102, - 200,0,0,183,29,221,64,0,0,0,0,0,0,0,0,0, - 0,0,183,47,0,64,0,0,122,122,0,122,0,122,122,122, - 122,0,48,50,152,162,0,122,122,0,122,122,0,122,0,0, - 163,171,0,0,122,0,0,122,122,0,0,0,0,40,171,162, - 212,162,0,0,0,0,0,221,162,162,0,0,162,162,162,162, - 0,162,0,0,0,0,0,0,0,0,0,0,221,221,94,37, - 203,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,221,0,0, - 0,0,0,0,0,0,0,0,212,162,0,0,0,0,0,221, - 162,162,0,0,162,162,162,162,0,162,0,0,0,0,0,0, - 0,0,0,0,221,221,94,37,203,221,0,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,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,0,0,0,246,0,0,0,0, - 172,129,177,142,104,142,142,142,226,190,142,226,223,177,190,190, - 48,48,222,15,135,15,24,29,135,229,48,129,48,177,29,29, - 48,223,172,253,29,223,24,24,223,24,223,223,223,223,44,241, - 200,64,224,35,59,59,142,64,75,75,97,163,42,26,26,50, - 203,241,75,46,29,48,20,48,129,135,135,135,129,222,253,48, - 253,24,177,177,253,129,48,177,29,190,172,129,48,172,223,20, - 172,20,48,177,177,48,223,178,48,178,223,226,226,222,177,222, - 222,177,177,129,253,129,129,129,229,229,129,20,129,129,151,151, - 55,229,222,223,241,163,212,0,212,94,0,0,0,0,221,162, - 0,0,221,24,226,226,24,177,177,177,177,253,24,92,226,223, - 104,164,212,162,0,0,221,0,50,162,94,0,0,0,0,0, - 0,0,0,0,94,246,0,162,227,50,75,203,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,221,0,0, - 0,0,0,0,200,46,0,221,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,183,59,34,135,133,55,38,38,135,135, - 229,55,38,38,129,200,162,0,0,0,0,0,0,221,246,221, - 0,40,0,0,221,40,212,104,59,162,104,163,75,229,38,38, - 33,38,197,33,102,197,197,38,197,38,55,102,38,38,102,33, - 102,33,33,197,102,38,33,102,38,88,33,33,102,102,33,143, - 223,0,0,78,223,0,64,0,0,0,0,0,0,0,0,0, - 0,0,221,200,183,64,0,0,0,0,0,0,0,0,0,0, - 122,0,48,212,171,0,0,0,0,0,0,0,0,0,0,0, - 162,224,122,0,0,0,0,0,0,0,122,0,122,162,224,162, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,0, - 0,0,0,0,0,0,0,0,0,0,0,50,50,0,162,50, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,162,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,0,0,0,0,0,0,0, - 0,0,0,50,50,0,162,50,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,37,162,0,0,0,0,0,0,0,22,0, - 0,0,0,0,0,94,50,0,0,0,0,0,0,162,162,0, - 0,0,0,0,0,0,78,212,183,42,0,0,0,0,0,0, - 0,162,0,162,162,162,162,0,162,162,162,162,50,50,94,221, - 221,162,221,162,0,221,0,0,0,212,212,94,0,0,0,0, - 0,0,0,0,0,0,0,221,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,40,94,0,0,0,163,104,94,0,0, - 0,0,0,203,137,246,0,221,79,190,40,104,0,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,94,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,221,94,50,75,241,163,221,0,0, - 162,75,241,241,50,0,0,0,0,0,0,0,0,78,0,0, - 0,221,0,0,94,94,221,246,40,162,94,212,0,0,50,241, - 226,46,241,209,92,46,142,24,142,46,24,190,177,177,177,177, - 226,223,46,104,226,46,226,223,24,24,226,223,177,226,46,142, - 94,0,0,0,75,0,224,0,0,0,0,0,0,0,0,0, - 0,0,221,94,56,99,0,0,0,0,0,0,0,0,0,0, - 0,0,24,221,171,46,75,200,200,200,97,42,219,122,227,122, - 40,241,75,241,200,200,200,97,42,183,122,183,162,95,241,200, - 0,0,0,0,0,0,0,0,0,0,162,221,221,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,37,50,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,221,221,162,162,0,0,0,0,0,0,0,0,0, - 0,0,0,37,50,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,200,129,46,239,0,0,0,0,0,0,135,226, - 94,0,0,0,0,47,135,221,0,0,0,0,0,95,24,162, - 0,0,0,0,0,0,75,46,46,46,126,78,0,162,162,162, - 50,94,94,50,50,50,50,50,50,50,203,164,203,22,212,164, - 37,203,164,37,203,37,203,50,163,223,223,142,47,183,0,0, - 221,50,212,0,246,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,172,104,0,0,162,229,201,142,95,183, - 0,0,0,190,173,221,221,172,92,104,48,6,203,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,162, - 162,221,0,0,0,0,0,0,104,246,0,0,0,0,0,0, - 0,0,0,162,221,0,0,0,0,162,0,0,0,0,0,0, - 162,162,162,221,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,78, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0, - 0,0,0,0,0,0,94,164,50,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,59,187,0,0,0,0, - 0,166,235,182,171,187,0,0,0,122,0,0,0,44,15,171, - 229,151,49,15,44,0,245,133,133,133,133,133,186,133,133,133, - 38,152,235,15,122,15,102,38,38,133,38,133,55,133,133,38, - 186,8,29,0,152,55,151,151,151,55,151,151,55,186,55,186, - 55,38,192,55,29,15,229,151,151,133,229,133,229,151,135,29, - 0,0,0,0,0,0,0,0,0,0,162,183,94,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,183,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,59,228,142,59,162,0,0,0,0,0,253,135, - 50,0,0,0,0,241,154,212,0,0,0,0,0,97,24,162, - 0,0,0,0,0,0,75,46,59,47,163,183,0,0,78,212, - 212,212,40,40,203,203,203,241,164,241,241,241,104,104,241,104, - 164,164,104,164,104,164,164,37,75,34,253,142,47,227,0,0, - 162,94,241,0,0,246,203,221,0,0,0,0,0,162,162,162, - 0,0,0,0,162,0,48,104,0,0,162,20,228,142,59,212, - 0,0,0,0,0,0,162,173,0,0,0,104,0,221,0,0, - 246,246,0,0,0,0,221,0,221,0,0,0,0,0,0,221, - 0,221,0,0,0,0,0,0,104,246,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,221,0,0,0,0,0,0, - 246,212,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,183, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,215, - 78,0,0,0,0,0,246,164,40,221,0,0,0,0,78,0, - 0,162,221,78,183,162,122,122,0,0,245,15,0,0,0,0, - 162,95,192,49,186,97,0,0,75,200,183,162,162,133,38,245, - 133,38,235,245,29,0,133,33,38,102,197,102,38,197,100,33, - 72,133,158,151,26,186,134,72,143,72,143,88,72,72,143,242, - 72,7,38,162,245,66,30,66,43,66,156,66,30,66,30,66, - 30,179,152,72,234,201,171,197,20,33,229,33,135,33,44,38, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,162,0,0, - 0,0,0,0,46,151,223,47,187,0,0,162,122,162,29,253, - 164,0,0,0,0,46,20,37,0,0,0,0,0,95,223,162, - 0,0,0,0,0,0,241,142,200,47,95,94,0,215,94,212, - 104,164,226,92,92,226,73,190,177,226,137,177,190,137,48,92, - 190,226,92,190,190,92,92,226,241,142,29,142,59,126,0,221, - 221,40,226,162,0,172,18,0,0,0,40,0,0,246,162,0, - 162,0,0,0,221,246,172,226,0,0,42,135,55,20,75,166, - 0,0,0,0,0,0,221,173,221,215,221,94,221,40,221,246, - 40,221,0,0,0,0,0,221,221,162,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,104,246,0,0,0,0,0,162, - 0,162,0,0,0,0,0,0,0,40,0,0,0,0,0,221, - 162,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,221,0,0,0,0,40, - 200,212,94,162,94,0,0,50,203,227,0,0,122,0,221,183, - 0,0,0,0,162,95,227,50,94,0,183,162,0,0,0,0, - 0,0,162,162,162,162,0,0,46,24,162,183,42,162,162,162, - 183,162,122,162,221,42,64,162,94,94,94,50,94,221,50,50, - 50,50,42,162,162,35,212,37,50,37,37,212,91,37,75,111, - 163,219,50,122,171,22,22,75,209,22,200,75,75,75,75,241, - 241,14,219,37,42,163,42,163,227,22,42,75,122,37,56,22, - 0,162,94,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,94,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,111,56,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,162,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,142,228,223,44,227,0,0,0,0,212,229,177, - 212,0,0,0,0,48,44,212,0,0,0,0,0,47,223,162, - 0,0,0,0,0,0,46,24,59,59,95,183,0,246,94,37, - 104,241,104,104,226,226,226,92,226,92,190,226,226,190,177,92, - 177,226,92,73,190,190,177,92,164,142,20,223,47,166,0,221, - 94,203,226,162,221,212,104,0,162,162,212,0,0,212,162,0, - 162,0,0,0,0,221,190,104,0,0,78,229,55,15,163,126, - 0,0,0,0,0,0,0,173,221,215,0,40,221,221,162,40, - 221,221,0,0,0,0,0,246,246,221,221,221,0,0,0,0, - 0,0,0,0,0,0,0,0,40,246,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,40,0,0,94,162,162,50, - 221,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,183,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,215,212,0,0,0,221, - 104,104,241,40,37,0,0,183,75,166,0,0,0,0,162,0, - 221,227,40,94,122,212,104,226,104,0,95,111,0,0,0,0, - 162,122,219,183,122,78,0,0,44,223,162,221,187,126,183,42, - 166,42,183,42,78,221,224,122,42,183,56,219,42,183,26,219, - 26,26,94,183,219,64,42,42,42,42,42,42,122,42,122,42, - 42,162,42,0,152,122,42,42,42,42,26,42,26,26,42,42, - 26,26,122,42,221,183,122,42,42,42,42,42,122,219,221,219, - 0,221,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,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,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,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,162,0,0,162,0,0,0,0,0,0,0,0,0, - 0,0,0,122,29,228,223,44,126,0,0,0,0,221,197,223, - 50,0,0,0,0,222,135,50,0,0,0,0,0,46,135,78, - 0,0,122,0,0,0,35,46,200,47,126,50,0,94,183,203, - 241,104,92,24,104,226,226,223,226,223,190,177,190,190,226,223, - 190,190,223,223,92,73,190,177,163,35,48,223,95,126,0,162, - 183,203,190,0,0,0,246,162,221,162,94,0,162,40,162,162, - 162,0,0,0,0,0,48,226,0,0,91,135,201,48,59,111, - 0,0,0,0,0,0,221,173,122,221,0,0,221,0,221,246, - 246,246,0,0,221,221,221,221,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,40,221,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,0,0,0, - 162,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,111,78,183,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,94,190,162,0,0,0, - 227,104,241,164,212,0,227,37,200,183,162,0,0,0,0,0, - 0,183,239,239,94,122,227,75,104,122,20,34,0,0,0,122, - 162,183,150,47,142,200,0,0,253,177,42,0,42,20,59,44, - 35,141,59,47,241,0,29,29,172,29,190,29,29,29,254,44, - 243,254,190,223,183,20,142,172,29,172,172,34,48,99,99,47, - 150,219,48,0,245,129,15,129,229,129,129,229,129,129,15,150, - 29,12,29,129,47,129,229,129,129,129,229,135,150,20,26,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,162,0,0,0,0,0,0,0,0, - 0,0,0,162,129,38,223,64,126,122,0,0,0,221,197,228, - 183,0,0,0,0,48,103,183,0,0,0,0,0,46,129,162, - 0,0,0,0,0,0,46,142,163,59,227,183,0,212,42,212, - 241,104,142,226,104,223,190,177,190,177,190,177,177,48,190,177, - 223,190,177,190,190,226,226,48,75,59,29,223,47,126,0,162, - 227,75,142,221,221,0,221,162,221,221,94,0,221,212,94,221, - 0,0,221,221,0,0,48,92,0,221,183,135,38,172,47,42, - 0,0,0,0,0,0,221,173,56,122,0,0,221,246,246,221, - 246,246,0,0,221,221,0,221,0,0,0,0,0,0,0,246, - 221,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,50,94,162,162,221,94, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 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,187,163,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,200,203,162,42,94, - 0,40,104,203,212,122,223,46,221,0,0,0,0,0,0,0, - 0,0,0,0,0,122,221,0,163,122,47,200,0,0,0,122, - 0,183,219,95,241,212,0,122,135,177,126,162,183,47,141,47, - 95,17,95,241,226,122,34,104,104,46,200,104,104,104,166,104, - 187,187,104,24,56,171,142,172,142,190,29,142,48,59,95,47, - 219,42,48,162,245,251,251,129,129,129,129,251,129,251,129,187, - 20,150,48,251,129,251,129,129,129,129,251,129,12,20,17,135, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,122,219,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,162,162,162,0,0,0,0,0,0,0,0, - 0,0,0,162,251,55,190,44,111,162,0,0,0,221,201,103, - 50,0,0,0,0,48,201,37,0,0,0,0,0,24,228,50, - 0,0,122,0,0,0,47,46,163,59,163,162,162,95,239,200, - 104,46,104,226,190,142,223,223,223,190,48,48,135,135,172,177, - 135,48,48,177,48,177,48,48,241,35,177,142,59,126,0,95, - 166,203,223,162,221,0,162,0,221,0,162,0,162,221,221,0, - 0,0,221,0,0,221,172,190,0,0,26,151,201,48,59,187, - 0,0,0,0,0,0,221,38,0,122,0,0,221,246,221,246, - 221,0,221,221,221,0,246,0,0,0,0,0,221,40,246,221, - 221,221,221,221,221,0,0,0,0,221,0,0,0,221,0,0, - 0,0,94,94,221,94,94,212,162,0,221,162,162,162,50,50, - 212,162,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,95,142,162,0,0,0,0,0,0,0,221,104,34,46,59, - 183,122,200,46,37,122,223,177,94,0,0,0,0,0,0,0, - 0,0,0,0,0,0,215,187,162,162,0,0,0,0,0,0, - 42,162,0,0,221,0,0,26,253,223,187,122,212,0,0,0, - 0,0,0,215,142,219,59,0,0,122,221,122,122,122,0,0, - 0,0,0,0,215,64,0,0,0,0,0,0,0,0,0,0, - 0,0,135,162,171,0,0,0,0,0,0,0,162,162,162,0, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,132,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,162,162,0,0,162,162,0,0,0,0,0, - 0,0,0,221,228,103,29,142,95,122,0,0,0,221,38,79, - 75,0,0,0,0,48,201,164,0,0,0,0,0,35,55,50, - 0,0,122,0,0,0,47,46,97,46,95,187,162,200,95,241, - 104,46,226,142,226,142,190,190,223,20,135,135,129,129,129,129, - 135,135,129,129,129,129,222,129,104,29,172,223,47,187,0,75, - 95,200,172,162,78,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,190,92,0,0,42,151,38,190,95,183, - 0,0,0,0,0,0,0,79,0,0,221,246,221,221,221,40, - 221,0,0,0,0,0,221,0,221,0,0,246,40,40,40,246, - 221,0,0,0,0,0,0,0,221,0,0,221,221,94,0,221, - 0,0,162,212,221,94,221,212,162,162,162,162,162,162,94,162, - 94,94,162,0,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,200,221, - 0,122,20,142,221,0,0,0,0,0,0,122,227,34,29,223, - 44,46,75,142,75,122,35,46,221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,94,166,122,0,0,0,0,122,162, - 42,162,0,0,126,239,0,26,135,253,187,122,126,0,0,0, - 0,0,122,219,142,42,64,122,183,183,166,219,166,26,166,95, - 200,95,183,94,187,47,0,0,0,0,0,0,0,0,0,0, - 0,0,135,162,229,42,0,0,0,0,0,0,0,0,0,0, - 0,59,0,0,0,0,0,0,0,0,0,0,0,0,0,97, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,40,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 40,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,254,12,12,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,162,0,0,0,162,0,0,0,0,0, - 0,0,0,122,228,103,177,44,111,78,0,0,0,221,201,201, - 209,0,0,0,0,48,55,164,0,0,0,0,0,142,55,212, - 0,0,122,0,0,0,35,46,241,104,97,183,122,35,224,59, - 104,142,24,142,142,190,29,223,177,172,135,15,129,229,129,135, - 15,135,135,135,135,253,135,129,46,223,135,142,47,166,0,75, - 59,46,48,183,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,190,104,0,0,50,129,55,223,224,126, - 0,0,0,0,0,0,221,173,42,42,221,40,246,246,246,246, - 221,0,0,122,0,0,0,221,0,0,221,221,221,221,94,40, - 0,162,221,0,0,0,0,221,0,221,0,0,221,221,0,0, - 0,0,94,221,221,221,162,37,50,246,162,162,0,162,0,221, - 40,221,94,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,227,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,75,34,142, - 95,162,183,75,47,122,0,0,0,0,0,227,221,46,20,29, - 223,34,223,226,46,122,223,50,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,162,0,0,0,0,122,78, - 162,183,0,0,95,227,0,187,253,135,111,162,126,0,0,0, - 0,0,122,227,200,122,171,209,142,24,24,223,142,223,223,226, - 46,59,35,46,64,64,0,0,0,0,0,0,0,0,0,0, - 122,0,135,50,152,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,0,0,0,0,0,0,200, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 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,50,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,183,166,150,243,122,26,0,0,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,55,55,48,34,224,122,0,0,0,221,38,79, - 104,0,0,0,0,135,201,164,0,0,0,0,0,223,55,37, - 0,0,122,0,0,0,35,226,75,241,95,162,162,35,59,46, - 47,142,223,223,223,223,20,190,20,48,135,135,129,229,129,229, - 129,229,129,129,135,135,129,222,59,223,129,223,47,132,122,59, - 99,35,20,221,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,190,104,0,0,42,229,201,190,59,111, - 0,0,0,0,0,0,0,173,0,122,221,246,221,246,246,221, - 0,0,0,78,0,94,221,221,0,0,221,221,221,221,221,162, - 0,0,0,0,0,0,0,0,0,0,0,221,0,0,0,0, - 0,0,221,221,0,162,221,221,162,246,0,0,0,162,162,0, - 203,94,212,94,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,0,0,0,0,0,0,122,0,0,0,0,0,183,142,29, - 142,94,221,122,95,0,0,0,183,78,0,47,142,42,35,29, - 34,223,44,223,46,122,253,203,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,78, - 162,0,0,0,95,239,0,111,135,135,111,183,111,0,0,0, - 0,0,42,219,0,42,29,0,0,0,0,162,0,0,0,0, - 0,0,122,162,59,44,0,0,0,0,0,0,0,0,0,0, - 122,0,48,162,171,162,0,0,0,0,0,0,0,0,0,0, - 162,171,0,0,0,0,0,0,0,0,0,0,0,0,0,246, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,94,221,0,0,0,0,0,162, - 0,0,0,0,0,162,212,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 94,221,0,0,0,0,0,162,0,0,0,0,0,162,212,40, - 0,0,0,126,0,122,26,0,26,212,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,162,0, - 0,221,162,0,0,0,162,0,162,0,0,0,0,0,0,0, - 0,0,0,122,103,79,29,29,59,78,0,0,0,0,197,79, - 164,0,0,0,0,135,55,14,221,0,0,0,0,223,55,22, - 0,0,122,0,0,0,46,223,104,104,166,162,183,35,224,47, - 104,46,142,142,223,223,29,253,223,20,135,229,129,229,229,129, - 135,135,135,135,129,129,135,129,75,253,129,190,64,126,0,75, - 95,59,48,221,215,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,142,104,0,0,183,229,33,223,59,95, - 0,162,0,0,0,0,0,173,0,0,0,0,0,0,221,0, - 0,0,0,0,221,246,221,221,0,0,221,0,0,0,162,221, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,221,0,0,221,0,0,221,0,162,0, - 104,212,162,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,94,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,187,219,0,219,132,183,122,95,35, - 183,0,0,0,162,0,122,95,239,97,126,142,15,29,64,29, - 20,253,223,223,35,122,46,50,0,0,0,0,0,0,0,0, - 111,183,95,64,224,95,0,0,0,0,0,0,0,0,122,42, - 122,183,40,0,111,40,0,187,229,135,163,183,163,0,0,0, - 0,0,42,42,0,219,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,254,225,0,0,0,0,0,0,0,122,219,0, - 0,42,129,162,245,0,0,0,0,0,0,122,0,122,122,162, - 162,245,0,0,0,0,0,0,122,0,122,0,122,122,122,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,162,212, - 203,0,0,0,0,164,92,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,212,203,0,0,0,0,164,92,40, - 0,0,0,0,0,0,0,0,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,0,0,0, - 0,0,0,221,103,38,48,171,99,78,0,0,0,221,201,197, - 226,122,0,0,0,135,55,14,0,0,0,0,0,223,201,212, - 0,0,122,0,0,0,24,222,24,142,163,183,162,44,59,35, - 142,142,142,29,29,223,223,20,190,20,20,129,151,229,129,229, - 229,15,229,229,15,129,135,222,47,222,135,190,64,95,0,97, - 224,47,20,162,183,221,142,251,251,129,190,48,190,48,48,48, - 172,173,173,173,173,173,173,226,48,190,203,229,197,104,59,95, - 0,162,183,215,40,95,47,172,104,104,40,40,221,221,246,104, - 104,104,47,246,246,221,221,246,40,40,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,162,50,94,162,162,0,0,212,164,162,221,94,94,162,0, - 212,50,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,0,0,0,0,0,0,221, - 221,221,183,246,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,0,111,64,182,59,142,224,59, - 0,0,224,59,0,0,0,34,15,221,126,229,151,229,253,34, - 47,59,95,50,221,0,162,0,0,0,0,0,0,0,122,162, - 183,29,40,166,34,171,200,162,0,0,0,0,0,0,162,78, - 0,183,64,221,111,166,0,111,151,135,111,183,95,0,0,0, - 0,0,219,42,0,219,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,59,34,0,0,0,0,0,0,0,0,141,42, - 0,0,135,0,245,97,78,122,122,162,0,122,122,122,162,183, - 162,245,40,42,0,122,162,0,122,122,122,122,122,122,42,95, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,94,0,0, - 212,142,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,103,197,15,20,64,183,162,0,0,0,38,220, - 24,56,0,0,0,48,201,241,221,0,0,0,0,223,38,37, - 0,122,122,0,0,0,142,251,223,223,95,94,42,35,35,47, - 142,142,34,190,29,29,20,20,223,20,229,229,151,229,229,229, - 229,229,229,229,129,229,129,129,35,228,129,177,47,111,0,35, - 59,46,20,94,227,0,40,190,190,251,48,48,48,48,48,251, - 190,129,173,173,48,173,251,190,48,48,203,228,201,104,254,111, - 0,183,212,227,40,40,40,190,142,190,104,164,212,40,142,190, - 142,190,104,40,246,221,246,246,40,221,0,0,162,246,212,221, - 0,0,0,0,246,0,0,0,0,0,0,0,215,94,122,221, - 40,164,212,246,94,94,162,162,94,203,212,37,37,50,162,221, - 40,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,162,0,0,0,0,221,221,221, - 221,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,59,99,64,29,172,29, - 183,0,47,15,0,0,0,44,38,29,122,64,223,59,95,163, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122, - 122,44,171,0,162,20,29,64,219,122,0,122,0,0,122,78, - 0,122,64,221,224,40,162,224,228,223,75,187,163,0,0,0, - 0,0,42,219,0,219,44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,182,44,0,0,0,0,0,0,0,0,219,122, - 122,122,48,0,245,40,0,0,0,0,0,0,0,0,0,162, - 122,245,203,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,0,0,0,0,162,0,0, - 212,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,228,201,135,15,44,94,0,0,0,221,201,220, - 226,0,0,0,0,48,103,164,162,0,0,0,0,223,201,212, - 0,0,122,0,0,0,223,228,177,177,224,183,183,35,182,35, - 142,142,223,34,190,29,172,20,29,48,229,129,151,129,229,135, - 135,229,135,229,135,229,129,151,46,55,135,223,95,166,0,59, - 64,59,135,183,227,0,0,0,0,0,0,0,0,221,0,0, - 0,0,0,0,0,0,104,104,0,0,183,33,79,47,59,95, - 0,0,0,0,0,0,0,142,104,203,40,40,246,212,40,226, - 104,246,40,246,246,0,94,162,221,0,0,0,0,212,92,246, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 162,162,162,162,221,50,162,162,0,162,212,37,50,50,162,212, - 212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,0,0,0,0,0,246,212,246, - 246,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,254,150,64,223,29,20, - 34,64,29,15,29,187,95,224,229,29,212,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,59,44,99,47,29,20,34,56,0,0,0,0,162,122, - 0,56,64,221,224,227,122,61,103,135,111,166,126,0,0,0, - 0,0,219,219,122,132,44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,64,0,0,0,0,0,0,0,0,42,42, - 122,122,48,122,245,200,0,0,0,122,0,0,0,0,0,0, - 0,245,200,0,0,0,122,0,0,0,0,0,0,0,0,221, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,50,0, - 0,50,162,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,122,0,122,122,122, - 122,122,42,221,228,201,15,15,44,183,219,235,219,221,38,79, - 24,56,0,0,0,135,201,164,162,0,0,0,0,223,55,241, - 0,122,122,0,0,0,177,228,48,223,75,94,219,35,111,44, - 223,223,44,223,223,20,20,20,20,20,229,129,229,229,229,229, - 229,229,229,229,229,135,135,129,226,79,222,223,59,126,0,75, - 224,59,20,221,40,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,142,104,0,0,42,242,55,104,95,126, - 0,0,0,0,0,0,0,172,190,0,0,246,104,40,40,251, - 104,0,246,246,221,221,221,246,0,0,0,0,0,246,104,94, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,162, - 0,0,0,162,162,246,162,162,0,94,0,221,162,50,162,94, - 50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,221, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,187,64,99,64,20,29,20, - 15,15,15,229,29,224,64,0,0,162,0,162,122,0,0,162, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,183,183,221,59,34,192,29,29,122,166,122,0,0,122,122, - 0,56,47,221,59,227,42,182,229,135,126,187,126,0,0,0, - 0,0,42,183,0,219,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,171,183,122,0,0,0,0,183,42,254,219, - 122,122,135,0,245,172,0,183,122,0,0,0,0,0,0,183, - 0,245,172,0,183,122,0,0,0,0,0,0,0,162,122,95, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,122,122,122,122,122,42,122,26,0,0,42,26,26, - 26,26,26,26,12,26,12,12,26,12,12,12,8,12,12,8, - 8,8,8,219,173,79,135,171,44,187,42,243,243,221,201,197, - 92,122,0,0,0,253,201,209,0,0,0,0,0,223,103,241, - 0,0,122,0,0,0,177,103,222,223,59,219,183,35,99,47, - 142,142,142,34,223,253,135,20,20,20,15,229,151,229,229,229, - 229,229,229,129,135,229,135,229,223,79,135,142,59,166,0,224, - 59,47,135,183,166,0,0,0,0,162,162,0,0,0,162,162, - 162,162,0,0,0,0,104,104,0,0,183,72,103,226,95,187, - 0,162,0,0,0,0,0,251,190,0,0,94,203,203,164,172, - 104,221,246,246,221,0,0,0,0,0,0,122,122,40,92,212, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,221,162,0,212,221,0,162,212,0,0,0,221,221,0, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,221,0,0,0, - 0,0,0,0,0,0,0,0,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,215,0,0,0,0,0,0,0,219,214,64,225,15,20,59, - 163,50,95,59,0,166,171,95,0,0,0,0,0,0,0,0, - 122,183,42,0,0,0,0,0,0,0,0,78,122,42,0,0, - 0,132,171,47,221,239,20,171,20,42,64,219,0,0,122,122, - 221,183,44,122,224,227,0,59,103,135,224,227,126,0,0,0, - 0,0,42,42,0,12,35,0,0,0,0,0,0,0,0,0, - 0,0,0,0,150,29,254,219,122,219,254,187,215,150,99,219, - 122,42,135,0,245,229,95,0,0,122,0,0,0,0,122,42, - 122,245,229,95,0,0,122,0,0,0,0,42,42,42,17,20, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 183,0,0,122,78,122,122,0,0,0,0,0,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,183,0,0,122,78,122,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,26,26,0,26,26,26,26,26,42,0,26,26,26, - 26,26,26,26,26,26,26,26,26,26,17,42,0,12,8,12, - 12,12,12,12,12,12,12,12,8,26,12,12,12,26,12,12, - 26,219,26,26,103,38,135,15,44,95,122,26,26,0,201,79, - 177,122,0,0,0,48,79,209,162,0,0,0,0,253,103,22, - 0,0,42,0,0,0,222,55,135,223,95,126,183,44,59,35, - 142,34,190,29,44,29,20,253,20,135,135,129,151,229,229,135, - 229,151,135,135,20,229,129,229,223,103,135,223,95,183,0,59, - 64,254,229,183,40,0,122,162,0,0,122,162,78,162,122,122, - 122,122,122,162,0,221,142,241,162,94,163,242,228,46,75,95, - 0,0,0,0,162,0,0,48,142,0,0,40,172,172,190,104, - 246,246,221,40,162,0,0,221,0,0,40,47,95,164,104,221, - 221,166,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,162,0,0,50,212,0,0,40,0,0,0,162,0,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,94,163,94,0, - 0,0,0,0,0,0,0,221,0,0,122,0,0,0,0,0, - 0,126,46,162,0,0,0,0,0,0,0,0,42,141,111,0, - 0,183,29,46,227,0,59,226,200,183,141,219,0,0,122,0, - 42,221,59,122,224,94,42,99,103,135,111,187,95,0,0,0, - 0,0,42,183,0,150,44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,254,29,142,47,59,104,166,219,95,150,47,122, - 122,0,48,0,245,173,229,34,59,59,75,224,122,141,150,254, - 150,152,173,229,34,59,59,75,224,122,141,150,254,141,44,229, - 0,0,94,0,0,212,142,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,183, - 183,0,183,42,183,122,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,94,0,0,212,142,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,183,183,0,183,42,183,122,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,42,42,0,122,219,26,219,26,42,0,26,26,26, - 26,26,26,26,42,26,26,26,42,42,42,0,0,42,42,42, - 42,42,42,26,42,42,42,42,42,42,42,42,42,26,26,122, - 42,122,122,221,103,55,129,15,225,95,122,0,122,0,201,201, - 223,122,0,0,0,177,55,164,122,0,0,0,0,34,103,203, - 0,0,122,0,0,0,222,103,222,223,95,239,183,178,64,44, - 20,223,34,29,172,20,20,135,20,15,229,229,151,151,151,135, - 229,151,229,229,135,135,135,135,226,103,222,190,59,227,0,224, - 47,59,135,183,227,0,122,162,0,0,0,162,78,162,78,162, - 0,0,0,0,0,0,104,203,221,94,40,242,201,46,224,111, - 0,0,0,0,0,0,221,48,226,0,0,221,40,40,40,246, - 246,246,246,246,0,0,0,40,0,122,40,142,40,164,50,40, - 215,126,162,0,0,0,122,0,0,0,0,227,0,122,221,0, - 0,0,0,0,0,104,92,94,162,40,162,94,212,212,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,94,162,0,0,162,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,215,215,246,0,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,162,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,99,0,0,0,0,0,166,221,0,78,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,141,214,212, - 0,0,99,0,0,0,0,0,0,50,0,0,0,0,122,122, - 56,221,0,0,59,183,122,59,151,135,111,111,126,0,0,0, - 0,0,42,122,0,150,47,0,0,0,0,0,0,0,0,0, - 0,0,0,0,254,47,221,221,122,221,221,0,0,0,122,0, - 122,42,177,78,34,221,94,212,94,94,94,94,162,162,162,162, - 94,224,221,94,212,94,94,94,94,0,162,0,122,221,221,221, - 0,0,221,0,0,212,40,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,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,212,40,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,228,229,15,44,254,122,0,0,219,79,197, - 226,56,0,0,0,48,55,14,162,0,0,0,0,135,38,241, - 0,0,42,0,0,0,222,228,135,223,224,166,26,44,99,34, - 29,142,29,20,171,15,15,229,20,151,229,229,229,151,38,229, - 229,229,229,229,135,229,135,151,226,79,135,226,95,126,0,224, - 99,64,229,221,166,0,0,0,0,0,0,0,162,122,162,162, - 0,162,0,0,162,0,104,241,94,0,241,72,201,46,200,95, - 0,95,187,166,187,166,0,48,142,0,0,0,0,0,0,246, - 221,221,221,221,221,221,221,0,0,0,0,0,0,221,104,104, - 183,95,221,0,0,183,94,162,0,221,221,162,0,0,0,0, - 0,162,0,183,40,226,164,162,0,40,94,212,40,50,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,0,162,50,50,162,0,0,0,0,0,221, - 221,0,0,0,0,0,0,0,0,0,221,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,44,166,0,0,183,227,0,183,0,215,183,162, - 0,0,0,0,0,0,163,162,0,0,0,0,0,42,64,29, - 132,0,141,37,164,0,0,0,0,95,0,0,0,0,78,122, - 183,78,0,0,224,227,42,35,103,20,95,111,95,0,0,0, - 0,0,219,42,0,243,35,0,0,0,0,229,104,203,129,0, - 0,0,0,0,99,64,0,0,0,0,0,0,122,0,0,0, - 122,56,177,42,44,0,0,0,0,0,0,122,0,122,0,122, - 0,78,0,0,0,0,0,0,122,0,0,122,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,42,0,122,122,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, - 122,122,0,215,228,103,135,171,34,224,122,0,0,221,38,201, - 226,122,0,0,0,20,38,241,0,0,0,0,0,29,79,200, - 0,0,42,0,0,42,24,228,129,226,224,239,183,29,59,44, - 29,223,20,20,20,177,15,245,223,20,151,20,38,34,29,133, - 229,229,229,135,171,229,135,15,226,103,135,223,95,187,0,224, - 64,47,229,215,183,0,0,0,0,183,59,183,0,122,0,162, - 122,162,162,227,183,0,104,203,212,162,47,242,103,46,224,126, - 0,20,47,47,47,64,0,190,92,0,122,95,95,0,0,40, - 221,221,215,40,246,0,0,221,0,0,0,0,0,0,40,40, - 227,183,0,0,0,221,183,94,0,0,56,162,0,0,0,0, - 0,0,162,95,246,200,203,203,162,104,50,162,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,212,50,162,0,0,0,0,0,0,0, - 0,162,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,59,126,126,59,212,94,95,162,0,122,183, - 122,0,0,0,78,183,212,0,0,0,0,0,0,42,99,20, - 171,59,224,241,35,99,59,47,47,187,0,0,0,0,42,78, - 126,162,0,0,224,183,122,35,133,135,111,111,95,0,0,0, - 0,0,42,42,0,141,47,0,0,0,0,212,94,221,212,0, - 0,0,0,0,59,64,0,0,0,0,0,0,0,0,0,0, - 122,221,48,187,34,0,122,122,42,122,122,42,122,42,122,42, - 162,78,0,122,122,42,122,122,42,78,78,122,42,122,42,239, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,162,0,26,139,8,182,211,182,0,12,12,12, - 132,17,219,219,42,219,122,122,42,42,42,219,26,26,26,219, - 26,42,42,42,42,122,42,42,42,42,122,42,122,122,122,122, - 122,122,122,221,55,103,229,15,34,59,0,0,0,0,201,220, - 24,183,0,0,0,172,197,226,122,0,0,0,0,34,103,24, - 0,122,122,0,0,26,187,103,135,177,59,166,219,178,64,223, - 29,172,20,20,171,223,14,209,44,10,177,133,38,38,64,229, - 38,186,229,229,135,229,135,229,177,103,222,142,200,212,0,59, - 64,64,15,221,183,0,0,162,0,95,95,47,0,122,0,122, - 122,0,47,142,142,0,104,203,94,162,190,197,228,142,47,126, - 0,20,111,59,35,35,0,223,226,0,132,172,47,246,0,203, - 40,221,215,40,221,0,0,0,0,0,0,0,0,0,0,162, - 94,162,0,0,0,0,0,95,0,0,0,0,0,0,0,0, - 0,183,122,50,183,212,183,15,221,40,162,94,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,162,162,0,0,0,0,0,0,0,0, - 221,246,212,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,122,42,0,0,0,0, - 42,95,0,0,183,227,227,254,47,94,56,254,126,95,183,0, - 0,0,0,0,0,162,162,0,0,0,0,0,0,0,64,20, - 171,15,29,192,171,57,15,152,15,50,0,0,0,0,221,42, - 227,183,0,0,200,183,26,35,55,135,224,95,75,0,0,0, - 0,0,42,42,0,8,35,0,0,0,0,0,0,0,0,0, - 0,0,0,0,182,47,0,0,122,122,0,0,0,0,0,0, - 122,122,104,162,75,0,0,0,0,122,0,0,0,0,0,0, - 0,0,122,0,122,0,122,0,0,0,0,0,0,122,0,95, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,183,227,111,224,0,132,99,182, - 99,99,99,64,182,99,99,99,141,99,254,254,109,150,187,166, - 17,17,132,219,26,219,122,122,78,162,0,122,122,122,122,122, - 0,0,0,0,129,228,229,15,44,182,122,0,0,221,197,79, - 226,42,0,0,0,15,79,226,122,0,0,0,0,29,55,104, - 0,0,42,0,122,26,187,103,222,29,59,227,183,44,99,44, - 29,29,20,15,135,178,253,178,209,22,10,223,38,15,99,182, - 229,99,38,229,229,229,229,229,190,228,222,142,95,183,162,64, - 44,64,229,183,183,0,0,122,0,59,142,59,0,0,0,0, - 0,0,47,166,59,0,104,203,221,0,172,242,103,104,95,163, - 0,20,59,47,99,99,0,142,104,0,183,245,29,0,0,40, - 40,246,246,221,0,0,0,0,0,0,0,0,0,0,162,221, - 221,0,0,0,0,0,219,212,0,0,0,0,0,122,0,0, - 183,142,122,254,95,219,219,151,246,246,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,219,42,0,0,0,0, - 0,224,221,183,254,183,0,183,224,221,0,227,187,95,42,0, - 0,0,0,0,0,0,0,0,183,162,0,122,122,0,183,34, - 192,15,15,15,20,171,15,20,171,42,0,0,0,162,183,42, - 183,162,0,0,212,0,122,35,38,178,183,166,239,0,0,0, - 78,0,42,122,0,8,59,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,59,0,0,0,122,122,0,0,0,0,0, - 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,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,122,0,0,183,122, - 122,122,56,42,183,122,42,42,183,183,42,122,122,78,122,183, - 162,183,122,162,183,122,122,122,122,122,122,122,122,0,0,0, - 122,122,0,221,135,103,135,15,34,59,122,0,0,0,38,79, - 84,56,0,0,0,135,38,24,0,0,0,0,0,223,103,241, - 0,0,42,122,0,122,226,251,48,223,47,126,42,44,99,35, - 172,20,20,20,34,20,245,229,20,15,154,24,129,133,15,99, - 44,47,151,135,229,135,135,229,226,251,129,223,75,212,0,64, - 64,59,135,50,42,0,0,162,0,95,15,47,0,122,0,122, - 122,0,44,151,20,0,203,241,94,162,177,33,103,46,59,126, - 0,29,35,47,35,64,0,226,24,0,162,135,29,0,0,212, - 246,246,246,221,0,0,0,0,0,0,0,0,0,0,221,0, - 0,0,0,0,0,162,215,0,0,0,215,47,111,183,183,219, - 224,215,166,0,64,47,34,15,221,221,0,221,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,221,0,0,0,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,94,0,0,0,17,99,166,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,0,0,0,0,162,0, - 0,0,0,0,0,0,0,187,200,239,0,122,219,12,132,254, - 171,47,111,171,20,20,192,171,135,42,0,0,0,122,162,183, - 50,183,0,0,122,122,26,29,38,22,162,187,183,0,0,122, - 162,0,0,0,0,99,47,0,0,0,0,0,0,0,0,0, - 0,0,0,0,64,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,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,0,122,0,122,0,0,0,0,0,0,122,0,0, - 0,0,0,162,135,201,229,171,29,224,122,0,0,0,55,201, - 226,122,0,0,0,48,55,92,122,0,0,0,0,223,103,241, - 0,0,122,0,0,122,177,31,177,223,64,212,187,34,64,44, - 34,142,20,20,20,15,15,15,135,133,186,129,84,222,102,34, - 235,34,44,135,229,229,135,229,177,103,129,190,224,239,162,44, - 64,64,229,183,162,0,0,0,0,0,0,0,0,122,0,0, - 0,0,221,246,162,221,203,203,0,0,92,156,103,46,95,163, - 0,44,200,64,59,35,0,226,241,0,0,0,0,0,0,50, - 246,246,221,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,221,0,0,0,183,15,29,183,0,0, - 122,183,162,0,221,99,15,190,0,221,0,221,221,162,0,162, - 212,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,221,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,42,221,78,227,150,111,0,0,0,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,162,183,162,0,0,150,99,192,29, - 29,47,44,171,192,20,20,171,171,162,0,0,0,162,42,183, - 50,78,0,0,0,0,42,29,38,24,219,95,212,0,0,78, - 122,0,0,0,0,211,59,0,0,0,0,0,0,0,0,0, - 0,0,0,0,59,59,122,122,0,0,0,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, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,0,0, - 0,0,0,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,209,129,129,20,44,224,122,0,0,162,103,33, - 226,56,0,0,0,177,55,24,0,0,0,0,0,29,103,24, - 0,0,42,0,0,42,48,55,135,48,59,239,187,29,64,44, - 29,29,20,20,20,15,15,229,20,15,151,133,151,133,18,151, - 171,15,64,34,229,151,229,186,177,201,103,177,47,163,122,192, - 34,34,151,221,183,0,0,122,0,0,122,0,122,0,122,0, - 122,0,0,0,0,0,104,241,162,0,104,242,33,190,224,97, - 162,15,224,224,99,99,0,104,104,0,0,0,0,0,221,246, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,0,0,0,0,95,38,133,245,29,227, - 0,111,56,56,183,47,20,84,162,212,162,162,0,221,0,40, - 212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,221,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,221,221,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,59,95,227,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,0,122,243,141,141,34,29, - 29,171,29,20,29,192,34,171,135,183,0,0,0,0,78,183, - 95,183,0,0,0,0,26,29,38,253,111,111,95,0,122,183, - 42,0,0,122,0,183,183,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,187,122,122,42,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,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, - 122,122,0,122,122,0,122,0,0,0,0,0,0,0,0,0, - 0,0,0,221,35,177,55,171,29,224,0,0,0,0,103,220, - 226,42,0,0,0,253,55,92,122,0,0,42,162,46,129,92, - 0,0,122,122,0,122,177,55,48,253,47,95,50,152,44,34, - 29,29,15,171,20,135,15,245,15,229,151,133,38,133,38,133, - 38,38,133,34,171,38,55,133,48,55,103,172,47,163,162,192, - 34,214,151,221,42,0,0,0,0,0,122,0,122,0,122,122, - 122,122,0,122,122,0,203,203,94,162,241,197,220,177,224,200, - 0,135,64,64,35,64,122,59,241,0,0,221,40,246,246,221, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,0,40,95,142,142,142,215, - 0,221,215,221,221,95,40,203,0,212,162,221,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,246,162,0,0,0,0,0,162,221,0,0,0,0,0,0, - 0,0,0,0,0,164,94,0,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,0,162,47,75,162,0,56,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,59,183,0,78,64,214,67,192,172, - 171,29,192,29,34,29,29,15,229,187,0,0,0,162,78,122, - 126,221,0,0,42,42,78,253,133,20,224,59,95,0,0,183, - 78,122,122,78,42,162,78,42,42,42,219,26,26,219,187,183, - 42,187,111,111,166,187,187,183,187,187,187,187,187,166,183,42, - 78,42,78,122,122,78,42,78,78,122,122,78,78,78,42,78, - 78,78,122,122,122,78,78,78,42,78,78,78,78,122,122,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,122,75,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,227,126,0,0, - 0,0,0,94,94,0,0,0,0,122,122,162,122,162,0,0, - 0,0,122,0,122,122,122,162,122,122,78,78,78,42,42,42, - 78,183,42,78,78,78,122,162,122,162,122,122,122,0,0,0, - 0,0,122,122,34,84,151,20,44,224,122,122,122,78,55,79, - 226,42,0,0,122,48,103,84,162,0,0,95,227,162,162,0, - 0,0,122,122,122,0,223,167,135,177,59,163,187,192,44,34, - 29,20,20,20,15,15,229,15,20,15,229,229,151,142,29,38, - 151,151,38,55,186,55,151,133,177,103,228,177,59,97,42,34, - 34,44,151,162,122,122,122,78,183,0,0,0,0,0,0,0, - 0,0,0,0,0,0,104,241,94,94,104,28,242,253,59,46, - 162,15,35,64,64,64,0,200,104,0,0,221,40,246,221,221, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,162,0,0,0,0, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,246,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,221,92,104,0,0,0,0,162,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,94,0,0,0,219,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,29,59,0,0,183,132,254,29,29, - 34,34,34,20,34,20,171,171,20,183,0,0,0,122,162,183, - 163,183,0,0,162,0,26,178,55,253,132,35,163,0,26,166, - 219,122,0,42,187,126,187,126,187,183,126,224,126,187,187,187, - 50,183,183,224,224,224,224,50,111,111,224,166,111,111,187,111, - 111,111,111,111,111,111,111,111,109,111,111,111,109,111,111,111, - 111,111,109,111,111,109,111,111,111,109,111,111,111,109,111,111, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 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,226,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,226,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,111,221,0, - 0,0,0,166,224,224,95,111,111,111,111,126,166,183,183,183, - 183,183,187,183,187,126,111,111,111,111,111,75,95,95,47,75, - 95,126,126,111,163,111,111,109,111,111,111,111,187,187,219,219, - 219,166,132,26,177,177,228,20,34,95,183,224,95,42,103,201, - 226,122,0,0,111,48,31,226,162,0,0,56,42,219,187,42, - 42,42,26,26,42,122,226,103,48,177,47,163,183,34,64,44, - 29,142,20,29,171,171,15,229,20,15,151,15,229,226,228,186, - 151,229,186,151,151,133,55,133,48,103,103,190,46,163,0,225, - 225,44,151,122,122,42,187,59,40,0,122,0,122,122,122,122, - 122,122,0,42,183,183,227,212,212,94,163,48,48,104,111,111, - 162,166,162,111,224,254,0,40,59,0,0,246,221,246,94,0, - 221,0,0,0,0,0,0,221,221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,221,221, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,221,104,164,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,183,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,50,212,162,0,0,0,122,59,34, - 29,44,34,171,192,29,29,20,35,187,42,122,0,162,42,183, - 163,187,26,26,219,122,56,29,55,178,187,59,163,0,187,224, - 182,109,224,254,150,111,132,187,94,187,187,183,183,126,111,166, - 150,132,183,187,187,187,219,166,132,166,42,183,183,183,221,166, - 111,111,132,187,42,227,111,111,111,187,42,183,126,111,111,132, - 219,183,183,187,187,126,166,166,183,166,166,166,187,187,183,126, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,0,0,0, - 0,0,0,50,59,97,111,75,97,75,75,95,59,46,35,35, - 35,24,223,44,223,44,46,44,44,44,35,99,35,59,111,111, - 187,183,187,187,219,219,219,187,219,219,219,219,111,75,200,200, - 224,224,163,187,177,222,129,15,34,111,183,203,187,42,228,79, - 24,42,0,0,95,187,246,94,162,0,0,0,122,78,78,183, - 122,78,42,122,122,0,223,228,253,223,200,111,183,44,109,75, - 47,47,34,34,20,20,20,20,253,20,15,135,151,24,223,151, - 151,186,55,151,228,151,151,151,223,55,103,177,47,75,0,34, - 44,64,20,221,122,122,166,95,200,0,0,0,0,0,0,0, - 0,0,162,50,162,162,221,94,78,0,215,203,203,183,50,50, - 122,166,0,44,64,99,0,163,46,0,162,221,246,40,246,94, - 246,221,0,0,0,0,221,221,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,162,0,0,0,0,0,0,0,0,0,0,0,0,94,50, - 0,0,0,0,0,0,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 56,122,0,0,0,0,0,78,0,0,0,0,78,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,221,0,122,221,0,0,0,0,0,221, - 44,34,47,142,34,44,29,34,47,183,26,122,0,122,94,183, - 203,187,26,42,219,26,122,171,103,34,166,59,75,0,0,122, - 183,122,219,187,187,150,111,150,183,187,183,183,162,187,219,183, - 183,162,183,183,187,183,183,187,183,187,183,42,183,26,26,183, - 183,42,183,183,183,219,183,42,221,183,183,183,183,183,183,42, - 183,187,42,183,221,183,42,187,183,42,183,42,183,183,42,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 183,78,0,75,59,200,200,24,34,29,253,177,253,29,253,20, - 29,223,34,223,223,35,59,224,95,141,224,150,111,187,26,26, - 187,183,183,166,126,78,183,94,50,163,104,142,142,35,35,200, - 46,59,75,126,129,222,229,15,20,109,97,223,46,46,253,251, - 164,122,0,0,94,183,183,42,183,183,183,94,94,221,221,221, - 162,221,0,0,0,0,226,123,135,177,47,111,162,99,182,59, - 104,44,46,47,46,64,29,20,34,20,229,15,229,24,209,178, - 151,15,229,15,135,135,135,135,226,55,103,223,47,111,122,99, - 64,64,135,56,122,122,219,95,40,0,0,0,0,0,0,0, - 0,0,162,162,0,0,221,221,0,0,104,55,103,46,59,59, - 42,34,0,44,64,99,0,40,200,0,221,221,183,40,183,221, - 162,0,221,221,221,221,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,59, - 239,94,183,0,0,0,0,126,97,219,78,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,0,0,0,0,0,0, - 0,0,0,0,0,122,0,0,166,183,0,0,0,0,0,0, - 64,34,192,142,47,47,47,34,24,0,26,0,0,0,162,219, - 95,183,26,26,219,26,42,29,229,35,111,59,163,219,26,122, - 122,0,0,0,0,42,187,111,166,109,187,187,219,187,42,187, - 187,187,111,187,187,183,187,126,187,187,126,187,111,111,187,132, - 111,187,111,111,187,166,150,187,111,111,187,132,187,187,111,111, - 187,126,187,187,111,111,187,111,187,187,111,111,187,111,111,132, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,94,126, - 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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,0, - 0,0,0,0,0,0,94,126,0,0,0,0,0,0,0,0, - 50,162,183,223,253,253,253,29,177,24,223,29,44,46,224,99, - 59,224,59,109,224,99,59,35,24,142,223,177,223,135,48,177, - 253,48,177,253,177,177,253,48,253,48,223,177,223,223,223,177, - 223,253,190,223,222,168,103,229,29,183,241,251,168,226,94,162, - 0,0,0,221,122,162,42,94,78,94,162,183,183,162,78,162, - 122,122,122,122,0,122,226,103,135,253,24,163,78,75,111,111, - 97,47,47,44,35,47,47,29,34,20,171,229,135,135,229,135, - 245,135,135,171,135,135,135,29,241,79,103,177,59,163,122,59, - 64,254,20,221,122,122,122,215,183,0,0,0,0,0,0,0, - 0,0,162,50,0,40,173,135,48,203,223,103,48,135,241,95, - 221,29,0,214,214,64,0,200,104,0,0,0,42,219,221,246, - 221,0,0,0,221,246,221,0,0,0,0,0,0,221,221,0, - 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,34, - 44,29,46,50,212,0,0,221,246,111,78,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,221,162,0,0,0,0,122, - 0,0,0,0,0,0,0,122,200,97,0,17,150,0,0,0, - 132,34,99,142,44,99,34,64,200,122,122,122,0,0,0,78, - 94,183,17,12,12,12,26,135,55,226,141,59,141,17,243,243, - 150,243,187,26,42,0,0,0,122,162,187,99,64,224,187,109, - 187,183,183,221,94,42,183,219,187,187,187,187,111,109,187,111, - 150,111,109,109,187,109,111,111,109,109,187,109,111,111,109,109, - 187,109,111,111,109,254,187,111,111,111,109,109,187,254,150,111, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,56,246,163, - 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,56,246,163,0,0,0,0,0,0,0,0, - 0,0,215,111,95,187,111,26,187,150,109,95,111,59,59,35, - 24,223,223,177,135,222,135,222,222,135,222,129,222,222,129,129, - 222,222,222,135,222,135,48,135,253,135,135,222,135,168,177,222, - 48,222,222,129,222,177,223,35,200,162,50,104,126,183,163,163, - 163,239,50,50,163,37,40,50,163,50,94,94,162,78,122,0, - 122,0,0,122,0,122,92,103,129,223,35,183,122,211,187,59, - 47,47,34,29,34,44,44,171,20,229,245,133,133,133,38,186, - 133,38,151,151,135,29,135,29,177,201,79,20,47,111,78,224, - 64,182,29,183,0,122,183,40,200,104,104,95,95,95,97,95, - 97,95,50,162,183,163,28,135,72,226,173,79,173,21,251,26, - 42,200,0,99,59,182,166,95,200,200,59,47,40,221,94,246, - 212,246,221,94,94,162,221,221,0,0,0,0,0,221,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,50,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126, - 44,223,239,122,177,212,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,122, - 0,0,0,0,0,0,0,0,183,183,162,109,99,17,0,215, - 95,59,64,142,47,59,44,64,75,0,0,0,0,0,0,0, - 0,0,122,122,122,26,42,24,135,178,111,200,126,42,219,219, - 187,141,254,150,243,12,12,26,56,122,0,0,166,95,111,99, - 109,243,150,150,187,17,215,219,183,56,183,0,122,162,219,111, - 166,166,166,183,183,166,150,227,166,94,183,166,132,126,166,94, - 215,132,132,187,187,94,219,132,132,126,166,183,183,126,111,166, - 0,0,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,203,142,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,221, - 26,0,0,0,0,0,0,40,0,0,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,203,142,162,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,221,26,0,0,0,0,0,0,0, - 42,183,42,24,223,223,253,222,222,222,129,31,228,103,228,103, - 228,222,103,103,129,31,129,251,129,31,222,222,129,222,222,222, - 135,253,135,222,48,222,135,222,222,222,222,222,222,129,129,222, - 222,31,228,228,46,203,162,162,162,0,219,17,219,219,187,59, - 126,187,166,227,239,239,50,50,183,221,42,122,122,122,122,122, - 122,122,122,0,122,42,37,177,177,200,50,162,0,162,0,221, - 122,162,94,221,94,94,246,95,40,227,40,40,200,75,163,203, - 75,95,163,239,187,227,212,94,37,48,222,24,163,215,0,221, - 183,42,40,0,0,0,0,162,221,221,94,246,246,246,246,246, - 221,94,94,162,0,183,242,15,38,104,133,55,38,87,55,0, - 221,0,0,0,0,122,122,221,221,40,40,40,212,94,212,212, - 246,221,246,246,221,94,221,0,0,0,0,0,0,0,0,0, - 0,0,0,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,162,162, - 0,0,0,0,0,0,0,162,0,0,0,0,0,0,94,162, - 0,0,0,0,162,212,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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, - 126,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78, - 0,0,0,0,0,0,212,162,0,162,183,99,243,99,0,183, - 47,47,44,99,47,59,59,47,59,0,122,0,122,122,0,0, - 0,122,122,42,122,42,42,50,46,75,166,75,111,17,219,111, - 166,42,26,166,132,243,243,150,150,243,12,17,26,122,0,162, - 221,94,126,187,166,254,211,99,99,235,182,243,150,187,132,166, - 150,187,219,187,17,111,150,187,219,187,187,132,132,187,187,187, - 17,111,132,166,166,187,132,111,132,132,183,187,219,150,17,187, - 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,0,129,103,209,162,0,0, - 0,0,0,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,46,0,0,0,0,0,162, - 55,135,0,0,0,0,0,40,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,0,129,103,209,162,0,0,0,0,0,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,221, - 0,46,0,0,0,0,0,162,55,135,0,0,0,0,0,135, - 201,103,190,55,103,55,55,201,201,55,103,103,103,228,31,222, - 103,222,228,228,103,228,31,103,228,129,228,228,222,222,31,222, - 129,228,129,31,135,222,129,222,129,222,129,31,129,31,228,129, - 222,177,223,241,0,0,0,0,0,0,0,246,241,203,40,221, - 215,40,40,0,122,122,122,0,122,122,122,0,0,122,0,0, - 122,0,122,0,0,122,212,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,221,94,212,0,0,0,0,0,0, - 0,0,0,0,0,0,122,0,122,122,0,0,0,122,0,0, - 0,0,162,162,0,212,72,72,48,173,134,72,72,15,242,0, - 0,221,0,0,0,0,0,0,122,0,122,221,221,246,221,221, - 221,0,246,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,94,94,0,0,0,0,0,0,0,0, - 0,221,221,0,0,162,162,162,0,0,0,0,0,122,42,42, - 42,26,26,26,42,26,0,0,94,162,94,227,183,17,219,219, - 219,219,17,17,17,150,150,12,12,12,243,8,8,8,8,12, - 17,26,42,0,0,0,0,0,122,183,99,99,235,99,182,182, - 182,224,109,182,182,182,182,224,211,182,182,182,99,254,109,182, - 182,182,182,254,109,182,99,182,224,254,109,182,182,99,182,254, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,94,162,241,0,22,50,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,122,122, - 241,203,0,0,0,0,0,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,94,162, - 241,0,22,50,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,122,122,241,203,0,0,0,0,0,201, - 242,55,201,201,103,103,201,177,103,55,103,228,228,228,103,103, - 228,55,103,201,48,129,55,228,228,228,103,129,129,253,223,177, - 135,142,226,135,129,222,222,228,222,129,228,151,31,79,177,177, - 135,241,177,177,226,177,190,223,190,92,226,223,104,223,92,203, - 241,226,226,241,104,203,241,241,104,200,92,241,104,104,104,104, - 104,46,212,50,212,104,122,241,46,104,104,46,104,104,241,241, - 203,104,104,104,142,97,203,241,203,203,203,212,40,203,212,37, - 163,40,95,227,94,0,0,122,122,94,183,212,221,0,94,47, - 94,212,221,183,94,78,162,183,162,162,162,183,227,183,0,183, - 94,227,162,0,0,95,21,20,18,38,38,190,173,40,197,0, - 122,162,0,122,183,42,162,122,221,221,246,0,0,221,221,0, - 221,221,221,0,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,94,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,42,122,0,0,122,42,122,122,122,42,122,0,122, - 122,122,122,122,42,122,0,0,0,0,0,0,0,122,122,219, - 219,219,17,12,17,187,26,17,17,17,12,8,182,141,49,141, - 67,67,8,8,8,26,42,122,0,0,50,61,200,59,64,99, - 182,99,99,224,64,99,182,99,67,59,64,99,254,67,59,182, - 64,99,182,67,59,182,99,99,224,67,99,59,64,99,99,99 - }; - -static char hdl_huge_off[] = { - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,213,213,68,213,213,68,213,213,68,213,68,68,213,68,68, - 68,68,68,68,68,68,68,68,68,68,125,68,68,68,68,68, - 68,68,125,68,68,125,68,68,125,68,68,68,68,68,68,68, - 68,68,68,125,68,68,213,213,174,121,213,174,213,213,213,213, - 213,213,213,213,213,213,174,213,213,213,213,213,213,213,174,213, - 213,213,213,174,213,152,213,205,205,213,213,213,205,213,68,174, - 213,205,68,205,68,125,213,68,125,213,125,213,125,213,68,125, - 174,213,125,213,174,125,68,125,125,174,174,213,125,68,125,125, - 125,68,125,174,68,125,125,125,68,174,205,174,205,68,205,125, - 68,68,68,205,125,68,68,205,213,68,125,68,125,125,125,68, - 205,205,205,174,125,174,205,125,174,205,125,205,125,205,125,125, - 205,205,125,125,125,205,125,125,125,125,125,125,4,205,202,205, - 202,205,205,205,125,202,205,205,152,205,202,205,202,202,125,202, - 205,202,202,234,205,205,202,205,202,234,125,205,202,234,205,205, - 205,202,205,202,234,202,234,202,205,234,205,202,80,69,205,80, - 202,205,80,80,205,205,202,80,205,80,205,80,80,234,234,205, - 4,145,80,205,80,202,69,80,205,69,80,80,80,199,234,234, - 80,80,202,80,205,80,80,4,80,199,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,202,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,69,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,4,80,80,4,80,80,80,80,80,80,80,80, - 80,80,69,80,69,80,69,80,69,80,80,69,80,69,80,80, - 80,80,80,69,69,80,69,80,69,80,69,80,202,69,202,202, - 202,80,69,202,202,69,202,202,202,69,202,202,238,202,69,69, - 238,69,202,238,238,238,238,238,202,121,202,238,57,69,69,191, - 69,69,191,69,191,69,191,69,191,80,238,202,69,202,202,238, - 238,69,238,69,69,69,69,80,69,69,69,69,69,69,80,69, - 69,69,69,69,69,69,69,69,69,69,69,69,80,69,69,69, - 69,69,69,69,69,69,80,69,69,69,69,69,80,69,69,69, - 3,3,69,3,69,3,69,80,69,3,80,69,3,3,3,3, - 3,3,3,3,3,3,199,3,3,3,3,3,3,3,3,3, - 3,3,199,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4, - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,68,68,213,213,68,213,213,125,213,125,213,213,125,213,213, - 125,174,213,125,213,174,174,174,174,174,68,213,125,68,213,121, - 68,68,213,174,125,213,125,68,68,68,68,68,96,54,96,68, - 68,68,68,68,213,125,174,213,121,213,213,16,213,16,213,213, - 213,213,213,213,174,213,213,174,213,213,213,213,213,213,213,174, - 213,174,213,213,213,174,213,213,213,68,205,68,68,213,205,213, - 68,68,213,68,213,68,213,174,68,213,174,125,213,125,174,68, - 68,68,174,125,213,125,213,174,68,68,68,125,68,174,68,68, - 68,125,68,125,125,174,213,205,205,68,68,68,68,205,68,68, - 125,125,125,68,68,205,125,68,125,125,68,125,125,68,125,205, - 68,125,125,125,205,125,125,205,205,125,205,125,205,125,125,125, - 125,125,125,125,205,125,205,205,69,125,125,205,125,125,125,202, - 152,202,125,125,205,205,205,205,205,234,202,205,205,202,205,202, - 125,205,205,125,202,205,202,205,205,205,202,80,205,125,202,202, - 202,205,80,205,202,205,202,202,80,202,80,205,202,202,80,202, - 202,205,202,202,202,205,80,205,234,202,80,234,205,4,80,4, - 4,235,80,205,80,80,80,80,202,80,205,80,205,80,69,69, - 205,80,80,234,80,234,234,4,234,4,199,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 202,205,80,202,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,205,80,205,80,202,125,80, - 125,80,202,205,80,202,202,205,80,80,205,80,80,4,80,4, - 80,4,80,80,80,80,80,80,80,80,69,69,80,69,69,69, - 69,80,121,80,80,69,80,202,80,202,69,202,202,202,202,69, - 202,202,202,202,202,202,238,202,238,238,238,238,202,238,202,69, - 202,121,57,202,69,238,202,121,238,238,69,57,69,191,69,57, - 238,238,69,57,69,238,202,238,238,238,69,238,202,121,238,69, - 238,69,69,121,69,69,69,69,121,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,80,69,69,69,69,69,69, - 69,69,69,69,69,69,69,80,69,69,3,69,69,69,69,80, - 69,80,69,80,69,3,69,3,69,3,69,80,3,80,3,3, - 80,3,3,3,3,3,3,3,3,199,3,3,3,3,3,3, - 3,3,199,3,3,3,3,199,3,3,3,3,3,3,3,3, - 3,3,3,3,3,69,3,69,3,3,69,4,3,69,69,69, - 213,213,213,213,213,213,213,213,213,213,213,68,213,68,213,68, - 213,213,213,68,174,213,68,213,213,213,174,213,125,213,125,213, - 213,213,125,213,213,68,213,213,213,68,125,213,68,125,213,68, - 68,121,68,213,68,121,213,68,125,68,96,68,68,68,68,68, - 68,68,68,125,213,213,68,213,213,125,213,16,213,54,213,213, - 213,213,213,213,213,213,213,213,174,213,213,68,213,213,213,213, - 213,213,205,213,213,68,68,125,213,68,213,213,68,68,213,68, - 174,68,68,125,68,125,213,68,68,68,213,68,121,213,213,125, - 213,68,205,213,174,125,68,125,213,125,68,125,68,125,125,68, - 125,68,205,68,68,205,68,68,125,125,125,125,68,125,125,68, - 68,68,125,125,68,68,125,68,125,125,68,205,205,205,68,205, - 125,125,68,125,205,68,125,68,205,125,125,125,125,125,125,125, - 125,125,4,125,125,125,125,125,205,205,125,205,125,4,125,125, - 125,80,205,125,202,152,80,205,125,205,205,152,205,205,152,80, - 205,202,80,205,125,202,205,202,125,202,152,80,80,202,234,205, - 234,205,205,202,80,80,202,234,80,205,202,234,202,234,205,234, - 80,202,234,205,80,202,80,202,202,234,202,80,205,202,205,80, - 80,235,202,80,205,80,205,80,80,202,80,202,202,80,80,80, - 202,202,202,205,80,80,205,69,80,80,80,202,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80,80,80,171,80,202,80, - 202,202,80,205,205,80,205,80,205,80,205,80,125,80,205,205, - 202,125,80,202,80,202,202,202,202,202,202,202,80,80,202,80, - 80,80,202,80,202,80,80,80,202,80,205,202,125,80,205,202, - 202,80,202,80,69,69,69,202,69,80,80,202,80,80,80,80, - 238,80,80,238,80,202,202,69,202,202,238,202,69,238,202,238, - 238,69,238,238,238,80,238,80,69,202,69,238,69,57,121,238, - 202,238,121,238,202,238,202,238,69,57,238,69,57,69,57,69, - 69,57,69,238,57,69,238,202,238,238,238,121,202,238,69,69, - 57,69,69,69,238,69,69,191,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,3,69,69,80,69,69,80,69, - 69,69,69,69,69,3,69,69,69,80,69,3,69,3,3,69, - 3,69,3,69,80,69,80,69,3,69,3,69,3,80,3,3, - 3,80,3,3,3,3,3,3,3,199,3,199,3,3,3,3, - 3,3,3,3,3,3,3,3,3,199,3,3,3,199,3,3, - 3,3,3,69,3,4,3,69,4,3,69,4,3,3,3,69, - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,121,213,213,213,125,213,213,174,213,213,213,213,213,174,213, - 125,213,68,213,125,213,68,125,213,174,68,68,213,68,68,68, - 68,68,213,125,68,213,125,213,68,68,68,16,16,54,68,68, - 125,68,213,68,68,125,68,205,68,68,125,68,96,54,16,213, - 174,213,213,213,213,213,213,213,213,213,68,213,213,68,68,213, - 152,213,213,205,68,68,213,213,68,213,68,174,68,213,205,68, - 213,68,213,68,213,68,68,213,125,213,125,68,68,68,125,213, - 125,68,68,205,68,68,68,68,125,68,174,68,68,68,174,68, - 68,125,68,125,125,68,125,125,205,68,205,68,68,205,68,125, - 125,125,68,68,205,205,68,125,68,205,125,68,152,68,125,125, - 68,205,205,152,68,205,205,205,125,205,125,125,125,125,125,125, - 125,125,125,125,125,125,125,205,125,125,125,125,205,125,125,125, - 4,152,125,205,125,205,205,125,205,205,125,205,202,125,205,205, - 125,205,202,205,80,152,125,205,80,205,80,152,205,205,125,80, - 125,205,80,205,202,205,205,202,202,202,202,205,202,205,80,125, - 234,202,202,80,205,234,202,80,205,202,202,202,80,202,205,205, - 80,99,202,202,80,202,80,80,202,80,202,80,80,202,80,202, - 80,80,202,80,202,202,80,199,202,205,202,80,80,202,80,202, - 80,80,80,171,80,202,80,80,80,171,80,202,80,202,80,202, - 80,202,202,202,80,202,80,80,171,80,202,80,80,80,202,80, - 202,202,202,202,80,202,80,202,80,202,80,202,80,80,80,202, - 80,80,80,202,202,80,80,202,80,202,80,80,202,205,202,202, - 202,202,80,125,80,202,202,202,202,80,202,80,80,80,202,202, - 202,202,202,202,80,80,80,202,202,80,238,80,238,80,238,80, - 69,80,202,80,238,202,202,202,202,69,202,238,80,202,69,202, - 202,238,202,69,202,238,69,57,69,57,202,69,238,202,202,69, - 238,202,238,202,238,238,238,69,238,238,69,57,238,238,202,57, - 69,57,69,69,238,238,202,238,69,238,69,238,238,69,238,238, - 238,69,191,69,69,238,69,69,69,69,121,69,69,121,69,69, - 121,69,69,69,69,69,69,69,69,69,69,3,69,69,69,69, - 69,69,69,69,69,69,80,69,69,69,69,80,69,69,3,80, - 69,80,69,3,69,3,69,3,3,69,3,69,3,3,80,3, - 3,3,80,3,3,3,3,3,3,3,199,3,3,3,3,199, - 3,3,3,3,199,3,3,3,3,3,3,199,3,3,3,3, - 3,3,3,3,80,3,4,4,4,4,3,69,4,4,4,3, - 213,213,213,213,213,213,213,213,213,213,68,213,213,174,213,174, - 213,213,68,213,213,68,213,68,174,205,213,205,68,213,125,213, - 68,174,68,68,213,68,213,68,213,213,125,68,68,68,174,68, - 68,125,213,68,68,68,125,68,125,68,68,68,54,68,68,68, - 213,125,68,68,68,213,68,68,174,68,68,213,68,68,96,213, - 213,213,213,213,213,213,213,213,213,213,125,213,213,213,213,213, - 174,213,213,174,213,205,68,205,68,205,213,68,205,213,213,205, - 213,125,213,125,68,125,68,68,68,68,213,68,68,68,125,68, - 205,174,68,68,174,205,68,68,174,68,125,174,125,68,125,68, - 125,68,68,68,125,68,68,68,68,68,125,68,68,125,205,68, - 68,125,68,68,68,152,68,152,125,68,68,125,125,68,152,205, - 125,68,205,205,68,152,125,68,125,205,125,125,125,125,125,125, - 125,125,125,125,125,125,125,125,125,4,125,125,125,205,205,125, - 125,69,202,205,125,125,205,125,125,205,125,125,205,125,125,202, - 205,152,202,205,205,80,205,205,205,152,4,80,205,80,205,205, - 80,152,205,202,202,202,202,202,202,202,205,202,202,202,234,80, - 205,202,202,202,202,205,202,205,80,202,234,205,202,80,202,202, - 202,235,205,202,234,234,205,202,202,202,202,202,202,202,202,202, - 202,80,202,202,202,234,205,80,80,80,202,202,80,202,234,202, - 202,202,202,80,202,171,80,202,202,202,80,80,80,171,80,202, - 80,80,80,171,202,80,80,202,80,80,202,202,80,202,202,80, - 202,80,80,202,80,202,80,202,80,202,80,202,202,202,202,202, - 202,202,202,80,202,202,80,202,202,202,202,202,202,202,80,202, - 202,202,80,202,80,80,80,202,80,202,202,202,202,202,202,69, - 202,202,202,125,202,202,202,202,80,202,80,69,202,202,80,69, - 202,238,80,202,80,238,80,238,69,202,80,238,202,238,238,202, - 202,69,202,238,202,69,202,238,202,238,69,202,238,238,57,238, - 238,69,238,238,238,238,238,238,238,238,238,202,238,238,238,238, - 238,238,191,202,238,238,238,238,202,238,202,238,238,69,202,121, - 238,69,69,238,69,191,69,191,69,238,69,69,121,69,69,69, - 69,121,69,69,69,69,69,69,69,80,69,69,69,69,69,69, - 69,69,69,69,80,69,69,80,69,69,3,69,69,80,3,69, - 3,80,3,69,80,69,80,69,80,3,3,69,80,3,3,3, - 80,3,3,3,3,3,3,3,3,3,3,3,3,3,199,3, - 3,3,3,3,3,3,199,3,3,3,3,3,3,3,3,80, - 3,80,3,3,80,3,4,69,4,4,4,69,3,69,4,4, - 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,125,213,213,68,213,68,213,213,213,68,213,213,68,213,68, - 213,68,213,68,68,68,68,68,68,213,68,68,174,68,68,174, - 213,68,68,174,68,68,68,68,68,68,68,54,68,96,16,68, - 68,68,68,68,68,125,68,68,68,68,68,96,54,54,68,54, - 68,213,213,213,213,213,213,213,213,213,213,68,68,68,213,152, - 213,213,68,213,213,213,213,213,213,213,68,213,213,68,68,213, - 68,213,68,68,213,68,68,213,125,213,205,68,213,68,68,213, - 68,68,68,68,68,68,213,125,68,68,213,68,68,68,174,68, - 68,125,68,125,68,68,125,125,125,68,68,125,68,68,68,152, - 68,68,152,68,68,125,125,125,68,152,125,125,68,125,125,68, - 205,205,125,125,205,125,68,205,205,125,125,125,205,125,205,125, - 125,125,125,205,125,125,125,125,125,125,125,125,125,125,125,125, - 125,205,125,125,205,205,152,205,205,125,205,202,125,202,205,205, - 125,205,125,125,125,125,152,125,125,4,152,202,125,152,202,202, - 205,80,202,202,202,202,202,205,234,202,202,205,234,202,125,202, - 205,234,202,202,202,202,202,202,205,202,202,202,202,202,205,202, - 202,99,125,205,125,202,202,202,202,202,202,202,202,202,202,202, - 202,202,205,234,202,202,202,80,202,202,80,234,202,202,80,202, - 234,202,80,202,80,69,171,80,202,80,202,202,202,202,202,80, - 202,202,80,202,80,171,80,80,80,171,80,80,202,80,202,80, - 202,80,202,202,202,202,202,80,202,80,202,80,80,202,202,202, - 80,202,171,202,202,80,202,80,202,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,80,202,202,202,202,80, - 202,202,202,80,202,202,202,69,238,202,202,80,202,202,80,202, - 202,80,238,80,238,80,202,80,238,238,69,202,238,69,80,238, - 238,238,238,202,238,238,238,202,238,202,238,57,69,69,69,202, - 238,238,238,202,69,238,238,238,238,238,238,69,238,69,238,69, - 238,238,202,191,69,238,121,238,238,121,238,238,238,238,191,202, - 238,69,191,69,191,80,69,69,69,69,121,69,121,69,121,69, - 69,121,69,69,69,69,69,69,69,69,69,69,80,69,69,69, - 69,80,69,69,69,3,69,3,69,69,69,80,69,69,80,69, - 80,69,80,3,69,3,69,3,69,80,69,3,3,3,80,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,199,3,199,3,3,3,3,3,3,3,3,3,3,80,3, - 3,3,80,3,69,4,4,3,69,4,69,3,69,4,3,69, - 213,213,54,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,213,213,121,213,213,68,68,68,213,68,68,213,68,68,68, - 213,125,213,68,213,68,68,68,68,125,213,68,213,68,68,125, - 213,68,68,68,174,68,68,68,68,68,68,54,68,68,68,68, - 68,213,125,213,68,68,68,68,68,68,68,68,96,54,68,213, - 68,213,213,213,213,213,213,213,68,213,174,213,213,213,213,213, - 213,213,152,213,68,68,68,68,68,68,68,68,213,68,68,68, - 205,213,68,68,68,68,125,213,125,213,125,68,68,68,68,68, - 68,68,205,213,68,125,68,68,68,205,68,68,205,68,68,125, - 68,125,68,125,68,68,68,68,125,125,68,125,68,125,125,125, - 68,125,125,125,238,68,125,125,125,68,68,125,68,205,125,68, - 57,68,125,68,125,205,68,152,125,125,125,125,205,125,125,125, - 125,125,125,205,205,205,125,125,125,125,125,205,125,125,205,205, - 152,69,205,125,202,205,125,202,205,202,205,205,205,125,125,80, - 125,205,205,205,205,125,80,205,125,125,125,202,80,125,125,152, - 125,202,205,152,205,202,202,202,205,202,202,202,205,80,202,202, - 202,205,202,202,152,234,205,202,202,202,202,234,205,80,202,202, - 69,99,202,80,202,202,202,234,205,202,152,234,205,202,152,234, - 205,202,202,205,202,202,202,202,80,202,202,205,202,202,202,202, - 202,234,202,234,80,80,80,80,202,80,80,80,202,80,202,80, - 80,202,171,80,80,205,202,202,69,80,80,202,80,171,80,202, - 80,202,202,202,202,202,202,202,202,202,80,202,202,202,202,202, - 202,202,69,80,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,202,238,202,202,80,238,80,238,80,80,238,80, - 238,80,202,69,238,238,69,80,202,69,57,80,238,238,202,202, - 202,80,238,202,80,69,238,238,238,202,238,238,238,57,57,69, - 202,238,238,238,238,238,238,238,238,238,238,238,238,238,191,238, - 238,191,238,191,238,238,238,238,121,238,238,69,238,202,191,238, - 238,202,238,80,191,238,69,69,238,69,121,69,121,69,69,69, - 69,69,69,121,69,69,69,69,69,69,69,69,69,69,80,69, - 69,69,69,80,69,69,80,69,80,69,69,69,69,3,3,80, - 69,3,3,69,80,69,3,69,3,69,3,69,80,3,3,3, - 80,3,3,80,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,80,3,3,3,80, - 80,3,3,3,69,3,4,3,69,3,3,4,4,69,3,4, - 54,54,213,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,68,213,213,213,68,213,213,174,68,213,213,68,68,213,213, - 68,213,68,213,68,213,125,213,213,213,125,68,68,68,213,68, - 68,68,68,68,68,213,125,68,68,68,96,68,54,54,68,68, - 213,68,213,125,68,68,125,68,68,68,68,54,68,54,96,54, - 68,68,213,213,213,213,213,213,213,213,213,213,68,213,213,152, - 213,213,213,213,213,68,213,68,68,213,68,68,68,68,213,213, - 213,68,68,68,68,213,213,68,213,68,68,213,125,68,68,68, - 68,68,68,68,68,68,68,68,125,68,68,68,68,68,68,68, - 68,68,125,68,125,68,68,68,68,68,68,68,125,68,68,68, - 125,68,68,68,68,68,68,68,68,68,125,68,125,68,125,152, - 125,152,68,205,205,125,205,125,68,68,205,68,125,68,205,125, - 125,125,68,125,68,125,205,125,125,125,125,125,202,125,125,125, - 69,152,125,80,125,125,205,125,202,152,202,125,125,205,205,152, - 205,202,125,202,125,4,152,125,202,205,69,152,202,205,80,202, - 125,202,205,202,202,205,152,202,205,202,202,125,80,152,205,80, - 152,202,205,205,80,125,80,234,152,202,202,202,152,202,202,125, - 80,235,125,202,202,205,152,202,202,205,80,202,202,205,80,202, - 202,202,202,202,202,152,202,202,202,202,202,80,152,202,202,202, - 205,202,202,202,202,202,202,202,202,202,202,202,202,202,80,202, - 202,80,202,202,202,80,80,80,80,202,202,202,80,202,202,80, - 202,80,80,202,202,80,202,202,80,80,171,80,80,202,202,202, - 202,202,80,202,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,202,202,69,202,202,202, - 69,238,202,202,202,80,202,202,69,202,80,202,238,80,202,69, - 80,202,238,80,80,202,238,202,202,69,202,69,202,202,69,238, - 238,238,69,57,238,69,238,80,238,238,238,202,69,69,238,238, - 238,238,238,238,69,238,238,69,191,69,238,238,238,238,238,238, - 238,238,238,238,69,238,69,191,238,238,202,238,121,191,238,238, - 238,238,238,238,238,69,238,69,121,69,121,69,121,121,69,121, - 69,69,69,69,121,69,69,69,69,69,69,69,80,69,69,69, - 80,69,69,69,80,69,69,69,3,69,69,3,69,69,3,69, - 3,80,80,69,3,69,3,69,3,69,3,69,3,3,80,3, - 3,3,3,3,3,3,3,3,3,3,3,80,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,80,3,3, - 3,80,3,80,3,69,69,4,3,4,4,4,3,4,4,4, - 213,213,54,213,213,213,213,213,213,213,213,213,213,213,213,213, - 213,213,68,68,213,68,213,213,213,152,213,213,68,68,68,68, - 68,68,68,68,68,213,68,68,68,213,213,125,213,68,68,68, - 68,68,68,68,125,213,68,68,68,68,96,68,68,54,68,68, - 68,68,68,213,68,213,68,68,68,68,125,54,68,54,68,54, - 213,68,213,213,213,213,213,213,68,213,68,213,213,213,213,213, - 213,152,213,68,68,68,213,68,68,213,68,213,68,68,68,68, - 68,68,68,68,125,68,68,68,68,68,125,213,68,205,68,68, - 205,68,68,68,68,125,68,68,68,68,205,68,125,68,125,125, - 68,68,68,68,125,68,125,68,125,125,68,68,68,68,125,68, - 238,68,68,68,125,68,125,152,125,68,152,68,125,68,238,68, - 125,125,152,238,68,57,125,125,125,125,125,68,125,125,125,125, - 125,125,125,125,125,152,125,57,125,125,125,125,125,125,125,125, - 125,205,125,125,125,125,125,125,125,125,125,125,202,125,125,125, - 125,80,125,205,125,125,202,125,125,125,125,125,125,152,125,80, - 152,125,202,205,202,202,205,202,152,205,80,152,80,125,202,125, - 205,202,202,202,125,202,125,205,205,202,202,80,205,202,202,125, - 202,99,57,125,80,202,125,202,202,152,202,205,202,202,152,205, - 152,202,202,202,202,202,202,202,202,152,202,202,202,202,152,80, - 202,202,202,202,202,202,202,80,202,202,202,80,202,202,171,202, - 202,202,202,234,205,202,202,202,202,202,80,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202, - 202,202,202,202,80,202,202,202,202,202,202,202,202,57,202,202, - 202,202,202,202,202,202,202,202,57,202,202,202,202,202,57,202, - 80,202,238,238,202,238,202,238,80,238,202,80,238,238,80,238, - 238,80,238,238,202,202,202,238,69,57,69,238,69,238,202,80, - 238,69,238,238,238,202,238,69,238,202,238,238,238,202,238,238, - 69,202,238,238,238,238,238,238,69,191,238,69,238,69,57,121, - 69,69,238,191,191,121,69,191,69,191,238,121,238,202,121,238, - 238,238,238,80,191,238,238,69,238,238,238,121,69,121,121,69, - 121,121,69,69,69,121,69,69,69,69,69,69,69,69,69,69, - 69,69,3,69,69,69,80,69,69,69,80,69,69,80,69,80, - 69,3,3,80,3,80,69,80,69,80,69,80,3,80,3,3, - 3,80,3,3,3,80,3,80,3,3,3,3,80,3,3,3, - 3,3,3,3,3,80,3,3,3,80,3,80,3,69,69,69, - 3,3,69,3,4,3,69,3,4,69,4,4,3,4,4,3, - 213,54,213,54,54,213,54,213,213,54,54,213,213,213,213,213, - 68,213,213,213,213,213,68,213,213,213,213,68,68,213,68,213, - 68,213,68,213,68,68,213,213,68,68,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,54,63,68,54,68, - 68,68,68,68,68,68,68,68,68,68,68,54,96,68,208,68, - 54,213,68,213,213,213,213,213,213,213,213,213,213,68,68,213, - 213,213,213,213,213,68,68,68,213,68,213,68,213,68,68,68, - 213,213,174,213,68,68,68,68,68,213,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, - 125,68,238,238,68,125,68,68,68,68,152,68,125,125,152,68, - 68,152,68,68,57,68,68,238,68,68,238,125,152,68,68,125, - 125,125,57,68,68,125,152,68,68,238,152,125,125,125,125,125, - 125,125,152,125,125,238,125,125,125,125,125,125,125,125,125,125, - 205,125,125,205,205,125,205,125,125,125,205,205,125,202,125,125, - 69,152,205,125,125,125,125,125,125,205,205,202,202,125,125,125, - 202,202,125,152,202,205,152,205,80,125,125,80,152,80,152,80, - 125,80,152,202,205,202,202,80,202,202,205,152,202,202,205,202, - 121,235,125,202,152,202,202,205,205,202,202,202,152,205,202,202, - 202,202,152,202,152,202,202,152,202,202,80,152,202,202,202,205, - 171,202,205,171,205,171,202,152,80,152,80,152,80,202,202,80, - 202,202,202,202,202,152,80,152,80,171,202,202,202,202,80,202, - 202,202,202,202,202,202,80,202,80,202,202,202,202,202,202,202, - 202,202,202,202,202,202,202,202,202,202,238,202,202,80,57,202, - 57,202,202,57,202,202,57,202,80,57,202,202,238,202,202,202, - 202,238,202,202,238,80,238,202,57,202,238,69,202,202,69,202, - 202,69,80,202,238,238,238,80,238,202,238,80,238,202,238,238, - 80,238,238,80,238,238,238,238,80,238,121,238,202,57,69,238, - 238,238,238,238,238,202,238,238,191,202,57,191,69,191,69,191, - 191,191,69,69,69,191,121,238,121,191,191,238,238,238,238,238, - 238,238,238,238,238,69,191,69,238,69,121,238,69,121,69,121, - 69,69,121,69,69,69,69,121,69,69,69,69,69,69,69,80, - 69,69,69,3,69,69,69,80,69,69,69,80,69,69,69,3, - 3,69,3,80,69,3,3,69,3,69,3,3,3,3,3,80, - 3,3,80,3,3,3,3,3,80,3,80,3,3,3,3,3, - 80,3,3,80,3,3,3,80,3,3,69,3,69,3,3,3, - 69,69,3,69,80,3,4,69,69,3,3,4,4,4,4,4, - 213,54,213,213,54,213,54,54,213,213,54,54,213,54,213,213, - 213,68,213,68,68,213,68,213,68,68,213,213,68,213,68,213, - 68,213,68,213,68,125,213,68,213,213,68,68,68,68,68,68, - 68,213,68,68,68,68,68,68,68,96,54,68,54,68,68,68, - 68,213,68,68,68,68,68,68,68,54,68,16,54,68,63,68, - 54,54,54,213,213,213,213,68,213,68,213,68,213,213,68,213, - 68,68,68,68,213,68,213,68,68,68,68,68,68,68,213,68, - 68,213,68,68,68,68,68,68,68,68,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,125,68,68,68, - 68,68,68,68,68,68,125,68,68,238,68,68,68,68,68,68, - 238,68,68,68,152,125,68,57,68,68,68,238,68,125,68,68, - 68,125,125,125,68,238,125,125,152,125,68,125,57,68,152,125, - 125,125,68,125,125,125,125,125,125,125,125,125,125,125,125,125, - 125,125,125,125,125,125,125,202,125,125,125,125,125,125,125,125, - 125,125,202,205,125,202,205,125,202,125,125,202,125,202,125,125, - 202,205,202,205,125,202,205,202,202,205,152,69,125,125,125,205, - 152,80,205,125,202,152,125,202,152,80,205,202,205,202,202,205, - 202,99,202,125,205,125,202,202,152,125,125,202,125,202,125,202, - 152,80,202,202,202,152,202,202,152,202,202,202,152,205,202,202, - 205,202,202,202,202,125,80,202,202,202,202,202,202,202,202,202, - 202,202,202,202,80,202,202,202,202,80,202,202,80,202,202,202, - 202,202,57,202,202,202,202,202,202,202,202,202,202,202,202,80, - 202,202,202,202,202,57,202,57,202,202,202,238,202,80,202,202, - 202,57,80,57,202,202,202,202,202,202,57,80,238,202,238,238, - 202,202,202,202,238,202,202,202,80,202,238,57,69,57,238,69, - 57,69,238,202,202,202,238,202,238,80,238,202,238,80,238,69, - 57,202,238,202,238,202,238,238,238,238,238,238,121,238,69,238, - 238,238,238,238,238,238,238,238,191,238,238,191,57,69,57,69, - 238,191,191,191,191,191,121,191,69,69,121,69,121,238,238,238, - 238,238,238,69,57,238,238,191,69,191,69,238,121,69,121,69, - 121,121,69,121,121,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,3,69,69,3,69,69,69,80,69,69, - 80,80,3,3,80,69,80,69,80,69,80,3,69,80,3,3, - 3,3,3,3,3,3,3,3,3,3,3,80,69,80,3,3, - 80,3,3,3,80,3,3,80,69,3,80,3,80,3,80,3, - 80,3,3,69,69,69,4,3,4,69,69,4,4,4,4,3, - 54,213,54,54,213,54,54,213,54,54,213,213,54,213,54,213, - 54,213,68,213,213,68,213,68,213,213,68,68,213,68,68,68, - 68,68,68,68,213,68,68,68,68,68,68,68,68,213,68,68, - 213,125,68,68,68,68,68,68,54,68,68,96,54,54,54,68, - 68,68,68,68,68,68,68,68,68,68,68,68,54,54,68,54, - 68,213,213,54,54,213,54,213,54,213,68,213,68,68,213,68, - 213,213,213,213,68,213,68,213,213,68,213,68,213,68,68,68, - 68,68,68,68,68,213,68,68,68,68,68,68,68,68,68,96, - 68,68,68,68,68,68,57,68,68,68,68,68,213,238,68,68, - 68,68,68,68,68,57,68,68,125,68,68,68,68,238,125,68, - 68,68,125,68,238,68,68,68,68,152,68,68,125,68,152,238, - 57,68,125,152,125,68,125,68,125,238,125,152,68,125,57,68, - 68,125,125,152,68,125,152,125,125,125,152,125,125,125,152,125, - 125,152,125,125,125,125,125,125,125,125,125,125,125,205,125,125, - 205,125,125,125,205,125,125,205,125,125,202,238,238,202,125,125, - 57,202,152,125,80,152,125,152,205,202,125,125,202,202,202,69, - 202,152,125,202,152,125,80,205,80,152,202,152,125,152,202,125, - 238,235,125,125,202,202,202,125,202,202,202,125,202,152,202,125, - 202,125,152,202,205,202,202,125,202,125,152,202,202,202,152,202, - 202,205,202,125,202,80,152,202,202,152,80,152,202,202,152,205, - 171,202,152,202,202,152,202,202,202,202,202,202,202,202,202,202, - 57,202,80,202,202,202,202,202,57,80,57,202,202,202,57,202, - 202,57,202,202,202,80,69,80,57,80,202,80,57,202,57,202, - 238,202,202,202,57,202,238,238,202,238,202,202,202,238,202,202, - 202,238,238,202,202,202,238,238,238,238,202,80,238,202,80,238, - 202,238,202,69,238,238,202,238,80,57,69,238,202,238,80,238, - 202,238,238,238,202,238,80,238,238,202,80,238,57,238,238,238, - 238,202,238,69,238,238,238,238,238,238,69,238,57,69,238,191, - 69,121,69,191,69,69,191,69,191,191,191,121,191,69,238,238, - 238,238,238,191,69,238,69,238,191,69,238,121,238,69,121,69, - 69,191,69,121,69,69,69,69,69,121,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,3,69,69,69,80, - 69,3,80,69,3,3,3,69,3,69,3,80,3,3,3,80, - 3,3,80,3,80,3,3,80,3,80,3,3,3,69,80,3, - 3,3,80,3,3,69,3,3,69,3,69,3,3,69,69,69, - 3,69,69,3,4,3,4,4,4,4,3,69,69,4,3,69, - 54,54,54,54,54,213,208,213,54,54,54,213,54,213,54,213, - 213,54,213,68,213,54,213,68,213,54,54,68,213,213,213,213, - 68,213,68,68,68,68,213,68,68,213,68,68,68,68,68,68, - 68,213,68,68,68,68,68,68,68,68,54,54,96,54,54,68, - 68,68,68,68,68,68,68,68,68,68,54,68,54,63,54,54, - 96,54,213,54,54,213,54,213,213,54,213,213,213,54,213,68, - 213,54,68,54,68,54,68,54,213,68,68,68,68,68,213,68, - 68,68,213,68,68,68,213,68,68,68,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, - 152,68,57,68,68,68,152,68,68,125,68,152,68,68,125,68, - 57,96,68,68,68,152,68,152,238,125,68,152,68,238,68,68, - 57,68,238,68,125,152,125,238,68,125,125,125,68,125,125,125, - 57,125,125,125,68,238,68,125,125,125,125,125,125,125,125,125, - 125,125,125,125,125,125,125,125,125,125,125,202,57,125,152,238, - 125,125,125,125,125,125,125,202,125,57,202,125,57,125,202,125, - 57,125,202,125,205,80,205,125,125,202,205,202,152,202,125,125, - 125,202,125,125,80,152,125,152,202,202,125,202,202,57,125,125, - 202,235,202,57,125,152,202,152,125,202,205,202,202,125,80,152, - 202,202,202,152,125,202,202,152,202,202,202,152,202,125,202,152, - 202,152,202,152,125,202,202,171,202,202,202,202,202,202,202,202, - 205,80,202,202,202,202,202,152,202,202,202,202,152,202,202,80, - 202,202,202,202,202,202,57,80,202,202,202,57,80,202,202,57, - 80,202,57,202,202,202,202,202,202,57,202,202,57,202,57,80, - 202,57,202,202,202,202,202,57,80,202,57,202,202,202,202,57, - 202,202,238,202,238,202,202,202,202,238,57,69,57,69,57,69, - 202,238,238,202,202,202,238,238,202,238,80,238,202,57,57,238, - 238,202,238,69,238,238,238,202,191,238,69,202,238,69,69,238, - 238,69,57,238,238,238,238,238,238,191,238,238,191,238,238,191, - 191,238,69,191,238,238,191,238,69,191,238,69,191,69,238,69, - 69,69,238,238,238,191,238,202,191,238,69,238,121,121,121,121, - 69,191,69,121,121,121,69,69,121,69,69,69,121,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 3,3,69,80,69,69,80,69,3,69,3,69,80,80,3,3, - 80,3,3,3,3,3,3,3,3,3,80,69,3,3,3,3, - 80,3,3,80,69,3,80,69,3,3,80,3,3,3,3,80, - 3,3,80,3,4,3,4,69,3,3,3,3,4,69,4,4, - 54,213,54,54,213,63,213,54,213,54,54,54,54,213,54,213, - 54,213,68,213,68,213,68,213,68,213,213,213,68,68,68,68, - 213,54,68,68,213,68,68,54,68,68,68,213,68,213,68,213, - 68,68,68,68,96,68,68,68,68,16,96,68,54,68,96,54, - 213,68,54,68,68,68,96,68,68,54,68,54,54,96,54,54, - 68,213,54,213,213,213,54,213,213,213,68,68,68,213,68,213, - 213,68,213,54,213,68,213,68,54,68,213,68,213,68,54,68, - 213,68,68,213,68,68,68,68,213,68,68,68,68,68,68,68, - 68,68,96,68,96,68,68,68,96,57,68,68,68,68,68,68, - 238,68,68,57,68,68,238,68,68,68,68,68,152,68,68,96, - 68,68,68,57,68,68,68,68,68,68,68,68,125,68,68,152, - 68,57,68,125,68,121,152,68,125,68,68,125,125,68,238,152, - 68,68,238,68,125,125,125,68,57,238,125,152,125,125,57,125, - 125,57,125,125,125,125,125,125,152,125,125,57,125,202,125,125, - 125,125,125,125,125,125,125,57,202,125,125,125,125,125,125,125, - 125,202,125,125,202,152,202,202,125,125,202,125,125,202,125,202, - 125,202,125,80,125,125,80,125,125,125,202,125,125,202,202,202, - 57,235,57,202,125,238,125,202,125,57,125,57,57,57,202,125, - 202,152,202,202,202,202,125,57,202,152,125,202,202,202,57,202, - 125,57,202,202,202,152,125,125,202,152,57,152,202,152,202,202, - 202,152,202,152,202,202,152,80,202,152,202,202,202,202,202,152, - 202,202,57,202,57,202,80,202,57,80,202,80,57,80,202,202, - 202,202,202,202,57,202,57,80,57,202,238,80,202,202,202,69, - 238,202,238,202,238,202,202,202,69,57,80,57,202,238,238,202, - 80,238,202,57,202,202,238,238,69,57,202,69,57,238,80,57, - 69,202,202,238,238,238,202,202,69,238,238,202,238,238,202,238, - 202,238,238,238,238,238,69,57,69,238,238,191,202,57,238,238, - 57,238,238,238,202,69,238,238,238,238,238,238,202,57,69,69, - 57,191,191,69,238,191,57,238,191,57,191,191,238,191,238,238, - 238,191,202,238,238,238,202,191,80,238,238,238,69,238,238,69, - 191,69,69,121,69,121,69,121,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,80,69,69,80,69, - 69,80,3,69,80,69,3,69,80,69,80,69,69,69,80,3, - 69,80,3,80,3,69,3,3,69,3,3,69,3,69,80,3, - 69,69,3,3,69,3,69,3,3,80,3,3,80,3,3,69, - 80,3,3,4,4,4,3,4,4,4,4,4,4,4,3,69, - 54,54,54,54,213,54,54,54,213,213,213,213,54,213,213,213, - 54,213,213,54,213,54,213,213,68,54,54,68,54,213,54,54, - 213,54,54,54,54,54,68,54,68,54,68,54,68,68,68,68, - 68,54,68,68,68,96,68,68,68,68,54,54,63,54,54,54, - 68,68,54,68,54,68,54,68,68,96,68,68,54,54,54,63, - 54,54,54,54,54,213,54,213,54,213,54,213,54,213,68,54, - 213,68,54,68,54,68,213,68,54,54,68,54,54,68,54,54, - 54,68,54,68,54,68,213,68,68,54,68,96,68,68,68,68, - 68,68,68,68,68,96,68,68,68,68,96,68,68,68,68,68, - 68,68,68,68,68,68,68,125,68,57,238,68,68,68,68,96, - 68,96,68,68,68,57,68,57,96,152,238,96,68,57,238,68, - 68,57,57,68,152,238,68,57,152,125,57,68,125,152,125,125, - 125,152,125,152,125,68,125,152,125,68,238,68,57,68,152,125, - 125,57,125,125,125,125,125,125,125,238,125,125,57,238,125,125, - 57,125,125,125,125,125,125,57,125,202,125,202,125,202,125,202, - 125,202,125,57,125,125,125,202,202,125,202,205,57,125,125,125, - 57,80,152,69,125,202,125,202,202,202,125,202,202,152,238,125, - 202,64,238,238,202,125,125,202,125,202,202,202,125,57,125,57, - 202,152,57,152,57,125,202,57,125,202,152,57,125,202,57,125, - 202,57,57,125,57,202,57,202,202,202,202,57,125,202,125,202, - 202,202,202,202,152,202,202,202,202,202,152,202,202,152,202,202, - 57,202,57,202,238,202,57,202,57,57,69,202,57,57,202,57, - 57,80,57,202,57,80,202,202,202,202,57,202,57,202,57,202, - 202,202,57,202,57,69,202,57,202,57,202,57,80,202,57,238, - 202,57,69,238,238,202,202,57,202,238,57,69,57,69,57,69, - 57,69,202,202,202,238,238,238,202,238,69,238,202,238,69,57, - 238,202,238,238,238,238,238,238,57,238,69,57,238,121,202,238, - 238,238,238,191,238,238,202,238,238,238,238,191,238,191,191,57, - 238,238,191,191,69,238,238,69,238,69,57,238,238,238,69,238, - 202,191,238,238,80,191,238,238,238,69,69,238,69,238,69,238, - 69,191,69,238,121,69,121,69,121,69,69,69,121,69,69,121, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 3,69,3,3,69,80,69,3,69,3,69,69,3,69,3,3, - 3,69,3,3,3,3,69,3,80,3,69,3,69,3,3,80, - 69,3,80,69,3,3,3,80,3,69,80,3,3,3,3,3, - 3,69,69,69,3,4,3,3,4,4,3,69,3,4,3,69, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,213, - 54,213,68,213,68,213,54,68,213,213,213,54,213,54,68,68, - 68,213,68,68,213,68,213,213,213,54,68,68,54,68,54,54, - 68,68,68,68,54,68,68,96,68,54,68,54,96,54,96,68, - 54,68,68,54,68,54,68,96,68,68,54,96,54,54,96,54, - 68,54,213,54,54,213,54,213,213,213,213,213,213,213,54,213, - 213,54,213,213,54,213,54,213,68,213,54,68,68,68,213,68, - 213,54,68,68,54,68,54,96,213,68,68,54,68,96,68,68, - 68,68,54,68,96,68,96,68,96,68,68,96,238,96,68,68, - 57,68,96,68,57,68,68,68,68,68,68,68,57,68,125,68, - 68,68,96,68,68,96,68,68,68,68,96,57,68,68,68,152, - 68,68,152,68,238,68,125,68,238,68,152,125,68,125,238,68, - 68,238,68,121,152,125,238,125,68,125,125,125,68,125,238,238, - 152,125,125,57,152,125,125,125,125,125,125,238,125,125,57,57, - 202,125,125,125,125,125,125,125,125,57,125,125,125,57,125,125, - 125,57,125,125,202,125,125,202,125,125,57,125,202,125,125,202, - 125,57,202,152,125,57,125,57,125,152,202,125,125,57,202,238, - 238,235,125,125,202,202,125,152,125,57,125,152,202,202,202,202, - 125,57,202,125,202,202,152,202,202,202,125,202,202,152,202,202, - 125,202,202,57,202,57,125,57,57,125,57,80,202,152,202,202, - 152,125,152,202,202,202,202,152,202,57,202,202,202,57,202,152, - 80,202,202,202,202,57,202,202,202,202,69,57,80,80,57,80, - 202,57,202,202,202,152,202,202,57,69,202,238,202,57,57,80, - 238,57,80,57,202,57,57,80,57,202,238,202,57,238,202,202, - 238,202,238,202,202,57,238,80,238,202,80,191,80,238,80,238, - 238,238,238,69,57,238,80,238,238,202,57,202,238,57,238,238, - 202,238,238,238,202,238,238,238,238,57,238,238,238,238,191,69, - 238,69,57,238,238,69,238,238,238,238,238,238,238,238,238,238, - 238,57,69,57,191,238,238,191,57,69,238,238,202,238,238,238, - 191,202,238,238,238,69,238,69,191,69,191,69,191,69,238,202, - 191,69,121,69,121,69,121,69,69,69,69,121,69,69,121,69, - 69,69,69,69,69,69,69,69,69,69,69,80,69,69,3,69, - 80,69,80,69,3,69,80,69,80,69,80,69,69,3,69,80, - 3,69,80,3,3,80,3,3,3,3,69,3,80,69,3,3, - 3,69,3,3,69,69,3,69,3,3,69,80,3,80,3,80, - 69,3,3,3,80,3,4,4,4,69,4,3,4,69,4,3, - 54,54,54,54,54,54,54,54,54,54,213,54,213,213,54,213, - 54,213,213,213,68,213,54,213,54,54,213,68,213,213,54,68, - 68,213,68,68,68,54,68,54,68,54,68,96,213,68,68,54, - 68,54,68,68,54,54,68,54,68,96,68,54,54,54,54,68, - 54,68,68,68,68,54,54,54,96,68,54,68,96,54,54,63, - 68,54,54,213,54,54,213,54,54,213,68,245,213,213,213,54, - 213,213,54,213,68,68,54,213,68,213,68,54,68,68,54,68, - 68,54,68,68,68,68,54,68,68,54,68,68,54,68,96,54, - 54,68,54,68,68,68,96,68,96,68,68,68,68,68,96,68, - 68,238,68,68,96,68,96,68,68,68,96,68,68,68,68,96, - 68,68,96,96,68,96,68,57,96,238,68,68,57,96,191,68, - 57,68,68,68,57,68,152,68,57,238,68,57,68,68,57,57, - 68,125,152,238,68,68,57,125,152,68,125,125,152,125,68,125, - 68,152,125,238,68,125,125,125,125,125,125,125,125,125,125,57, - 57,125,125,125,57,125,125,125,125,125,57,125,202,125,125,202, - 125,125,202,57,125,125,57,125,202,125,202,152,202,125,202,125, - 125,57,125,202,125,125,202,125,57,202,125,202,202,202,202,125, - 202,235,191,152,57,125,238,202,125,202,57,152,125,57,152,238, - 202,125,238,202,202,57,125,57,57,125,152,57,202,57,57,125, - 202,57,202,57,202,202,202,202,202,202,57,202,57,125,57,125, - 202,57,125,152,125,202,202,57,202,152,202,57,202,202,57,202, - 202,57,57,202,202,202,57,202,202,202,202,202,57,80,202,202, - 202,202,57,80,57,202,202,202,57,57,202,57,80,202,238,202, - 202,57,202,202,202,80,57,80,238,202,57,202,80,57,238,202, - 238,202,238,57,202,238,57,238,57,57,202,57,57,238,57,238, - 57,238,238,202,202,238,202,57,238,238,238,238,202,69,202,57, - 238,238,202,191,238,69,191,238,238,238,238,238,202,238,238,202, - 191,238,69,191,191,191,238,238,238,238,238,238,238,238,238,238, - 238,191,57,238,69,238,238,238,191,238,238,238,238,238,238,238, - 191,238,69,238,238,80,238,80,238,202,238,202,69,191,69,69, - 238,191,69,238,69,121,69,69,121,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,80,69,80, - 69,69,69,80,69,3,69,3,3,3,80,69,3,69,3,69, - 3,69,3,69,69,3,3,80,3,3,69,3,69,3,80,3, - 69,3,80,69,80,3,3,69,80,3,3,3,3,80,3,3, - 80,3,80,3,3,4,69,3,3,69,69,69,3,69,4,4, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,213,54, - 213,54,68,54,54,213,54,213,68,54,68,54,68,54,213,54, - 54,54,54,54,54,68,54,54,213,54,213,68,54,96,68,68, - 54,68,54,54,68,68,96,213,96,54,54,68,54,54,54,54, - 68,54,68,54,54,16,96,68,54,54,68,96,54,54,54,54, - 54,54,54,54,213,54,54,213,54,213,54,213,54,68,213,54, - 68,54,213,54,213,213,54,68,54,68,54,213,54,54,213,54, - 54,68,54,68,54,68,68,54,213,96,213,54,68,54,68,96, - 68,96,68,96,54,96,68,54,68,96,96,96,68,96,68,68, - 96,68,96,96,68,68,68,57,68,68,238,68,68,96,57,68, - 68,68,68,68,68,238,96,96,68,96,96,96,68,68,68,96, - 57,68,57,57,68,68,238,57,68,68,57,68,238,152,68,68, - 125,68,238,68,57,125,68,152,57,125,152,68,238,68,125,57, - 125,68,152,125,125,152,57,57,125,57,152,125,125,125,125,152, - 125,57,125,57,125,125,57,125,125,125,125,57,57,125,125,57, - 125,125,125,125,57,202,125,125,57,125,238,57,202,125,57,125, - 125,202,125,125,125,202,125,202,125,57,125,125,152,57,152,57, - 191,235,202,57,125,202,125,202,125,57,202,57,125,125,57,202, - 238,57,202,57,57,202,202,125,202,202,57,125,57,202,202,238, - 57,202,238,202,57,238,57,57,57,57,152,57,202,202,202,125, - 57,202,125,202,202,57,57,125,202,57,57,202,152,57,202,57, - 57,202,202,57,57,57,202,57,57,57,202,57,202,57,57,57, - 202,238,202,57,202,57,57,57,202,80,57,238,57,57,202,57, - 57,202,57,57,57,238,202,57,202,238,202,57,69,57,202,238, - 202,57,238,57,69,57,238,80,57,238,57,69,57,238,57,238, - 202,202,238,238,238,238,238,238,238,69,57,69,57,238,238,238, - 238,238,191,202,238,69,57,69,238,238,238,238,191,57,238,191, - 238,57,191,57,238,238,238,238,238,238,238,238,238,238,238,238, - 238,238,238,57,191,191,238,238,238,238,238,238,238,238,238,69, - 69,238,238,238,191,69,238,191,69,238,238,69,191,80,191,69, - 238,69,69,121,69,121,69,69,121,69,121,69,69,69,69,69, - 69,69,121,69,69,69,69,69,69,69,80,69,69,3,69,69, - 3,69,69,69,69,80,69,80,80,69,3,80,69,80,69,80, - 69,3,69,80,3,69,3,3,80,3,3,80,3,80,3,3, - 80,3,69,3,3,80,3,3,3,3,69,69,3,3,80,3, - 3,3,3,80,3,69,4,69,4,4,4,3,4,4,3,69, - 54,54,54,54,54,210,54,54,54,54,54,54,213,54,54,213, - 54,54,213,54,213,54,213,54,213,54,213,54,213,68,213,68, - 68,68,213,68,54,68,68,54,68,54,68,54,213,54,68,68, - 68,68,68,54,54,54,54,16,54,68,96,68,96,54,54,54, - 68,54,68,68,213,213,54,68,96,16,54,68,54,96,54,63, - 54,54,54,213,54,54,213,54,213,54,54,213,54,213,54,213, - 68,68,54,54,68,54,213,68,54,213,68,213,68,54,213,68, - 54,68,54,68,54,68,96,68,54,68,54,68,68,54,68,54, - 68,96,213,68,68,54,68,68,68,68,68,96,68,96,54,68, - 96,68,68,96,96,68,96,96,68,68,68,68,68,96,68,96, - 96,68,96,96,68,68,68,96,68,68,57,96,68,96,68,68, - 57,96,68,68,57,96,68,68,57,57,152,68,238,68,57,57, - 57,68,57,68,57,125,238,125,68,57,125,125,125,152,125,125, - 57,238,68,57,238,68,68,152,125,125,125,125,152,125,125,125, - 125,57,125,125,125,125,57,125,57,125,125,152,238,57,125,125, - 125,57,125,125,57,125,57,125,125,125,125,57,57,125,125,125, - 125,125,125,202,152,202,57,125,202,125,202,57,69,57,202,238, - 202,47,121,202,57,125,57,125,202,152,69,57,125,202,125,202, - 202,238,125,202,152,57,125,202,57,125,202,125,152,125,202,202, - 57,202,238,125,202,202,125,152,202,57,202,57,57,152,202,202, - 202,202,57,57,125,202,125,152,202,202,152,125,202,57,202,202, - 57,238,202,202,238,57,202,202,202,57,202,57,202,202,202,57, - 202,57,202,57,202,202,202,57,238,202,202,202,202,238,202,202, - 238,80,202,80,202,57,202,238,80,57,57,57,202,238,202,57, - 202,202,238,57,202,57,69,57,202,238,238,57,238,202,238,238, - 238,202,57,238,202,238,202,202,238,202,57,238,238,238,202,202, - 57,69,57,238,238,238,191,57,69,57,238,238,238,238,238,238, - 238,238,69,57,238,238,57,238,238,238,238,238,238,238,238,238, - 191,191,238,238,238,238,238,238,238,238,238,238,238,69,238,57, - 202,238,238,238,238,238,69,238,238,69,238,202,238,202,238,238, - 69,238,69,238,69,121,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,3,69,69,69,69,80,80, - 69,69,3,69,3,80,3,69,3,80,3,69,3,69,3,69, - 3,69,3,69,3,80,3,69,3,69,3,69,3,3,80,69, - 3,3,80,3,3,69,80,3,80,3,80,3,80,3,3,80, - 80,3,69,3,4,3,80,69,3,4,4,4,4,69,3,4, - 54,155,54,210,54,210,54,54,155,213,54,54,54,54,213,54, - 213,54,213,54,213,54,54,213,54,213,54,213,54,54,54,54, - 213,54,68,54,68,54,213,54,54,68,54,96,68,54,54,213, - 54,54,54,68,68,213,96,68,68,54,54,54,54,96,54,54, - 54,68,54,54,54,96,54,54,54,54,68,54,54,54,54,54, - 54,54,54,54,54,213,54,54,213,54,213,54,54,54,54,213, - 54,213,54,213,54,213,54,68,213,54,54,54,54,68,54,54, - 213,54,54,213,54,213,54,54,68,54,68,54,54,68,54,96, - 54,54,54,96,16,68,16,54,16,54,54,68,68,68,68,68, - 68,96,68,68,68,96,68,68,96,96,68,96,68,68,96,68, - 238,96,68,57,96,96,96,68,96,57,68,68,96,152,68,152, - 96,68,57,68,68,152,57,68,68,68,238,57,68,57,68,68, - 152,57,68,152,68,68,68,57,125,68,57,68,68,238,125,152, - 125,125,125,152,125,125,125,238,125,125,152,57,238,57,238,125, - 152,125,125,57,57,125,125,57,125,57,125,57,125,125,57,57, - 57,125,125,125,125,125,125,125,125,125,125,125,125,125,202,125, - 57,125,125,57,238,57,125,125,125,238,57,125,125,125,57,191, - 158,254,238,57,125,125,202,125,238,57,152,202,125,57,57,57, - 57,202,57,57,57,202,125,57,125,202,152,202,57,125,57,57, - 202,57,202,238,57,238,57,57,57,202,57,202,125,125,57,152, - 57,57,125,152,202,152,202,57,125,152,202,125,202,125,57,57, - 202,202,57,57,202,202,57,57,238,57,57,202,57,57,238,238, - 238,238,57,69,57,57,57,202,202,57,238,57,238,202,238,57, - 202,57,238,57,69,238,57,57,69,238,202,202,57,238,57,238, - 57,238,80,238,57,202,238,202,57,57,238,202,202,238,202,238, - 57,238,238,202,57,202,238,57,238,191,202,238,202,238,238,238, - 202,238,238,238,57,238,80,238,191,191,238,238,238,57,69,238, - 238,57,238,191,191,191,238,238,121,238,191,238,238,238,238,238, - 238,238,191,238,238,238,238,238,121,238,238,238,238,191,121,238, - 238,238,238,202,121,238,238,238,69,238,238,238,238,69,238,238, - 238,238,69,238,69,121,69,69,121,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,80,69,69,69,3, - 69,69,80,69,69,3,80,3,69,3,80,69,80,69,3,69, - 3,69,80,69,3,3,80,69,3,80,3,69,80,69,3,3, - 69,69,3,80,3,3,3,69,69,3,3,3,3,80,3,3, - 3,80,3,69,4,3,69,3,4,3,69,69,3,4,4,4, - 54,54,210,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,213,54,213,54,213,54,213,54,68,213,68,213,54, - 213,54,213,54,68,54,68,54,54,213,54,54,213,54,54,68, - 68,68,54,54,96,213,54,54,96,54,16,54,54,54,54,54, - 54,68,68,68,54,68,54,54,16,54,54,16,54,16,54,54, - 54,54,54,54,54,54,54,213,54,54,213,54,213,213,54,213, - 54,213,54,213,96,54,54,68,54,68,68,68,54,68,54,68, - 54,68,54,54,68,54,213,54,68,54,68,68,54,54,68,54, - 68,96,213,54,54,68,68,68,68,68,54,16,96,68,96,68, - 68,54,96,16,68,68,96,68,68,96,68,96,68,68,96,54, - 68,96,68,96,68,191,96,238,96,96,96,68,96,68,96,68, - 68,152,96,96,191,68,96,57,96,152,68,57,68,96,152,238, - 68,68,57,68,57,152,68,57,68,152,68,57,152,68,238,125, - 68,152,238,68,152,125,68,68,57,238,68,68,152,68,152,238, - 68,57,125,125,238,125,125,125,125,57,125,57,238,125,125,125, - 125,57,57,125,125,125,202,57,125,202,57,125,202,57,125,125, - 57,57,125,125,125,125,125,202,152,125,125,125,152,202,125,16, - 235,235,57,125,125,152,125,125,125,57,57,125,152,202,125,57, - 57,125,125,57,57,57,202,125,57,57,238,57,238,202,238,57, - 125,57,202,57,238,202,125,125,57,125,57,125,57,202,57,125, - 125,202,125,57,238,238,202,57,57,57,238,57,202,57,57,238, - 238,238,238,238,238,202,238,238,202,238,238,202,57,238,202,57, - 202,238,57,202,57,238,238,57,202,202,238,202,57,238,57,238, - 238,238,57,238,202,57,80,191,57,57,238,238,202,238,80,238, - 57,238,202,57,238,238,238,57,238,238,57,191,238,191,57,238, - 57,238,57,238,238,238,238,202,238,57,238,238,202,238,238,238, - 238,238,238,238,69,191,191,57,69,57,238,238,238,191,57,238, - 191,191,69,57,69,191,191,191,191,238,238,238,191,238,191,69, - 191,238,191,238,238,238,238,238,238,238,238,238,238,238,238,238, - 69,238,238,238,238,238,238,238,238,238,238,69,191,238,80,238, - 238,69,191,69,238,69,69,121,69,80,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 80,69,3,69,80,69,69,80,69,3,69,3,69,80,69,80, - 3,3,69,3,3,3,3,3,3,69,3,80,69,3,3,69, - 3,3,3,80,3,80,3,3,3,80,80,69,69,3,80,4, - 3,4,3,69,69,3,4,69,69,3,3,4,3,4,4,3, - 54,155,54,155,54,54,155,54,54,54,54,54,54,54,54,213, - 54,213,54,54,54,213,54,54,54,54,213,54,54,54,54,68, - 54,54,54,213,54,54,213,54,54,68,54,68,54,68,54,54, - 54,54,54,68,54,54,96,54,68,54,68,54,54,63,54,54, - 54,54,54,54,54,54,54,54,213,96,54,68,54,54,54,54, - 54,54,54,54,54,54,54,54,54,213,54,54,54,213,54,54, - 54,213,54,54,213,54,213,54,213,54,54,54,68,54,54,54, - 54,213,54,68,54,54,54,68,54,68,54,54,54,68,54,68, - 54,54,96,68,96,54,96,54,54,96,68,68,68,96,54,96, - 96,68,68,68,96,54,68,54,68,68,96,68,54,96,68,68, - 96,54,96,68,96,68,96,54,68,96,96,96,68,96,57,68, - 96,68,68,68,68,96,57,68,238,96,96,57,68,125,68,96, - 57,57,68,57,68,238,152,68,238,57,125,68,238,57,68,57, - 68,238,152,68,238,57,125,125,125,152,125,125,125,125,57,125, - 125,125,57,57,125,57,125,238,152,238,57,125,125,57,57,57, - 57,125,125,57,57,125,57,125,57,57,152,125,57,152,57,125, - 125,125,125,125,57,57,125,57,57,125,125,125,57,57,125,96, - 141,235,238,57,57,57,125,202,125,125,125,57,125,57,125,125, - 202,125,125,202,152,125,57,57,125,125,125,125,125,57,202,125, - 57,125,57,202,125,57,57,57,202,57,152,125,125,57,202,125, - 202,57,238,202,202,202,57,125,57,57,202,57,57,238,57,238, - 57,238,202,57,238,57,57,202,191,202,57,238,57,202,191,202, - 238,57,202,57,238,202,238,57,57,57,80,57,238,202,202,57, - 80,238,202,57,238,57,238,202,80,238,57,202,57,57,69,57, - 238,238,57,238,57,202,238,238,202,69,57,80,57,238,238,238, - 238,238,238,238,57,69,238,238,202,238,202,238,191,238,191,238, - 238,238,238,57,191,238,238,57,191,238,238,238,191,57,238,238, - 238,57,191,191,191,191,238,57,238,191,238,191,238,191,57,191, - 238,191,238,191,238,238,238,238,121,191,238,238,238,238,238,238, - 238,238,238,238,238,69,238,238,57,69,238,57,69,238,238,238, - 69,191,80,238,69,238,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,69,80,69, - 3,69,80,69,69,3,69,3,69,80,69,3,69,3,80,69, - 80,3,80,3,80,3,69,80,3,80,69,3,3,69,3,80, - 3,80,3,69,3,3,80,3,69,69,3,4,3,4,3,3, - 69,3,69,80,3,3,69,3,4,4,4,4,4,4,4,4, - 54,54,155,54,54,155,213,155,54,155,213,155,213,54,54,54, - 54,54,213,54,54,54,213,54,213,54,213,54,213,54,54,213, - 54,213,54,213,54,68,54,54,213,54,54,54,54,68,54,213, - 54,68,54,213,54,54,68,54,68,54,68,96,54,54,96,54, - 54,54,96,54,54,96,54,63,54,54,63,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,54,213,54,54,54,213,54, - 54,54,213,54,213,54,54,54,213,54,54,54,213,54,213,54, - 54,54,54,68,54,68,54,54,54,68,54,68,54,54,16,96, - 213,96,54,68,96,54,96,68,54,54,54,54,68,68,54,54, - 16,54,54,68,96,96,68,96,96,68,96,68,68,96,96,96, - 238,54,96,96,96,96,68,208,68,96,68,96,96,68,96,68, - 96,152,68,57,68,68,96,68,68,57,96,96,57,96,125,68, - 68,57,68,57,68,57,68,152,68,57,68,57,68,57,68,57, - 68,238,125,68,152,68,152,68,57,68,68,57,68,125,68,152, - 68,125,125,57,152,68,152,238,68,68,96,96,68,68,68,68, - 96,96,238,57,96,68,57,238,68,96,191,57,16,238,96,57, - 238,57,96,57,238,191,68,238,16,191,57,238,68,191,96,208, - 80,235,57,125,125,57,57,57,125,125,202,57,125,57,125,57, - 57,57,57,57,125,125,125,202,57,57,57,125,202,57,57,125, - 57,57,57,57,57,125,202,96,202,57,57,125,152,57,57,57, - 152,57,238,57,57,57,57,202,57,57,57,238,57,238,57,57, - 202,191,57,238,238,238,57,202,191,57,57,57,191,202,191,57, - 202,191,57,238,57,57,57,238,238,238,57,202,191,57,57,238, - 57,238,202,238,202,57,238,57,57,202,191,57,202,191,57,202, - 238,57,202,238,238,238,202,191,57,57,238,57,238,238,238,238, - 57,57,202,238,238,238,238,57,238,191,57,238,191,238,191,238, - 57,238,238,69,57,69,191,57,121,191,191,191,191,191,191,191, - 191,191,191,191,191,191,191,191,191,191,191,191,191,191,208,191, - 191,191,191,191,208,191,191,208,191,191,191,16,16,208,208,191, - 191,16,191,191,191,16,121,191,16,191,191,16,191,191,121,191, - 121,238,238,69,191,69,69,191,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,80,69,69,80, - 69,3,80,69,69,80,69,3,69,3,69,80,80,69,3,3, - 80,69,3,3,3,3,3,3,69,3,3,80,69,3,3,69, - 3,69,3,69,80,3,3,3,3,69,3,69,69,69,69,3, - 69,3,69,3,80,3,4,3,4,4,69,4,4,4,4,3, - 54,155,54,155,54,54,155,54,54,54,54,54,155,54,54,54, - 54,54,54,213,54,54,54,54,213,54,54,213,54,213,54,54, - 213,54,54,54,54,54,54,213,54,213,54,68,54,54,68,63, - 68,54,54,96,54,68,54,96,54,54,96,54,68,54,63,54, - 54,68,54,68,54,54,54,54,54,68,54,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,54,54,213,54,54,54,213, - 54,213,54,54,54,54,54,213,54,213,54,213,54,54,213,54, - 213,54,68,54,54,54,68,54,68,63,68,54,54,54,54,54, - 54,16,54,54,213,96,213,96,68,96,96,16,54,96,68,68, - 96,68,68,16,54,68,54,54,68,54,68,96,96,54,68,68, - 96,213,16,96,54,96,96,96,96,96,96,96,68,96,96,96, - 68,57,68,96,96,96,152,96,68,96,68,68,96,57,68,152, - 96,57,96,68,57,68,57,68,57,68,96,57,68,152,68,152, - 57,68,57,125,57,68,238,152,57,57,57,68,57,68,152,57, - 68,57,57,68,238,57,125,57,125,125,80,202,238,202,57,238, - 202,69,57,125,202,202,125,125,202,202,202,125,125,205,69,125, - 69,125,202,125,125,202,57,125,202,205,125,125,202,69,69,16, - 57,235,57,57,57,125,57,125,57,57,57,125,57,125,57,57, - 125,125,125,202,57,57,125,57,152,125,125,57,57,57,125,125, - 125,57,57,57,125,57,57,57,57,57,125,238,57,57,125,57, - 57,125,57,238,57,125,125,57,125,57,202,57,57,238,238,57, - 191,238,57,57,238,57,57,191,57,57,57,57,57,191,57,57, - 191,57,238,238,57,238,57,238,57,57,57,191,238,238,202,238, - 57,57,238,57,191,238,57,238,57,191,202,238,191,202,238,57, - 238,238,57,238,57,57,57,238,57,238,238,191,57,191,238,238, - 238,238,191,238,191,238,191,57,238,238,57,238,238,69,57,191, - 69,57,57,191,191,191,69,191,191,69,80,80,121,69,69,191, - 69,69,191,121,238,238,238,121,80,121,121,121,69,191,80,238, - 80,69,121,69,80,69,69,69,69,69,80,80,80,80,80,80, - 80,80,80,80,80,80,69,69,80,69,121,69,69,69,238,80, - 80,238,238,69,202,191,69,202,69,69,69,121,69,69,69,121, - 69,69,69,69,69,69,69,69,69,69,69,69,3,69,69,69, - 3,69,3,80,69,80,69,3,80,80,3,69,3,80,3,80, - 3,3,3,80,3,80,3,80,3,69,3,3,69,3,69,80, - 69,80,3,3,69,69,69,3,80,3,80,3,4,3,80,3, - 80,3,3,69,69,4,4,4,69,3,3,69,69,4,3,69, - 54,155,54,155,54,155,213,155,54,155,213,54,54,54,54,54, - 54,213,54,54,54,213,54,54,54,54,54,54,54,213,54,54, - 54,68,54,68,54,213,54,54,54,54,54,68,54,54,68,54, - 54,54,16,68,208,54,54,16,68,54,54,54,96,54,54,54, - 63,54,208,54,96,54,96,54,63,54,54,54,63,54,54,54, - 54,54,54,54,54,54,54,54,54,213,54,54,54,213,54,54, - 54,54,54,213,54,213,54,54,54,54,54,54,68,54,54,54, - 54,68,54,96,54,54,68,63,68,54,54,96,68,54,68,54, - 68,54,54,96,54,54,54,54,54,54,213,96,54,16,54,68, - 54,96,96,68,96,96,16,54,238,54,68,54,68,96,54,96, - 54,68,54,96,68,96,68,96,54,16,96,96,96,68,68,96, - 96,96,68,152,68,68,57,96,152,152,96,68,152,96,68,57, - 96,68,96,57,68,57,96,68,57,152,68,96,238,57,238,68, - 152,68,57,68,57,68,191,68,68,152,68,152,57,238,125,125, - 152,68,125,152,68,57,68,57,68,192,17,187,132,122,17,150, - 187,187,132,219,166,132,219,166,166,166,132,227,183,187,166,187, - 187,166,132,17,187,219,219,187,166,219,219,166,17,166,183,158, - 202,141,238,57,57,125,57,125,152,57,57,125,57,125,125,57, - 57,57,57,152,125,57,57,57,238,57,125,57,125,57,57,57, - 125,57,57,57,57,57,57,57,57,57,57,57,125,57,57,57, - 238,57,57,125,57,57,57,57,57,57,57,57,57,57,238,57, - 238,57,238,57,57,57,238,57,238,191,57,57,57,57,57,57, - 57,57,57,238,57,57,191,57,238,57,238,57,57,191,57,57, - 191,57,238,57,57,238,57,238,238,191,57,57,191,57,57,238, - 57,57,238,238,57,57,238,191,238,191,57,191,69,191,57,238, - 191,238,191,238,57,238,191,191,57,191,238,191,191,191,238,191, - 191,191,238,57,191,191,191,191,191,56,183,132,219,215,219,183, - 132,183,183,219,183,219,219,183,183,183,183,183,132,132,132,219, - 183,183,183,183,219,215,56,56,183,215,183,219,219,42,183,26, - 219,219,219,183,132,183,219,219,219,219,219,122,219,132,215,0, - 199,191,69,69,238,69,57,238,69,238,69,80,121,69,69,69, - 69,69,69,69,69,69,69,69,69,69,80,69,69,69,80,69, - 69,80,3,3,3,3,80,69,3,80,69,80,3,69,3,80, - 3,80,3,3,69,3,3,80,3,3,80,69,3,80,3,3, - 3,3,80,3,3,80,69,3,3,69,3,3,69,3,4,3, - 4,80,3,3,69,69,4,4,69,3,3,3,4,69,4,4, - 155,155,155,54,155,54,155,54,155,54,54,155,54,155,54,54, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54, - 213,54,54,54,54,54,54,68,54,68,54,63,54,54,63,54, - 54,54,54,63,54,54,54,54,54,54,54,54,54,54,96,54, - 96,54,54,54,54,54,54,54,54,54,54,54,54,54,210,210, - 210,54,54,155,54,155,54,54,54,54,54,54,54,54,54,54, - 54,54,54,54,54,54,54,213,54,213,54,54,54,54,213,54, - 54,54,54,54,54,54,63,68,63,54,54,54,208,54,54,96, - 63,68,54,208,68,54,96,16,54,68,54,54,68,54,96,54, - 96,54,213,96,54,68,213,96,54,68,96,68,96,68,68,54, - 96,54,16,54,96,96,96,96,68,96,68,54,96,96,96,96, - 68,68,96,68,96,96,96,68,96,96,68,68,96,68,96,57, - 68,96,57,68,96,96,57,57,68,96,68,152,68,152,68,57, - 68,57,57,68,96,57,68,57,57,68,125,238,57,68,57,68, - 57,68,57,238,125,152,68,152,57,80,182,67,211,12,99,99, - 99,182,67,67,99,182,67,99,67,99,67,67,182,182,67,67, - 99,99,182,182,99,182,109,67,182,67,99,67,141,211,109,235, - 80,99,68,125,125,57,125,238,57,125,57,57,125,57,57,125, - 125,125,57,57,57,57,57,57,125,125,57,152,57,125,57,125, - 57,57,57,57,57,57,57,57,125,57,57,57,57,57,125,57, - 57,57,125,57,125,125,125,125,125,57,57,57,57,57,57,57, - 57,191,125,191,191,57,238,57,57,238,238,238,57,57,238,57, - 238,57,57,191,57,191,57,238,191,57,57,57,191,57,57,57, - 57,191,191,57,57,238,57,57,57,57,57,238,57,57,191,57, - 57,191,57,191,57,191,57,57,191,69,191,57,191,57,191,191, - 57,238,238,191,191,191,238,238,191,238,191,57,191,57,191,191, - 191,57,191,191,191,57,57,208,80,26,17,141,243,8,243,67, - 243,211,141,8,182,182,243,67,12,243,49,141,243,12,243,182, - 182,182,182,182,8,67,182,182,182,139,243,182,67,49,49,49, - 67,182,141,67,182,67,211,8,139,243,8,243,17,8,8,26, - 80,121,238,238,202,238,202,80,238,80,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,80,69,69,80, - 3,3,80,80,69,3,3,69,80,3,69,3,80,3,80,3, - 3,3,80,3,80,3,3,3,80,69,3,3,69,69,69,80, - 3,69,3,3,69,3,3,69,3,4,4,69,4,69,69,3, - 69,4,4,3,3,3,3,3,4,4,4,4,4,4,3,69, - 210,210,210,155,54,155,54,54,54,54,155,213,54,54,54,54, - 155,54,54,54,54,54,213,54,54,54,54,54,54,213,54,54, - 54,54,54,213,54,54,54,54,54,54,54,54,54,54,96,54, - 54,54,54,68,54,54,54,54,96,16,54,16,68,63,54,54, - 54,54,54,54,54,208,63,54,54,54,54,54,63,54,54,54, - 210,210,54,54,54,54,54,54,54,54,54,54,54,54,54,213, - 213,54,54,54,213,54,54,54,54,54,213,54,68,54,54,54, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,68, - 54,54,54,54,96,54,54,68,63,96,54,96,68,96,54,96, - 96,54,96,96,54,54,68,96,54,54,16,54,96,96,68,96, - 96,68,54,96,208,54,54,208,54,96,96,16,96,96,68,208, - 96,68,96,68,68,68,96,68,57,96,96,57,96,96,152,68, - 57,96,96,152,68,68,68,68,57,68,191,68,96,68,152,57, - 68,152,68,125,68,152,68,68,96,57,68,152,68,57,57,68, - 152,68,57,68,57,238,57,68,152,192,182,67,182,243,49,67, - 49,67,224,99,99,67,67,182,139,67,67,67,182,99,182,182, - 67,67,99,67,182,67,224,67,109,67,99,67,99,49,182,219, - 80,235,191,57,152,57,57,57,57,125,125,57,57,152,57,57, - 57,152,57,57,57,57,57,57,57,57,57,68,57,57,57,125, - 152,57,96,57,96,57,57,191,57,57,57,57,57,191,57,57, - 57,191,57,57,57,57,191,191,57,57,57,57,57,57,57,191, - 96,80,199,191,191,57,191,191,57,191,191,57,238,191,191,57, - 191,191,57,191,57,191,191,57,191,57,57,57,57,191,57,191, - 192,80,191,191,191,191,57,238,238,191,238,57,238,238,57,191, - 57,191,57,191,57,57,238,191,191,57,191,191,191,191,191,191, - 191,191,57,191,238,191,191,191,191,191,191,57,191,57,238,57, - 191,191,191,57,191,191,191,208,235,219,182,8,183,12,42,12, - 219,12,150,150,12,17,219,243,219,141,243,182,12,12,12,8, - 141,8,8,141,12,182,243,12,243,67,67,49,132,12,17,17, - 182,8,243,8,141,141,182,8,243,17,67,8,26,8,182,12, - 69,121,191,69,238,121,238,69,238,238,69,69,121,69,69,69, - 69,69,69,69,69,69,69,69,69,69,69,69,69,3,69,69, - 69,3,69,80,3,80,80,3,69,80,3,80,69,80,3,80, - 3,3,80,3,69,3,80,3,3,3,80,3,3,3,69,69, - 3,69,80,3,69,3,80,69,3,69,3,69,3,3,69,3, - 69,3,4,4,80,3,4,3,4,4,3,69,3,4,3,69, - 210,155,54,155,54,155,155,54,155,54,54,210,54,210,54,54, - 54,54,54,54,54,54,63,54,54,54,54,54,213,54,54,54, - 213,54,54,54,54,54,54,54,54,54,54,96,54,54,54,54, - 96,54,213,208,54,16,54,54,54,54,54,54,63,68,208,54, - 54,54,54,54,54,54,54,63,63,63,63,54,54,210,54,210, - 54,54,54,210,54,155,54,155,54,54,54,54,54,54,54,54, - 63,54,54,54,54,54,54,54,54,54,54,54,63,54,213,54, - 213,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,54,68,54,54,54,68,54,68,54,54,54,68,54, - 54,96,54,68,96,54,54,16,54,68,54,68,16,54,96,54, - 96,54,96,208,54,96,96,96,96,96,96,68,96,96,96,96, - 96,96,96,96,96,96,57,68,96,96,96,96,68,68,96,96, - 96,68,68,96,57,96,96,96,68,57,96,96,57,68,57,68, - 96,68,57,96,96,57,125,254,192,68,96,68,68,152,96,57, - 68,57,68,57,68,68,57,68,57,199,182,49,182,211,235,99, - 67,99,67,49,99,67,99,49,99,99,99,99,99,67,49,99, - 99,235,67,182,99,182,8,49,91,235,235,67,182,235,182,42, - 121,145,63,96,208,96,68,54,96,96,96,96,68,16,96,96, - 96,16,96,96,96,68,96,96,96,96,191,96,96,68,96,96, - 208,96,191,96,96,96,208,96,208,96,96,96,63,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,96,208,208,208, - 63,202,199,105,208,191,96,208,208,191,191,208,191,191,191,191, - 191,191,208,208,208,208,191,208,191,208,191,208,208,191,208,105, - 199,191,105,191,191,208,208,191,208,191,191,208,208,191,208,191, - 208,191,208,191,208,191,208,191,191,191,208,191,191,191,191,191, - 191,191,191,191,191,191,191,191,191,191,191,208,191,208,208,208, - 208,191,191,208,191,208,208,105,139,8,67,49,67,211,67,139, - 67,67,99,67,8,67,182,67,67,211,211,49,182,141,67,67, - 67,67,67,8,139,8,67,182,67,67,49,141,0,0,0,122, - 8,8,67,49,101,182,67,67,26,139,7,182,17,12,12,12, - 208,208,16,16,16,16,121,16,121,121,191,121,191,191,121,121, - 16,121,121,121,121,121,121,69,121,121,121,121,121,69,69,80, - 69,3,69,3,80,69,3,80,3,69,80,3,3,3,80,3, - 80,3,3,3,80,3,3,80,3,3,3,80,80,3,3,80, - 3,3,69,69,4,3,3,4,3,4,4,3,69,4,80,3, - 3,69,69,80,3,3,4,4,4,69,4,3,4,69,4,3, - 210,54,155,155,155,54,155,54,155,54,155,54,54,54,54,54, - 54,54,54,54,54,54,213,54,54,54,54,63,54,54,54,63, - 54,54,54,54,54,54,54,54,54,54,54,54,54,208,54,54, - 54,63,68,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,208,54,54,54,54,54,54,54,63,54,54,210,54,63, - 210,210,54,210,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,213,63,54,213,54,54,54,54,213,54,54,54,54,63, - 54,54,54,54,54,63,54,54,96,54,54,16,54,54,16,54, - 68,54,54,16,54,68,96,54,96,63,54,96,54,96,68,54, - 16,68,96,54,96,54,68,54,96,68,54,68,68,96,16,63, - 96,54,68,96,208,96,54,96,208,54,54,96,96,16,96,96, - 96,96,96,68,96,96,96,68,68,57,96,96,96,96,96,96, - 54,96,96,96,68,68,57,96,68,57,68,96,96,68,96,57, - 96,68,57,125,68,208,215,0,95,68,191,57,238,68,57,57, - 152,152,57,57,57,57,191,238,57,202,187,49,182,67,49,99, - 67,67,67,67,235,49,49,99,49,49,145,67,99,49,67,67, - 67,99,67,49,49,99,99,235,12,99,49,99,49,99,139,0, - 121,145,191,121,121,191,238,69,238,238,238,57,57,121,238,238, - 238,238,238,69,57,69,69,238,121,238,238,121,57,69,202,202, - 202,125,238,121,191,57,202,202,191,121,191,238,69,238,121,202, - 202,121,238,238,121,202,57,121,238,238,238,191,238,57,238,191, - 191,80,225,69,57,69,80,57,57,202,57,57,69,57,69,57, - 57,57,80,57,80,57,57,57,69,69,80,80,57,57,69,238, - 199,238,191,69,57,80,57,57,57,57,80,80,57,80,202,80, - 57,80,57,80,57,80,57,69,57,80,69,69,69,57,69,57, - 69,57,69,69,69,69,57,80,69,80,80,80,80,80,80,199, - 199,80,80,80,80,80,80,238,26,12,150,243,243,150,243,12, - 150,243,243,141,8,243,243,8,141,17,243,8,12,12,243,243, - 243,243,243,12,141,243,243,150,141,211,211,17,0,0,0,0, - 12,243,243,243,12,12,8,141,122,12,26,26,26,12,12,12, - 69,69,80,199,225,199,145,80,80,199,199,80,80,80,80,80, - 199,80,80,199,199,199,199,80,199,199,199,80,199,199,80,69, - 80,69,80,69,3,80,3,69,80,3,3,80,69,80,3,3, - 3,80,80,3,3,3,3,3,80,3,3,3,69,3,80,3, - 80,3,3,80,3,4,4,69,4,69,80,4,69,3,69,4, - 4,3,3,3,80,69,3,4,3,69,69,69,3,69,4,4, - 155,155,210,155,210,155,155,54,155,54,155,54,210,54,210,54, - 54,54,54,54,54,54,210,54,54,54,54,54,54,213,54,54, - 54,213,54,54,54,54,54,54,54,213,208,54,54,54,54,54, - 63,68,63,54,54,54,54,54,54,54,54,54,63,54,63,63, - 54,63,54,63,54,63,63,63,63,63,54,63,63,54,210,54, - 54,54,210,54,210,210,210,155,54,54,54,54,54,54,210,54, - 54,54,54,54,54,54,54,54,54,54,63,54,54,54,54,54, - 54,54,54,54,68,54,54,54,208,68,54,54,54,54,63,54, - 208,54,54,54,54,54,208,54,16,54,54,54,68,54,54,54, - 68,96,54,96,54,68,63,68,54,54,54,54,54,54,68,54, - 208,68,54,54,68,208,54,96,54,96,96,54,96,96,68,96, - 96,96,57,96,68,68,96,96,96,96,68,68,96,238,96,152, - 254,99,254,254,59,141,254,141,59,141,95,141,166,141,141,111, - 141,141,95,254,254,132,219,183,187,141,254,254,254,254,224,182, - 254,254,254,111,109,111,111,132,111,111,166,111,187,187,111,109, - 187,224,111,109,183,187,109,132,187,219,26,111,187,187,132,111, - 187,12,111,219,224,150,12,132,187,183,254,187,132,109,150,17, - 150,132,141,246,141,187,219,166,132,166,150,132,166,187,132,132, - 17,132,17,215,132,166,166,132,183,132,166,187,166,187,166,111, - 166,132,183,215,219,219,183,215,221,221,42,183,221,219,219,215, - 56,122,183,183,219,166,219,219,219,132,132,17,132,132,215,56, - 215,183,221,132,215,215,215,215,56,215,56,56,215,183,215,183, - 219,215,215,183,183,215,215,215,215,215,215,215,183,215,215,215, - 215,132,215,215,183,183,215,219,215,219,215,215,183,215,215,215, - 183,215,183,215,183,215,0,215,215,215,215,215,215,215,215,183, - 215,56,215,215,215,215,215,215,215,215,183,215,215,221,221,215, - 215,221,221,221,221,221,219,17,187,254,109,111,150,111,109,254, - 109,211,187,187,12,150,150,150,187,132,187,109,150,109,12,187, - 150,150,109,109,12,211,12,109,187,150,141,139,109,8,211,109, - 211,187,243,150,243,109,109,12,211,150,243,243,243,243,243,12, - 132,56,42,42,219,219,221,42,122,221,56,183,183,183,219,183, - 183,221,219,183,183,219,183,219,219,219,219,26,122,215,3,69, - 3,69,3,80,69,3,3,80,69,80,80,3,69,3,80,80, - 3,3,3,80,3,80,3,3,3,80,3,80,3,3,3,3, - 3,80,3,4,69,3,80,3,3,4,3,3,3,69,4,69, - 4,4,69,4,3,4,4,69,4,4,4,3,4,4,3,69, - 155,210,155,54,155,54,210,54,210,54,54,210,54,210,54,54, - 54,54,54,54,54,54,54,54,54,54,54,63,63,54,54,54, - 63,54,54,54,54,54,54,63,63,54,54,54,54,63,54,54, - 63,54,63,54,54,54,54,54,63,54,54,54,63,54,54,63, - 54,54,54,63,54,54,54,54,54,63,54,54,63,63,63,210, - 210,54,210,54,54,54,54,210,210,54,54,54,54,54,54,54, - 54,210,213,54,210,54,54,54,54,213,54,54,54,54,54,54, - 54,54,63,63,54,54,54,54,63,68,54,63,54,54,54,54, - 96,54,54,96,54,54,54,54,54,54,54,208,54,96,54,63, - 54,54,16,54,63,68,54,96,96,54,96,96,96,54,96,54, - 63,96,54,208,96,96,96,68,54,96,96,96,54,96,96,96, - 96,54,96,96,96,96,96,68,57,96,96,96,96,96,208,96, - 56,122,243,243,187,122,182,26,109,219,12,17,109,211,182,187, - 139,17,26,254,187,42,67,67,182,122,42,26,26,91,182,109, - 211,139,109,12,182,182,67,182,182,211,67,99,182,49,182,99, - 67,235,99,99,17,17,211,150,139,109,219,182,182,67,99,49, - 99,235,182,26,64,235,99,99,182,42,99,182,99,182,99,49, - 99,211,99,187,150,109,67,99,67,111,12,99,67,67,182,67, - 99,182,182,211,12,182,139,182,243,182,182,99,182,67,224,67, - 99,182,182,182,139,99,182,99,139,132,26,182,8,99,49,99, - 67,254,139,182,211,182,182,182,139,211,182,211,182,99,150,182, - 17,109,99,182,182,67,182,182,182,99,182,211,139,182,182,182, - 99,67,182,182,211,182,67,182,99,182,182,99,67,182,99,243, - 99,141,182,182,141,99,8,211,182,8,182,182,182,67,139,182, - 67,182,182,182,211,182,141,67,243,182,243,211,182,182,182,182, - 182,182,99,99,67,182,182,182,182,182,67,182,211,182,139,211, - 182,8,67,67,182,99,182,243,139,99,235,99,99,67,67,99, - 67,182,49,49,67,99,67,67,235,99,67,182,67,99,49,67, - 67,182,49,99,67,99,49,99,182,67,182,49,99,67,182,67, - 67,211,49,182,67,67,67,182,182,99,99,67,67,182,67,182, - 141,182,182,67,243,67,141,67,67,182,182,182,141,182,67,182, - 67,182,141,67,182,141,67,182,182,182,182,67,17,12,69,69, - 69,3,3,69,80,69,69,3,3,3,80,80,80,69,3,3, - 80,3,3,80,69,3,80,3,3,3,3,3,69,80,3,69, - 3,4,4,4,69,69,3,4,3,69,69,80,4,69,3,4, - 4,4,4,69,3,69,3,69,3,4,4,4,4,69,3,4, - 155,210,155,155,155,155,54,210,155,54,54,210,54,54,54,54, - 210,54,210,54,54,54,54,210,54,54,54,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,63,54,63,54,63,54,63,63,210,54,63,63,63, - 63,63,63,54,54,210,63,63,63,54,210,210,54,210,54,210, - 54,210,54,210,210,155,210,54,54,54,210,54,54,54,54,54, - 54,54,210,54,54,54,54,54,54,54,63,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,63,54,54,54,54,54,54, - 54,54,54,54,54,54,96,54,54,96,54,54,54,208,54,96, - 54,96,54,96,96,54,96,54,54,96,54,54,54,96,54,96, - 96,54,96,54,54,54,96,63,54,96,96,54,96,208,54,96, - 54,96,96,96,96,96,68,96,96,96,96,96,96,68,96,96, - 219,243,139,99,211,26,49,182,182,182,211,211,211,182,243,109, - 182,243,26,243,99,182,12,12,141,91,26,67,243,219,12,150, - 150,182,182,187,182,182,235,67,211,67,99,139,99,99,99,182, - 182,211,99,67,12,26,182,67,182,182,182,139,67,182,182,67, - 182,99,139,42,8,235,235,99,109,42,17,109,67,26,182,254, - 67,99,211,67,26,26,64,182,109,187,26,99,139,59,59,67, - 99,224,67,182,99,182,182,211,109,139,67,139,59,182,99,182, - 182,243,64,182,99,211,219,67,67,99,132,219,67,99,182,99, - 99,67,182,99,99,67,182,182,182,182,99,182,211,17,243,182, - 26,141,99,182,99,109,219,150,67,99,182,182,182,182,99,182, - 182,182,182,99,243,99,182,182,67,182,182,243,99,99,243,254, - 109,67,182,182,182,182,182,182,182,182,211,182,182,182,224,182, - 109,109,211,182,141,182,211,182,254,67,141,99,67,182,182,211, - 182,182,182,182,99,8,243,243,99,182,109,182,141,182,182,141, - 182,182,254,67,182,182,182,109,109,182,67,141,182,99,211,211, - 182,150,109,99,211,12,182,99,139,243,150,150,182,141,99,182, - 139,67,182,182,182,8,67,182,150,211,211,99,182,8,243,211, - 182,243,211,211,182,141,182,243,17,8,67,8,182,182,8,8, - 182,67,8,141,8,182,243,182,8,67,8,8,67,141,67,141, - 67,67,182,8,67,182,182,8,8,141,67,8,17,12,69,69, - 69,80,3,80,3,80,80,80,80,3,3,3,80,3,69,80, - 3,69,3,3,3,3,3,80,3,80,69,80,3,3,80,3, - 69,69,69,80,3,3,80,69,80,3,4,4,3,3,69,69, - 69,69,69,4,3,3,69,4,4,3,69,69,3,4,4,4, - 155,155,155,210,210,210,155,54,155,54,155,54,210,54,54,54, - 54,54,210,54,210,54,54,54,54,54,54,54,54,54,54,54, - 54,54,54,54,54,54,54,54,54,63,54,63,54,63,54,63, - 54,54,54,54,54,63,54,54,63,54,54,210,210,210,63,210, - 54,54,210,210,54,54,210,54,210,54,54,210,54,210,63,210, - 210,210,54,54,210,210,210,210,155,54,54,155,54,54,210,54, - 54,54,54,54,54,54,54,54,54,54,54,63,54,54,63,54, - 63,54,54,54,63,54,54,54,54,54,54,54,54,54,96,54, - 208,54,54,208,54,63,54,54,54,96,54,54,54,54,54,96, - 208,54,54,54,96,54,54,54,54,16,96,96,54,68,54,54, - 63,63,54,96,54,63,96,96,208,54,96,96,96,96,96,68, - 96,54,96,96,96,96,96,96,96,96,96,96,96,96,54,208, - 219,67,67,141,211,182,99,182,67,139,182,182,182,67,182,211, - 99,182,211,67,139,99,211,67,182,219,109,109,183,219,182,99, - 12,17,150,150,67,211,224,132,211,67,182,8,211,8,182,182, - 182,211,211,182,109,109,64,99,99,139,182,182,67,182,99,64, - 99,235,187,187,162,42,254,26,187,99,109,109,99,187,211,12, - 211,99,109,59,187,67,67,64,99,111,224,214,182,49,99,99, - 99,67,182,59,99,67,99,109,182,109,99,64,67,64,99,99, - 99,26,99,211,182,182,182,99,99,49,99,182,182,99,182,182, - 99,99,99,67,109,182,187,182,99,67,182,182,99,99,111,67, - 12,182,67,211,182,182,224,111,67,99,182,182,99,182,235,182, - 99,182,182,99,67,99,99,99,99,182,254,182,99,182,211,182, - 182,99,99,109,254,182,182,67,182,99,109,182,99,99,59,99, - 182,182,182,67,182,182,182,182,182,182,182,182,99,182,211,182, - 182,211,182,211,99,182,150,17,182,99,211,182,99,12,182,99, - 182,211,182,182,254,67,182,182,211,182,67,254,182,182,182,182, - 182,182,211,182,211,243,8,182,254,243,211,182,182,182,182,182, - 182,67,182,67,182,182,67,211,67,182,211,211,182,211,182,182, - 182,182,182,211,182,139,67,8,8,8,67,67,67,182,182,211, - 182,67,8,182,67,139,182,67,182,182,182,8,182,8,67,8, - 67,8,67,139,182,67,182,141,101,8,8,243,12,12,69,3, - 3,80,69,3,3,3,3,3,80,80,3,80,3,80,3,80, - 69,80,80,69,80,3,3,3,3,3,69,3,69,3,4,4, - 4,3,3,3,80,3,3,69,3,80,3,69,69,80,3,80, - 3,3,3,69,80,4,3,69,69,3,3,4,3,4,4,3, - 217,210,155,155,210,155,210,155,54,155,54,155,54,155,155,210, - 210,54,54,54,54,54,54,210,54,210,54,54,54,54,54,54, - 54,54,63,54,54,63,54,63,63,54,54,54,63,54,63,54, - 54,63,54,63,63,54,63,210,54,210,210,210,54,210,210,63, - 155,210,54,63,210,210,210,210,54,210,210,54,210,210,54,210, - 54,210,210,210,54,210,210,54,155,54,210,54,54,210,54,54, - 54,54,54,54,54,54,54,54,63,54,54,54,54,54,54,63, - 54,54,54,63,54,54,63,54,54,208,54,54,54,54,54,63, - 54,63,54,54,54,54,54,54,54,208,54,96,54,96,54,63, - 54,54,96,54,208,54,96,96,54,54,208,96,208,208,96,54, - 96,54,54,54,96,54,54,96,54,96,96,63,54,96,208,63, - 96,96,208,96,96,96,96,96,54,16,96,96,208,96,208,54, - 78,26,42,0,150,182,8,182,99,99,182,99,182,139,182,182, - 109,99,182,67,99,99,182,67,150,42,99,235,224,67,99,99, - 99,150,99,99,254,99,187,182,182,111,211,99,254,109,182,99, - 182,182,182,99,67,67,235,99,67,99,67,99,182,99,235,139, - 109,26,78,187,26,187,187,187,187,211,221,187,139,182,99,99, - 235,182,99,182,59,67,44,67,99,182,139,64,109,139,64,99, - 99,99,99,67,99,67,59,182,99,182,109,187,99,99,67,182, - 99,141,182,99,99,182,99,150,17,99,99,67,224,139,59,187, - 109,99,187,111,99,224,109,111,182,111,132,182,182,67,99,99, - 99,109,67,59,182,182,67,99,99,59,109,109,182,224,182,182, - 182,182,182,182,182,182,99,182,182,99,211,182,99,99,182,67, - 99,99,182,254,12,99,182,111,99,99,182,59,182,182,67,99, - 224,99,182,59,99,99,182,99,182,182,182,67,139,182,182,224, - 182,182,182,182,182,99,182,182,109,254,182,182,182,182,182,182, - 224,182,99,109,122,224,182,182,224,109,139,182,182,182,211,182, - 67,182,182,182,99,99,109,182,182,211,182,243,224,182,182,224, - 182,182,254,139,99,182,243,42,182,182,182,182,182,182,8,211, - 182,182,182,182,211,182,8,182,99,182,141,26,17,182,139,182, - 182,182,182,182,8,182,182,141,67,67,182,182,8,182,211,182, - 211,182,141,182,8,8,8,8,8,182,182,8,12,12,69,69, - 69,3,69,80,3,80,80,80,3,3,80,3,80,3,69,3, - 80,3,3,69,3,80,3,80,69,80,3,69,4,69,3,4, - 3,3,4,4,3,80,3,3,3,3,69,3,3,69,69,69, - 3,80,3,4,3,3,69,3,4,4,4,4,4,4,4,4, - 217,210,155,155,155,210,210,155,210,210,54,155,54,54,54,54, - 210,210,54,210,54,210,54,210,54,54,210,210,54,54,54,54, - 210,54,63,54,54,210,54,54,63,63,54,54,54,54,63,63, - 54,63,54,54,63,63,63,210,210,210,54,210,210,210,210,63, - 210,210,210,54,210,54,210,210,63,63,210,54,210,210,210,210, - 210,54,210,210,54,210,210,54,210,54,210,54,54,54,210,54, - 210,210,54,210,54,54,54,54,54,210,54,210,54,54,54,54, - 63,63,54,54,63,54,54,54,54,63,54,54,54,63,54,54, - 54,63,54,54,54,54,96,54,54,54,54,54,54,54,54,68, - 54,208,54,54,63,54,54,54,54,54,54,54,54,63,96,54, - 54,54,54,54,54,54,54,54,96,54,96,54,96,54,96,54, - 96,54,208,96,208,96,96,96,96,96,96,96,96,96,210,210, - 215,99,211,109,211,254,211,99,235,67,67,139,67,99,67,182, - 211,182,99,235,235,67,67,99,99,12,182,67,211,99,235,64, - 67,49,64,139,211,235,109,182,12,42,12,67,99,99,49,99, - 99,99,99,99,99,64,235,224,111,99,67,99,99,214,109,78, - 187,187,187,187,132,187,12,141,12,187,182,224,99,109,139,182, - 182,219,187,26,187,187,187,26,187,219,26,211,26,78,211,235, - 59,67,64,67,99,99,235,99,214,64,26,42,211,64,139,99, - 64,99,99,99,235,187,26,17,26,182,109,67,219,187,182,42, - 26,150,132,219,182,187,17,187,132,187,49,235,99,219,99,211, - 99,99,99,49,99,109,182,109,64,211,67,99,99,67,99,235, - 64,182,182,182,109,182,99,235,99,99,150,182,67,99,99,64, - 67,64,67,211,109,214,99,99,64,99,99,99,67,64,67,109, - 187,99,49,99,99,99,67,99,99,99,182,99,99,99,99,99, - 99,99,99,182,99,67,187,150,99,67,67,99,99,150,182,12, - 99,235,109,211,26,42,139,99,99,99,49,224,99,49,67,99, - 99,182,67,67,67,67,187,67,67,182,182,67,67,99,49,99, - 67,67,99,211,139,99,17,42,99,67,99,67,211,99,49,99, - 49,182,67,182,67,99,67,67,182,67,99,42,187,67,182,139, - 67,67,67,67,67,49,67,67,49,67,67,67,67,49,67,67, - 182,67,67,67,67,67,67,67,67,8,49,17,182,243,16,121, - 3,69,3,69,80,3,3,3,80,3,3,80,3,80,80,3, - 69,80,3,80,3,3,69,3,3,3,80,3,3,4,4,69, - 3,69,3,69,3,4,4,69,69,80,3,80,3,3,3,69, - 3,69,3,69,3,4,4,3,4,4,69,4,4,4,4,3, - 155,217,155,210,210,210,210,210,54,210,210,210,155,54,210,54, - 54,54,210,54,54,54,54,54,54,210,54,54,54,210,210,63, - 54,63,54,210,63,54,54,54,54,54,54,63,63,63,54,54, - 63,54,54,210,54,54,210,210,54,210,155,210,210,210,210,210, - 210,210,210,210,210,210,63,210,54,210,210,210,54,210,210,54, - 210,155,54,210,210,210,155,210,54,210,54,210,54,210,54,210, - 54,54,210,54,210,210,54,210,63,54,63,54,210,63,63,63, - 54,54,54,54,54,54,63,63,54,54,54,208,54,54,54,54, - 54,54,63,54,54,54,54,63,54,54,63,54,208,54,54,63, - 208,54,96,54,96,63,96,96,54,54,96,54,96,96,63,54, - 210,245,63,54,63,245,63,54,63,96,54,96,63,96,96,96, - 54,96,96,54,68,96,96,96,96,96,96,68,96,96,63,191, - 219,109,49,182,182,243,219,139,64,67,111,109,182,109,67,99, - 235,211,211,187,182,132,182,109,182,183,187,67,182,211,139,99, - 187,224,235,59,150,211,99,109,150,132,187,67,99,145,64,109, - 67,67,235,99,109,91,139,182,187,99,67,211,64,224,111,12, - 243,8,109,12,12,243,150,12,243,17,254,99,64,111,243,182, - 166,26,12,109,12,150,132,150,187,211,150,187,109,187,109,139, - 182,187,67,64,182,224,8,99,67,64,12,187,109,111,219,211, - 49,64,235,182,67,111,187,150,166,111,111,182,26,150,187,8, - 12,187,12,12,166,12,8,12,150,187,254,182,254,219,12,187, - 26,67,67,99,64,182,111,17,99,219,99,99,182,150,64,67, - 49,99,99,17,8,99,182,99,182,99,182,99,109,187,182,187, - 12,99,182,109,12,99,49,99,49,99,99,182,182,99,59,99, - 78,109,99,211,64,99,67,99,235,224,109,139,99,235,99,67, - 67,99,67,99,99,187,26,187,99,99,99,235,64,26,182,150, - 99,99,166,17,132,187,150,49,49,235,99,26,109,109,235,99, - 111,162,67,182,67,99,182,99,49,182,182,182,49,182,187,12, - 99,99,49,150,17,67,12,12,235,49,139,211,17,243,182,182, - 182,8,99,141,67,182,67,141,8,211,67,139,182,67,211,182, - 99,67,67,182,182,99,67,141,67,219,49,99,67,67,182,67, - 182,67,67,182,243,132,12,67,67,182,8,141,8,8,69,80, - 69,80,69,80,3,80,3,80,3,80,3,3,80,3,3,80, - 69,69,3,69,80,3,3,80,3,69,3,4,4,69,4,3, - 69,4,4,4,69,69,80,3,4,3,4,4,3,3,80,3, - 69,4,4,4,69,4,4,4,69,3,3,69,69,4,3,69, - 155,210,217,210,155,210,210,210,210,54,210,54,210,210,54,210, - 54,54,54,210,54,210,54,54,54,54,210,54,54,54,54,63, - 54,210,54,54,63,63,210,54,63,63,54,54,54,210,63,54, - 63,63,54,210,210,54,210,210,210,210,210,210,210,210,210,155, - 210,210,210,210,210,210,210,210,210,210,54,155,210,210,210,210, - 210,210,54,155,210,54,210,155,210,54,54,54,54,54,54,54, - 54,54,54,54,54,210,54,54,210,54,63,54,54,54,54,63, - 54,63,63,54,63,54,54,63,54,63,54,63,54,63,54,54, - 54,54,63,63,63,54,54,54,54,54,54,54,63,96,54,54, - 96,63,54,54,96,63,54,54,54,63,54,63,54,54,245,54, - 63,54,63,245,63,54,54,54,63,245,54,54,96,210,54,54, - 245,54,96,63,96,54,96,208,96,63,96,208,63,54,211,7, - 235,49,235,7,49,7,49,7,49,49,49,67,139,67,49,67, - 67,67,211,139,49,49,49,101,49,101,8,101,49,49,49,235, - 7,67,7,49,49,49,49,7,8,67,7,49,7,7,49,49, - 49,49,49,7,49,67,67,8,7,49,139,49,7,67,67,49, - 67,49,67,49,139,8,7,49,49,49,7,49,7,49,235,7, - 7,235,7,49,49,49,49,49,49,49,67,49,49,49,7,49, - 235,49,67,7,67,67,67,49,67,101,49,139,67,139,67,67, - 8,49,67,49,49,49,49,67,67,49,49,49,101,49,67,182, - 235,49,49,7,49,49,235,7,235,7,235,7,7,235,7,7, - 67,49,49,7,49,7,49,7,7,7,49,7,49,7,49,49, - 7,7,67,49,235,7,7,49,7,7,49,7,49,49,67,7, - 67,67,67,67,49,7,49,49,49,101,7,49,49,7,49,49, - 67,7,182,49,49,49,49,67,101,7,67,101,101,7,139,67, - 67,7,67,139,101,7,12,101,7,139,101,8,7,67,7,139, - 49,8,7,8,101,8,49,67,101,101,7,7,67,67,7,7, - 7,49,49,101,49,49,49,67,7,67,7,7,49,7,7,7, - 7,67,8,101,101,67,8,101,8,8,8,8,8,101,8,8, - 8,7,8,8,101,8,101,8,7,8,8,67,8,7,8,7, - 7,101,7,7,7,8,7,7,67,8,8,8,8,141,8,8, - 8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8, - 121,3,69,3,69,3,80,3,3,80,69,80,3,80,3,69, - 3,69,3,3,69,3,3,3,80,3,69,3,80,3,4,4, - 3,69,4,4,3,69,3,4,4,69,69,3,69,3,80,3, - 80,3,80,3,69,69,4,4,69,3,3,3,4,69,4,4, - 217,217,210,217,210,210,210,155,210,210,210,210,210,54,210,54, - 210,210,210,54,210,54,210,210,54,210,54,54,210,54,210,54, - 63,54,54,210,54,54,54,63,54,54,54,63,210,54,54,210, - 63,54,210,54,63,210,63,210,210,210,155,155,155,155,155,210, - 155,210,210,210,210,210,210,210,210,210,155,210,210,210,210,210, - 155,210,155,210,210,155,210,54,210,210,210,210,54,210,210,54, - 210,210,54,210,54,54,54,210,54,54,54,54,210,63,63,54, - 63,54,54,63,54,54,63,54,63,54,54,54,63,54,63,54, - 63,54,54,54,54,63,54,63,63,63,54,63,54,63,63,54, - 63,54,54,63,54,96,54,96,63,54,245,54,54,54,54,54, - 96,54,54,54,54,54,63,54,54,96,63,54,63,245,54,54, - 54,96,54,96,54,96,63,96,96,96,63,96,54,155,243,8, - 67,49,67,49,49,67,49,67,67,49,7,8,12,67,67,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,150,150,243,12,17,243,12,26,12,150,150,12,12,12,12, - 12,12,12,17,12,12,26,12,17,12,12,26,12,12,12,12, - 17,17,150,243,12,26,12,150,12,17,150,150,8,12,8,12, - 12,26,12,12,12,26,26,12,26,17,8,17,150,150,12,26, - 12,17,26,26,26,12,26,26,26,26,26,12,17,219,17,26, - 26,26,26,219,219,17,26,26,26,17,150,26,219,12,26,12, - 12,243,150,12,8,150,12,150,12,150,12,243,150,17,219,219, - 26,17,26,219,132,219,17,26,219,26,219,219,219,17,219,132, - 219,132,12,12,17,132,17,219,26,166,219,42,17,219,219,26, - 219,17,26,17,26,42,26,26,26,42,26,17,26,26,17,17, - 219,219,12,17,12,12,26,26,26,26,26,26,26,26,26,26, - 26,26,26,26,26,26,26,26,26,12,26,17,26,26,26,12, - 26,26,26,26,12,26,150,8,26,17,219,12,12,12,12,12, - 12,12,12,12,12,12,12,12,26,150,17,150,12,12,12,12, - 12,12,12,12,26,12,12,12,243,26,8,150,12,12,12,12, - 26,8,12,12,8,8,12,12,12,12,26,8,150,12,243,12, - 12,12,17,12,12,150,12,12,26,26,12,26,12,12,12,12, - 12,26,26,26,12,12,12,12,26,8,12,26,12,26,42,7, - 121,69,80,69,80,69,80,69,3,69,80,3,69,3,80,69, - 80,69,69,80,69,3,80,69,3,69,3,4,4,3,4,4, - 4,4,3,3,4,3,4,3,3,3,3,3,80,3,3,3, - 3,3,69,4,80,4,3,3,4,4,4,4,4,4,3,69, - 155,155,155,217,210,155,210,155,210,210,210,210,210,54,210,54, - 54,54,54,54,54,210,54,210,54,210,54,54,54,54,210,54, - 210,210,54,63,210,54,54,63,63,63,54,54,210,210,63,54, - 210,54,210,210,210,210,210,210,210,210,155,155,155,155,155,155, - 155,155,210,210,210,155,210,155,155,210,210,210,210,155,155,210, - 210,210,155,155,210,155,155,210,210,210,54,210,210,54,210,54, - 54,54,54,210,54,210,54,63,210,210,210,54,54,54,63,54, - 63,54,54,63,63,54,63,54,63,63,54,54,63,54,63,54, - 63,54,54,54,54,63,54,54,54,63,54,54,54,54,54,54, - 63,245,54,63,63,54,63,54,54,54,54,54,54,63,96,210, - 63,63,210,63,63,245,63,245,63,54,245,54,96,54,63,96, - 63,96,54,96,54,96,96,208,96,96,96,96,63,210,192,122, - 26,26,219,12,8,0,12,0,0,0,0,0,0,0,0,0, - 0,0,122,122,122,42,26,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,122,122,219,42,0,0,0,0,0,122,122, - 122,0,0,0,0,0,122,122,26,42,0,122,0,0,0,0, - 0,0,0,0,0,0,0,122,122,42,42,0,0,122,0,0, - 122,122,122,0,0,122,122,122,122,122,26,42,0,0,0,122, - 122,0,0,122,122,0,122,122,122,122,42,26,42,0,0,0, - 0,0,0,122,0,0,0,0,122,0,122,122,26,42,0,122, - 0,0,0,0,0,0,0,0,0,0,0,0,122,26,122,0, - 122,0,0,0,0,0,0,0,0,0,0,0,122,122,42,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,26, - 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, - 42,42,0,0,0,0,122,0,0,0,122,0,0,0,0,0, - 122,26,42,0,0,0,0,0,122,122,122,0,0,0,0,122, - 42,42,219,26,122,122,122,0,0,122,0,0,0,0,0,0, - 0,42,122,26,42,0,122,0,0,0,0,0,0,0,0,0, - 122,122,122,42,26,26,122,122,0,122,0,122,122,122,122,122, - 122,122,122,42,122,26,26,122,122,122,122,122,122,122,0,0, - 122,0,0,0,0,122,26,42,122,42,122,122,122,122,122,122, - 122,122,122,122,0,0,122,219,26,26,12,12,12,26,26,3, - 121,3,69,3,69,3,69,80,69,3,69,80,3,69,69,3, - 69,80,3,69,80,69,3,3,80,3,3,4,4,4,4,4, - 4,69,4,69,4,69,69,69,3,80,4,3,80,3,80,4, - 69,3,3,4,3,69,4,3,4,4,3,69,3,4,3,69, - 217,217,217,210,217,217,217,210,210,210,210,210,210,210,54,210, - 210,210,210,210,210,54,210,54,210,54,210,210,210,54,54,54, - 63,54,210,54,54,210,210,54,210,54,63,63,63,54,54,210, - 63,210,54,210,54,210,210,210,210,155,210,155,155,210,210,210, - 210,155,155,155,155,155,155,210,155,155,155,155,155,155,155,155, - 155,155,155,155,155,155,155,210,210,210,210,54,210,54,210,54, - 210,210,210,54,210,54,210,54,63,54,54,54,210,210,54,63, - 54,63,63,54,54,210,54,63,54,54,63,63,54,63,54,63, - 54,63,63,63,63,54,54,63,54,54,54,63,63,54,63,210, - 54,63,245,54,54,210,245,54,63,63,245,63,63,54,63,54, - 245,54,54,54,54,63,54,63,54,54,96,63,54,63,96,54, - 245,63,96,63,63,96,63,96,96,96,63,96,96,210,68,12, - 8,8,101,8,12,17,8,0,219,122,56,122,42,42,42,122, - 42,42,122,42,243,219,219,17,0,26,78,183,42,42,42,122, - 42,42,122,42,42,12,26,26,17,122,42,42,122,42,122,42, - 122,42,42,122,42,42,12,26,26,17,0,42,42,42,42,42, - 42,42,42,122,42,122,42,150,26,26,17,122,26,122,42,122, - 42,42,42,122,42,42,42,42,12,26,26,17,0,219,42,42, - 122,42,42,122,42,42,122,122,42,12,219,26,17,0,219,42, - 122,42,42,42,122,42,42,122,42,42,12,26,219,17,0,42, - 122,42,122,42,42,122,42,42,122,122,42,12,26,26,17,0, - 42,42,42,122,122,42,42,122,122,42,122,42,12,219,26,17, - 0,219,42,42,122,122,42,122,42,122,122,122,42,12,219,26, - 17,0,219,42,122,122,122,42,42,42,122,42,122,42,243,26, - 26,17,0,219,42,42,122,42,42,42,122,42,42,122,42,243, - 26,26,17,0,219,42,42,122,42,42,42,42,42,42,42,122, - 243,26,26,26,122,26,122,42,42,122,42,42,42,122,42,122, - 42,243,26,26,17,122,42,42,42,122,42,42,122,42,122,42, - 122,42,12,219,26,26,122,42,42,42,122,42,122,42,42,122, - 42,122,42,12,26,26,17,0,26,42,42,122,42,122,42,42, - 42,122,42,42,12,26,26,17,0,42,42,122,42,42,42,122, - 42,42,122,122,26,12,219,26,12,12,8,8,7,7,12,69, - 69,69,69,80,69,80,69,3,69,3,69,69,80,3,69,80, - 69,69,3,69,3,3,69,3,3,80,69,4,4,4,69,4, - 3,4,4,4,3,3,80,4,4,3,80,3,3,3,3,3, - 4,3,69,69,80,3,69,4,4,69,4,3,4,69,4,3, - 155,155,217,217,210,210,210,155,210,210,210,210,54,210,210,54, - 54,54,54,54,210,54,210,54,54,54,54,54,210,210,210,54, - 210,54,210,63,54,54,210,54,210,54,54,54,210,210,54,210, - 54,155,210,210,210,210,210,210,210,155,210,210,155,217,217,155, - 210,155,155,210,210,155,155,210,217,155,155,155,217,155,155,155, - 155,155,155,217,210,155,155,210,210,210,210,210,210,54,210,210, - 54,54,54,54,54,54,210,54,210,210,210,54,54,210,54,210, - 54,63,210,210,54,210,54,210,63,54,54,63,54,63,54,63, - 54,54,54,54,63,210,54,63,63,63,245,54,210,54,54,54, - 54,63,54,54,54,54,63,54,54,63,54,54,245,54,63,63, - 210,54,186,210,54,54,54,63,63,63,54,63,245,54,63,54, - 54,63,96,96,63,96,54,63,96,96,245,63,96,63,63,12, - 7,7,7,7,12,67,8,26,101,139,139,139,8,211,211,211, - 8,8,139,139,67,26,26,8,42,101,139,139,8,211,139,8, - 8,8,139,139,139,67,17,26,12,42,49,139,139,8,139,8, - 8,211,8,139,67,139,49,17,17,243,42,101,139,139,8,211, - 8,211,211,211,139,139,139,67,17,26,12,26,101,139,139,139, - 8,8,211,211,8,8,139,139,49,17,26,243,42,49,139,139, - 8,139,8,211,8,8,8,139,139,49,17,26,8,42,101,139, - 139,8,211,8,211,8,8,8,139,139,49,17,17,12,26,101, - 139,139,139,8,139,8,8,8,8,139,139,49,17,26,243,42, - 49,139,139,8,139,211,211,139,8,8,139,139,101,17,26,243, - 42,49,139,139,139,211,139,8,211,8,8,139,139,101,17,26, - 243,42,49,139,139,8,8,211,211,8,8,8,139,139,67,17, - 26,8,42,101,67,139,8,139,8,8,211,8,8,139,139,67, - 17,17,12,42,49,139,139,8,139,8,211,8,8,8,139,139, - 67,17,12,12,26,101,139,139,8,139,8,211,8,211,8,67, - 211,67,17,26,12,42,49,139,139,139,8,211,211,8,8,8, - 139,139,67,17,12,12,26,101,139,139,8,8,139,8,8,8, - 8,139,139,49,17,26,8,42,101,139,139,8,8,211,211,8, - 8,8,139,139,49,17,17,12,26,101,139,139,8,139,8,8, - 211,8,8,139,139,101,12,26,8,12,7,8,7,8,8,3, - 69,3,69,69,3,69,80,69,80,3,80,3,69,80,3,69, - 3,3,69,80,80,3,80,3,3,3,3,69,3,3,4,4, - 4,3,4,4,4,3,4,69,3,4,3,4,80,69,69,80, - 69,3,3,3,3,4,3,4,3,69,69,69,3,69,4,4, - 217,217,155,210,217,217,217,210,210,63,210,210,155,54,210,210, - 210,54,210,210,54,210,210,210,210,210,210,210,54,63,54,210, - 63,63,54,210,63,210,54,210,210,210,210,210,63,210,210,210, - 210,210,210,210,210,210,210,155,217,210,155,217,217,210,155,217, - 217,217,155,155,155,210,217,217,210,217,217,217,155,217,217,217, - 217,217,217,155,217,217,155,155,155,210,210,210,210,210,210,210, - 54,210,210,210,54,210,63,210,54,54,54,63,210,63,210,54, - 210,210,54,63,63,54,210,63,54,210,210,54,210,54,210,210, - 63,63,63,210,210,54,210,245,54,54,54,210,245,210,54,63, - 63,54,63,63,63,63,54,54,54,54,210,54,63,63,54,54, - 63,63,54,63,186,63,210,245,54,245,63,54,54,63,54,245, - 63,245,63,63,63,186,63,96,63,54,63,96,63,210,54,12, - 8,67,67,7,12,8,8,42,49,8,8,8,211,8,8,8, - 211,8,139,8,101,150,150,243,42,49,8,8,211,8,8,8, - 139,8,8,8,211,67,150,12,109,42,101,8,211,139,8,8, - 211,8,8,8,8,8,139,150,17,243,42,49,8,211,211,8, - 211,8,8,8,8,211,8,101,150,17,211,42,49,211,8,8, - 8,211,8,8,211,8,8,139,101,150,17,243,42,139,8,8, - 211,8,8,8,211,211,8,211,8,101,150,17,243,42,49,8, - 139,8,8,211,8,211,211,8,211,139,139,12,12,243,42,49, - 8,8,211,8,8,8,211,211,8,139,8,101,150,17,243,42, - 101,8,8,211,8,8,8,8,211,8,139,8,67,150,17,243, - 42,139,8,8,8,8,8,211,8,211,8,139,8,67,150,17, - 243,42,101,8,8,211,211,8,8,211,211,8,139,8,101,150, - 17,243,42,101,8,8,211,8,8,211,8,211,8,139,8,139, - 150,17,109,42,101,8,8,211,8,8,8,211,211,8,139,8, - 139,150,17,211,42,49,211,8,139,8,8,8,139,8,8,8, - 139,101,150,12,109,42,101,8,8,8,8,8,8,211,211,8, - 139,8,101,150,17,211,42,49,8,8,211,211,8,8,211,211, - 8,139,8,101,150,17,243,42,49,8,8,211,211,8,8,211, - 211,8,211,8,139,150,12,109,42,49,8,8,8,8,8,211, - 8,211,8,139,8,67,12,12,8,26,7,8,8,8,12,69, - 121,80,69,69,80,69,3,80,3,69,3,3,69,3,80,69, - 80,69,3,3,3,69,69,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,3,69,4,69,3,3,3,69, - 4,4,80,69,4,4,69,69,4,4,4,3,4,4,3,69, - 155,217,36,155,210,210,210,155,155,210,210,210,210,210,210,54, - 210,210,54,210,54,54,210,54,54,63,54,210,54,210,63,54, - 210,210,63,54,63,210,63,54,54,210,54,210,54,210,210,210, - 210,210,155,210,155,217,217,210,217,217,155,210,217,155,155,155, - 210,217,217,217,217,210,155,217,155,217,217,217,217,217,217,217, - 217,217,217,217,217,217,155,155,155,155,210,210,210,210,210,210, - 210,54,210,210,54,54,54,210,63,63,210,54,63,54,210,54, - 54,63,54,54,210,63,54,210,54,54,210,54,210,54,54,54, - 210,54,54,54,210,54,63,210,210,210,54,63,54,210,54,245, - 210,54,54,245,54,63,186,210,54,54,63,54,54,245,210,54, - 210,210,54,54,210,54,63,210,63,54,210,63,245,63,63,54, - 63,54,54,96,54,96,63,96,63,96,96,96,54,63,63,12, - 7,67,8,7,132,8,8,42,67,8,211,8,211,8,211,8, - 211,12,211,8,101,12,17,243,122,101,211,8,139,187,211,187, - 211,8,211,8,8,139,150,132,243,122,49,8,8,8,211,211, - 8,211,109,8,187,8,101,150,17,243,122,139,8,8,139,8, - 187,139,8,8,8,211,8,101,150,132,243,122,101,8,211,211, - 8,211,8,211,8,109,8,8,8,243,17,243,122,101,211,8, - 211,8,211,211,8,211,8,8,8,139,150,17,243,122,101,8, - 211,8,211,8,211,8,211,8,8,8,67,150,132,243,122,101, - 211,8,8,109,211,211,8,211,187,211,8,101,150,17,141,122, - 101,211,8,211,8,211,8,211,8,8,187,8,101,150,17,243, - 122,49,8,211,8,211,8,211,8,211,8,8,8,139,150,17, - 243,122,101,139,8,211,8,211,8,211,8,187,211,8,101,150, - 17,243,122,101,211,8,211,8,211,8,211,8,187,211,8,67, - 12,150,243,122,101,211,8,211,8,109,8,211,8,187,211,8, - 101,150,132,243,122,101,8,8,211,8,109,187,8,211,211,187, - 8,101,150,150,141,122,101,211,8,211,211,8,211,8,211,8, - 187,8,101,150,132,243,122,101,211,8,211,8,211,211,8,211, - 187,211,8,101,150,17,243,122,101,211,8,211,8,211,8,211, - 8,8,211,8,139,150,150,243,122,101,211,211,211,211,8,211, - 8,211,8,8,8,67,150,12,8,12,8,7,8,7,8,3, - 121,3,69,69,69,80,69,69,80,69,80,80,3,3,69,3, - 69,3,80,69,3,80,3,3,4,4,3,69,4,205,4,3, - 4,3,3,3,4,3,3,4,3,4,4,69,3,4,4,3, - 69,3,3,4,3,4,3,4,3,4,4,4,4,69,3,4, - 217,217,217,217,217,210,210,210,155,210,210,210,155,54,210,210, - 210,54,210,210,210,210,210,210,210,210,210,63,210,54,210,54, - 210,54,210,210,210,54,210,210,210,63,210,210,210,210,210,155, - 210,210,210,210,210,210,210,217,155,210,217,217,155,217,217,217, - 217,210,210,210,155,217,210,155,217,155,155,217,155,217,217,217, - 217,25,217,25,25,217,217,217,217,155,155,155,155,155,210,210, - 210,210,210,63,210,210,210,63,210,54,54,210,54,210,63,63, - 63,63,210,210,54,210,210,63,210,210,54,210,54,210,210,210, - 210,54,210,210,210,210,54,210,54,54,210,54,210,54,210,210, - 54,210,54,210,210,54,63,96,210,186,54,210,210,63,54,186, - 54,63,210,63,54,63,63,54,210,63,54,54,63,54,54,63, - 54,245,63,63,63,63,96,63,245,63,63,96,63,210,54,12, - 8,67,67,101,12,12,8,122,139,211,211,211,8,211,187,109, - 8,211,8,8,67,150,219,182,42,101,211,211,8,139,8,211, - 211,187,109,109,8,139,150,26,182,42,139,211,211,8,109,211, - 187,109,8,211,211,211,139,12,17,182,122,49,211,8,211,8, - 211,187,211,187,211,187,8,67,150,26,182,42,101,211,211,211, - 211,187,211,187,109,8,109,211,67,150,17,182,42,101,211,211, - 211,211,187,109,8,109,109,211,8,67,150,219,182,42,101,211, - 211,211,211,8,211,187,109,8,187,211,8,12,26,182,42,101, - 211,211,211,8,211,187,211,8,211,211,8,139,150,17,139,42, - 101,211,8,211,211,211,187,109,8,211,211,211,139,150,17,211, - 78,139,8,211,211,211,187,109,8,109,211,187,211,67,150,17, - 182,42,101,211,8,211,211,8,109,211,8,211,211,8,67,150, - 17,211,42,101,211,211,211,211,187,109,211,8,211,8,211,8, - 150,26,211,42,101,211,211,211,211,211,187,211,8,211,211,8, - 139,150,26,182,42,101,211,211,211,211,8,211,211,8,187,139, - 8,67,150,26,211,42,101,211,211,211,211,187,211,8,187,211, - 139,8,139,12,26,182,42,101,211,211,211,8,211,187,211,8, - 211,211,8,139,150,219,182,42,101,211,211,211,8,211,187,109, - 211,187,109,8,67,12,26,182,42,101,8,211,211,8,109,109, - 8,211,109,109,8,139,150,12,8,12,8,7,8,8,12,121, - 69,69,3,69,69,69,3,69,69,69,69,3,69,80,69,3, - 80,69,3,80,3,3,69,4,4,4,4,4,4,69,4,3, - 4,4,4,4,4,4,4,69,3,69,80,3,69,4,3,69, - 3,69,4,3,69,4,4,69,4,3,69,69,3,4,4,4, - 155,155,217,155,217,217,155,210,155,210,210,210,210,210,210,210, - 210,63,63,210,63,63,63,63,63,54,210,63,210,63,210,63, - 210,63,54,63,210,63,54,210,210,63,63,210,210,210,210,210, - 155,155,217,217,217,217,155,217,217,155,217,217,217,210,210,155, - 217,217,217,217,210,217,217,210,217,217,217,217,217,217,217,25, - 155,155,155,155,217,25,155,155,217,217,217,155,210,155,210,210, - 210,63,210,210,63,63,210,210,210,210,63,210,63,54,54,210, - 54,210,54,210,63,54,210,54,63,210,54,210,54,210,210,54, - 210,210,54,54,210,210,210,210,210,210,210,54,210,54,54,210, - 210,63,54,54,63,54,210,54,63,54,54,96,54,210,63,210, - 210,54,186,210,63,245,210,63,245,210,63,54,63,63,245,63, - 63,54,54,63,245,63,96,63,96,63,186,54,96,63,63,12, - 8,7,8,7,17,12,8,42,101,139,211,8,211,211,211,8, - 109,109,211,8,139,12,26,8,122,101,139,211,8,211,211,187, - 139,8,211,211,8,139,150,26,8,122,101,139,211,211,211,211, - 8,211,8,211,211,211,67,12,26,8,122,101,139,211,211,139, - 211,8,211,8,139,139,8,139,150,26,8,122,101,139,211,8, - 211,211,8,211,8,211,211,211,139,12,26,8,122,101,139,211, - 8,211,211,8,211,211,187,139,8,139,12,26,8,122,101,139, - 211,8,91,211,8,211,8,211,139,139,67,150,26,8,122,101, - 139,211,8,211,211,211,8,187,8,139,8,139,12,26,8,122, - 101,139,211,211,91,8,211,8,109,8,139,8,139,12,17,8, - 122,101,139,211,211,8,211,8,91,8,211,139,8,139,150,26, - 8,122,101,139,211,211,91,211,187,211,187,8,139,8,139,12, - 17,243,122,101,139,211,91,8,211,8,109,187,211,211,139,67, - 150,17,8,122,101,139,211,91,8,211,211,187,211,8,211,211, - 139,150,26,8,122,101,139,211,8,211,211,187,211,211,8,139, - 187,101,150,17,8,122,101,139,211,91,139,211,8,211,211,211, - 211,211,67,150,26,8,122,101,139,211,91,211,211,8,211,187, - 8,139,8,139,12,26,8,122,101,139,211,91,211,211,8,211, - 211,8,139,8,67,150,26,8,122,101,139,211,91,211,211,91, - 8,109,8,211,8,139,12,17,8,12,8,7,8,8,8,3, - 121,69,69,69,80,69,69,69,3,69,80,69,3,69,3,69, - 80,3,3,80,3,80,3,4,4,205,205,4,4,69,69,69, - 4,205,4,4,69,4,4,4,3,3,69,3,69,69,3,4, - 4,4,69,4,4,4,4,69,69,3,3,4,3,4,4,3, - 217,217,217,217,155,155,155,155,210,155,210,210,210,210,210,63, - 210,54,210,63,210,54,210,210,63,210,210,54,210,210,210,54, - 63,210,210,210,54,210,210,63,63,210,210,210,210,210,210,155, - 210,217,155,217,217,217,217,217,217,217,155,217,155,217,217,217, - 217,155,217,155,217,217,210,217,217,217,217,217,25,217,217,217, - 217,25,217,25,217,217,217,217,217,155,155,217,217,155,217,210, - 210,210,210,63,210,210,63,63,210,210,210,54,210,210,210,210, - 210,63,210,54,63,210,63,210,54,63,210,210,210,54,210,210, - 54,210,210,210,54,210,210,54,210,54,210,210,210,210,210,54, - 54,210,63,210,245,63,54,63,63,63,210,210,63,54,63,54, - 210,210,210,63,210,210,54,210,63,63,54,186,54,210,63,54, - 54,186,54,54,63,63,63,245,63,96,208,63,210,210,63,12, - 8,8,67,8,12,26,8,122,101,211,211,211,211,8,211,187, - 109,8,211,211,67,150,17,211,42,101,211,211,211,8,211,139, - 187,109,8,211,8,67,150,17,211,42,101,211,211,91,211,211, - 187,211,187,109,8,8,139,150,17,211,78,101,211,211,211,187, - 211,109,109,8,187,211,8,67,150,17,211,42,101,211,211,91, - 211,211,211,187,211,187,211,8,139,150,17,211,42,101,211,211, - 91,211,8,91,109,8,211,8,211,67,150,17,211,42,101,211, - 211,211,8,211,109,8,211,187,109,8,139,150,17,211,42,101, - 139,91,211,211,211,187,211,139,187,211,211,67,150,17,211,42, - 101,211,211,211,211,211,187,109,211,187,211,8,67,150,26,211, - 42,101,211,211,211,211,211,8,211,211,187,211,8,139,132,17, - 211,42,101,211,211,8,8,211,211,8,139,187,109,211,67,150, - 26,8,42,101,211,211,211,211,211,109,8,139,187,211,8,139, - 150,26,8,42,101,211,211,8,211,211,8,211,8,187,211,8, - 67,150,17,211,42,101,211,211,91,8,211,211,8,109,8,211, - 8,67,150,26,8,42,101,211,211,211,8,211,187,109,8,187, - 211,8,139,150,17,211,42,101,211,211,8,211,211,109,8,211, - 109,8,211,67,150,17,211,42,101,211,211,8,211,211,8,211, - 187,8,109,8,139,150,17,211,42,101,211,211,8,211,8,211, - 187,211,109,211,8,67,243,26,8,12,8,7,8,7,12,69, - 69,69,69,69,69,3,69,69,69,69,69,69,80,69,3,80, - 69,3,69,69,4,3,4,4,69,3,3,4,4,4,4,4, - 4,3,205,4,4,4,3,69,3,69,3,69,4,4,4,4, - 3,69,4,3,4,69,3,4,4,4,4,4,4,4,4,4, - 217,217,217,217,217,217,155,155,210,217,210,210,210,63,210,210, - 210,210,210,54,210,210,54,210,54,210,210,210,210,54,210,210, - 210,54,210,210,210,210,210,210,210,210,210,210,217,217,217,217, - 210,217,155,217,217,217,155,155,217,217,155,217,217,217,217,155, - 217,155,217,217,155,217,217,217,217,155,25,155,25,155,25,217, - 25,217,25,25,25,217,217,155,217,217,217,155,217,155,155,155, - 155,210,210,210,210,210,210,63,63,210,210,210,54,210,54,63, - 210,210,210,210,210,210,210,210,210,54,210,54,210,210,210,210, - 210,210,210,63,210,63,210,210,210,210,54,210,54,210,210,210, - 210,54,63,210,54,210,245,210,54,63,245,210,63,245,210,63, - 63,63,210,54,63,63,63,245,210,63,63,210,54,54,186,210, - 63,210,63,245,63,96,63,54,63,245,54,96,63,210,210,12, - 8,101,8,8,12,12,8,42,139,211,211,91,8,211,211,211, - 8,109,211,91,67,12,17,243,122,101,139,109,211,91,8,211, - 8,211,187,211,211,139,150,219,243,122,139,211,211,8,211,211, - 211,8,211,8,211,8,67,12,17,243,122,101,211,211,211,211, - 211,8,109,8,211,211,91,67,12,17,243,122,101,139,211,8, - 211,211,8,211,8,211,211,8,67,12,17,243,122,101,139,211, - 8,211,8,211,187,211,187,211,8,139,12,219,243,122,101,211, - 211,211,211,211,91,8,211,211,8,211,67,12,17,243,122,101, - 211,8,211,211,211,8,8,211,8,211,8,67,17,17,243,122, - 101,211,211,8,211,211,211,8,211,8,211,8,67,132,17,243, - 122,101,211,211,91,211,91,243,8,211,8,211,8,139,12,17, - 243,122,101,211,211,211,211,211,187,8,211,211,8,8,139,150, - 12,243,122,101,139,8,211,8,211,91,8,211,8,211,8,139, - 150,150,243,122,101,139,211,8,211,91,8,211,211,8,211,8, - 139,12,17,243,122,101,139,211,8,211,211,187,211,187,211,211, - 8,139,150,150,243,122,101,139,8,8,211,211,211,8,211,8, - 211,8,67,12,17,243,122,101,139,8,211,211,91,8,109,8, - 109,211,91,67,150,17,243,122,101,139,211,8,211,91,8,211, - 211,8,109,211,139,150,17,243,122,101,139,211,211,8,8,211, - 8,211,91,8,211,67,150,12,8,12,8,8,8,8,8,3, - 121,69,69,80,69,69,69,69,69,69,69,3,69,80,69,3, - 80,3,80,3,80,3,4,4,4,4,69,4,4,69,4,69, - 69,4,4,205,4,4,4,69,80,3,4,3,3,3,4,4, - 4,4,4,4,3,4,3,4,4,4,69,4,4,4,4,3, - 25,217,217,217,217,155,217,155,155,210,155,217,210,210,210,210, - 210,210,210,210,54,210,210,210,210,210,63,63,63,210,210,210, - 63,155,54,210,63,63,210,210,210,210,210,217,210,210,210,210, - 217,155,217,155,155,217,217,217,217,217,217,217,155,217,155,217, - 217,217,217,155,217,217,155,155,25,217,217,25,25,217,25,25, - 25,25,25,155,25,217,25,217,217,217,155,217,155,217,217,217, - 155,155,155,155,210,210,210,210,210,210,210,210,210,63,210,210, - 63,63,210,210,54,210,210,54,210,210,54,210,210,210,210,210, - 54,210,210,210,63,63,63,63,210,210,210,210,210,63,54,210, - 186,210,63,63,210,210,210,210,54,210,63,54,210,210,54,210, - 210,186,210,210,186,54,210,63,210,186,63,63,210,210,63,63, - 63,54,210,63,63,63,186,63,63,63,186,63,63,63,54,12, - 8,7,8,101,12,12,8,122,49,211,139,8,211,211,109,211, - 211,211,8,211,67,132,17,109,42,101,211,211,139,211,211,109, - 211,211,211,211,8,67,132,17,211,122,49,139,8,211,211,211, - 211,211,211,211,211,211,139,132,17,109,42,101,211,211,8,211, - 211,111,139,8,211,8,139,8,132,17,109,122,49,139,8,8, - 211,139,61,211,8,211,211,211,139,132,17,109,122,49,139,8, - 211,139,211,211,139,211,211,211,211,67,150,17,109,42,101,211, - 211,8,211,211,211,211,211,211,8,211,139,132,17,109,122,49, - 139,211,211,211,211,109,109,211,211,211,211,139,150,17,109,42, - 101,211,211,8,211,211,211,211,211,109,211,211,139,132,17,109, - 42,101,211,139,8,139,211,211,109,211,211,211,211,67,150,17, - 109,42,101,211,211,211,211,211,211,211,211,211,211,211,67,132, - 17,211,42,101,211,211,211,211,139,211,109,211,211,211,211,67, - 150,26,109,42,101,211,139,8,211,211,109,211,211,211,211,8, - 67,132,17,109,122,49,139,8,211,211,211,211,211,139,211,211, - 211,67,132,26,109,42,101,139,211,8,211,211,211,211,211,211, - 211,211,8,132,17,211,42,101,139,211,8,211,211,211,211,211, - 211,8,8,67,132,17,211,42,101,211,139,8,211,139,211,109, - 211,211,211,8,67,132,17,109,42,101,211,211,211,139,211,109, - 211,211,211,8,211,8,150,26,8,12,7,8,7,8,12,69, - 69,69,69,69,69,69,80,69,69,69,69,3,80,3,3,69, - 3,69,3,4,3,69,4,4,69,69,4,69,4,4,4,4, - 4,4,69,4,69,69,3,4,3,4,3,69,4,69,69,4, - 3,3,4,3,4,4,4,3,69,3,3,69,69,4,3,69, - 217,25,25,155,217,217,217,217,155,217,210,155,155,155,210,210, - 210,210,210,155,210,210,210,210,63,210,210,210,210,210,210,54, - 210,210,210,210,54,210,210,210,210,155,210,210,217,217,217,155, - 217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217, - 217,217,217,217,217,217,217,217,25,217,217,25,25,25,217,217, - 25,217,25,217,25,155,25,217,25,217,217,25,217,217,155,217, - 155,155,155,155,155,155,155,210,210,210,210,210,210,210,210,210, - 210,63,210,210,210,210,210,210,54,155,210,210,54,210,210,210, - 210,210,54,210,210,245,210,210,54,210,63,210,210,186,210,63, - 210,54,210,54,63,54,210,210,210,54,155,210,54,210,63,63, - 210,210,210,63,210,210,54,63,63,210,63,186,63,63,63,245, - 210,63,54,63,63,63,96,63,96,63,63,96,63,210,210,12, - 8,8,8,8,12,26,8,42,67,139,211,211,211,211,211,91, - 8,211,8,8,67,132,219,109,122,67,211,211,211,139,211,211, - 211,211,8,211,8,139,150,219,211,122,67,211,211,211,211,211, - 91,211,211,187,211,8,67,12,219,211,122,49,139,211,211,211, - 211,211,109,211,211,8,139,67,150,219,211,0,67,211,211,211, - 211,211,211,211,211,109,211,8,67,150,219,211,0,67,211,211, - 211,211,8,91,139,8,211,211,8,67,17,17,109,122,49,139, - 211,211,211,211,109,109,211,211,211,8,67,150,219,211,0,67, - 139,211,8,211,211,211,109,211,187,211,8,67,132,17,109,122, - 49,139,211,211,211,211,91,211,211,211,8,211,139,150,219,211, - 122,49,211,139,211,211,8,211,61,211,211,8,8,67,17,219, - 211,122,49,139,211,211,211,211,91,139,187,211,211,8,139,150, - 219,211,122,49,139,211,211,8,211,211,109,211,8,211,8,139, - 150,17,109,122,67,211,211,139,139,8,91,139,187,211,211,8, - 67,150,219,211,0,67,211,211,211,211,211,211,211,187,211,211, - 8,139,150,17,211,122,67,211,211,211,211,211,61,211,8,211, - 211,139,67,150,219,109,122,67,211,211,139,8,211,91,139,8, - 211,139,187,101,150,219,211,122,67,211,211,139,8,211,91,139, - 187,211,211,8,139,150,219,211,122,49,211,211,211,211,211,211, - 211,8,211,211,139,139,150,26,8,12,8,8,8,8,8,3, - 121,69,69,69,80,69,69,69,80,69,80,69,69,80,69,3, - 69,80,69,3,4,69,69,3,4,69,4,69,69,69,4,4, - 69,4,69,4,4,69,4,69,69,69,3,4,4,4,3,4, - 4,4,4,3,69,4,4,3,69,4,3,3,4,69,4,4, - 25,155,25,217,217,155,217,155,217,210,155,210,210,210,210,210, - 210,210,210,210,54,210,210,63,210,210,210,210,210,210,210,155, - 210,210,210,210,210,210,210,210,210,210,155,217,210,155,217,217, - 155,155,217,217,155,217,217,155,217,217,217,217,217,217,155,155, - 155,155,25,155,25,25,25,217,25,155,25,25,217,25,25,25, - 25,25,25,25,25,25,155,25,217,25,217,217,217,217,217,155, - 217,210,210,155,210,210,210,155,210,210,210,210,210,210,63,210, - 54,210,63,210,63,210,54,210,210,210,210,210,155,210,210,63, - 210,210,210,210,210,210,210,63,210,63,210,210,210,210,54,210, - 210,186,210,210,186,63,210,54,210,63,54,63,63,210,245,210, - 63,63,210,155,210,186,210,210,210,210,210,210,63,63,210,63, - 63,186,210,210,245,63,63,63,210,96,63,63,63,210,63,12, - 8,7,8,8,12,12,8,42,101,139,139,139,139,139,139,139, - 139,211,139,211,139,12,26,211,26,101,139,139,8,211,139,211, - 211,139,211,139,139,139,17,26,109,42,101,139,139,139,139,139, - 139,139,211,139,139,139,139,132,26,109,42,101,139,139,139,139, - 139,211,139,211,211,139,211,67,17,26,109,26,101,139,139,139, - 139,139,139,211,211,211,139,139,139,17,26,109,26,101,139,139, - 139,139,139,139,211,211,211,139,139,139,132,26,211,42,101,139, - 139,139,139,139,211,139,211,211,139,139,139,17,26,243,42,101, - 139,139,139,139,139,211,139,211,139,139,139,139,17,26,211,42, - 101,139,139,139,139,139,139,211,139,211,211,139,67,17,26,109, - 42,101,139,139,139,139,139,139,139,139,139,139,211,139,150,26, - 109,26,139,139,139,139,139,139,139,211,139,211,139,211,67,17, - 26,109,42,101,139,139,139,139,139,211,211,211,211,139,211,67, - 132,26,211,26,101,139,211,139,139,139,139,139,139,211,139,139, - 139,17,26,109,26,101,139,139,139,139,139,139,139,139,211,139, - 211,67,132,26,109,42,101,139,139,139,139,139,139,211,211,211, - 139,139,139,17,26,109,26,101,139,139,139,139,139,139,211,211, - 211,139,139,67,17,26,109,42,101,139,139,211,139,139,139,139, - 139,211,139,139,139,17,26,109,42,101,139,211,139,139,139,211, - 211,211,211,139,139,67,150,12,8,12,7,8,7,8,12,69, - 69,69,69,69,69,69,3,69,69,69,69,69,69,69,69,69, - 69,69,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,69,4,4,69,4,80,3,3,80,4,69,4,3,4,4, - 4,4,4,4,3,3,4,4,4,4,4,4,4,4,3,69, - 25,217,25,25,217,217,25,217,217,217,210,155,210,155,210,210, - 210,210,210,155,210,210,210,210,210,54,210,210,210,54,210,210, - 210,210,210,210,210,210,210,155,210,210,210,155,217,210,155,217, - 217,155,155,217,217,217,217,155,217,155,217,155,217,217,217,25, - 217,155,25,155,155,217,25,217,25,217,25,25,25,25,25,25, - 25,25,25,217,25,25,217,25,217,25,25,217,25,217,217,217, - 217,217,210,217,155,155,210,155,155,210,210,210,210,210,210,210, - 210,210,210,210,210,210,155,210,210,54,155,210,210,210,210,210, - 210,210,210,210,210,210,210,210,210,210,210,210,210,155,210,210, - 63,210,210,63,210,210,63,186,210,210,210,210,63,210,210,210, - 155,63,63,210,210,210,210,186,210,210,63,186,210,63,155,63, - 63,63,63,210,210,186,210,96,186,63,245,210,63,210,210,12, - 8,8,8,101,26,12,8,122,8,26,91,91,26,91,26,91, - 26,91,26,12,182,150,26,12,78,8,91,26,91,91,91,26, - 91,26,91,26,26,67,150,26,187,42,8,91,26,91,91,26, - 91,26,91,26,91,26,67,150,26,12,78,91,91,26,91,91, - 26,91,26,91,26,91,26,67,132,26,8,162,8,91,91,26, - 91,26,26,91,91,91,26,26,67,132,26,8,162,8,91,26, - 91,91,187,26,91,26,91,26,91,182,150,26,12,78,91,91, - 26,91,26,91,26,91,26,91,26,26,67,150,26,8,162,8, - 91,26,91,26,91,91,26,91,26,91,26,67,150,26,187,42, - 187,91,26,91,91,26,91,26,91,91,26,12,67,132,26,8, - 162,8,26,91,26,91,26,187,26,91,26,91,12,182,150,26, - 12,42,187,91,26,91,91,17,26,91,26,91,26,91,182,150, - 26,12,78,91,91,26,91,26,91,91,26,91,26,91,26,8, - 150,26,187,42,8,91,26,91,26,187,26,91,26,91,26,26, - 67,150,26,187,42,8,91,26,91,26,91,26,91,26,91,26, - 12,8,150,26,8,162,8,91,91,26,91,187,26,91,26,91, - 26,26,67,150,26,12,78,8,91,26,91,26,187,26,91,26, - 91,26,26,67,132,26,8,162,8,91,26,91,26,187,91,26, - 91,91,26,26,67,150,26,187,42,8,91,91,26,91,26,91, - 91,26,91,26,26,8,150,26,8,26,8,8,8,8,8,69, - 121,69,69,69,80,69,69,69,3,69,69,69,69,69,3,80, - 3,69,69,69,3,4,69,69,69,69,4,4,69,69,69,4, - 4,69,4,4,3,69,3,4,4,3,4,4,4,4,4,3, - 69,69,4,4,4,4,4,4,4,4,3,69,3,4,3,69, - 25,25,25,217,25,25,217,155,155,155,217,210,155,210,155,155, - 155,210,210,155,210,210,210,210,210,155,210,210,210,155,210,210, - 210,210,210,155,210,210,210,210,217,217,155,217,155,217,217,217, - 217,217,217,217,155,155,217,217,155,217,217,217,25,217,25,217, - 155,25,217,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,155,25,217,25,217,217,25,217,25,25,217, - 217,155,217,155,210,210,217,217,217,210,155,210,210,210,210,210, - 210,210,210,210,210,210,210,210,210,155,210,210,210,210,210,210, - 210,210,210,210,63,210,210,210,186,210,210,155,210,210,210,210, - 155,63,63,210,54,210,210,210,63,63,210,186,210,63,63,210, - 186,155,155,155,210,210,210,210,63,155,210,210,210,186,63,155, - 210,155,63,210,210,63,210,63,210,210,210,96,210,210,210,12, - 8,67,8,101,12,42,211,0,26,219,219,219,26,78,187,183, - 26,183,187,26,8,150,12,211,0,26,17,219,219,219,26,26, - 183,26,26,187,219,8,12,12,211,0,26,219,219,26,183,219, - 183,187,219,219,219,219,8,150,12,211,0,219,219,219,26,187, - 26,42,187,42,219,183,26,8,12,17,211,0,26,219,219,219, - 187,183,187,219,42,26,219,219,8,12,17,211,0,26,219,219, - 219,183,42,187,183,26,42,219,219,8,150,12,211,0,219,219, - 219,219,219,42,187,183,26,26,187,219,8,17,187,211,0,26, - 219,187,26,42,26,42,187,219,26,219,219,8,150,12,211,0, - 26,219,219,26,219,183,187,183,42,26,183,26,8,12,17,211, - 0,26,17,219,183,187,26,42,183,42,26,183,26,8,150,12, - 211,0,26,17,219,42,187,42,187,219,219,26,219,26,8,150, - 12,211,0,219,219,219,219,219,42,183,187,219,26,219,26,182, - 150,12,211,0,26,219,219,183,187,42,187,183,187,26,187,219, - 8,12,12,211,0,26,219,219,26,187,42,26,183,219,26,187, - 26,211,150,17,211,0,26,219,219,219,219,42,187,219,219,26, - 219,219,8,150,12,211,0,26,219,219,219,187,42,187,183,26, - 219,219,26,8,150,17,211,0,26,219,187,183,187,42,183,183, - 219,26,219,219,8,150,12,211,0,26,219,219,187,26,26,219, - 183,219,26,17,26,182,12,12,8,8,8,7,8,8,12,121, - 69,69,69,69,69,80,69,69,80,69,69,69,69,69,69,69, - 69,69,4,4,69,69,4,4,4,4,69,69,4,4,4,69, - 3,4,69,4,69,3,69,69,4,4,4,3,4,4,4,4, - 3,4,4,4,205,4,4,4,4,69,4,3,4,69,4,3, - 25,217,25,25,217,25,25,217,217,155,155,155,217,217,210,155, - 155,155,155,210,210,155,210,210,210,210,210,210,210,210,210,155, - 210,210,210,210,210,210,210,210,210,217,155,210,155,155,155,155, - 155,217,155,217,217,217,217,217,25,155,25,155,217,217,155,25, - 155,25,155,217,25,155,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,217,25,25,25, - 217,217,217,217,217,210,210,210,217,217,155,155,155,210,155,210, - 210,210,155,210,155,155,210,155,210,210,210,210,210,210,210,210, - 186,210,210,155,210,210,210,210,210,210,210,210,210,210,210,210, - 210,210,186,210,210,63,63,210,210,54,210,210,210,245,210,155, - 155,155,155,155,155,155,155,210,186,210,155,210,210,155,63,155, - 186,63,186,210,210,245,210,63,245,210,186,210,245,155,155,12, - 8,8,8,8,12,122,8,0,211,139,139,67,139,139,139,67, - 139,139,139,67,8,187,219,243,0,211,67,139,139,67,139,139, - 99,139,139,139,139,139,150,183,243,0,211,139,67,139,139,139, - 139,139,139,139,139,139,8,150,219,243,0,8,139,67,139,67, - 139,139,67,139,139,139,139,8,150,42,243,0,211,139,139,139, - 139,139,182,67,182,139,139,139,139,150,42,243,0,211,139,139, - 139,67,139,139,67,182,139,139,139,8,150,219,243,0,8,101, - 139,139,67,139,139,67,182,139,139,139,139,150,42,243,0,211, - 139,67,67,139,67,139,139,182,139,139,139,8,150,219,243,0, - 139,139,67,139,139,139,139,67,182,139,139,139,139,150,42,243, - 0,211,139,139,139,67,67,139,67,182,139,139,139,8,150,219, - 243,0,211,139,67,139,67,139,67,139,182,139,139,67,8,187, - 219,8,0,8,139,139,139,67,139,139,139,67,139,139,139,8, - 150,183,243,0,211,67,139,139,67,139,139,139,182,139,139,139, - 139,150,183,243,0,211,139,67,139,67,139,139,139,67,139,139, - 139,8,150,42,243,0,211,139,139,139,67,139,67,139,182,139, - 139,139,8,150,219,243,0,211,139,139,139,67,139,139,67,139, - 139,139,139,8,150,42,243,0,211,139,139,139,139,139,139,139, - 182,139,139,139,8,150,219,243,0,211,139,139,67,67,139,139, - 139,67,139,139,139,8,12,26,8,12,8,8,8,7,8,3, - 121,69,69,69,3,69,69,69,69,3,69,69,69,69,69,80, - 3,3,69,4,4,69,4,4,69,3,3,69,69,69,4,69, - 69,4,4,4,4,4,4,3,4,4,4,4,69,4,4,4, - 4,4,205,4,4,205,4,4,3,69,69,69,3,69,4,4, - 25,25,25,217,25,217,25,25,217,217,217,217,155,210,155,155, - 155,155,155,155,210,155,155,155,155,155,210,155,210,210,155,210, - 155,155,155,155,155,155,217,155,155,210,217,217,155,217,210,217, - 217,155,217,25,217,155,25,217,155,217,155,25,155,217,25,217, - 25,155,25,25,217,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,217,25,25,25,25,25,25,217,217, - 217,155,155,217,217,217,217,217,210,210,217,210,155,155,210,155, - 155,155,210,155,210,210,155,155,210,210,210,210,210,155,210,155, - 210,210,186,210,155,155,155,210,155,155,210,210,210,155,155,210, - 155,210,210,210,186,210,210,186,210,210,210,210,210,210,210,155, - 155,155,155,155,155,155,155,155,155,155,155,186,155,210,186,63, - 155,155,210,186,210,155,186,210,210,210,210,210,210,210,63,12, - 8,8,8,8,12,0,8,0,8,139,139,211,211,211,139,109, - 8,211,139,139,211,150,122,109,0,8,211,139,139,211,139,139, - 8,211,211,139,139,243,12,122,211,0,8,139,139,211,139,211, - 211,211,211,211,139,139,211,17,122,211,0,211,139,211,211,211, - 109,139,109,211,211,139,182,211,187,122,211,0,8,139,139,139, - 211,211,139,8,8,139,139,139,8,187,122,211,0,8,139,139, - 139,109,139,211,211,211,211,139,139,211,12,122,211,0,8,139, - 139,139,211,211,211,211,211,211,139,139,243,12,122,211,0,8, - 139,211,211,211,211,211,211,211,211,139,139,211,12,122,211,0, - 8,139,139,211,211,211,139,211,8,211,139,139,243,187,122,211, - 0,8,139,139,211,211,109,139,211,211,211,139,139,211,17,122, - 211,0,8,139,211,139,211,211,211,8,211,211,211,139,211,150, - 122,182,0,211,139,139,139,211,211,139,109,8,211,139,139,211, - 187,122,211,0,8,211,139,139,211,211,211,211,211,211,139,139, - 243,12,122,211,0,8,139,211,211,211,139,211,139,187,211,139, - 139,211,187,122,211,0,8,139,139,139,211,211,211,109,139,139, - 139,139,211,17,122,109,0,8,139,139,139,211,211,211,8,211, - 139,139,182,211,187,122,211,0,8,139,139,139,211,139,211,139, - 8,139,139,139,211,17,122,109,0,8,139,139,109,139,109,139, - 211,8,211,139,139,211,150,26,8,12,8,7,8,8,12,121, - 69,69,69,69,69,69,3,69,69,69,69,69,69,69,3,69, - 69,69,4,69,69,4,69,69,3,4,4,4,4,4,69,4, - 4,3,69,4,69,4,3,4,4,4,4,3,174,4,4,174, - 4,69,3,205,69,4,4,69,4,4,4,3,4,4,3,69, - 25,25,25,25,25,217,217,25,217,217,217,217,217,217,155,155, - 155,155,155,155,155,155,155,210,155,155,155,155,155,155,155,155, - 155,210,155,155,210,155,217,217,217,210,217,217,155,217,210,155, - 217,217,155,155,25,155,155,217,155,25,155,217,25,155,217,217, - 25,217,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,217,25,25,25,217,25,217,25,25,25,25,25,217, - 217,217,217,155,155,155,155,217,217,210,217,210,210,155,210,210, - 210,155,210,155,155,210,210,155,155,155,210,155,155,210,210,210, - 155,155,210,210,210,210,210,210,210,210,105,210,210,210,210,210, - 155,210,210,210,210,210,210,210,210,63,63,210,210,210,210,210, - 155,155,155,155,155,155,155,155,155,155,210,210,155,210,210,155, - 186,210,210,210,155,210,210,210,186,210,210,210,155,155,155,12, - 8,8,8,8,12,42,8,0,8,211,109,211,109,187,211,109, - 187,211,211,211,243,17,26,243,0,8,211,109,109,109,109,187, - 139,187,8,211,182,243,17,42,8,0,8,211,109,211,211,109, - 8,187,211,8,211,139,243,17,42,8,0,8,139,109,211,211, - 187,211,187,8,211,211,67,243,17,42,243,0,8,211,109,211, - 109,187,211,109,109,211,211,182,8,17,42,8,0,8,211,109, - 211,109,109,187,211,8,8,211,211,243,17,42,211,0,8,139, - 109,109,109,211,187,211,8,211,211,182,243,17,42,243,0,8, - 139,109,211,109,211,187,211,8,8,211,139,243,17,42,8,0, - 8,211,211,211,109,187,211,8,211,8,211,182,8,17,42,211, - 0,8,139,254,211,109,109,109,8,8,8,211,139,211,17,42, - 8,0,8,139,109,109,109,109,211,211,8,139,211,139,243,17, - 42,8,0,8,139,109,109,109,109,8,109,211,211,211,139,243, - 17,42,243,0,8,139,109,109,109,211,8,187,8,211,211,182, - 243,17,42,211,0,8,139,109,211,109,109,187,139,8,8,211, - 139,243,17,42,243,0,8,139,109,109,109,109,8,187,8,109, - 211,139,211,17,26,211,0,8,139,109,109,109,211,109,211,187, - 139,8,139,8,17,42,243,0,8,211,109,211,109,109,187,211, - 187,211,211,139,211,17,26,243,0,8,211,109,187,139,187,211, - 109,211,8,211,182,8,132,26,8,12,8,8,8,8,8,69, - 69,69,69,69,69,69,69,69,80,69,69,80,69,69,80,69, - 3,69,69,69,69,4,4,4,69,69,69,69,69,4,69,4, - 69,4,69,4,4,69,69,69,4,174,4,4,4,69,3,4, - 205,4,3,4,69,69,4,69,3,3,4,4,4,69,3,4, - 248,25,120,248,120,25,25,217,25,217,217,217,155,155,217,155, - 155,155,155,155,217,217,217,155,155,155,155,217,155,210,217,210, - 210,217,217,217,217,217,155,210,155,217,155,217,217,217,217,217, - 155,155,217,217,217,217,25,217,217,155,25,217,155,25,155,25, - 217,25,155,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 217,217,217,217,217,217,217,217,217,217,217,217,217,210,155,217, - 217,210,155,210,210,155,155,105,155,155,155,155,155,155,155,217, - 210,155,155,210,210,210,210,210,210,155,155,217,210,210,155,210, - 210,210,210,63,210,210,210,210,210,186,210,210,210,186,155,155, - 155,155,155,186,155,155,155,210,155,210,155,155,186,155,210,210, - 210,155,155,186,63,210,186,155,210,210,155,210,210,155,210,12, - 8,8,8,8,17,42,8,0,8,139,139,67,139,139,139,139, - 139,139,211,67,211,150,122,187,0,8,139,67,139,139,139,139, - 139,139,211,67,139,211,150,122,187,0,8,139,139,139,139,139, - 139,139,211,211,211,67,211,150,122,187,0,8,139,139,139,67, - 139,139,139,211,139,139,139,211,150,122,187,0,8,139,139,139, - 139,139,139,139,211,211,139,139,211,150,122,187,0,8,139,139, - 139,139,139,139,139,211,211,139,67,211,150,122,12,0,8,139, - 139,139,139,139,139,139,211,211,139,139,211,150,122,187,0,211, - 139,139,67,139,139,139,139,211,211,211,67,211,150,122,187,0, - 8,139,139,139,139,139,139,211,211,211,139,139,211,150,0,12, - 0,8,139,139,139,139,139,139,211,211,211,211,67,243,150,122, - 187,0,8,139,139,139,139,139,139,211,211,211,211,67,211,150, - 122,187,0,8,139,139,139,139,139,139,139,211,211,211,67,211, - 150,0,109,0,8,139,139,139,139,139,139,139,211,211,139,139, - 211,150,122,187,0,8,139,139,139,139,139,139,139,211,211,211, - 67,211,150,122,187,0,8,139,139,139,139,139,139,139,211,211, - 211,67,243,150,122,187,0,8,139,139,139,139,139,139,139,139, - 211,139,67,211,150,122,187,0,8,139,139,67,139,139,139,139, - 139,211,139,67,243,150,122,187,0,8,139,139,67,139,139,139, - 139,211,211,139,139,211,12,42,8,12,8,7,8,8,8,69, - 121,69,69,69,69,69,69,69,3,69,69,69,80,69,69,69, - 69,4,3,4,69,69,69,69,69,69,3,4,4,69,69,69, - 69,69,4,69,69,4,4,4,3,4,4,4,4,4,4,4, - 3,69,69,4,4,3,4,4,4,4,69,69,3,4,4,4, - 25,25,25,25,25,217,25,25,217,217,217,217,217,217,217,217, - 155,155,155,155,210,210,217,217,217,217,210,217,217,155,217,217, - 155,155,217,217,155,217,217,217,155,217,155,155,217,217,217,217, - 217,217,25,217,217,217,25,217,25,217,25,217,25,217,25,155, - 25,25,25,25,25,25,25,25,25,25,248,248,25,248,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,155,25, - 25,155,217,217,217,217,217,217,217,217,217,217,217,217,210,210, - 217,217,217,217,217,217,155,210,155,155,155,155,155,210,210,155, - 210,155,155,155,155,105,210,210,105,210,210,155,210,210,155,155, - 105,217,155,155,155,210,186,210,155,155,155,155,210,210,155,155, - 155,217,217,155,155,155,217,155,155,217,155,155,155,155,155,155, - 155,155,210,155,155,155,210,155,155,186,186,210,155,155,155,12, - 8,8,141,8,12,26,12,0,187,187,187,187,187,211,91,12, - 187,12,26,91,12,150,42,8,162,26,187,187,187,187,211,91, - 187,12,91,12,26,187,243,42,8,162,187,187,12,187,187,187, - 211,91,12,12,26,12,187,243,42,8,162,187,187,187,187,187, - 211,91,187,12,12,187,12,109,150,42,8,162,187,187,187,8, - 187,109,91,12,91,12,187,12,109,150,42,8,162,187,187,187, - 187,8,111,187,187,187,12,26,12,187,150,42,8,162,187,187, - 187,187,8,111,187,187,187,12,187,12,243,150,42,8,162,187, - 187,187,187,187,8,111,91,187,12,26,12,187,150,42,8,162, - 187,187,187,187,8,111,91,187,187,12,187,12,243,150,42,8, - 162,187,187,187,187,109,91,111,91,187,12,91,12,12,150,42, - 8,162,187,187,187,187,187,187,109,91,187,12,26,26,187,12, - 42,8,162,187,187,187,187,187,111,91,187,12,12,26,91,12, - 150,42,8,162,187,187,187,187,187,187,109,91,12,187,187,12, - 12,150,42,8,162,187,187,187,187,187,8,111,91,187,12,91, - 12,150,150,42,8,162,187,187,187,187,187,211,91,187,187,12, - 91,12,12,132,42,8,162,187,187,187,187,187,109,91,187,187, - 91,26,12,109,150,42,8,162,187,187,187,187,187,8,187,187, - 187,12,26,12,187,150,42,8,162,187,187,187,187,109,187,187, - 111,91,12,12,91,150,150,42,8,12,7,8,7,8,8,69, - 121,69,69,69,69,69,69,69,69,69,80,69,69,3,80,69, - 69,69,69,4,69,4,69,4,4,69,69,69,69,69,4,4, - 4,69,4,69,69,69,69,69,3,4,4,174,4,174,4,4, - 4,4,4,69,4,4,69,69,69,4,3,4,3,4,4,3, - 248,25,25,25,120,25,217,25,25,25,25,217,217,155,217,155, - 217,217,217,217,217,217,217,210,210,217,217,217,217,217,217,217, - 217,217,217,217,217,217,217,217,217,217,217,217,217,217,155,25, - 217,25,217,155,25,155,25,217,217,217,217,25,217,25,217,25, - 25,217,25,25,25,25,25,25,248,248,25,25,25,25,25,248, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,217,217,217,217,217,217,217,155,217,217,217,155,217,217, - 155,210,210,217,210,210,155,217,210,155,155,155,155,217,155,155, - 217,155,155,210,155,155,155,217,155,155,210,210,217,155,155,155, - 155,155,210,210,210,155,210,155,155,210,186,155,155,155,210,133, - 217,155,155,217,217,210,133,155,217,155,155,217,186,155,155,155, - 155,155,155,155,155,210,186,210,210,210,210,186,210,217,210,12, - 8,8,8,8,26,12,219,0,0,0,122,122,0,0,0,0, - 0,0,0,0,219,187,26,187,0,0,0,122,122,0,0,0, - 0,0,0,0,122,219,17,219,187,0,0,0,122,122,0,0, - 0,0,0,0,0,0,219,17,219,187,0,0,0,122,0,0, - 0,0,0,0,0,0,0,26,187,26,187,0,0,0,0,0, - 0,0,0,0,0,0,0,0,26,187,219,187,0,0,122,122, - 0,0,122,122,0,0,0,0,0,219,187,26,187,0,0,0, - 122,0,0,122,122,0,0,0,0,0,26,187,26,187,0,0, - 0,122,162,0,0,0,0,0,0,0,0,219,187,219,187,0, - 0,122,122,0,0,0,122,0,0,0,0,0,26,166,26,187, - 0,0,0,0,0,0,122,0,0,0,0,0,0,219,187,219, - 187,0,0,0,122,122,0,0,0,0,0,122,122,122,219,132, - 219,187,0,0,0,122,122,122,0,0,0,0,0,0,0,219, - 17,26,187,0,0,0,122,122,122,0,0,0,0,0,0,0, - 219,187,26,187,0,0,0,122,162,0,0,0,0,0,0,0, - 0,26,187,26,187,0,0,0,122,0,0,0,122,0,0,0, - 0,0,219,187,26,187,0,0,0,122,0,0,0,0,0,0, - 0,0,0,26,187,26,187,0,0,0,122,162,0,0,122,0, - 0,0,0,0,219,187,26,187,0,0,122,122,0,0,122,0, - 0,0,0,0,0,26,17,26,8,12,8,8,7,8,8,121, - 69,69,69,69,69,69,69,69,69,69,69,3,69,69,69,69, - 69,69,69,69,4,69,4,69,69,4,4,69,69,69,69,69, - 69,69,69,4,4,4,4,4,3,69,4,4,4,4,69,4, - 69,4,69,4,4,69,4,4,4,3,4,4,4,4,4,4, - 248,248,120,25,248,25,217,25,25,155,25,217,217,217,217,217, - 217,155,155,217,217,155,217,217,155,217,217,217,217,217,217,217, - 217,217,217,25,155,25,155,217,217,217,25,217,25,217,217,25, - 217,217,25,25,25,217,25,25,25,25,217,25,25,155,25,25, - 25,25,25,25,25,25,248,25,25,248,25,248,25,248,25,25, - 248,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 155,25,25,217,217,25,155,217,25,155,217,217,217,155,155,217, - 217,217,155,217,217,217,210,217,217,155,155,217,155,217,217,155, - 155,155,217,217,155,217,155,155,155,155,217,155,155,155,155,155, - 155,217,155,155,155,217,155,155,155,155,155,155,186,155,210,155, - 25,155,133,155,217,155,217,155,155,155,155,217,155,155,217,155, - 155,133,155,155,217,155,155,155,217,105,217,155,210,217,155,26, - 8,8,8,7,219,12,12,42,26,26,26,26,42,42,26,17, - 17,219,219,26,17,132,219,12,42,91,26,26,26,42,42,26, - 219,17,219,219,26,17,219,219,12,42,26,26,26,26,26,78, - 219,17,17,17,17,26,17,219,219,12,42,26,26,26,26,42, - 42,26,17,219,219,219,219,219,132,219,12,42,12,26,26,26, - 42,42,26,219,219,219,219,219,219,219,219,12,42,26,26,26, - 26,42,42,26,17,17,17,17,26,17,132,183,12,42,26,26, - 26,26,42,42,26,17,17,219,219,219,219,132,219,12,42,26, - 26,26,26,42,42,26,17,17,17,17,26,17,219,219,12,42, - 26,26,26,26,26,42,26,17,17,219,219,219,26,132,219,12, - 42,26,26,26,26,42,42,219,17,219,219,219,26,17,219,219, - 12,42,26,26,26,26,42,42,26,17,17,219,219,26,17,17, - 219,12,42,26,26,26,26,26,42,26,17,17,219,219,26,17, - 219,219,12,42,26,26,26,26,42,42,219,17,219,219,219,26, - 17,132,183,12,42,26,26,26,26,42,42,219,17,219,219,219, - 219,17,132,219,12,42,26,26,26,26,42,42,26,17,219,219, - 219,26,17,132,219,17,42,26,26,26,26,42,42,26,219,17, - 219,219,219,219,132,219,12,42,26,26,26,26,26,42,26,17, - 17,17,17,26,17,132,219,12,42,26,26,26,26,42,42,26, - 17,219,219,219,219,17,219,26,26,12,8,7,8,8,8,121, - 121,69,69,80,69,69,69,69,69,69,69,69,80,69,69,3, - 3,69,69,69,69,69,69,4,69,69,69,69,69,69,69,4, - 4,69,69,69,69,69,69,69,3,4,69,4,69,4,69,4, - 69,4,69,69,4,4,3,4,69,4,69,4,4,4,4,3, - 25,25,120,248,25,25,25,155,25,25,25,217,25,217,217,25, - 217,217,25,155,217,217,217,217,217,217,217,217,217,217,217,25, - 217,25,25,217,25,217,25,25,217,25,217,155,25,25,25,155, - 25,25,25,25,217,25,25,217,155,25,25,25,25,25,25,25, - 25,25,25,25,248,25,25,25,248,25,248,248,25,248,25,25, - 25,248,25,25,25,25,25,25,25,25,25,25,25,25,25,217, - 25,217,155,25,25,217,25,25,155,25,25,217,217,217,217,217, - 217,217,217,217,155,217,217,155,210,217,217,155,217,155,155,155, - 217,217,155,155,155,155,133,217,217,217,210,155,105,217,105,133, - 217,155,217,155,155,155,155,217,155,155,155,155,155,155,155,133, - 155,217,217,217,155,217,155,133,217,217,155,155,155,155,133,155, - 155,217,210,133,155,105,186,105,186,155,155,63,155,217,217,12, - 8,8,12,8,219,12,12,26,243,12,150,17,219,17,17,243, - 12,243,12,150,17,219,42,12,26,150,12,150,17,219,17,12, - 243,12,150,12,150,187,17,26,187,26,243,12,150,187,219,12, - 17,243,12,150,12,150,187,17,42,12,26,243,12,150,17,219, - 17,12,243,12,150,12,17,12,219,26,187,26,150,12,150,17, - 219,17,12,8,12,150,12,17,12,17,26,187,26,243,12,150, - 17,219,17,12,243,12,150,12,150,17,17,26,187,26,243,12, - 150,17,219,17,12,243,12,150,12,17,12,219,26,187,26,243, - 12,150,187,219,17,12,243,12,150,12,150,17,17,26,187,26, - 243,12,150,17,219,17,12,243,12,150,12,12,150,219,42,12, - 26,243,12,150,17,219,17,12,243,12,150,12,150,17,17,42, - 12,26,243,12,150,187,219,17,12,243,12,150,12,12,187,219, - 42,12,26,243,12,150,17,219,17,12,243,12,150,12,150,187, - 17,26,187,26,243,12,150,17,219,17,12,243,12,243,12,12, - 17,219,26,12,26,243,12,150,187,219,17,12,243,12,150,12, - 12,17,219,42,12,26,243,12,150,187,219,17,12,243,12,150, - 12,150,12,219,26,12,26,243,12,150,17,219,17,12,243,150, - 150,12,17,12,219,26,187,26,243,12,150,187,219,17,12,243, - 12,150,12,150,17,219,26,187,26,243,12,150,17,219,17,12, - 243,12,150,12,12,17,12,26,8,12,8,8,7,8,8,121, - 69,69,69,69,80,69,69,69,69,69,80,69,69,69,80,69, - 69,3,69,69,69,69,69,69,4,69,3,3,69,69,69,69, - 69,69,69,69,69,69,4,4,69,4,3,69,4,4,4,4, - 4,4,4,4,4,4,69,4,4,69,3,69,69,4,3,69, - 248,25,248,120,248,120,25,25,25,155,155,25,217,25,217,217, - 25,155,25,155,217,217,217,217,217,25,155,25,217,25,25,25, - 217,217,25,25,217,217,217,25,217,25,217,25,155,217,25,25, - 217,25,217,25,25,25,25,25,25,25,25,217,25,25,25,25, - 25,25,25,25,248,25,248,25,248,25,248,25,248,248,25,248, - 25,248,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,217,217,25,155,217,25,217,217,155,217,217,217,155,155, - 217,155,155,217,155,217,217,217,217,155,217,217,217,217,217,217, - 155,155,155,217,217,217,155,155,217,217,105,133,155,155,217,155, - 155,133,217,217,217,217,155,155,155,155,155,155,155,155,155,217, - 217,25,155,133,217,133,217,217,25,155,217,133,217,217,217,155, - 155,217,217,155,155,217,155,105,217,210,186,155,155,217,217,12, - 8,8,8,8,12,12,8,219,150,17,17,17,17,17,26,243, - 150,150,12,17,12,17,26,150,219,150,17,17,17,132,17,26, - 8,12,150,17,17,17,219,26,243,219,150,17,17,17,219,12, - 26,243,150,150,17,17,17,17,26,243,219,150,17,12,187,132, - 17,26,243,12,150,12,17,12,219,26,150,26,150,17,17,17, - 17,17,17,243,12,150,12,17,17,17,26,243,219,150,17,12, - 17,17,17,26,243,150,150,17,17,17,17,26,243,219,150,17, - 17,187,17,17,26,243,12,150,12,17,17,219,26,243,219,150, - 17,17,17,17,17,26,243,150,150,17,12,17,219,26,243,219, - 150,17,12,17,17,17,26,243,12,150,12,17,12,219,26,243, - 219,150,12,17,17,17,17,26,8,150,150,17,12,17,17,26, - 243,219,150,17,17,17,17,17,26,243,12,150,150,17,12,17, - 26,243,219,150,17,17,17,17,17,26,8,150,150,12,17,17, - 219,26,243,219,150,17,17,17,17,12,26,243,12,150,150,17, - 12,219,26,243,219,150,17,17,17,17,17,26,243,150,150,17, - 12,12,219,26,243,219,150,17,17,17,17,17,26,8,150,150, - 17,17,17,219,26,243,219,150,17,12,17,17,17,26,243,150, - 150,12,17,12,219,26,243,219,150,17,17,17,17,17,26,243, - 150,150,17,17,12,219,26,243,219,150,17,12,187,17,12,26, - 243,12,150,150,17,17,17,26,12,12,8,7,8,8,8,121, - 121,69,69,69,69,69,69,69,69,69,69,3,69,3,69,69, - 69,4,125,69,69,69,69,69,3,69,69,69,69,69,69,69, - 69,69,174,69,174,69,69,4,69,4,4,69,69,4,69,4, - 69,69,69,3,69,4,69,4,3,4,3,3,4,69,4,4, - 120,248,25,25,25,25,25,25,25,25,25,25,217,217,25,217, - 25,155,25,217,217,217,217,217,217,155,25,217,25,217,217,217, - 25,25,25,217,25,25,25,217,25,217,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,248,25,25,25,248,25,248,248,248,248,25,248,25,248,248, - 25,25,248,25,248,25,25,248,25,25,25,25,25,25,25,217, - 25,217,25,25,217,25,25,25,25,25,25,25,217,217,217,217, - 217,217,217,217,217,217,217,217,155,217,217,155,217,155,25,217, - 133,217,217,217,155,155,217,217,155,217,217,217,217,217,155,217, - 217,217,155,155,155,155,133,155,155,155,155,25,155,155,155,25, - 133,155,217,217,217,36,217,133,217,217,155,217,217,155,133,217, - 217,133,155,217,155,155,133,217,186,217,217,155,155,217,155,12, - 8,8,8,67,26,12,243,219,12,12,132,187,150,150,219,150, - 17,132,12,132,17,187,26,109,219,12,17,132,17,17,150,219, - 150,150,17,12,132,17,187,26,109,219,12,17,132,187,12,12, - 219,150,17,17,12,132,17,187,26,109,219,12,17,132,17,17, - 150,219,150,150,17,150,132,17,187,26,109,219,12,12,132,219, - 132,150,26,150,150,17,150,132,17,187,26,109,219,12,17,132, - 187,150,150,219,150,17,17,12,132,17,187,26,109,219,17,12, - 132,17,150,150,219,150,150,17,150,132,12,187,26,109,219,12, - 17,132,17,150,150,219,150,17,17,12,132,17,187,26,109,219, - 12,17,132,187,150,150,219,150,150,17,150,17,17,187,26,109, - 219,12,17,132,17,150,12,219,150,12,17,17,132,17,187,26, - 109,219,12,17,132,187,150,150,219,150,150,17,17,17,17,187, - 26,109,219,12,17,132,17,150,150,219,150,17,132,12,17,17, - 187,26,109,219,12,12,132,187,132,12,219,150,150,17,17,132, - 17,187,26,109,219,12,17,132,17,150,12,219,150,12,17,150, - 132,17,187,26,109,219,12,17,132,17,150,150,219,150,12,17, - 17,132,12,187,26,109,219,12,17,132,17,150,150,17,12,17, - 17,150,132,17,187,26,243,219,12,17,132,187,150,150,219,150, - 17,17,12,132,17,187,26,109,219,12,17,132,219,150,150,219, - 150,150,150,17,17,12,17,26,8,12,8,8,7,8,8,121, - 121,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,121,69,125,69,69,69,69,69,121,69,69,69, - 69,69,69,69,69,3,4,3,4,69,4,4,4,69,4,69, - 4,4,4,69,4,69,3,69,4,4,4,4,4,4,3,69, - 25,248,248,248,25,248,25,25,25,25,25,25,25,217,25,217, - 217,217,25,217,217,25,217,217,25,217,155,25,25,25,25,217, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,248,248,25,25,25,25,25,25,25,25,25, - 25,248,25,25,248,25,25,248,248,25,248,248,248,248,25,248, - 25,248,25,25,25,248,25,25,248,25,25,25,25,25,25,25, - 25,25,217,25,25,217,25,25,25,155,25,25,155,25,217,217, - 217,217,217,217,217,217,25,217,217,155,217,155,217,155,155,217, - 217,25,155,133,217,155,217,217,133,155,217,217,155,217,217,217, - 155,217,133,217,155,217,25,155,155,133,155,155,155,155,155,217, - 25,155,25,155,25,25,36,217,133,217,217,217,217,217,217,155, - 217,217,133,217,217,155,155,105,217,217,186,155,155,217,217,26, - 8,67,8,67,219,12,12,219,17,17,132,219,17,12,219,150, - 17,150,17,219,17,132,26,243,219,12,17,132,219,12,12,219, - 17,150,150,17,17,12,132,26,243,219,12,17,132,219,17,12, - 219,150,132,150,17,17,17,132,26,109,219,12,17,132,219,17, - 12,219,12,150,17,17,17,17,150,26,211,219,17,17,132,219, - 17,150,219,12,150,17,17,17,17,132,26,243,219,12,17,132, - 219,17,12,219,150,132,150,17,219,12,132,26,243,219,12,17, - 132,219,17,12,219,12,150,17,17,219,12,132,26,243,219,12, - 17,132,219,17,12,219,150,132,150,17,17,17,150,26,243,219, - 12,17,132,219,17,12,219,12,150,17,17,17,17,150,26,109, - 219,12,17,132,219,17,12,219,150,132,150,17,17,17,132,26, - 243,219,12,17,132,219,17,12,219,150,132,150,12,219,17,132, - 26,243,219,12,17,132,219,17,12,219,150,17,150,150,132,17, - 150,26,243,219,17,17,132,219,17,12,219,17,150,150,17,17, - 17,150,26,109,219,150,17,132,219,17,12,219,150,150,17,17, - 17,17,150,26,109,219,12,17,132,219,17,12,219,150,150,132, - 17,17,17,150,26,109,219,12,17,132,219,17,17,219,150,150, - 17,17,17,17,132,26,109,219,12,17,132,219,17,12,219,150, - 132,150,17,17,17,150,26,243,219,12,17,132,219,17,17,219, - 12,219,12,150,219,12,132,26,139,12,8,7,8,8,8,121, - 121,69,69,69,69,69,69,69,69,69,80,69,69,69,69,69, - 69,69,125,69,121,69,69,69,69,69,69,69,69,69,69,3, - 69,69,69,69,69,69,69,69,4,69,69,4,4,69,4,4, - 4,69,69,69,4,69,3,69,69,69,69,69,3,4,3,69, - 248,25,248,25,248,25,248,25,25,25,217,25,25,25,217,25, - 25,25,217,217,25,217,217,25,155,25,25,25,217,25,25,25, - 217,25,25,25,25,217,25,25,25,155,25,25,217,25,25,25, - 25,25,248,25,25,25,25,248,25,25,248,25,25,25,248,25, - 25,25,248,25,248,248,25,248,25,248,248,248,25,248,25,248, - 25,25,248,25,248,25,248,25,248,25,248,25,25,25,25,25, - 155,25,25,25,25,25,155,25,25,25,25,25,25,217,217,217, - 217,217,217,217,217,25,155,25,217,25,217,133,25,25,217,25, - 155,25,217,36,25,133,155,217,217,217,217,217,25,217,133,217, - 25,217,217,133,25,155,155,25,25,155,25,155,25,25,25,25, - 25,25,25,25,133,217,25,217,36,25,133,217,133,217,217,133, - 217,155,217,155,133,217,217,133,217,217,217,155,217,217,217,26, - 8,8,8,8,26,12,243,26,150,17,17,17,150,132,219,12, - 132,150,12,17,132,150,219,211,26,150,17,17,17,132,132,219, - 150,17,132,12,17,132,150,26,211,26,150,17,219,150,150,132, - 219,12,17,132,12,17,132,132,26,211,26,150,17,17,17,150, - 132,219,150,219,150,12,17,132,132,26,243,26,150,17,17,17, - 150,17,219,150,17,150,12,17,132,150,26,109,26,150,17,219, - 17,150,132,219,12,17,150,12,17,17,132,26,211,26,150,17, - 17,17,150,132,219,150,17,150,12,17,132,150,26,109,26,150, - 17,17,17,150,132,219,12,17,132,12,17,132,132,26,109,42, - 150,17,219,17,150,132,219,150,17,150,150,17,132,132,26,211, - 26,150,17,17,17,150,132,219,12,17,132,12,17,132,132,26, - 211,26,150,17,17,17,150,132,219,12,17,17,150,17,132,150, - 26,109,26,150,17,17,17,150,132,219,12,150,132,17,17,132, - 132,26,109,26,150,17,17,17,150,132,219,150,219,17,12,17, - 187,132,26,211,26,12,17,17,17,132,150,219,12,219,150,12, - 17,132,132,26,243,26,150,17,17,17,150,132,219,12,17,150, - 17,17,132,132,26,211,26,150,17,17,17,150,132,219,12,17, - 150,17,17,132,150,26,243,26,150,17,17,17,150,132,219,12, - 17,132,12,17,132,132,26,109,26,150,17,17,17,150,132,219, - 150,132,150,17,17,132,150,26,8,12,8,8,7,8,8,191, - 69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,174,69,69,69,121,121,69,69, - 69,69,69,69,69,3,69,4,69,4,3,69,3,4,69,69, - 69,3,4,4,69,69,69,4,4,4,3,4,4,69,4,3, - 248,25,248,25,248,25,25,248,25,25,25,25,25,25,217,217, - 217,25,217,217,25,217,25,217,25,155,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,248,25,248,25,248,25,248,248,25,248,248,25,25,25,248, - 25,25,248,25,25,248,248,248,248,248,25,248,248,248,25,248, - 25,248,25,25,25,248,25,248,25,248,25,248,25,25,25,25, - 25,25,25,25,25,25,25,25,155,25,25,25,25,25,25,25, - 217,25,217,25,155,25,25,217,25,217,25,217,217,25,133,217, - 25,155,25,155,36,25,25,217,217,25,155,133,217,25,217,25, - 155,25,217,25,25,25,155,155,25,155,25,133,155,155,133,25, - 133,25,155,25,217,25,217,133,217,36,217,25,217,25,217,25, - 25,133,217,217,155,155,217,155,155,217,133,217,133,25,217,12, - 8,8,8,139,17,12,8,26,150,219,17,17,17,17,219,12, - 219,150,17,17,26,187,26,109,26,150,17,150,17,17,17,219, - 150,17,132,132,219,26,132,26,109,26,150,17,17,17,17,17, - 219,150,17,132,132,17,26,132,26,109,26,150,17,150,17,17, - 17,219,150,17,132,17,219,26,150,26,109,26,150,17,17,17, - 132,17,219,150,219,150,132,219,26,150,26,109,26,150,17,17, - 17,17,17,219,150,17,132,17,132,26,132,26,109,42,150,219, - 17,17,17,17,219,150,17,132,17,219,26,150,26,109,26,150, - 219,17,17,17,17,219,150,17,132,132,17,26,132,26,211,26, - 150,17,17,17,17,17,219,150,17,17,17,17,26,132,26,109, - 26,150,219,17,17,17,17,219,150,17,132,132,17,26,132,26, - 109,26,150,219,17,17,17,17,219,150,132,132,132,219,26,132, - 26,109,26,150,219,17,17,17,17,219,12,17,150,219,17,26, - 132,26,109,26,150,17,17,17,17,17,219,150,150,132,17,132, - 26,132,26,109,26,150,17,17,17,17,17,219,150,17,132,17, - 17,26,150,26,109,26,150,219,17,17,17,17,219,150,17,150, - 17,17,26,132,26,109,26,150,219,17,17,17,17,219,150,17, - 150,17,219,26,150,26,211,26,150,219,17,17,17,17,219,150, - 17,132,17,17,26,132,26,109,26,150,17,17,17,17,17,219, - 12,132,150,132,219,26,150,26,8,12,8,8,8,7,8,69, - 121,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,121,69,69,121,125,121,69,69,69,69,69,69,121,121,121, - 121,69,69,69,69,4,69,4,4,4,4,69,69,4,3,4, - 69,69,69,4,4,4,125,69,69,69,69,69,3,69,4,4, - 248,248,248,248,248,248,25,25,25,25,25,25,25,25,25,25, - 25,155,25,25,25,25,155,25,155,25,25,25,25,25,25,25, - 25,25,248,25,25,248,25,25,25,25,25,25,25,25,25,25, - 25,25,248,25,248,248,248,25,25,248,25,25,25,25,248,25, - 25,248,25,248,248,248,248,25,248,248,248,248,25,248,248,248, - 248,25,248,248,25,248,25,248,25,248,25,248,25,248,25,25, - 25,25,25,217,25,25,25,25,25,25,25,217,25,155,25,217, - 25,25,25,25,25,217,25,155,25,25,217,25,25,217,217,25, - 155,25,217,25,25,155,217,133,25,25,217,25,25,217,133,217, - 25,155,25,155,155,133,25,25,25,155,25,217,25,25,217,25, - 217,217,25,25,133,25,217,25,217,25,25,217,133,217,25,217, - 217,25,133,25,133,217,217,133,217,217,217,217,217,217,25,26, - 67,141,12,139,26,17,243,42,12,17,150,17,150,17,219,150, - 132,17,150,219,17,187,219,243,26,17,17,17,17,150,150,42, - 12,132,17,12,219,17,187,219,243,42,12,17,17,17,150,17, - 219,12,132,12,17,219,17,187,219,243,42,12,219,17,17,150, - 12,42,12,132,17,150,17,17,187,17,109,42,12,17,150,17, - 17,17,42,12,132,17,12,219,17,187,17,243,42,12,219,150, - 17,150,17,219,12,132,12,132,219,17,187,17,109,26,12,17, - 150,17,150,12,42,12,132,12,132,17,17,187,17,243,42,12, - 17,150,17,150,17,219,12,132,12,17,219,17,187,17,243,42, - 12,219,150,17,150,12,42,12,132,150,132,219,17,187,219,243, - 42,12,17,150,17,150,150,219,12,132,17,12,219,17,187,219, - 243,42,12,17,150,17,150,12,26,12,219,12,17,17,17,187, - 17,243,42,12,17,150,17,150,132,219,150,132,12,12,219,17, - 187,17,243,42,12,17,150,17,150,12,26,12,219,17,150,219, - 17,187,219,243,219,12,219,150,17,150,17,219,12,132,12,132, - 219,17,187,17,243,42,12,17,150,17,150,132,219,12,132,17, - 132,219,17,187,219,243,42,12,17,150,17,150,150,219,12,132, - 17,150,219,17,187,17,243,42,12,17,150,17,150,17,219,12, - 132,17,150,219,17,187,17,243,26,17,17,150,17,150,12,26, - 150,219,17,17,17,187,12,26,8,12,7,8,8,8,8,191, - 69,69,69,69,69,69,69,121,69,69,69,69,69,69,69,69, - 69,69,69,174,69,69,69,69,69,69,121,125,69,69,69,69, - 69,69,69,69,69,69,69,69,69,4,69,4,4,69,69,69, - 4,4,4,69,125,69,69,69,69,174,69,69,69,4,3,69, - 248,248,248,248,248,25,248,25,248,25,25,25,25,25,25,25, - 25,25,155,25,155,25,25,25,155,25,25,217,25,25,25,25, - 25,25,25,25,248,25,25,248,25,248,25,25,25,248,25,248, - 25,25,248,25,248,25,248,248,25,248,248,248,248,25,248,248, - 25,248,25,248,25,248,248,248,248,248,248,248,248,25,25,25, - 25,248,25,248,25,248,248,25,248,25,248,25,25,248,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,155,25, - 155,217,25,155,25,25,25,217,25,155,25,155,25,25,217,25, - 25,25,25,155,25,25,217,217,217,25,217,217,25,25,217,25, - 25,25,217,25,217,25,155,155,25,155,25,155,155,25,155,25, - 25,25,25,36,25,25,25,133,217,133,217,25,25,25,133,25, - 217,36,217,25,25,133,36,155,217,217,217,133,217,217,217,12, - 8,7,8,7,219,12,243,26,17,219,12,17,150,219,219,17, - 132,17,17,219,17,12,26,150,42,17,17,12,17,17,17,219, - 17,132,17,17,17,17,187,26,150,42,17,17,150,17,150,219, - 219,17,132,17,17,17,17,187,26,150,42,17,17,12,17,150, - 17,219,132,132,17,17,17,17,187,26,150,42,17,219,12,150, - 150,17,219,132,132,17,17,17,17,187,26,150,26,17,17,12, - 17,150,219,219,17,132,17,17,17,17,187,26,150,26,17,219, - 12,17,150,219,219,132,132,17,17,219,17,187,26,150,26,17, - 219,12,17,150,219,219,17,132,17,17,17,17,187,42,150,26, - 17,219,12,17,150,219,219,132,219,17,12,17,17,187,26,150, - 26,17,219,150,17,17,219,219,17,150,17,17,17,17,187,26, - 150,26,17,219,12,17,150,132,219,150,219,12,17,17,17,187, - 26,150,26,17,219,12,17,17,17,183,17,132,132,17,17,17, - 187,26,150,42,17,219,150,17,150,219,219,150,132,17,17,219, - 17,12,26,12,42,17,17,150,17,150,219,219,132,132,17,17, - 17,17,187,26,150,26,17,219,12,17,17,17,219,219,150,17, - 17,17,17,187,26,150,42,17,219,12,17,17,219,219,132,132, - 17,17,17,17,187,42,150,26,17,219,12,17,150,219,219,17, - 150,17,17,17,17,187,26,150,42,17,17,17,12,150,219,219, - 150,132,17,17,17,17,150,26,8,26,8,7,8,8,8,121, - 121,69,69,69,121,69,121,69,69,69,69,69,69,69,69,69, - 69,69,121,69,69,69,121,69,69,69,121,121,69,69,69,69, - 121,121,69,69,4,4,4,3,69,4,69,69,4,4,4,69, - 69,69,69,69,69,3,4,69,69,69,3,3,4,69,3,4, - 248,248,248,248,248,248,248,248,25,25,248,120,25,25,25,25, - 25,25,25,25,25,25,25,25,25,155,25,25,25,25,25,25, - 25,248,25,248,25,25,248,25,248,25,248,25,25,25,25,248, - 25,25,248,25,25,248,248,248,248,248,25,248,248,248,25,248, - 248,25,248,25,248,248,248,248,248,248,248,248,248,248,248,25, - 248,248,25,248,248,25,248,248,248,25,248,248,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,133,25, - 155,25,25,25,155,25,217,25,25,217,25,25,25,217,25,25, - 133,155,25,25,25,25,25,25,25,25,25,25,25,25,133,25, - 25,25,25,25,25,25,25,25,25,25,25,217,155,25,217,133, - 25,25,25,217,217,36,133,217,133,25,217,217,25,25,155,26, - 12,8,12,8,26,26,219,219,17,26,17,17,12,17,26,132, - 17,17,132,219,17,187,26,150,219,219,26,17,17,12,17,219, - 150,17,17,219,183,12,12,26,150,219,219,219,26,17,12,17, - 219,150,17,17,132,219,17,12,26,150,219,219,26,17,17,17, - 17,219,17,17,17,219,183,17,132,26,150,219,17,26,17,17, - 17,17,219,219,12,219,132,219,17,17,26,150,219,219,26,17, - 17,12,17,219,132,17,17,219,219,17,17,26,132,219,17,26, - 17,17,17,17,219,219,17,219,132,219,17,17,26,150,219,17, - 26,17,17,12,17,219,132,17,17,132,219,17,12,26,150,219, - 17,26,17,17,17,17,219,17,12,219,132,219,17,12,26,150, - 219,17,26,26,17,12,17,219,132,17,219,132,219,17,12,26, - 150,219,17,26,17,17,17,26,219,17,17,219,132,219,17,12, - 26,150,219,17,26,17,17,12,17,26,17,17,219,132,219,17, - 12,26,150,219,17,26,26,17,17,17,219,17,17,17,219,219, - 17,187,26,150,219,219,26,26,17,12,17,219,17,17,219,132, - 219,17,17,26,150,219,17,26,17,17,17,17,219,132,17,17, - 132,219,17,12,26,150,219,17,26,17,17,12,17,219,17,12, - 219,132,219,17,187,26,150,219,17,26,17,17,12,17,219,132, - 17,219,132,219,17,12,26,150,219,219,26,17,17,17,17,26, - 219,12,17,132,219,17,187,26,8,12,8,7,7,8,8,121, - 191,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, - 69,121,69,69,121,174,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,4,69,4,4,69,69,69,69, - 3,69,69,69,69,69,69,69,69,69,69,69,69,69,4,4, - 248,25,248,248,248,248,248,25,248,25,25,248,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,248,25,248,25,248,25,248,25,25,248,25,248,25,248, - 25,248,25,248,25,25,248,25,248,248,25,248,25,248,25,25, - 248,25,248,248,25,248,248,248,248,248,248,25,248,25,248,248, - 25,248,248,248,25,248,248,25,248,248,25,248,25,248,25,248, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,155,25,25,25,25,25,155,25,25,25,217,25,25,25,25, - 25,217,133,25,25,25,133,25,25,133,25,25,25,25,25,25, - 25,25,25,133,25,25,133,25,25,25,155,25,25,25,25,25, - 25,25,25,133,25,25,25,25,217,25,133,25,25,25,217,25, - 155,133,25,133,25,217,217,25,217,217,217,133,217,248,217,42, - 26,12,26,26,42,42,122,0,42,122,122,0,122,42,0,122, - 122,122,122,122,42,42,42,187,122,42,122,122,0,122,122,0, - 122,122,122,122,0,183,42,42,187,122,42,122,122,0,122,122, - 122,122,122,122,0,122,42,42,42,187,122,42,122,122,0,122, - 42,122,122,122,122,122,122,42,42,42,187,0,122,122,122,0, - 122,42,122,122,122,122,0,122,42,42,42,187,0,42,122,122, - 0,122,42,0,122,122,122,0,122,42,42,42,187,0,42,122, - 122,0,122,42,122,122,42,122,0,122,42,42,42,187,0,122, - 122,122,0,122,42,0,122,122,122,0,122,42,42,42,187,0, - 42,122,122,0,122,42,0,122,122,122,0,122,42,42,42,187, - 0,42,122,122,122,122,42,122,122,122,122,0,122,42,42,42, - 187,0,122,122,122,0,122,42,122,122,42,122,0,0,183,42, - 42,187,0,122,122,122,0,122,42,0,122,42,0,0,122,42, - 42,42,187,0,42,122,122,0,122,42,122,122,42,122,122,122, - 42,42,42,187,122,42,122,122,0,122,42,122,122,122,122,0, - 122,42,42,42,187,0,42,122,122,0,122,42,122,122,122,0, - 0,122,42,42,42,187,0,42,122,122,0,122,42,122,122,122, - 122,0,122,42,42,42,187,0,122,122,122,0,122,42,0,122, - 42,0,0,0,183,42,42,187,122,42,122,122,0,122,42,122, - 122,122,122,0,122,42,42,26,187,42,42,42,42,26,12,121, - 121,69,69,69,121,69,69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,121,121,121,69,69,69,69,121,121,121,121,125, - 69,69,69,69,69,69,69,69,3,69,69,4,4,69,4,69, - 69,69,69,69,69,125,69,69,69,69,69,69,3,69,69,69, - 248,248,248,248,102,25,102,25,248,25,25,25,248,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,248,25,248, - 25,248,25,248,25,248,25,248,25,248,25,248,25,248,25,248, - 25,25,248,248,248,248,248,248,248,25,248,248,248,248,248,248, - 248,248,248,248,71,248,248,25,248,25,248,248,248,248,248,248, - 248,248,25,248,248,248,248,25,248,248,25,248,25,248,25,25, - 25,25,248,25,25,248,25,248,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,217,25,25,217,25,25,25,120,133,25,120, - 25,25,217,25,25,25,25,133,25,25,25,133,217,25,25,25, - 25,25,25,120,25,25,25,133,25,25,25,133,217,133,25,25, - 25,25,217,217,217,25,133,217,133,25,217,217,25,25,217,0, - 150,182,243,8,183,42,26,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,42,26,12,8,12,8,12,121, - 121,69,121,69,69,69,69,69,69,69,121,69,69,121,69,69, - 69,69,69,69,69,69,69,121,69,125,121,69,69,121,121,69, - 125,69,125,69,125,4,4,69,69,69,3,69,69,69,69,69, - 3,69,69,69,69,121,125,69,69,69,69,69,69,125,69,4, - 71,25,248,248,248,25,248,248,248,248,25,25,248,25,25,25, - 248,25,25,248,25,248,25,25,25,25,25,25,25,25,25,25, - 25,25,248,25,248,25,248,25,248,25,248,25,25,248,25,25, - 248,25,248,25,25,248,248,25,248,248,248,25,248,25,248,248, - 248,248,248,25,248,248,71,248,248,25,248,248,25,248,248,25, - 248,248,248,248,248,25,248,248,248,248,25,248,25,248,25,248, - 25,248,25,25,25,25,248,25,25,248,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,120,25,25,25, - 25,25,25,25,25,25,120,25,25,25,25,25,25,25,25,120, - 25,25,133,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,217,25,217,25,217,133,25,133,217,25,25,42, - 8,7,8,67,26,26,26,0,42,122,42,122,42,122,42,122, - 122,122,122,42,243,219,26,17,0,42,122,42,122,42,122,42, - 42,122,122,42,122,8,219,26,17,0,42,42,122,122,42,122, - 42,122,122,122,122,42,243,219,26,17,0,42,122,42,122,122, - 42,122,42,122,122,122,42,243,219,26,12,122,42,122,42,122, - 122,42,122,42,122,122,122,42,243,219,26,17,0,42,122,42, - 122,122,42,122,42,122,42,122,42,243,219,26,17,0,42,122, - 42,122,122,42,122,122,122,42,122,42,243,219,26,12,122,42, - 122,42,122,122,42,122,42,122,122,122,42,243,219,26,17,0, - 42,122,42,122,122,42,42,122,122,122,122,42,243,219,26,17, - 0,42,122,42,122,122,42,122,42,122,122,122,42,243,219,26, - 12,122,42,122,42,122,122,42,122,122,122,42,122,78,12,219, - 26,12,122,42,122,42,122,42,122,122,42,122,122,122,42,243, - 219,26,12,0,42,42,122,122,42,122,122,122,42,122,122,42, - 243,183,26,17,0,42,42,122,122,42,122,42,122,42,122,122, - 42,243,219,26,17,0,42,122,42,122,122,42,122,42,122,122, - 122,42,243,219,26,17,0,42,122,42,122,122,42,122,42,122, - 122,122,42,243,219,26,12,122,42,122,42,122,42,122,122,42, - 122,42,122,78,12,219,26,17,0,42,122,42,122,42,122,42, - 122,122,42,122,42,12,219,26,12,26,7,7,7,7,8,69, - 121,121,69,121,69,69,121,69,69,69,69,69,69,69,69,69, - 69,121,121,121,121,121,69,174,121,69,121,121,69,69,121,121, - 121,121,69,69,69,69,3,69,69,69,69,69,69,69,69,69, - 69,69,69,121,69,121,69,69,69,69,69,125,69,174,125,69, - 248,248,248,248,71,248,248,248,248,248,248,248,25,25,248,25, - 25,25,25,25,248,25,248,25,25,25,248,25,25,248,25,248, - 25,25,248,25,248,248,248,25,248,25,25,248,25,25,248,25, - 248,25,248,248,248,25,102,25,248,248,248,248,248,248,248,248, - 248,248,25,71,248,248,25,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,25,248,248,25,25,248,25,248, - 25,25,248,25,248,25,248,25,25,248,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,120,25,25,25,25,25,25,120,25,25,25,25,25,25,120, - 25,120,120,25,25,25,25,25,133,25,25,25,25,25,120,25, - 248,248,120,25,25,25,25,25,133,25,25,25,25,25,25,133, - 25,133,25,133,217,133,25,217,217,25,217,25,25,25,25,26, - 8,67,8,67,219,17,17,42,49,139,139,8,139,8,8,139, - 8,8,139,139,101,17,26,12,42,49,139,139,8,139,8,8, - 211,8,8,139,139,101,17,26,12,42,49,139,8,8,139,8, - 8,139,8,8,139,139,101,17,26,12,42,49,139,139,8,139, - 8,139,211,8,8,139,139,101,17,26,12,42,49,139,139,8, - 139,211,8,139,8,8,139,139,101,17,26,12,42,49,139,139, - 8,8,8,139,211,8,8,139,139,101,17,26,12,42,49,139, - 139,8,139,211,8,139,8,8,139,139,101,17,26,12,42,49, - 139,139,8,8,8,139,211,8,8,139,139,101,17,26,12,42, - 49,139,139,8,139,211,8,139,8,8,139,139,101,17,26,12, - 42,49,139,139,8,8,8,139,211,8,8,139,139,101,17,26, - 12,42,49,139,8,139,139,8,139,8,8,8,139,139,49,12, - 26,12,42,49,139,139,8,139,8,8,139,8,8,139,139,101, - 17,26,12,42,49,139,8,139,139,8,8,139,8,8,139,139, - 101,17,26,12,42,49,139,8,8,139,8,8,139,8,8,139, - 139,101,17,26,12,42,49,139,139,8,8,211,8,139,8,8, - 139,139,101,17,26,12,42,49,139,139,8,8,211,8,139,8, - 8,139,139,101,17,26,12,42,49,139,8,8,139,8,211,8, - 8,8,139,139,49,12,26,12,42,49,139,8,139,139,8,8, - 139,8,8,139,139,49,17,26,8,26,8,7,8,8,12,121, - 121,69,69,121,69,69,121,69,69,121,69,69,69,121,69,69, - 69,69,69,69,69,69,121,121,69,69,69,69,121,121,121,69, - 69,69,121,69,121,125,69,69,69,69,69,69,69,69,69,69, - 69,121,121,69,121,69,121,69,121,125,69,69,69,69,69,125, - 71,248,248,248,248,248,102,25,248,248,25,248,248,25,248,25, - 25,248,25,25,25,25,25,248,25,25,25,25,25,25,248,25, - 25,248,25,248,25,25,248,25,248,25,248,25,248,25,248,248, - 25,248,25,248,248,25,248,248,248,248,248,25,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,25,248,248,248, - 248,248,248,248,248,248,248,248,248,25,248,248,25,25,248,25, - 25,248,248,25,248,25,25,248,25,248,25,248,25,25,25,25, - 25,25,25,25,25,248,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,120,25,120,25,25,25,25,25,25,25, - 25,25,120,248,120,25,120,120,25,25,25,25,120,25,25,25, - 25,25,248,25,25,248,25,25,25,25,25,25,133,25,25,25, - 25,25,25,25,25,217,133,25,25,25,25,133,25,25,25,26, - 12,67,12,101,17,17,12,42,101,8,211,8,211,8,8,211, - 8,8,139,8,67,150,150,211,42,101,8,211,8,211,211,8, - 211,8,8,8,211,101,150,150,211,42,101,8,139,8,211,8, - 8,211,8,8,139,8,67,150,150,211,42,101,8,211,8,8, - 8,8,211,8,8,8,8,101,150,150,243,42,101,8,211,8, - 8,8,8,211,8,8,139,8,67,150,150,211,42,101,8,211, - 211,211,8,8,8,211,8,211,139,101,150,150,243,42,101,8, - 211,8,8,8,8,211,8,8,211,139,101,150,150,243,42,101, - 8,211,211,211,8,8,211,8,8,139,8,67,150,150,211,42, - 101,8,211,8,8,8,8,211,8,8,139,8,67,150,150,211, - 42,101,8,211,211,211,8,8,211,8,8,139,8,67,150,150, - 243,42,101,8,8,8,211,8,8,211,211,8,8,211,101,150, - 150,243,42,101,8,211,8,211,8,8,211,8,8,139,8,67, - 150,150,243,42,101,8,8,8,211,8,8,211,8,8,211,139, - 101,243,150,243,42,101,8,139,8,211,8,8,8,211,8,211, - 139,101,150,150,211,42,101,8,211,211,8,211,8,8,211,8, - 139,8,67,150,150,211,42,101,8,211,211,8,211,8,8,211, - 8,139,8,67,150,150,243,42,101,8,139,8,211,8,211,8, - 211,8,8,211,139,150,150,211,42,101,8,8,211,8,139,8, - 8,211,8,8,211,101,150,12,243,12,8,7,8,8,8,121, - 121,69,121,69,121,69,69,69,69,69,69,69,69,69,69,69, - 69,121,121,121,121,69,121,121,69,121,121,121,121,121,121,121, - 121,121,121,69,121,69,69,4,69,69,69,69,69,69,69,69, - 69,69,69,69,121,121,121,69,69,125,69,174,69,125,121,121, - 248,102,248,248,71,248,248,248,248,248,248,248,25,25,248,25, - 248,25,248,25,248,25,25,248,25,25,25,248,25,25,248,25, - 248,25,25,248,248,25,248,248,25,248,25,25,248,25,25,248, - 25,25,248,25,25,248,25,25,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,25,248,248,248,25,248,25,248,25, - 248,25,248,25,248,248,25,248,25,248,25,25,25,25,248,25, - 25,25,102,25,248,25,25,102,25,25,25,248,25,25,102,25, - 25,248,25,25,25,25,102,25,25,248,248,25,120,25,25,120, - 102,25,25,25,25,25,25,25,102,25,25,25,25,25,25,102, - 25,25,25,248,248,25,248,120,25,248,25,25,25,25,25,25, - 25,25,133,25,25,25,25,120,133,25,217,25,25,25,25,26, - 8,8,12,101,219,219,12,122,49,8,211,8,211,211,8,211, - 211,8,8,211,8,150,17,243,122,49,8,211,8,211,8,8, - 211,211,211,8,8,139,150,17,243,122,49,8,211,8,211,211, - 8,211,211,8,8,211,8,150,17,243,122,49,8,211,8,211, - 187,211,211,8,211,211,8,139,150,17,211,42,101,211,8,211, - 211,8,211,211,8,211,8,8,139,150,17,243,42,101,211,8, - 211,8,211,211,8,211,8,8,8,139,150,17,211,122,49,8, - 211,8,211,211,8,211,211,8,8,8,8,150,17,211,42,101, - 8,211,8,211,8,211,211,8,211,8,8,139,150,17,243,122, - 49,8,211,8,211,211,8,211,211,8,8,8,139,150,17,243, - 42,101,211,8,211,8,211,8,211,211,8,8,211,8,150,17, - 211,122,49,211,211,8,211,211,8,211,8,211,8,8,139,132, - 17,211,122,49,8,211,8,211,211,8,211,211,8,8,211,8, - 150,17,211,122,49,211,211,8,211,211,8,211,211,8,8,8, - 8,150,17,211,122,49,8,211,8,211,211,109,8,211,8,8, - 8,139,150,17,243,122,49,8,211,211,8,211,8,211,8,211, - 8,8,139,150,17,243,122,49,8,211,211,8,211,211,8,211, - 8,8,211,8,150,17,109,42,101,8,211,211,8,211,8,211, - 8,211,8,139,8,150,17,243,122,49,211,211,8,211,8,187, - 211,8,211,8,8,139,150,12,8,12,8,8,7,8,12,191, - 121,69,69,121,69,191,69,69,121,121,121,69,69,121,69,69, - 69,69,69,69,121,121,121,69,121,69,69,69,121,121,121,69, - 121,69,69,69,69,121,69,121,69,69,69,69,69,69,69,69, - 69,69,121,121,69,69,121,121,69,121,121,121,69,121,69,69, - 71,71,248,248,248,248,248,248,102,25,248,248,248,248,248,25, - 248,248,25,248,25,248,25,25,248,25,248,25,25,25,248,25, - 25,248,25,248,25,248,25,25,25,25,248,25,248,25,248,25, - 248,25,248,248,25,248,25,102,25,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,102,71, - 248,248,248,248,248,248,71,25,25,248,248,25,248,25,248,248, - 25,248,248,25,248,25,248,25,25,248,25,248,25,25,25,25, - 248,25,25,25,25,25,25,25,25,25,25,248,25,25,120,25, - 102,25,248,248,248,25,120,25,25,25,248,25,248,248,25,25, - 25,25,102,25,248,25,25,25,25,25,102,25,25,25,25,25, - 25,102,25,25,25,25,25,248,25,25,248,25,25,25,133,25, - 25,25,25,25,133,25,217,25,25,25,133,25,25,25,25,26, - 12,8,12,8,12,26,12,122,101,211,211,211,109,8,109,109, - 187,8,109,139,139,243,17,8,122,139,139,211,211,187,211,211, - 187,211,8,211,211,8,243,26,211,122,139,211,211,211,109,8, - 109,109,187,8,109,139,139,243,26,211,122,139,139,211,211,211, - 8,211,8,211,211,187,139,8,243,219,243,122,101,211,211,211, - 187,211,187,211,187,211,187,211,139,150,17,243,122,101,211,211, - 211,187,211,187,211,187,211,187,139,139,150,26,8,122,139,139, - 211,211,187,211,187,211,187,211,109,139,67,12,219,8,122,101, - 211,211,211,187,211,8,109,187,211,187,211,139,150,26,211,122, - 139,139,211,211,187,211,187,211,187,211,109,8,139,243,219,8, - 122,101,211,211,211,187,211,8,109,187,211,187,139,139,243,26, - 8,122,139,211,211,211,187,8,211,109,187,211,109,8,139,150, - 26,8,122,139,139,211,211,187,211,187,211,187,211,187,139,139, - 243,219,8,122,139,211,211,211,109,187,211,187,211,8,109,139, - 67,12,26,211,122,139,211,211,211,211,8,109,187,211,187,139, - 8,67,12,17,8,122,101,211,211,8,211,109,187,211,109,187, - 211,8,139,243,17,8,122,139,211,211,8,211,187,211,187,211, - 187,139,139,139,243,17,243,122,101,211,211,211,8,211,211,187, - 211,109,187,139,139,243,26,211,122,139,211,211,8,211,8,211, - 8,109,211,187,211,139,150,17,8,12,8,7,8,8,12,121, - 121,69,121,69,69,69,69,69,238,80,121,69,69,121,69,69, - 69,121,121,121,121,121,121,69,69,69,69,69,69,69,121,69, - 121,121,121,121,69,69,69,69,69,69,69,174,121,121,69,121, - 121,69,121,69,121,69,69,121,69,69,69,68,69,121,121,121, - 248,248,74,248,74,248,248,248,248,248,248,71,25,248,248,25, - 248,248,25,248,25,25,248,25,248,25,25,248,25,25,25,25, - 25,248,25,25,248,25,25,102,25,248,25,25,248,25,25,248, - 25,25,248,25,248,248,248,25,248,25,248,248,248,248,248,248, - 71,248,71,248,71,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,25,248,25,248,248,248,25,248,248,248,25,248, - 248,25,248,25,248,25,248,248,25,25,248,25,25,25,248,25, - 25,25,248,25,102,25,25,102,248,248,25,25,120,102,25,120, - 25,248,25,25,25,25,102,248,248,248,25,248,25,102,25,25, - 248,25,25,25,25,248,25,25,248,120,25,25,248,248,25,248, - 120,25,25,25,248,25,25,25,25,248,25,248,25,248,120,25, - 25,25,25,25,25,25,25,25,25,25,120,133,25,248,120,26, - 8,8,12,67,17,17,243,42,101,211,211,8,211,91,8,211, - 211,8,211,8,67,12,26,182,42,101,211,211,211,8,211,211, - 8,211,187,211,211,67,12,17,211,42,101,211,211,8,211,91, - 8,211,211,8,211,8,67,12,17,8,42,101,211,211,211,211, - 8,211,187,211,8,139,8,67,12,26,211,26,101,211,211,211, - 8,211,211,8,139,8,139,8,139,12,26,211,26,101,211,211, - 211,8,211,211,8,139,8,211,8,67,12,17,182,42,101,211, - 211,211,8,211,211,8,211,8,211,8,139,150,26,182,26,101, - 211,8,211,211,91,109,8,139,8,139,8,139,12,17,8,42, - 101,211,211,211,8,211,139,8,211,8,211,211,139,12,26,182, - 26,101,211,8,211,211,91,109,8,211,8,139,211,67,17,17, - 182,42,101,211,211,211,211,211,187,211,8,211,211,211,67,12, - 17,182,42,101,211,211,211,8,211,211,8,139,8,139,211,67, - 12,26,182,42,101,139,91,8,211,211,211,8,211,187,211,8, - 139,150,17,211,42,101,211,211,8,91,211,8,139,8,211,211, - 8,139,150,26,182,42,101,211,8,91,211,211,8,211,8,211, - 211,211,67,12,26,182,42,101,139,91,211,211,211,8,211,8, - 211,109,8,139,12,26,211,26,101,211,211,8,91,211,211,8, - 211,8,139,8,67,12,17,8,42,101,211,211,211,211,211,211, - 187,211,8,211,139,8,243,26,8,12,8,7,8,8,26,121, - 121,69,121,69,191,69,69,121,69,121,69,121,69,69,121,69, - 69,69,69,69,69,121,121,121,121,121,121,121,68,121,121,121, - 121,121,121,121,125,121,69,69,69,69,3,121,69,69,69,69, - 69,69,69,121,121,121,121,69,69,121,121,121,121,68,16,16, - 248,248,71,248,248,248,248,248,248,248,25,248,248,248,25,248, - 248,25,248,248,248,25,248,25,25,248,25,248,25,25,248,248, - 25,248,25,248,25,25,248,25,25,102,25,248,25,248,248,25, - 248,25,25,248,25,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,102,248,248,248,102,248,248,71,248,248, - 248,248,248,248,248,248,248,248,25,248,248,248,248,248,25,248, - 248,248,25,248,25,248,25,248,25,248,25,25,248,25,25,248, - 25,25,248,25,120,25,25,25,25,25,102,25,25,248,25,248, - 25,248,248,248,248,25,25,25,25,248,25,248,25,120,248,25, - 248,248,248,248,25,248,248,25,25,102,120,25,25,248,25,102, - 120,248,248,248,248,25,102,25,25,25,25,25,25,25,25,25, - 120,25,25,120,25,25,25,25,25,25,25,25,25,25,25,26, - 150,12,12,67,219,26,8,122,101,139,211,91,139,8,211,109, - 187,211,211,91,67,150,26,8,122,101,139,211,211,211,91,8, - 211,211,8,211,8,67,150,17,243,122,101,139,211,91,139,8, - 211,109,187,211,211,91,67,150,17,243,122,101,139,211,91,211, - 91,8,211,187,211,211,211,67,150,17,8,122,101,139,211,91, - 139,91,8,187,211,109,211,8,67,150,17,8,122,101,139,211, - 211,211,91,8,187,211,211,211,8,67,150,26,8,122,101,139, - 211,91,139,91,8,109,109,187,139,8,67,150,26,8,122,101, - 139,211,211,8,211,8,187,211,109,211,8,67,150,17,243,122, - 101,139,211,91,211,8,109,187,211,211,211,8,67,150,26,8, - 122,101,139,211,211,139,8,211,8,109,187,139,91,67,150,26, - 8,122,101,139,211,91,8,211,211,8,211,8,211,91,67,150, - 26,243,122,101,139,211,91,211,211,187,8,109,187,139,91,67, - 150,26,8,122,101,182,139,211,211,91,8,211,211,8,139,8, - 67,150,17,243,122,101,139,211,8,211,211,187,211,187,211,8, - 8,67,150,26,8,78,101,139,139,211,8,91,8,211,187,211, - 8,91,67,150,26,8,122,101,182,139,8,211,91,8,211,187, - 211,8,8,67,150,12,243,122,101,139,211,8,211,211,91,8, - 211,187,139,187,67,150,17,243,122,101,139,211,91,8,211,187, - 211,8,211,8,139,139,150,12,8,26,8,8,7,8,8,121, - 191,69,121,69,69,69,69,69,121,121,69,69,69,69,69,69, - 69,121,69,121,69,121,121,121,69,69,69,121,121,121,121,69, - 125,121,69,121,174,121,69,69,121,121,69,69,69,121,69,69, - 121,69,69,69,69,69,121,121,69,125,69,121,16,121,16,16, - 74,248,102,248,102,71,102,248,248,248,71,248,248,248,248,25, - 102,25,248,25,248,25,248,248,25,248,25,248,25,248,25,25, - 248,25,25,248,248,25,25,248,25,25,248,25,248,25,25,248, - 25,248,248,25,248,25,248,25,248,248,248,248,248,248,248,248, - 248,25,248,102,248,71,248,248,248,248,71,248,71,248,248,248, - 248,248,248,248,248,248,25,102,25,248,248,248,248,248,248,248, - 25,248,248,248,25,248,25,25,248,25,248,25,248,25,248,25, - 248,25,25,248,25,248,248,248,248,248,25,248,248,25,120,102, - 248,25,25,25,25,25,248,248,248,25,248,25,248,25,248,120, - 102,25,120,102,120,102,25,248,120,25,102,25,248,25,120,25, - 248,248,248,25,25,120,25,248,25,25,25,248,25,25,248,25, - 25,248,248,25,25,25,25,25,25,25,120,248,25,248,248,26, - 8,8,26,139,17,17,12,42,101,211,8,211,8,211,187,211, - 8,211,8,211,67,150,17,211,42,101,187,211,211,8,139,187, - 211,187,211,211,211,139,17,17,8,42,101,211,8,211,8,211, - 187,211,8,211,8,8,67,132,17,8,78,101,211,8,8,211, - 211,8,211,8,211,187,211,139,150,17,243,42,101,211,8,139, - 8,211,8,211,211,8,211,211,139,132,17,8,42,101,8,211, - 211,8,139,8,211,211,187,8,211,139,12,17,243,42,101,211, - 8,211,8,211,211,8,211,8,109,211,139,150,17,211,42,101, - 211,211,211,211,211,8,211,211,8,211,211,139,150,17,243,42, - 101,8,211,8,211,211,8,109,8,109,8,211,139,150,17,211, - 42,101,211,211,211,8,211,187,211,8,211,8,8,67,150,17, - 8,42,101,211,8,139,91,211,8,109,109,8,8,8,67,150, - 17,243,42,101,8,139,8,211,211,8,211,8,211,8,8,67, - 150,17,8,42,101,211,8,211,8,139,187,211,187,211,187,211, - 139,17,17,8,42,139,211,211,211,8,211,211,8,211,211,109, - 211,139,150,17,211,78,101,211,8,211,211,211,211,8,211,211, - 8,8,67,150,17,211,42,101,8,211,8,211,211,8,211,8, - 211,211,211,67,150,219,211,42,101,211,211,211,211,8,243,211, - 8,211,8,211,67,132,17,211,42,101,211,211,8,211,211,211, - 211,8,109,211,8,67,150,12,8,8,8,8,8,8,12,121, - 121,69,238,69,191,69,69,238,69,69,69,121,69,69,121,69, - 69,121,69,121,69,69,121,121,69,121,121,69,68,121,121,121, - 121,121,121,121,121,69,121,69,69,69,69,69,69,69,69,69, - 69,121,121,121,121,121,121,121,121,121,121,121,121,16,121,121, - 71,71,102,71,248,71,71,248,248,248,248,248,248,248,248,248, - 25,248,102,25,248,248,248,25,248,25,248,248,25,25,25,248, - 25,248,248,25,25,248,248,25,248,25,248,25,248,248,25,248, - 25,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 71,248,248,248,248,248,248,71,248,248,71,248,248,248,248,248, - 248,248,248,248,248,248,25,248,248,248,248,248,248,248,25,248, - 248,25,248,25,248,25,248,248,25,25,248,25,248,25,248,25, - 248,25,248,248,248,25,102,25,25,248,25,102,120,102,25,248, - 248,248,248,248,248,25,25,248,248,248,248,248,248,102,25,25, - 248,25,25,248,25,120,102,25,25,25,248,25,248,102,25,25, - 248,248,248,248,248,248,248,248,248,248,25,248,25,38,120,25, - 25,25,25,248,25,248,25,25,25,25,25,25,25,25,25,26, - 150,8,12,8,17,187,12,122,101,139,139,139,211,211,211,211, - 211,211,8,8,139,132,17,109,122,101,139,211,211,8,139,211, - 139,211,8,211,8,67,132,17,109,122,101,139,139,139,211,211, - 211,211,211,211,211,8,139,150,17,109,122,101,139,139,139,211, - 139,109,211,211,139,211,8,139,150,17,109,122,101,139,211,211, - 211,139,109,211,211,109,8,8,139,150,17,109,122,101,139,211, - 211,211,139,109,211,139,211,211,8,67,132,12,109,122,101,139, - 139,139,211,139,109,211,211,211,211,8,139,150,17,109,122,101, - 139,211,211,8,211,109,109,211,211,8,8,139,150,17,109,122, - 101,139,139,211,211,211,211,211,211,211,211,8,139,150,17,243, - 122,101,139,211,211,211,211,211,211,211,211,139,187,139,150,17, - 109,122,101,139,211,139,211,211,211,211,211,211,211,8,139,150, - 12,109,122,101,139,211,211,211,211,211,211,211,211,211,8,139, - 150,17,109,122,101,139,211,211,211,139,211,139,139,211,211,8, - 67,132,17,109,122,101,139,211,211,211,211,109,211,211,211,8, - 8,139,150,17,109,122,101,139,211,211,211,139,109,211,211,8, - 211,8,139,132,17,109,122,101,139,211,211,139,211,109,211,211, - 109,211,91,67,132,17,109,122,101,139,211,211,8,139,109,109, - 211,211,211,91,101,150,17,243,122,101,139,211,211,8,211,211, - 109,211,211,8,91,67,150,17,8,12,8,8,7,8,8,121, - 191,121,69,80,69,238,69,69,121,69,69,121,121,69,121,69, - 69,69,121,69,121,121,69,121,69,125,121,121,121,121,121,121, - 125,121,121,121,121,121,121,69,69,174,69,174,174,121,121,69, - 69,69,69,121,121,69,69,121,121,121,16,16,16,16,16,16, - 102,248,71,248,74,248,248,248,248,248,248,102,248,248,248,248, - 248,248,25,248,25,248,248,248,25,248,25,25,248,248,25,248, - 25,25,248,248,25,25,248,25,248,25,248,248,248,248,248,248, - 248,25,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,71,248,248,248,248,248,248,248,248,248,248,71,248, - 248,248,248,248,248,248,71,248,248,248,248,248,248,248,71,248, - 248,248,248,248,25,248,25,248,248,25,248,25,248,25,248,248, - 25,248,248,25,25,248,25,248,248,248,248,25,248,25,248,120, - 248,248,248,248,248,248,248,248,248,25,248,248,120,120,248,248, - 248,248,248,25,248,248,25,248,248,248,248,248,25,25,248,244, - 248,25,248,248,25,248,25,120,248,248,248,25,120,248,25,120, - 38,25,248,25,248,25,248,120,248,25,25,120,102,248,248,26, - 17,8,12,8,219,26,12,122,67,139,8,8,211,211,91,211, - 8,109,211,8,67,132,219,211,42,49,139,211,211,211,211,211, - 109,211,211,211,211,139,150,219,211,78,67,211,211,8,211,211, - 211,211,139,187,211,211,67,132,26,211,122,67,211,211,211,8, - 211,211,109,211,8,211,211,67,132,219,211,122,49,139,8,211, - 139,8,211,109,211,211,211,211,67,132,219,211,78,49,211,211, - 139,8,211,211,211,187,8,211,211,139,132,219,211,122,67,139, - 8,211,211,8,91,211,211,8,211,211,67,132,219,211,122,49, - 211,139,211,211,211,91,211,109,211,211,211,67,132,26,211,78, - 49,211,211,8,211,211,61,211,109,8,211,211,67,132,219,211, - 122,49,211,211,211,211,211,211,211,8,211,8,211,67,132,219, - 211,122,49,211,139,211,8,211,91,211,187,211,211,211,67,132, - 26,211,122,49,211,139,211,211,211,109,109,139,187,211,211,67, - 132,219,211,122,67,139,211,211,211,211,211,211,187,8,211,211, - 139,132,219,211,78,49,211,211,211,211,211,211,109,109,211,211, - 211,67,132,26,211,122,49,211,211,8,139,8,91,211,109,211, - 211,8,67,150,219,211,122,49,211,211,139,8,211,91,109,211, - 8,211,8,139,17,26,211,122,49,211,211,211,211,211,91,211, - 211,8,211,8,67,132,26,211,122,49,211,211,211,211,211,109, - 211,211,211,211,8,8,12,219,8,12,8,8,8,8,12,121, - 191,69,191,69,191,69,69,121,69,121,69,69,69,69,69,69, - 69,69,121,121,69,121,121,121,121,121,121,16,121,16,121,69, - 121,121,121,121,121,69,69,121,121,121,125,121,121,121,69,121, - 69,121,121,121,69,121,121,69,121,121,121,16,121,16,16,121, - 71,102,248,248,74,248,74,248,102,71,248,248,248,248,248,248, - 248,248,248,248,248,25,248,71,25,248,248,25,248,248,25,25, - 248,248,25,248,248,248,248,25,248,248,25,248,248,25,248,248, - 248,25,25,248,248,248,248,248,248,248,248,248,248,71,248,248, - 248,248,248,248,248,248,248,71,248,248,71,71,248,248,248,248, - 248,102,25,248,248,248,248,248,248,248,248,102,248,248,248,248, - 25,248,25,248,248,25,248,25,25,248,248,25,248,248,25,248, - 25,248,248,248,248,248,248,248,25,248,248,25,248,248,248,248, - 248,248,248,248,248,248,25,248,248,248,248,248,248,248,248,120, - 248,248,248,248,248,248,248,248,248,25,248,248,248,25,25,248, - 71,25,248,244,248,71,248,248,248,248,248,248,120,248,248,248, - 120,25,248,25,120,25,25,25,248,248,25,25,25,248,248,26, - 12,12,17,8,17,187,12,42,101,139,139,139,139,139,139,211, - 139,211,139,211,101,12,26,109,122,101,139,139,139,211,139,211, - 211,211,211,139,139,139,12,26,211,122,101,139,139,139,139,139, - 211,211,139,139,139,211,139,150,26,211,42,101,139,139,211,139, - 211,139,211,211,139,139,211,139,12,26,211,122,101,139,139,139, - 139,211,61,139,211,211,139,139,139,150,26,109,122,101,139,139, - 139,211,139,211,139,139,139,139,139,139,12,26,211,122,101,139, - 139,8,139,67,211,211,211,211,139,139,139,12,26,211,122,101, - 139,139,139,139,139,139,139,211,211,139,139,139,150,26,109,122, - 101,139,139,139,139,139,139,139,211,211,139,211,139,12,26,211, - 122,101,139,139,139,139,139,211,61,139,139,139,139,139,150,26, - 211,122,101,139,139,139,139,139,139,139,139,211,139,211,139,150, - 26,211,122,101,139,139,139,139,139,211,211,139,139,139,211,139, - 150,26,211,122,101,139,139,139,211,139,211,139,139,139,139,139, - 101,12,26,109,122,101,139,139,139,139,139,211,139,211,211,139, - 211,139,150,26,211,122,101,139,139,139,139,139,139,211,211,211, - 139,211,139,12,26,211,122,101,139,139,139,139,139,139,211,139, - 211,139,139,67,150,26,211,122,101,139,139,139,139,139,139,211, - 139,211,139,139,139,150,26,109,122,101,139,139,139,139,139,211, - 211,139,211,139,139,67,12,17,8,12,8,7,8,8,8,121, - 191,69,69,69,69,191,69,69,238,238,69,69,121,69,121,121, - 69,121,69,69,69,121,121,121,121,121,121,121,121,16,121,121, - 121,121,121,121,121,121,69,121,69,121,121,69,69,121,69,121, - 69,69,69,121,69,121,121,121,121,16,16,16,121,16,16,16, - 248,71,74,74,248,74,248,248,71,248,248,248,248,248,248,248, - 248,102,25,248,102,248,248,25,248,248,248,248,248,248,248,25, - 248,248,248,248,248,25,248,248,248,248,248,248,248,248,248,248, - 248,248,71,248,248,248,248,248,248,248,71,248,248,248,248,248, - 248,248,248,248,248,71,248,248,248,71,248,248,71,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,25,248, - 248,248,248,25,248,248,248,248,248,248,248,248,248,25,248,248, - 248,25,248,248,248,248,25,248,71,248,248,248,248,248,248,248, - 248,248,248,248,248,248,71,248,248,248,248,244,248,248,248,248, - 248,248,248,248,248,248,248,248,25,71,248,248,248,102,248,248, - 120,248,102,248,248,120,248,248,248,248,248,248,248,248,248,120, - 248,248,25,102,25,120,38,25,25,25,25,248,248,248,248,26, - 12,243,17,8,26,26,187,42,187,187,26,91,91,187,26,91, - 26,91,26,91,182,132,17,8,122,8,91,26,91,91,26,91, - 91,26,91,26,91,8,132,17,109,42,8,187,26,91,26,91, - 26,91,26,91,26,91,182,132,17,243,162,8,187,26,91,91, - 91,26,91,26,91,26,91,8,132,12,243,42,187,17,91,26, - 91,91,12,26,91,91,26,91,8,17,12,243,42,8,91,26, - 91,91,91,26,91,26,26,91,26,182,132,12,243,42,187,17, - 91,26,91,91,26,91,26,91,26,91,182,132,17,243,42,91, - 91,26,91,26,91,26,91,26,91,26,91,8,132,12,243,42, - 8,187,26,91,91,26,91,26,91,91,26,91,182,132,17,243, - 42,8,91,26,91,26,91,91,12,91,26,91,26,182,17,17, - 243,42,8,12,26,91,26,91,26,91,26,91,26,91,182,132, - 17,243,42,12,91,26,91,26,91,26,91,26,91,26,91,182, - 17,17,243,42,8,91,26,91,26,91,26,91,26,91,26,91, - 8,132,12,243,42,8,91,26,91,91,91,26,91,26,91,26, - 91,182,132,12,12,78,8,91,26,91,26,187,91,91,26,91, - 26,91,182,132,17,243,42,8,26,91,26,91,187,26,91,26, - 91,12,26,182,132,12,12,78,8,26,91,91,26,187,91,26, - 91,26,91,26,182,132,17,8,78,8,91,26,91,91,26,91, - 26,91,26,91,12,182,150,26,8,12,8,8,8,8,8,191, - 69,191,191,69,121,80,191,69,69,69,121,69,69,69,69,121, - 69,121,121,121,69,69,121,69,69,121,121,16,16,16,16,121, - 121,121,121,121,121,125,121,69,121,69,69,121,121,69,121,121, - 121,121,121,69,121,121,121,121,121,16,121,16,16,121,121,121, - 74,248,248,102,248,71,71,248,248,248,248,248,248,248,248,248, - 25,248,248,25,248,248,248,248,248,248,25,248,248,25,248,248, - 248,25,248,248,248,248,248,25,248,248,25,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,71,248,248,71,248,248, - 248,248,248,248,248,248,248,71,248,248,71,248,71,71,248,248, - 248,248,248,248,248,248,248,248,102,248,248,248,248,71,248,248, - 248,25,248,248,248,25,248,25,248,248,25,248,248,248,25,248, - 248,248,25,248,248,71,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,25,248, - 248,248,248,248,248,248,248,71,25,248,248,248,120,248,248,248, - 244,25,248,248,248,248,248,248,248,248,248,248,248,25,248,248, - 248,120,120,248,248,120,120,25,25,248,25,25,25,248,71,219, - 12,12,26,139,219,42,12,0,26,187,219,219,26,187,183,26, - 26,219,219,26,8,12,26,8,0,219,219,219,219,219,42,219, - 187,42,219,219,219,8,12,26,211,0,26,187,219,26,219,26, - 183,26,42,219,219,26,8,12,26,8,0,26,187,219,42,219, - 42,219,187,42,219,219,219,8,12,26,8,0,26,17,219,219, - 219,219,187,183,26,219,219,219,8,12,26,8,0,219,219,219, - 219,219,183,187,183,26,187,183,26,8,12,26,211,0,26,17, - 187,183,183,26,187,183,26,219,219,26,8,12,26,8,0,219, - 219,17,219,219,26,187,183,26,26,219,219,8,17,26,211,0, - 26,187,219,219,219,42,187,183,42,219,219,26,8,12,26,243, - 0,26,219,26,26,219,219,183,183,183,26,219,26,8,12,26, - 243,0,26,219,219,219,219,26,187,183,26,219,219,26,8,12, - 26,8,0,219,17,26,219,219,26,187,183,42,219,219,26,8, - 12,26,8,0,219,219,219,219,219,187,183,187,183,26,219,219, - 8,12,26,8,0,26,219,26,26,42,26,183,26,26,219,219, - 26,8,12,187,8,0,219,219,219,219,26,42,183,183,26,219, - 219,26,8,12,26,211,0,219,219,219,219,26,26,187,183,42, - 26,183,26,8,12,187,211,0,219,219,219,219,26,42,187,183, - 219,219,219,26,8,12,26,211,0,219,219,26,26,26,42,187, - 183,26,219,42,26,8,150,12,8,26,8,7,8,8,8,16, - 121,69,69,191,69,69,69,121,69,238,69,121,121,69,69,69, - 121,121,69,121,121,69,69,121,121,121,121,121,121,16,121,121, - 121,16,121,121,121,125,174,121,121,121,69,69,121,69,69,69, - 69,69,121,121,69,121,69,121,121,191,121,16,16,16,16,16, - 71,102,71,74,71,71,71,102,71,71,71,102,248,248,248,248, - 248,248,248,248,248,248,248,248,25,248,248,25,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,71,248,248,248,71,248,248,248, - 248,248,248,71,248,71,248,248,248,71,248,102,248,248,248,248, - 248,71,248,248,248,248,248,71,71,248,248,248,248,25,248,248, - 248,25,102,25,248,248,248,248,102,25,71,248,248,248,71,248, - 248,248,71,248,248,248,248,248,248,248,248,248,71,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,71,248, - 248,248,244,248,244,248,248,25,71,248,25,25,248,120,248,248, - 248,71,248,248,248,248,248,120,248,244,248,248,248,244,248,248, - 120,102,25,120,25,248,25,248,248,25,248,248,248,102,248,26, - 8,243,17,8,26,162,12,0,139,139,139,139,67,139,139,67, - 67,139,139,139,8,150,219,211,0,139,101,139,139,139,67,139, - 139,67,139,139,139,139,150,219,243,0,139,139,139,67,139,99, - 139,67,67,139,139,139,8,150,219,211,0,139,67,139,67,139, - 67,139,139,139,139,139,139,139,132,219,211,0,139,67,139,139, - 67,139,139,139,139,139,139,139,139,132,219,211,0,211,139,139, - 139,139,139,139,139,67,8,101,139,139,132,219,243,0,139,67, - 139,139,139,67,139,139,139,139,139,139,8,150,219,211,0,139, - 139,139,139,139,67,139,139,139,139,139,139,139,150,219,243,0, - 139,139,139,139,139,67,139,139,139,139,101,139,8,150,219,211, - 0,139,139,67,67,139,139,139,139,139,139,139,139,139,150,219, - 211,0,211,49,139,139,139,67,139,139,139,139,139,139,8,132, - 219,211,0,211,139,67,139,139,139,67,139,67,139,139,139,8, - 150,219,211,0,139,101,139,139,139,139,139,139,139,139,139,139, - 139,132,219,211,0,211,139,67,182,67,67,139,67,139,139,101, - 139,8,132,219,211,0,211,101,139,139,67,67,139,139,67,139, - 139,139,8,150,219,243,0,139,101,139,139,67,67,139,139,67, - 139,101,139,8,132,219,243,0,139,139,139,139,67,67,139,139, - 139,139,139,139,139,150,219,243,0,211,139,67,67,67,139,139, - 139,182,139,139,139,139,17,26,8,8,8,8,8,8,8,191, - 191,191,191,69,69,191,69,121,69,69,191,80,69,69,69,121, - 69,121,121,69,121,69,121,121,121,16,16,16,16,121,121,16, - 16,121,16,16,121,16,121,121,121,69,69,121,69,121,121,69, - 69,121,69,69,121,121,121,121,121,16,121,121,16,16,16,16, - 74,71,71,71,248,102,71,248,102,248,71,71,248,248,102,248, - 248,102,248,25,248,248,248,102,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,71,248,248, - 248,248,248,71,248,248,248,248,248,248,71,248,71,71,71,248, - 248,248,248,248,248,71,248,248,248,248,71,248,71,71,71,102, - 248,71,248,71,71,71,248,248,71,71,248,248,71,248,248,248, - 248,248,248,248,248,25,248,248,71,25,248,248,248,248,248,248, - 248,25,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,71,25,25,248,248,71,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,102,120,248, - 120,248,25,102,25,248,248,120,248,38,120,25,248,71,25,26, - 12,243,26,139,219,183,12,0,8,139,139,109,139,211,211,111, - 211,8,139,67,243,150,122,243,0,8,139,139,211,211,211,211, - 187,211,8,139,211,8,150,122,243,0,8,139,211,139,211,139, - 211,109,8,8,139,67,8,150,122,243,0,187,139,211,211,211, - 211,211,211,8,211,139,139,243,150,122,243,0,187,139,211,211, - 211,211,211,211,8,211,139,182,8,150,122,243,0,8,139,211, - 211,211,211,211,211,211,211,139,139,243,150,122,243,0,187,139, - 139,211,211,211,139,211,8,211,139,67,243,150,122,243,0,8, - 139,139,211,211,211,211,139,109,211,139,139,243,150,78,243,0, - 8,139,211,211,211,211,211,211,8,8,139,182,211,150,122,243, - 0,8,211,211,139,211,211,211,211,211,211,139,182,8,150,122, - 243,0,187,139,139,139,211,211,211,211,8,211,139,67,8,150, - 122,243,0,8,139,139,211,211,211,211,187,8,211,139,67,243, - 150,122,243,0,8,139,139,139,211,211,211,211,211,211,139,139, - 243,150,122,243,0,8,211,211,139,109,211,211,211,211,8,139, - 182,8,12,122,243,0,8,139,139,211,211,211,139,187,211,8, - 139,67,243,150,78,243,0,8,139,139,211,109,211,211,211,8, - 211,139,139,8,12,122,243,0,8,139,139,211,109,211,139,8, - 8,139,211,139,243,150,122,243,0,8,211,211,211,211,139,139, - 211,8,139,211,139,8,150,42,8,12,8,8,8,8,8,16, - 121,69,238,121,80,191,69,191,69,80,191,69,191,69,121,69, - 121,69,121,121,69,69,69,121,121,191,121,121,16,16,121,121, - 16,121,121,16,121,121,69,121,121,121,69,121,121,69,121,121, - 69,121,121,69,69,121,121,121,121,16,16,121,121,16,121,16, - 71,248,71,102,74,71,248,71,71,248,248,248,248,248,248,71, - 25,248,248,248,248,248,248,25,25,102,25,102,25,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,71,248, - 248,248,248,248,248,248,71,248,248,71,248,71,248,248,248,71, - 71,71,248,248,248,248,248,71,248,248,248,71,248,248,248,248, - 71,248,71,248,248,248,248,71,248,248,71,248,25,248,248,248, - 248,248,248,248,248,248,248,248,25,71,248,248,248,248,248,248, - 248,71,248,248,248,71,248,248,248,71,248,248,248,71,248,71, - 248,248,248,248,248,248,248,248,248,120,71,244,248,248,248,248, - 248,248,248,248,248,248,248,102,244,248,71,248,248,248,248,102, - 244,248,71,248,244,248,71,71,248,248,248,248,120,248,248,248, - 102,248,248,244,248,102,25,25,25,248,25,248,25,248,71,26, - 12,12,26,8,122,42,17,0,8,211,109,211,109,211,8,211, - 211,211,243,139,211,187,42,211,0,8,211,211,8,109,211,8, - 211,211,211,8,182,109,17,26,211,0,8,211,139,187,139,187, - 211,109,109,211,211,139,109,187,26,211,0,8,211,211,211,109, - 109,8,109,109,8,8,182,243,187,26,211,0,8,139,211,211, - 211,211,8,187,109,8,8,139,211,187,42,211,0,8,139,211, - 211,211,211,8,211,187,211,243,67,243,187,26,211,0,8,211, - 109,211,109,139,187,109,109,8,243,139,243,187,42,211,0,8, - 139,109,211,211,109,8,187,211,211,8,182,211,187,42,211,0, - 8,139,211,211,109,211,8,187,211,211,243,67,243,187,42,211, - 0,211,139,211,8,211,211,8,8,211,8,8,139,109,187,42, - 211,0,8,211,109,211,109,109,8,109,109,8,243,139,211,187, - 42,211,0,8,211,109,139,109,211,211,211,211,8,8,182,211, - 187,42,211,0,8,211,109,8,109,211,8,187,109,8,8,182, - 243,187,42,211,0,8,211,139,187,139,109,109,139,187,211,8, - 139,243,132,26,211,0,8,211,109,211,109,109,8,211,211,211, - 243,139,211,187,42,211,0,8,139,109,211,211,109,211,109,109, - 211,211,67,243,132,26,211,0,8,211,109,211,211,109,8,109, - 109,8,8,182,211,187,26,211,0,8,139,211,109,109,109,8, - 211,187,211,8,67,141,219,26,8,8,8,7,8,8,12,191, - 121,191,69,191,69,69,69,69,191,69,69,69,69,69,121,69, - 69,121,69,121,69,121,69,121,121,121,16,16,121,16,16,16, - 16,16,16,121,121,121,121,121,121,121,69,121,69,121,69,69, - 121,69,125,125,238,125,121,121,16,121,16,16,16,121,16,16, - 71,102,71,248,248,74,248,102,71,248,248,248,248,248,248,71, - 248,102,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,71,248,248,71,248,248,71,248, - 71,248,248,248,248,248,71,248,248,248,248,71,71,248,248,248, - 248,71,71,71,248,71,248,71,71,248,248,71,248,102,71,248, - 71,248,71,71,71,71,248,71,248,248,248,71,248,102,248,248, - 248,248,248,248,248,248,248,71,25,248,248,248,248,248,248,248, - 248,248,71,248,248,248,248,71,248,71,248,71,248,71,248,71, - 248,71,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,244,25,102,248,248,71,248,248,244,248, - 71,248,71,248,71,248,248,71,248,244,248,248,248,248,248,244, - 120,248,102,248,248,248,102,248,248,248,38,248,102,248,248,42, - 12,243,26,8,42,26,12,0,211,67,139,139,139,139,139,211, - 211,139,139,182,8,150,0,187,0,211,67,139,139,139,139,139, - 139,211,139,139,67,211,187,0,187,0,8,139,139,139,139,139, - 139,139,211,211,211,139,8,132,0,12,0,211,67,139,139,139, - 139,139,139,211,139,139,139,8,132,0,12,0,8,67,139,139, - 139,139,67,139,139,139,211,67,243,150,0,187,0,8,67,139, - 139,139,139,139,139,139,139,211,139,8,187,122,187,122,8,67, - 139,139,139,139,139,139,211,139,139,139,211,150,0,187,0,8, - 67,139,139,139,139,67,139,211,139,139,139,8,187,0,187,0, - 8,67,139,139,139,139,139,139,139,139,139,139,243,187,0,12, - 0,8,139,139,182,139,139,139,139,211,139,139,67,243,187,122, - 187,122,8,67,139,139,139,139,139,139,211,139,139,139,243,150, - 0,187,0,8,139,139,67,139,139,139,211,211,139,139,139,243, - 150,0,187,0,211,67,139,139,139,139,67,139,211,139,139,139, - 211,150,0,187,122,8,139,139,139,139,139,139,139,139,139,139, - 67,8,132,0,187,122,8,139,139,139,139,139,139,139,211,139, - 139,139,243,187,0,187,0,8,139,139,139,139,139,139,211,211, - 211,139,67,187,12,0,187,0,211,139,139,139,139,139,139,211, - 211,139,139,139,8,187,0,187,122,8,139,139,67,139,139,139, - 139,139,139,211,139,211,150,0,8,12,8,8,8,8,8,121, - 191,121,69,191,121,69,69,238,69,191,69,191,69,121,69,69, - 121,69,121,69,69,69,121,69,121,121,121,16,121,16,121,16, - 121,121,121,16,16,16,121,121,121,121,69,121,121,121,121,69, - 121,69,121,125,121,125,121,121,16,121,121,16,16,16,16,16, - 71,71,74,74,74,248,71,71,102,102,71,71,102,248,248,248, - 248,248,248,248,102,248,248,248,248,248,248,248,248,248,248,248, - 248,25,71,248,248,71,248,248,248,248,71,248,248,248,248,248, - 248,71,248,248,71,71,248,71,248,71,248,248,248,248,71,71, - 71,248,248,248,71,248,71,248,248,71,71,248,71,71,248,71, - 248,71,248,248,248,248,71,248,248,248,248,248,248,25,248,248, - 248,248,248,248,248,248,248,25,71,25,71,248,248,248,71,248, - 248,248,248,248,248,71,248,248,248,248,71,248,248,248,244,248, - 248,248,248,71,248,71,248,248,102,244,248,71,248,244,248,71, - 248,248,71,248,71,248,102,244,248,25,248,248,248,71,248,71, - 248,248,248,102,248,248,248,248,71,248,248,71,248,71,248,248, - 248,248,248,248,248,248,244,248,25,248,248,120,25,71,248,26, - 12,12,17,91,42,12,26,0,26,187,187,187,187,91,111,12, - 91,91,17,91,109,187,42,211,0,26,187,91,109,187,111,187, - 187,12,91,17,91,12,150,26,211,162,26,187,187,109,187,211, - 187,187,26,91,187,12,109,12,26,211,0,26,187,187,187,187, - 111,187,187,187,91,187,12,109,12,26,211,0,26,187,187,187, - 111,187,187,187,187,91,12,91,187,187,42,211,0,26,187,187, - 187,187,111,187,12,91,26,91,12,109,150,42,211,0,26,187, - 187,187,187,187,109,187,26,91,187,12,12,12,26,211,0,26, - 187,187,187,111,187,187,187,12,91,26,12,109,150,26,211,0, - 26,187,12,187,111,187,12,91,91,91,26,91,187,150,26,211, - 162,26,187,187,187,111,187,187,187,187,91,17,91,187,150,42, - 211,162,26,187,187,187,111,109,187,187,26,91,187,12,187,187, - 26,211,162,26,187,12,91,111,111,187,187,187,26,91,12,187, - 12,42,211,0,26,187,187,187,109,187,187,187,187,91,12,12, - 12,187,26,211,0,26,187,187,187,109,187,187,187,91,91,17, - 91,187,12,26,211,162,26,187,91,109,187,111,187,187,12,91, - 187,12,187,150,26,211,162,26,187,187,187,187,111,187,12,91, - 91,26,91,109,150,26,8,122,26,12,187,111,187,91,109,187, - 187,91,187,12,109,150,26,211,0,26,187,91,111,187,111,187, - 187,187,91,187,12,243,150,26,8,12,8,7,8,8,8,191, - 121,191,191,80,191,191,121,69,69,121,69,69,69,121,121,69, - 69,69,121,121,69,69,121,121,121,16,16,16,16,121,16,121, - 16,16,16,121,16,121,121,121,121,16,121,69,69,121,69,69, - 125,121,125,69,121,16,121,121,121,16,121,121,16,16,68,16, - 71,71,248,102,74,102,71,71,71,248,248,71,71,248,248,248, - 248,248,248,248,248,248,248,248,71,248,248,248,248,248,248,248, - 71,248,248,248,248,248,248,248,248,248,248,248,248,248,71,248, - 248,71,71,248,248,248,248,248,248,71,71,248,71,248,248,71, - 71,71,71,248,248,248,71,71,248,248,71,248,71,244,248,71, - 71,71,71,71,71,248,71,71,71,248,248,248,248,248,248,248, - 248,248,248,248,248,25,71,25,71,248,248,248,248,248,248,248, - 248,248,71,248,248,71,248,71,248,248,248,71,248,248,248,71, - 71,71,248,71,248,71,244,71,248,248,248,248,248,248,248,248, - 71,248,71,248,248,248,248,248,71,248,248,71,248,248,248,71, - 71,71,71,248,248,71,248,248,71,71,248,244,248,244,248,102, - 248,248,248,248,102,25,38,248,248,248,102,248,248,71,71,219, - 12,12,17,8,42,187,42,0,0,0,122,122,0,0,0,0, - 0,0,0,0,219,132,26,12,0,0,0,0,0,0,122,0, - 0,0,0,0,0,219,132,26,12,0,0,162,0,0,0,0, - 122,122,122,0,0,0,219,132,26,12,0,0,0,122,122,122, - 122,122,0,0,0,0,0,219,132,42,12,0,0,0,0,122, - 122,122,122,0,0,0,0,0,219,150,42,12,0,0,0,0, - 122,0,122,0,0,0,0,0,0,219,17,26,12,0,0,0, - 122,122,122,0,0,0,122,0,0,0,219,132,42,12,0,0, - 0,0,122,122,122,0,0,0,0,0,0,219,132,42,12,0, - 0,0,0,122,122,0,0,0,0,0,0,122,219,132,42,12, - 0,0,162,122,122,122,0,0,0,0,0,0,0,219,12,26, - 12,0,0,0,122,122,122,0,0,122,0,0,0,0,219,150, - 26,12,122,0,0,0,0,0,122,122,122,122,0,0,0,17, - 132,26,12,122,0,0,122,0,0,0,122,0,0,0,0,0, - 219,150,42,12,0,0,162,122,0,0,0,0,0,0,0,0, - 0,219,132,42,12,0,0,0,0,0,122,122,0,0,0,0, - 0,0,17,132,42,12,0,162,162,122,122,122,122,122,0,0, - 0,0,0,219,132,26,12,162,0,0,122,122,0,0,0,0, - 0,0,0,0,219,132,26,12,0,0,0,0,0,122,0,122, - 0,0,0,0,0,26,132,42,243,26,8,8,8,8,8,16, - 121,121,121,69,69,69,121,191,69,191,69,191,69,121,69,69, - 121,69,121,69,69,121,121,121,121,121,121,16,16,121,121,121, - 16,121,16,121,16,16,121,121,121,121,121,121,69,121,121,121, - 69,121,121,125,121,16,16,121,16,16,121,121,121,16,16,16, - 74,71,74,74,71,71,74,248,71,71,71,248,248,248,248,248, - 248,248,248,248,248,248,71,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,71,248,248,248,248,71,248,71,71,248,71, - 71,248,248,248,71,71,248,71,71,248,248,71,248,71,71,248, - 248,71,248,71,71,71,248,248,71,71,248,71,248,248,71,71, - 248,71,71,71,248,71,248,248,248,74,248,248,248,248,248,248, - 248,248,248,248,248,71,248,71,248,248,248,248,71,248,248,248, - 71,248,248,248,248,248,71,248,244,248,71,248,71,248,71,248, - 248,248,248,248,71,248,248,244,71,71,71,71,71,71,248,71, - 248,244,248,244,71,248,248,71,248,102,71,248,244,71,71,248, - 102,248,248,71,71,102,248,102,248,248,248,248,102,248,248,248, - 120,102,248,248,248,71,244,120,102,120,248,248,248,248,71,26, - 150,12,26,8,42,211,122,26,26,26,26,26,26,42,26,219, - 219,219,219,26,17,17,26,187,26,26,26,26,26,26,42,26, - 17,219,219,219,26,26,219,26,187,42,12,26,26,26,42,42, - 26,17,219,219,219,26,17,219,26,187,26,26,26,26,26,42, - 42,26,17,17,219,219,26,17,219,26,187,42,91,26,26,26, - 42,42,26,17,219,219,219,26,17,219,26,187,42,91,26,26, - 26,26,42,26,219,17,219,219,26,26,132,26,187,26,26,26, - 26,26,42,42,26,17,219,219,219,26,17,219,26,187,42,91, - 26,26,26,42,42,26,17,219,219,219,26,26,219,26,187,42, - 91,26,26,26,42,42,219,219,219,219,219,26,26,17,26,187, - 42,187,26,26,26,42,42,26,17,219,219,219,26,26,132,26, - 187,42,91,26,26,26,42,42,26,17,17,219,17,26,17,219, - 26,187,42,187,26,26,26,42,42,26,17,219,219,219,26,219, - 17,26,187,42,26,26,26,26,26,42,26,17,17,219,219,26, - 17,219,26,187,42,12,26,26,26,26,26,26,219,219,219,219, - 26,17,219,26,187,42,12,26,26,26,42,42,26,219,219,219, - 17,26,26,17,26,187,26,26,26,26,26,42,42,26,17,219, - 219,219,26,26,219,26,187,42,12,26,26,26,26,42,26,17, - 17,219,219,26,26,219,26,187,26,26,26,26,26,42,42,26, - 17,219,219,219,26,219,219,26,12,12,8,8,8,8,8,191, - 191,238,191,69,191,69,121,69,69,238,69,69,69,121,69,121, - 69,121,69,121,69,69,69,121,121,121,121,121,121,16,16,16, - 121,16,121,16,121,121,121,121,121,121,121,121,121,125,125,69, - 121,69,121,16,121,121,121,16,121,16,16,16,16,16,16,208, - 74,71,71,71,71,71,71,248,74,248,71,248,71,248,74,248, - 248,248,248,248,248,248,71,248,248,71,248,248,248,248,248,248, - 248,71,248,248,248,71,248,248,248,248,71,248,248,248,248,248, - 71,248,71,248,248,71,248,248,71,71,248,71,248,248,71,71, - 248,71,71,71,248,71,71,248,71,71,71,71,71,71,248,71, - 71,248,71,71,71,71,71,248,248,248,248,248,102,248,248,248, - 248,248,248,248,248,248,248,248,248,71,248,248,248,71,248,248, - 71,248,71,71,71,120,102,248,71,248,71,248,71,248,71,71, - 71,71,244,248,71,71,102,248,248,248,248,248,71,248,102,71, - 102,248,102,248,71,248,248,102,248,248,102,248,248,102,71,71, - 71,71,71,248,71,71,71,71,248,71,71,248,248,102,248,71, - 248,248,248,248,248,248,102,248,248,248,102,248,71,71,74,26, - 12,17,26,243,42,8,42,219,243,12,17,17,219,12,12,243, - 12,150,150,17,17,219,219,187,17,243,12,17,187,219,12,17, - 243,12,243,150,150,12,17,219,187,26,150,12,12,187,219,17, - 12,243,12,150,150,17,12,17,219,187,17,243,12,12,187,219, - 17,12,150,12,243,150,17,187,17,219,12,219,150,12,12,219, - 219,17,12,243,12,150,150,17,12,17,219,12,219,150,12,12, - 187,219,12,12,243,150,150,150,150,12,219,219,12,17,243,12, - 12,17,219,12,12,243,12,243,150,17,187,17,219,12,219,150, - 12,12,17,219,17,12,243,150,150,150,150,12,17,219,12,219, - 150,12,17,17,219,12,12,243,150,150,150,150,12,17,219,12, - 26,150,12,12,17,219,12,12,243,12,150,150,150,12,219,219, - 12,219,150,12,12,17,219,12,17,243,12,150,150,17,12,17, - 219,12,26,243,12,17,17,219,17,17,243,12,243,150,12,17, - 17,219,187,17,243,12,12,187,219,12,17,243,12,150,150,17, - 12,17,219,187,26,150,12,12,187,219,17,12,8,12,150,150, - 12,12,17,219,187,26,150,12,12,187,219,17,12,8,12,150, - 150,150,17,17,219,187,17,243,12,12,187,219,17,12,150,243, - 150,150,150,187,17,219,12,26,243,17,12,219,219,17,17,243, - 12,150,150,150,12,17,219,187,17,243,12,12,17,219,12,12, - 243,12,243,150,12,12,17,26,12,17,8,8,8,8,8,16, - 191,69,121,69,191,121,69,191,69,121,121,69,121,69,121,69, - 121,69,121,69,121,69,69,121,121,121,121,121,121,121,121,16, - 16,16,121,121,121,121,121,121,121,69,69,121,121,121,121,121, - 121,121,121,16,16,16,16,16,16,121,16,16,16,16,16,16, - 71,71,74,71,71,71,102,74,248,71,248,248,248,248,248,102, - 248,248,248,248,71,248,248,248,248,248,248,248,248,102,248,248, - 248,248,71,71,248,248,71,71,71,248,248,248,71,71,71,71, - 248,71,248,248,71,71,71,71,248,248,71,248,71,71,71,248, - 244,71,248,248,248,71,71,71,71,248,71,71,71,71,71,71, - 71,71,71,71,248,248,248,71,248,71,248,248,71,248,71,248, - 71,248,248,248,248,248,248,248,248,248,71,248,71,248,71,248, - 248,71,248,248,248,71,71,71,248,71,248,71,248,71,248,248, - 248,71,248,71,71,248,71,71,71,71,102,71,248,71,71,248, - 248,71,244,102,248,71,71,71,71,71,71,71,71,71,248,71, - 71,102,248,71,248,248,248,248,71,102,248,71,71,71,71,248, - 102,248,248,248,248,102,248,248,248,248,244,248,248,248,71,219, - 12,150,17,187,42,8,42,26,150,12,150,219,17,17,17,243, - 150,150,12,17,12,17,42,243,26,150,12,150,17,219,12,26, - 243,150,150,12,219,17,219,26,243,219,150,12,132,219,17,12, - 26,243,150,12,12,17,187,219,42,109,26,150,12,132,17,219, - 12,26,243,150,17,12,12,17,17,42,150,26,150,17,132,187, - 17,12,26,150,150,150,12,17,12,219,42,150,26,150,17,132, - 17,219,17,17,243,12,12,12,17,17,17,42,109,26,150,12, - 132,187,17,12,26,243,150,17,12,17,17,17,42,150,26,150, - 17,132,187,17,12,26,243,12,12,12,17,17,219,42,150,26, - 150,12,150,17,17,17,17,243,12,150,12,17,17,219,42,243, - 219,150,12,132,187,17,12,26,243,150,150,12,17,17,17,42, - 150,26,150,17,132,187,17,12,26,243,150,12,12,17,17,219, - 42,12,219,150,12,150,187,17,12,26,243,150,17,12,17,12, - 219,26,12,26,150,12,132,219,17,12,26,243,150,12,12,17, - 12,219,26,243,219,150,12,132,17,219,12,17,243,150,150,12, - 17,17,219,42,243,219,150,12,132,219,17,12,26,243,150,12, - 12,219,17,17,42,243,26,150,12,132,17,219,12,26,150,12, - 150,12,17,12,219,42,150,219,150,12,132,187,17,12,26,243, - 150,12,12,219,17,219,42,243,26,150,17,132,187,17,17,26, - 243,150,17,12,219,17,219,26,8,12,8,7,8,8,8,16, - 191,191,121,191,69,191,121,69,191,69,121,191,69,121,121,69, - 121,69,121,69,121,69,121,69,121,121,16,68,121,121,121,16, - 121,121,121,16,16,121,121,238,121,121,121,121,121,121,121,121, - 121,121,16,121,16,121,16,121,16,16,121,121,16,16,16,208, - 74,71,74,71,74,71,71,71,102,71,71,71,71,248,71,71, - 248,248,248,248,71,248,71,71,248,248,248,248,71,71,248,71, - 248,248,248,71,248,248,248,248,71,248,71,248,248,248,248,71, - 71,71,71,248,248,71,248,71,71,71,71,71,248,248,71,71, - 71,71,71,71,248,71,71,248,71,71,248,71,71,71,248,71, - 71,71,71,71,71,71,248,74,248,248,71,248,71,248,71,248, - 248,248,248,248,71,248,71,71,248,248,71,248,71,248,71,248, - 248,248,71,71,248,71,248,71,248,71,248,71,71,71,71,71, - 248,71,71,244,71,71,71,248,248,71,248,71,248,248,71,71, - 102,71,71,71,102,248,71,248,248,248,102,248,248,71,248,71, - 71,71,71,71,71,71,71,71,71,71,102,248,71,102,244,71, - 71,248,102,248,244,71,248,102,248,102,248,102,244,71,71,219, - 26,26,26,8,42,8,219,26,150,219,12,17,150,17,26,150, - 17,150,17,17,17,17,26,109,26,132,17,219,17,150,150,26, - 150,17,150,17,12,12,219,26,109,26,150,17,12,219,150,150, - 26,150,150,150,12,17,12,17,26,243,26,150,219,17,17,150, - 150,26,150,150,132,17,17,17,17,26,211,26,150,17,17,17, - 150,150,26,243,17,150,12,219,12,17,26,211,26,150,17,17, - 17,150,12,26,150,150,150,17,17,17,17,26,109,26,150,219, - 17,219,150,150,26,150,150,150,12,17,17,17,26,109,26,150, - 17,17,219,150,150,26,150,150,150,17,12,17,17,26,109,26, - 150,219,17,17,12,12,26,150,17,150,12,17,12,17,26,109, - 26,150,17,219,17,132,150,26,150,12,150,17,17,17,17,26, - 109,26,150,17,219,17,132,150,26,150,150,132,12,17,12,17, - 17,109,26,132,17,219,17,150,150,26,150,150,150,12,219,12, - 17,17,109,26,150,17,17,187,132,150,26,150,150,150,17,17, - 187,17,26,109,26,150,17,219,17,150,17,219,150,17,150,17, - 12,17,17,26,109,26,150,17,12,17,132,150,219,150,150,132, - 12,12,17,17,26,109,26,150,219,17,17,150,150,26,243,17, - 150,12,219,12,17,26,109,26,150,17,17,17,150,150,26,150, - 150,150,12,17,187,17,26,109,26,150,17,17,17,132,150,26, - 150,150,150,12,17,12,219,26,109,17,8,8,8,8,8,16, - 121,121,121,121,69,69,121,69,191,191,69,69,121,191,121,69, - 121,121,69,191,69,121,69,121,121,121,121,121,121,121,121,16, - 16,16,121,121,121,121,121,121,68,16,121,121,121,121,121,121, - 16,16,121,16,16,16,121,121,16,16,16,16,16,16,16,16, - 71,71,71,74,71,74,248,74,71,74,248,248,102,71,248,248, - 71,71,71,248,248,71,248,248,248,248,248,248,248,248,71,248, - 71,71,71,248,71,71,248,71,248,71,248,71,71,71,244,71, - 248,248,248,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,248,71,71,102, - 248,71,248,71,74,248,71,248,248,71,248,248,248,248,248,248, - 71,248,248,248,248,248,248,248,71,71,248,71,248,248,248,71, - 248,71,248,248,71,248,244,248,71,248,71,102,248,248,71,71, - 71,71,71,71,71,71,248,71,71,244,71,102,71,71,102,71, - 71,71,248,71,71,71,248,71,71,71,71,71,71,102,71,71, - 71,71,71,71,71,102,71,71,248,71,71,71,244,71,102,71, - 248,71,71,102,248,120,102,244,248,120,102,248,102,71,74,26, - 17,12,17,12,42,8,26,219,17,17,132,17,17,12,219,17, - 150,12,17,132,187,187,219,243,219,12,17,132,17,17,17,219, - 12,150,17,17,132,17,187,219,243,219,17,17,132,17,17,17, - 219,12,17,17,17,132,17,187,219,109,219,12,17,132,17,17, - 12,219,12,17,17,12,132,12,187,219,243,219,12,17,132,219, - 17,12,219,17,150,17,12,132,17,187,219,243,219,150,17,132, - 17,17,12,219,150,219,17,12,17,17,187,219,243,219,12,17, - 132,17,17,17,219,12,17,17,12,132,12,187,219,243,219,150, - 17,132,17,17,12,219,150,17,17,12,132,187,187,219,243,219, - 150,17,132,17,17,12,219,150,150,17,17,132,17,187,219,243, - 219,12,17,132,17,17,12,219,12,132,17,12,17,12,187,219, - 243,219,12,17,132,17,17,17,219,12,17,17,12,132,17,187, - 26,243,219,150,17,132,17,17,12,219,12,17,17,12,132,17, - 187,26,109,219,17,17,150,219,17,17,219,12,17,17,17,132, - 12,187,219,243,219,12,17,132,17,17,12,26,12,150,17,17, - 132,187,187,219,243,219,17,17,132,17,17,12,26,12,17,17, - 17,132,12,187,219,243,219,12,17,132,17,17,12,219,150,132, - 17,12,132,17,187,219,243,219,17,17,132,219,17,17,219,12, - 17,17,17,132,12,187,219,243,219,17,17,150,219,17,12,219, - 12,17,17,150,132,17,150,219,8,12,8,8,7,8,8,191, - 191,121,191,191,191,191,191,121,80,69,121,121,69,69,121,121, - 69,121,121,69,121,69,121,69,121,69,121,69,121,121,69,121, - 121,121,121,121,121,121,121,69,121,121,69,121,121,121,121,121, - 121,16,16,16,16,121,16,121,16,16,16,16,16,16,16,208, - 74,71,71,71,71,74,71,248,248,102,74,248,248,74,248,102, - 248,102,71,248,248,71,71,248,248,102,248,248,248,248,248,248, - 248,248,248,248,248,71,248,248,248,71,71,248,248,71,248,71, - 71,71,102,248,71,71,248,71,248,71,71,71,71,71,248,71, - 71,71,71,71,71,71,71,71,102,71,71,74,71,71,71,74, - 71,71,71,248,248,74,248,248,102,71,71,248,71,71,71,248, - 248,102,248,248,71,248,248,248,248,248,248,71,71,248,248,71, - 248,71,71,248,71,71,71,71,71,248,71,71,71,71,102,71, - 71,71,71,71,71,71,71,71,102,71,71,71,248,71,71,71, - 102,71,71,71,71,71,71,71,248,71,102,248,71,248,248,71, - 71,71,71,71,71,71,71,71,71,71,71,71,248,71,71,71, - 71,71,244,102,71,71,248,102,71,244,71,244,248,71,71,26, - 219,12,17,12,42,8,26,219,150,17,132,17,150,17,219,12, - 132,150,17,132,132,187,219,109,219,150,17,132,17,150,17,219, - 12,150,150,17,132,132,187,26,211,219,150,17,132,17,150,17, - 219,150,150,150,17,132,132,187,219,243,219,150,17,132,17,150, - 17,219,150,150,150,17,132,132,187,219,211,219,150,17,150,17, - 132,17,219,12,132,150,17,132,132,187,219,211,42,150,219,132, - 17,150,17,26,150,150,150,132,132,132,187,219,109,219,150,17, - 132,17,150,17,219,150,132,150,17,132,132,187,219,211,26,150, - 17,132,17,150,17,26,150,150,132,17,132,150,187,219,211,42, - 150,219,132,132,150,17,26,12,132,150,17,132,132,187,26,211, - 219,150,17,132,17,150,17,219,12,150,150,132,132,132,187,219, - 211,219,150,17,132,17,150,17,219,150,150,150,17,132,132,150, - 42,211,26,150,17,132,17,150,17,219,150,150,132,17,132,132, - 150,219,243,219,150,219,150,17,150,17,219,150,150,150,17,132, - 132,187,26,211,219,150,17,132,17,150,132,219,12,150,150,17, - 132,132,187,26,211,219,150,17,132,17,132,132,219,150,150,150, - 17,132,132,187,219,243,219,150,17,132,17,150,17,26,12,150, - 150,17,132,132,187,26,211,219,150,17,132,17,150,17,219,150, - 150,150,17,132,132,187,219,211,219,150,17,132,17,150,17,219, - 150,132,17,17,132,187,150,26,211,26,8,8,8,8,8,16, - 191,121,69,69,69,69,191,121,121,191,69,191,121,69,191,121, - 121,69,121,191,69,121,69,121,121,121,121,121,121,121,121,121, - 121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121, - 16,121,16,121,16,121,16,16,16,16,16,16,54,16,54,208, - 71,71,74,74,71,74,248,74,74,71,248,74,102,248,248,248, - 71,71,102,248,71,248,248,71,248,71,248,71,248,248,248,248, - 248,71,71,71,71,248,71,71,71,248,248,71,71,71,71,248, - 71,248,71,71,71,71,71,71,71,248,71,71,71,71,71,248, - 71,248,71,248,71,71,71,71,71,71,71,71,248,71,71,71, - 71,71,102,102,74,248,248,71,71,102,248,71,102,248,248,71, - 248,71,248,71,248,248,248,248,71,71,71,248,248,71,71,248, - 71,248,248,71,248,71,71,248,248,71,71,71,71,71,71,71, - 71,102,71,102,71,71,102,71,71,71,248,71,71,71,248,71, - 71,71,71,248,71,71,102,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,248,71,244,248,102,248,102,71,140,71,26, - 26,26,26,12,42,8,219,42,12,132,17,150,132,132,219,150, - 17,132,17,17,26,150,26,243,42,12,132,17,150,132,150,219, - 150,219,132,17,17,26,150,26,187,42,12,132,17,150,132,17, - 219,12,219,132,12,219,26,150,26,8,42,12,132,219,150,132, - 132,219,12,17,132,17,219,26,150,26,12,42,12,132,219,150, - 132,150,219,150,17,132,17,17,26,150,26,187,26,12,132,17, - 150,132,132,219,12,17,132,12,219,26,150,26,8,42,12,132, - 17,150,132,17,219,12,17,132,17,219,26,150,26,187,26,17, - 132,17,150,132,132,219,12,219,150,17,219,26,150,26,187,26, - 12,132,17,17,132,132,219,150,17,132,17,219,26,150,26,12, - 42,12,132,17,150,132,132,219,150,219,132,17,219,26,150,26, - 12,42,12,132,219,150,132,150,219,12,17,132,17,219,26,187, - 26,187,42,12,132,219,150,132,17,219,12,219,150,12,219,26, - 187,26,8,42,12,132,17,150,132,150,219,12,219,150,17,219, - 26,150,26,187,42,12,132,17,150,132,17,219,150,219,132,17, - 17,26,150,26,243,42,12,132,17,132,150,17,219,12,17,132, - 17,219,26,150,26,187,42,12,132,219,150,132,132,219,150,219, - 132,17,17,26,150,26,187,42,12,132,17,150,132,150,219,12, - 219,132,12,219,26,150,26,243,42,12,132,17,150,132,132,219, - 12,17,150,17,219,219,187,219,8,12,8,8,8,8,8,208, - 191,191,191,191,191,121,69,191,191,69,191,69,121,121,69,121, - 121,121,69,69,121,121,121,69,121,121,121,69,69,121,121,121, - 121,121,121,238,121,121,238,121,121,238,121,69,121,121,121,121, - 121,121,16,121,16,16,16,16,121,16,16,16,208,208,208,16, - 74,71,71,74,71,74,248,102,248,102,248,248,74,102,74,248, - 248,71,71,248,102,71,248,74,248,71,248,71,71,71,71,71, - 248,248,248,248,71,248,71,248,71,71,71,248,248,71,71,248, - 71,71,71,71,71,71,71,71,71,71,71,71,248,71,74,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,248,74,74,102,71,71,248,102,71,248,102,248,74, - 248,71,248,71,71,71,71,248,248,248,71,71,248,248,71,248, - 71,71,71,71,248,71,71,71,71,248,244,71,71,71,71,102, - 71,71,71,71,71,71,71,71,248,71,71,71,71,74,71,71, - 71,102,71,71,71,71,71,71,248,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,74,71,71,71,74, - 71,71,71,71,71,102,102,244,71,71,244,102,248,74,71,42, - 12,12,91,12,26,12,219,219,17,219,17,17,17,17,26,150, - 17,150,17,132,26,187,26,211,219,17,219,17,17,17,17,26, - 150,17,150,17,132,26,150,12,211,219,17,17,17,17,150,17, - 219,150,17,150,17,132,26,187,26,211,219,17,17,17,17,17, - 17,219,150,17,150,17,132,26,187,17,211,219,17,17,17,17, - 17,17,26,150,17,150,17,132,26,187,12,211,219,17,17,17, - 17,17,150,219,150,219,12,17,132,26,187,26,211,219,17,17, - 17,17,150,17,219,150,17,150,17,132,26,12,12,211,219,17, - 17,17,17,17,132,219,150,219,150,17,132,26,187,12,211,219, - 17,17,17,17,17,132,42,150,17,150,17,132,26,150,17,211, - 219,17,17,17,17,17,17,26,150,17,12,17,132,26,187,12, - 211,219,17,17,17,17,17,17,219,150,219,150,17,132,17,150, - 17,211,219,17,17,17,17,150,17,219,150,219,150,17,132,17, - 187,26,211,219,17,219,17,17,17,17,219,150,219,150,17,132, - 26,150,12,211,219,17,17,17,17,17,17,26,150,17,150,17, - 132,26,150,26,211,219,17,219,17,17,17,17,219,150,219,150, - 17,132,26,187,12,211,219,12,219,17,17,17,150,42,150,17, - 150,17,132,26,150,17,211,219,17,17,17,17,17,17,219,150, - 17,150,17,132,26,187,26,211,219,17,17,17,17,17,17,219, - 150,132,150,17,17,219,187,26,8,26,8,141,7,8,8,16, - 191,121,121,191,121,191,191,69,121,191,121,121,191,121,121,121, - 121,121,121,121,69,121,69,121,69,121,121,121,125,69,69,121, - 121,121,69,69,69,121,121,238,121,121,238,121,238,121,191,16, - 121,16,121,16,121,16,121,16,16,16,208,16,16,16,208,208, - 74,74,74,248,74,71,74,71,74,74,74,71,248,71,102,248, - 74,248,248,71,71,102,71,248,248,248,71,248,248,248,248,248, - 71,71,71,71,248,71,248,71,248,102,248,71,71,71,71,71, - 71,244,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,248,71,71,71,71,71,74,71,71,71,71,71,71,71, - 71,71,71,71,248,248,71,248,248,71,71,248,71,71,74,248, - 248,248,71,248,248,248,248,71,248,71,248,71,71,71,71,71, - 248,248,248,102,71,71,71,248,71,71,71,71,244,71,71,71, - 71,71,71,248,71,71,248,71,71,71,102,71,71,71,248,71, - 71,71,71,102,71,71,102,71,71,71,71,71,71,71,71,74, - 71,71,71,74,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,244,71,102,248,102,71,244,71,144,71,219, - 150,150,12,8,26,187,26,42,12,17,17,150,150,132,219,17, - 132,17,17,219,17,150,219,187,26,12,219,12,17,150,132,219, - 17,150,17,17,219,17,187,42,12,42,12,219,12,17,150,132, - 219,17,132,17,17,219,17,150,219,187,26,17,17,17,12,150, - 132,219,17,132,17,17,219,17,150,26,187,42,12,219,12,12, - 150,132,219,17,132,17,17,219,17,150,26,187,26,17,17,17, - 150,150,219,219,17,132,150,17,219,17,150,219,187,42,12,219, - 12,17,132,132,219,132,132,17,17,219,17,132,42,12,26,17, - 17,17,12,150,219,219,17,132,12,17,219,17,132,26,12,26, - 17,17,12,150,150,17,219,17,132,17,17,219,17,187,26,187, - 42,12,219,17,12,150,132,219,17,132,150,17,219,17,150,26, - 187,26,17,17,17,12,150,132,183,150,132,12,17,219,219,187, - 26,12,26,17,17,17,12,132,132,219,150,132,17,17,219,219, - 132,219,187,42,12,17,12,17,150,132,219,150,150,17,17,219, - 17,187,42,12,26,17,17,17,150,150,132,219,17,132,17,17, - 219,17,187,219,187,42,12,17,17,12,150,132,219,150,132,12, - 17,219,17,150,42,12,42,12,219,12,12,150,219,219,17,132, - 17,17,219,17,187,26,12,42,12,219,12,17,150,132,219,17, - 132,17,17,219,17,150,219,187,26,17,17,17,12,150,132,219, - 17,17,17,17,219,17,12,219,12,12,8,8,8,8,8,208, - 191,121,191,121,191,121,191,121,191,69,191,121,69,121,121,121, - 121,191,121,121,121,121,69,121,121,69,69,121,121,121,125,125, - 121,69,121,121,121,121,121,69,121,125,121,121,69,121,121,121, - 121,16,16,16,16,16,16,208,16,16,16,16,16,54,54,54, - 74,74,74,74,102,71,74,248,248,248,74,71,71,71,71,248, - 74,102,102,248,71,248,74,248,74,248,74,248,71,71,248,248, - 248,102,71,71,71,71,248,74,71,71,74,71,248,71,71,71, - 248,71,248,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,248,71,71,71,102,71,71,71,71,71,71,71, - 71,71,71,71,74,248,74,74,248,102,248,102,248,248,102,71, - 74,248,74,248,71,102,248,71,248,71,248,71,248,102,71,71, - 71,71,71,71,248,71,71,71,248,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,248, - 71,71,71,71,71,71,71,71,248,71,102,71,71,71,71,71, - 74,74,71,71,74,71,71,71,140,71,144,74,71,71,71,71, - 71,71,71,71,71,71,71,71,244,71,71,102,71,71,71,56, - 219,12,26,8,42,12,26,219,26,219,26,17,26,17,219,17, - 17,17,219,219,26,187,26,150,219,26,219,17,219,26,17,219, - 219,17,17,17,219,17,150,26,150,219,26,219,17,219,26,17, - 219,17,17,17,17,219,26,187,26,150,219,26,219,17,17,26, - 17,219,17,17,17,219,219,26,150,26,150,219,26,219,17,219, - 26,17,219,17,17,17,219,219,26,132,219,150,219,26,219,26, - 17,17,17,219,219,17,17,219,219,26,187,26,150,219,26,219, - 17,17,26,17,26,17,17,17,219,219,26,150,219,150,219,26, - 219,17,17,17,17,219,17,17,17,17,219,26,150,219,150,219, - 26,219,26,17,17,17,219,17,17,17,17,219,12,132,26,150, - 219,26,219,17,17,26,17,219,17,17,17,219,219,26,132,26, - 150,219,26,219,17,219,26,26,26,17,17,17,219,219,12,132, - 219,150,219,26,219,17,17,26,17,26,219,12,17,219,219,26, - 187,26,150,219,26,219,17,219,26,12,26,219,17,17,17,219, - 17,132,26,150,219,26,219,26,17,26,17,219,17,17,17,219, - 219,12,17,26,150,219,26,219,17,219,26,17,26,219,17,17, - 219,219,26,150,26,150,219,26,219,17,17,17,17,219,17,17, - 17,17,219,17,132,26,150,219,26,219,17,219,26,12,219,17, - 17,17,219,219,26,187,26,150,219,26,219,17,219,26,17,219, - 17,17,17,17,26,12,17,26,243,26,12,8,7,12,8,16, - 208,121,191,121,121,69,191,121,191,121,121,191,121,191,191,121, - 69,121,121,191,121,121,121,121,121,121,69,69,125,121,121,121, - 121,121,121,121,69,125,121,125,121,69,121,121,121,121,16,121, - 16,16,121,16,121,16,121,16,16,16,16,208,208,16,208,208, - 74,74,71,74,74,102,102,74,74,74,71,102,248,71,74,102, - 248,71,248,74,248,102,248,102,248,102,248,102,248,102,74,71, - 71,71,248,102,248,102,71,248,71,248,102,71,71,248,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,74,102,71,71,102,248,102,248,74,248,74,248,71,102, - 248,102,248,248,248,71,74,248,74,248,74,248,71,71,248,102, - 102,71,71,71,71,248,71,71,71,71,248,71,244,71,71,71, - 71,71,71,244,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,140, - 71,74,144,74,71,71,74,71,71,71,71,144,71,74,71,71, - 71,71,71,71,71,71,71,71,71,102,244,71,71,74,140,122, - 0,122,122,42,0,183,0,0,42,122,122,122,122,42,122,122, - 42,122,122,122,183,42,219,187,0,42,122,122,122,122,42,122, - 122,122,122,122,162,42,42,183,187,0,42,122,122,122,122,42, - 122,122,122,122,122,122,183,42,183,187,0,42,122,122,0,122, - 42,122,122,42,122,122,162,183,42,183,187,0,42,122,122,122, - 122,42,122,122,42,122,122,122,219,42,42,187,0,42,122,122, - 0,122,42,122,122,122,122,122,122,183,42,219,187,0,42,122, - 122,122,122,42,122,122,42,122,122,122,183,42,42,187,0,42, - 122,122,0,122,42,122,122,122,122,122,122,219,42,42,187,0, - 42,122,122,0,122,42,122,122,122,122,122,162,42,42,183,187, - 0,42,122,122,122,122,42,122,122,122,122,122,122,219,42,183, - 187,122,42,122,122,122,122,183,122,122,42,122,122,122,42,42, - 42,187,0,42,122,122,122,122,42,122,122,122,122,122,122,219, - 42,183,187,0,42,122,122,122,0,42,122,122,122,122,122,122, - 42,42,183,187,122,42,122,122,122,122,42,122,122,42,122,122, - 122,42,42,219,187,122,42,122,122,122,122,42,122,122,42,122, - 122,162,183,42,183,187,0,42,122,122,0,122,42,122,122,122, - 122,0,162,42,42,183,187,0,42,122,122,122,0,42,122,122, - 42,122,122,78,183,42,219,187,0,42,122,122,122,122,42,122, - 122,122,122,122,162,42,42,183,187,122,42,26,26,26,17,16, - 191,191,191,191,191,121,121,121,191,191,121,191,121,121,69,121, - 191,121,121,121,121,121,121,69,69,69,69,121,121,69,69,69, - 69,125,125,69,121,121,125,121,121,238,121,121,121,121,121,121, - 16,16,121,121,16,16,16,16,16,208,208,16,16,208,16,96, - 71,74,71,71,74,74,71,248,102,248,74,74,248,248,71,74, - 102,74,248,102,71,74,71,74,248,74,71,71,71,248,102,248, - 71,71,71,71,71,71,71,248,74,71,71,248,74,248,248,71, - 248,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,74,71,248,74,74,248,74,248,74,248,74,248, - 74,248,74,102,248,248,71,248,74,248,71,248,71,71,71,71, - 102,71,102,71,71,248,102,71,248,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,74,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,74,71,71,140, - 71,71,144,140,71,144,74,144,140,71,71,71,144,71,140,71, - 144,71,71,71,71,71,71,71,71,71,71,71,71,71,71,26, - 8,12,17,150,0,42,26,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,42,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,42,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,42,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,42,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,42,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,42,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,42,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,42,42,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,42,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,42,42,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,122,26,42,122,42,17,17,26,219,208, - 191,191,191,191,191,121,191,191,191,191,121,121,191,121,191,121, - 121,121,121,121,121,121,121,121,121,121,69,121,121,68,121,121, - 121,121,125,125,69,121,121,125,121,125,121,121,16,121,121,191, - 121,16,16,121,16,16,16,16,16,16,16,16,16,208,208,208, - 74,74,74,74,71,71,102,74,71,74,102,248,102,74,102,248, - 102,248,248,71,102,248,102,248,102,248,248,102,248,74,71,71, - 102,248,71,71,74,248,74,71,71,248,74,71,71,74,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,102,248,248,74,102,248,102,248,102,248,102,248,74, - 248,74,248,71,102,74,248,74,248,248,74,71,74,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,144,71,71, - 71,71,71,71,71,71,71,71,74,71,71,71,71,71,74,71, - 74,71,71,71,71,71,71,71,71,71,71,71,71,74,71,71, - 144,74,71,71,71,71,144,71,71,140,74,140,71,144,71,74, - 71,74,71,71,71,71,71,71,71,71,71,71,71,140,71,26, - 49,141,243,139,42,26,219,0,42,42,122,122,122,42,122,122, - 42,122,122,78,243,26,26,17,0,42,42,122,122,122,42,42, - 122,42,122,122,42,12,26,26,17,0,42,42,122,122,122,42, - 42,122,42,122,122,42,12,26,26,17,0,26,122,42,122,122, - 42,122,122,42,122,122,42,12,26,26,17,0,42,42,122,122, - 122,42,122,42,122,122,122,42,12,26,26,17,0,26,122,42, - 122,122,42,42,122,42,122,122,78,243,26,26,17,0,42,42, - 122,122,122,42,122,42,122,122,122,42,12,26,26,17,0,42, - 122,42,122,122,42,42,122,42,122,122,42,12,26,26,17,0, - 42,42,122,122,122,42,42,122,42,122,122,42,12,26,26,17, - 0,42,42,122,122,42,122,42,122,42,122,122,42,12,26,26, - 17,0,26,122,42,122,42,122,122,42,122,122,122,42,12,26, - 26,17,0,42,42,122,122,42,122,42,122,42,122,122,42,12, - 26,26,17,0,42,42,122,122,42,122,42,122,42,122,122,42, - 12,26,26,17,0,42,42,122,122,122,42,122,42,122,122,122, - 78,243,26,26,17,0,42,42,122,122,122,42,122,42,122,122, - 122,42,12,26,26,17,0,42,122,42,122,122,42,122,42,42, - 122,122,42,12,26,26,17,0,42,42,122,122,42,122,122,42, - 122,122,122,78,243,26,26,17,0,42,42,122,122,42,122,42, - 122,42,122,122,42,12,42,26,17,26,12,7,8,8,243,208, - 191,191,191,191,191,191,191,69,191,191,191,191,191,191,121,191, - 121,191,121,191,121,121,121,121,121,69,121,121,121,16,121,121, - 121,69,121,121,68,121,125,121,121,16,121,191,121,16,121,16, - 16,121,16,16,16,16,16,16,16,16,208,208,54,63,208,63, - 74,102,74,74,74,74,71,102,248,74,102,74,248,102,74,248, - 74,102,102,248,74,74,74,71,74,74,71,74,248,74,71,71, - 71,102,74,248,74,248,102,71,71,71,102,71,248,74,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71,71,71,74,71,71,71, - 71,71,74,74,102,248,102,102,74,102,102,102,74,74,102,102, - 248,74,102,71,248,74,248,74,74,248,102,71,248,74,71,71, - 71,71,71,102,71,71,71,71,71,71,71,71,71,71,71,71, - 144,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, - 74,71,71,74,71,71,71,74,71,71,74,71,71,144,74,71, - 144,140,144,140,144,74,144,144,71,144,71,144,74,144,144,74, - 71,74,71,71,144,71,71,71,71,71,71,71,71,140,71,26, - 101,8,243,8,42,26,26,42,101,139,139,139,8,8,8,211, - 8,8,139,139,67,17,26,12,26,101,139,139,139,8,8,211, - 211,8,8,139,139,49,17,26,8,42,101,139,139,8,139,8, - 8,211,8,8,139,139,49,17,26,12,42,101,139,139,8,8, - 8,139,8,8,8,139,139,49,17,26,8,42,101,139,139,139, - 8,8,211,211,8,8,139,139,67,17,26,8,42,101,139,139, - 8,8,8,211,211,8,8,139,139,67,17,26,12,42,101,139, - 139,139,8,8,211,211,8,8,139,139,67,17,26,12,26,101, - 139,139,8,8,8,211,211,8,8,139,139,67,17,26,12,26, - 101,139,139,139,8,8,211,211,8,8,139,139,49,219,26,8, - 42,101,139,139,139,8,8,139,8,8,8,139,139,49,219,26, - 8,42,101,139,139,8,8,8,211,139,8,8,139,139,67,17, - 26,12,42,101,139,139,139,8,8,211,211,8,8,139,139,67, - 17,26,8,42,101,139,139,139,8,8,211,211,8,8,139,139, - 49,219,26,8,42,101,139,139,139,8,8,211,211,8,8,139, - 139,67,17,26,8,42,101,139,139,139,8,8,211,211,8,8, - 139,139,49,17,26,8,42,101,139,139,8,139,8,8,211,8, - 8,139,139,67,17,26,8,42,101,139,139,139,8,8,8,211, - 8,8,139,139,67,17,26,12,26,101,139,139,139,8,8,8, - 211,8,139,182,139,49,17,26,243,26,8,8,8,8,8,208, - 16,191,191,191,191,191,191,191,191,191,191,191,121,191,191,191, - 121,191,121,16,121,121,121,121,121,69,121,121,121,121,121,69, - 121,121,121,16,121,121,121,121,121,16,121,16,121,16,16,16, - 121,16,121,16,16,16,16,16,16,16,16,208,16,208,208,63, - 74,74,74,74,74,71,102,74,74,248,71,102,248,74,248,74, - 102,102,74,102,102,248,248,102,102,248,102,248,102,71,102,71, - 74,71,71,71,71,71,74,71,74,71,71,71,74,71,74,71, - 71,71,71,71,71,74,71,71,71,71,71,71,71,71,71,74, - 71,71,74,71,74,74,144,71,71,71,74,71,71,71,74,71, - 74,71,102,248,102,74,71,74,248,71,71,71,102,248,74,71, - 102,102,71,102,74,248,74,248,71,71,74,248,74,248,71,71, - 71,74,71,71,71,74,71,71,71,71,71,71,71,74,244,71, - 71,71,71,71,71,71,71,71,74,74,71,74,71,74,71,71, - 71,71,71,71,74,71,74,71,71,71,74,144,74,71,74,144, - 74,71,71,71,74,71,74,74,144,74,144,74,144,71,74,71, - 144,144,140,140,71,74,71,71,71,71,71,71,71,140,140,26, - 67,12,12,67,122,187,17,26,101,8,8,8,211,211,211,8, - 211,211,8,8,101,150,17,211,26,101,8,8,8,8,211,8, - 8,211,8,211,8,101,150,17,243,26,101,8,8,211,8,8, - 211,8,211,8,211,139,101,150,17,211,26,49,8,8,211,211, - 211,8,211,211,8,139,8,101,150,17,243,26,101,8,8,8, - 211,211,8,8,211,8,211,139,67,150,17,243,42,49,8,8, - 211,211,211,8,8,211,211,8,8,101,150,17,211,26,101,8, - 8,8,211,211,8,8,211,8,211,139,67,150,17,211,42,49, - 8,8,211,211,211,8,8,211,8,211,139,67,150,17,211,26, - 101,8,8,8,8,211,8,8,211,8,211,139,101,150,17,243, - 26,101,8,8,8,211,8,8,211,211,8,211,139,101,150,17, - 243,42,49,8,8,211,211,211,8,8,8,211,8,139,67,150, - 17,211,26,101,8,8,8,8,211,8,8,211,8,139,211,67, - 150,17,243,42,49,8,8,8,8,211,8,8,211,8,211,139, - 101,150,12,243,26,101,8,8,8,211,211,8,8,211,211,8, - 139,101,150,17,243,26,101,8,8,8,211,211,8,8,211,8, - 211,139,101,150,17,243,42,49,8,8,8,8,211,211,8,211, - 8,139,211,67,150,17,243,42,49,8,8,8,211,211,211,8, - 211,211,8,8,101,150,17,211,26,101,8,8,8,211,211,211, - 8,8,8,8,139,101,150,17,8,26,8,8,67,8,8,208, - 191,191,191,191,191,191,121,191,191,121,191,191,191,191,121,191, - 16,16,121,191,121,191,191,121,238,121,121,121,121,16,16,121, - 125,69,121,121,121,16,16,16,16,16,121,121,16,121,16,16, - 16,121,16,16,16,16,208,16,208,16,16,54,208,208,208,63, - 74,248,74,74,74,74,74,102,74,102,74,102,248,102,102,71, - 71,248,74,248,74,102,74,71,74,74,74,71,102,71,74,248, - 71,248,74,248,74,71,71,71,74,71,71,71,71,71,71,71, - 71,71,71,71,71,71,74,71,71,71,71,74,71,74,71,71, - 74,71,140,71,71,71,74,74,71,71,71,71,71,71,74,71, - 71,74,71,74,248,102,248,74,102,102,102,71,102,248,102,71, - 74,74,71,248,74,102,74,102,74,248,71,71,71,74,248,74, - 71,102,71,74,71,74,71,71,71,71,71,74,71,144,71,71, - 144,144,144,71,71,71,71,71,71,74,71,74,71,144,140,71, - 71,74,74,71,74,71,71,74,71,71,71,71,74,71,74,144, - 140,144,140,144,144,144,144,74,144,74,144,71,140,144,144,74, - 74,71,71,74,71,144,74,71,74,71,144,74,71,140,140,26, - 182,12,12,8,219,26,17,122,101,139,8,211,8,211,8,211, - 8,211,8,8,101,150,132,141,42,49,211,8,211,211,8,211, - 8,211,8,211,8,139,150,17,141,42,49,211,8,211,8,211, - 211,8,211,8,8,8,139,150,132,243,122,101,211,8,211,8, - 211,8,211,8,187,211,8,139,150,17,141,42,49,8,211,8, - 211,8,211,8,211,8,8,8,8,150,17,243,122,101,211,8, - 211,8,211,8,211,8,211,8,8,101,150,132,141,42,49,8, - 211,8,211,8,211,8,211,8,8,8,139,150,132,243,122,101, - 211,8,211,8,211,8,211,8,8,8,8,139,150,132,141,42, - 49,211,8,211,211,8,211,8,211,8,8,8,139,150,17,141, - 42,49,211,8,211,8,109,211,8,211,8,8,8,139,150,12, - 243,122,101,211,8,211,8,211,8,211,211,8,8,8,139,150, - 132,141,42,49,211,8,211,211,8,211,8,211,187,211,8,139, - 150,17,243,122,101,211,8,211,211,8,211,8,211,8,8,8, - 139,150,17,141,42,49,8,211,8,211,8,211,8,211,8,8, - 8,139,150,17,141,42,49,8,211,8,211,8,211,8,211,8, - 8,8,8,243,17,243,122,101,211,211,211,8,211,8,211,8, - 187,211,8,139,150,17,243,122,101,211,8,211,8,211,8,211, - 8,211,8,8,101,150,132,141,42,49,8,211,8,211,8,211, - 8,211,211,8,8,139,150,17,8,26,8,8,8,8,8,208, - 16,191,191,191,191,191,191,191,191,121,191,121,191,191,191,191, - 121,16,16,121,16,69,121,121,121,121,121,191,121,16,16,121, - 121,121,121,121,121,121,16,121,121,121,16,16,16,16,121,16, - 16,121,16,16,16,16,16,16,54,208,208,54,208,63,208,63, - 74,74,74,102,74,74,74,102,74,74,248,74,102,74,71,74, - 102,74,248,74,102,71,102,248,74,248,71,102,71,74,248,74, - 102,74,71,71,71,248,74,71,71,71,71,74,74,74,74,71, - 71,71,74,71,74,71,71,71,74,74,74,71,74,71,71,74, - 71,71,71,144,71,74,71,71,74,71,140,71,74,74,71,71, - 71,71,74,102,102,74,74,248,74,71,71,102,74,102,74,71, - 74,248,74,74,102,71,71,71,71,71,74,248,74,71,74,71, - 71,71,74,71,71,71,74,71,71,74,71,71,74,71,144,71, - 71,74,71,71,71,74,144,71,71,71,71,144,71,71,71,74, - 71,71,71,71,71,71,71,71,74,71,74,74,144,144,71,74, - 144,71,71,74,71,74,74,144,74,144,71,140,144,74,74,144, - 144,140,144,144,144,71,144,140,144,74,74,144,71,140,140,26, - 8,243,243,8,42,12,17,42,101,211,8,211,211,8,211,109, - 8,109,211,8,67,150,26,211,122,139,211,211,211,8,211,109, - 8,211,187,109,8,67,243,219,139,122,101,211,211,211,211,187, - 211,187,211,187,109,8,67,150,26,182,42,101,211,8,211,211, - 187,109,211,8,211,211,8,67,243,219,139,122,139,211,211,211, - 8,211,109,8,211,187,109,211,67,150,17,182,42,101,211,8, - 91,211,109,8,109,8,109,211,8,67,150,26,211,122,101,211, - 211,8,211,211,8,109,8,109,109,8,67,150,26,182,26,101, - 211,211,211,211,187,211,211,187,109,109,8,67,150,26,211,122, - 139,211,8,211,211,211,187,109,8,109,109,8,67,150,219,139, - 122,139,211,8,211,211,8,211,8,187,109,109,8,67,150,219, - 182,42,101,211,8,91,211,211,187,211,187,109,109,8,67,150, - 26,211,122,139,211,211,211,8,211,109,8,211,8,8,8,67, - 150,17,182,42,101,211,8,211,211,211,187,109,8,109,109,8, - 67,243,219,139,122,139,211,211,211,8,211,8,109,8,109,109, - 8,139,150,17,139,122,139,211,211,211,8,211,211,8,211,187, - 109,211,67,150,17,182,42,101,8,211,211,211,187,109,211,8, - 211,8,8,139,150,17,182,42,101,211,8,211,211,8,109,211, - 8,109,211,8,67,150,26,211,122,139,211,211,8,211,211,187, - 109,8,187,109,8,67,150,17,67,26,8,8,141,12,8,208, - 191,191,191,191,191,191,121,16,16,191,191,191,16,121,16,16, - 16,16,16,121,16,121,16,121,16,121,121,121,16,16,16,121, - 16,121,16,16,16,121,16,121,16,16,16,16,16,16,121,16, - 16,16,16,16,208,16,208,16,208,16,16,208,16,208,208,208, - 100,74,74,100,74,102,74,102,74,74,102,74,248,102,102,74, - 248,74,248,74,102,71,74,248,74,102,74,102,248,74,102,71, - 71,74,71,74,71,71,74,71,74,74,71,71,71,71,74,74, - 71,74,71,74,102,71,74,71,74,71,71,71,74,74,71,140, - 140,74,74,74,144,74,71,71,71,71,144,74,71,71,71,74, - 74,74,71,74,248,102,74,248,74,74,248,248,74,248,102,248, - 74,102,248,74,102,102,74,102,74,71,74,71,71,71,74,74, - 74,71,71,74,74,71,74,74,71,74,71,71,71,71,74,71, - 71,144,140,144,71,71,71,144,144,71,71,71,71,71,144,71, - 71,71,71,71,144,74,71,71,71,71,71,74,71,144,71,74, - 140,144,144,140,144,144,140,144,140,140,144,74,144,144,74,74, - 71,71,74,140,140,74,71,74,144,71,74,144,71,140,144,26, - 139,12,12,211,26,26,26,42,101,139,211,211,91,211,8,91, - 8,109,211,8,139,150,26,8,42,101,139,211,91,211,91,8, - 211,211,8,139,187,139,12,26,8,122,101,139,211,91,8,211, - 8,211,211,8,139,8,139,150,26,8,122,101,139,211,211,91, - 139,8,109,187,8,139,187,139,12,26,8,122,101,139,211,8, - 91,211,91,8,211,8,211,211,139,12,26,8,122,101,139,139, - 211,8,91,8,109,211,187,139,8,139,150,26,8,122,101,139, - 211,211,211,91,8,109,211,187,211,8,139,150,26,8,122,101, - 139,211,91,8,211,8,211,8,211,211,8,139,150,26,8,122, - 101,139,211,211,91,8,211,8,109,8,211,8,139,12,26,8, - 122,101,139,211,211,91,211,187,139,211,8,211,8,139,12,26, - 8,122,101,139,139,211,8,211,211,8,211,8,211,8,139,150, - 26,8,122,101,139,211,91,211,91,8,211,187,211,211,211,139, - 12,26,8,122,101,139,211,211,91,8,211,8,109,8,211,8, - 139,12,26,8,122,101,139,211,8,91,211,91,8,211,211,211, - 8,139,12,26,8,122,101,139,211,8,91,211,91,8,211,8, - 211,211,139,12,26,8,122,101,139,211,211,8,211,8,211,187, - 8,139,8,139,12,26,8,122,101,139,211,211,91,211,187,211, - 8,109,211,8,139,150,26,8,122,101,139,211,211,211,91,8, - 211,211,211,211,8,139,150,26,182,12,8,8,8,8,8,208, - 208,208,121,191,16,191,191,191,16,16,16,191,16,191,16,121, - 191,121,16,16,121,121,121,121,121,16,121,16,121,16,16,121, - 121,121,121,16,16,121,121,16,16,16,121,16,16,16,16,121, - 16,16,16,16,16,16,16,16,208,208,54,208,16,208,208,16, - 74,74,100,102,74,74,74,74,102,102,74,102,102,74,71,102, - 74,102,74,248,71,74,248,74,102,74,74,71,74,248,71,74, - 102,71,74,71,74,74,71,74,71,71,74,71,140,71,71,71, - 74,71,71,71,74,74,74,74,74,74,74,74,74,71,71,71, - 71,71,71,71,74,140,144,140,140,71,74,71,71,74,74,71, - 71,102,74,102,102,102,102,74,102,102,74,74,248,74,74,71, - 74,74,74,248,71,71,71,71,71,74,71,74,74,71,71,71, - 74,71,74,144,71,74,71,71,71,144,71,71,74,71,144,71, - 71,71,71,71,144,71,71,74,71,71,74,144,144,71,71,74, - 71,144,144,71,71,144,71,144,71,140,144,71,140,71,140,144, - 144,74,74,144,140,140,71,140,71,144,140,144,140,140,144,144, - 144,140,144,71,144,144,144,71,74,140,71,71,140,140,39,187, - 8,12,12,8,219,12,187,122,101,211,211,211,8,211,187,211, - 8,211,211,8,139,150,17,211,122,101,211,211,211,8,139,187, - 109,109,8,211,8,67,150,17,211,42,101,211,139,211,211,211, - 211,187,139,187,211,8,67,150,17,211,42,101,211,211,211,8, - 8,187,211,211,8,211,8,67,150,17,211,42,101,211,211,8, - 211,8,211,211,187,211,211,8,67,150,17,211,42,101,139,8, - 211,211,8,211,8,211,8,211,8,67,150,17,211,42,101,211, - 91,211,211,8,109,8,211,211,211,8,67,150,17,211,42,101, - 211,139,8,211,211,211,109,8,187,211,211,139,150,17,211,42, - 101,211,211,8,139,91,211,109,8,109,211,211,67,150,17,211, - 42,101,211,211,8,8,211,211,187,8,211,211,211,67,150,17, - 211,42,101,139,8,211,8,91,109,211,8,109,211,211,67,150, - 17,211,42,101,211,211,211,8,211,8,211,8,211,211,8,139, - 150,17,211,42,101,211,211,8,139,91,211,109,8,109,211,109, - 67,150,17,211,42,101,211,211,8,211,8,243,109,8,187,211, - 211,67,150,17,211,42,101,211,211,8,211,8,211,211,187,211, - 211,8,67,150,17,211,42,101,211,139,91,211,211,187,211,139, - 187,211,211,67,150,17,211,42,101,211,211,211,8,211,8,211, - 187,211,211,8,139,150,17,211,42,101,211,91,211,211,8,211, - 8,211,187,211,8,67,150,17,8,12,8,8,8,12,67,208, - 208,191,191,208,191,208,16,191,16,191,191,16,191,121,208,121, - 16,16,16,16,16,16,121,16,121,121,16,16,16,16,16,121, - 16,121,16,121,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,208,16,208,208,16,208,208,16,208,16,16,208, - 74,74,100,100,102,100,102,74,100,102,74,74,102,102,71,248, - 74,102,74,102,102,102,74,71,71,248,74,102,74,74,71,74, - 71,71,74,71,71,71,71,74,71,74,71,74,71,140,71,71, - 74,71,74,71,71,74,71,74,74,74,71,71,74,74,74,71, - 140,140,140,71,71,74,71,71,71,71,144,140,74,71,74,74, - 74,102,74,74,74,102,102,71,74,248,102,74,248,102,74,248, - 74,102,74,74,102,74,74,248,74,71,71,71,74,71,71,74, - 74,71,74,71,144,74,71,74,71,74,144,71,144,74,144,144, - 74,71,71,71,71,144,71,144,144,144,71,71,144,140,71,144, - 74,71,144,140,71,144,74,144,71,71,140,71,71,71,71,74, - 144,140,74,144,140,144,140,140,140,71,140,144,140,140,140,140, - 144,140,140,74,74,140,140,71,71,140,140,71,71,140,140,94, - 211,109,12,8,26,26,17,122,101,211,211,8,211,211,8,8, - 109,8,211,8,67,12,17,243,122,101,139,8,211,8,211,211, - 8,211,8,211,211,67,17,17,243,122,101,139,8,211,8,211, - 8,8,211,8,211,91,67,12,17,243,122,101,211,211,211,211, - 211,211,8,109,8,211,211,67,12,17,243,122,101,139,211,211, - 211,8,187,139,8,211,8,91,67,12,17,243,122,101,139,211, - 211,8,211,111,91,8,109,211,91,67,150,17,243,122,101,139, - 8,211,211,211,187,211,8,109,211,91,67,12,17,243,122,101, - 139,8,211,211,91,8,211,8,211,211,8,67,12,17,243,122, - 101,211,211,8,211,211,8,109,91,8,211,91,67,12,17,243, - 122,101,211,211,211,211,211,8,211,109,187,211,91,67,12,17, - 243,122,101,139,211,211,211,211,8,109,91,8,211,91,67,12, - 17,243,122,101,139,8,211,8,211,111,8,109,187,211,8,67, - 150,17,243,122,101,211,211,8,211,211,8,109,91,8,211,91, - 67,12,17,243,122,101,139,211,211,211,211,211,187,211,211,8, - 8,67,12,17,243,122,101,139,211,211,211,8,187,139,8,211, - 187,211,67,12,17,243,122,101,211,211,8,211,211,211,187,211, - 8,211,8,67,12,17,243,122,101,211,211,211,8,211,91,8, - 211,8,211,8,67,12,17,243,122,101,139,8,211,211,211,187, - 8,139,8,211,91,139,150,17,8,26,8,141,8,8,8,208, - 208,191,191,208,191,191,16,16,208,16,191,16,191,16,191,16, - 16,16,121,16,16,16,16,16,16,121,121,16,121,16,16,121, - 16,16,16,16,16,121,16,16,16,16,16,16,16,16,16,16, - 16,16,208,16,16,16,54,16,16,16,16,16,208,16,16,208, - 100,74,74,74,100,102,100,102,74,74,102,102,74,74,102,74, - 102,74,248,74,71,74,248,74,102,74,74,71,102,248,74,71, - 74,74,71,74,74,74,71,74,71,140,144,71,71,71,74,74, - 74,71,71,74,74,71,74,71,74,71,74,74,71,74,71,140, - 71,71,71,140,140,71,71,140,140,144,74,71,74,74,74,102, - 74,74,102,102,102,248,74,74,102,74,74,248,74,74,102,74, - 71,74,248,71,74,102,71,74,71,74,74,74,71,71,74,71, - 140,71,71,74,74,144,140,71,74,71,71,71,71,71,71,74, - 144,144,74,144,71,74,144,74,71,74,71,74,71,71,144,71, - 71,140,71,71,140,71,71,71,74,144,71,144,140,144,140,144, - 140,144,144,140,71,140,144,144,144,39,144,140,71,144,144,140, - 140,144,144,140,144,71,71,140,140,144,144,114,140,114,114,17, - 243,12,187,8,219,12,187,42,101,211,211,211,139,211,109,211, - 211,211,211,211,139,132,17,109,42,49,211,139,8,211,211,211, - 109,211,211,8,211,139,150,17,109,42,101,211,211,211,211,211, - 109,211,211,211,8,139,8,132,17,211,26,101,211,211,211,211, - 211,211,211,211,109,8,211,139,132,17,109,42,101,211,211,8, - 139,139,211,211,211,211,8,211,67,132,17,109,42,101,211,211, - 211,211,211,211,211,211,211,8,139,8,132,17,109,42,49,211, - 211,211,211,211,211,211,8,211,8,139,8,132,17,109,42,101, - 211,211,8,211,211,211,211,211,8,211,211,139,132,17,109,42, - 101,211,139,211,211,211,109,139,211,211,8,139,8,132,17,109, - 42,101,211,211,211,211,211,109,211,211,211,8,211,139,132,17, - 109,42,101,211,211,139,8,211,109,139,211,211,8,139,8,132, - 17,211,42,101,139,211,211,211,211,211,211,211,211,211,211,139, - 132,17,109,42,101,211,139,211,211,211,109,139,211,211,8,211, - 139,132,17,109,42,101,211,211,8,211,211,211,211,211,211,211, - 211,139,132,17,109,42,101,211,211,8,139,211,139,8,211,211, - 8,211,139,132,17,109,122,49,139,8,211,211,211,211,139,8, - 211,211,211,139,132,17,109,42,101,211,211,211,211,139,211,211, - 211,211,211,211,139,132,17,211,122,49,139,211,211,211,211,139, - 211,8,211,8,8,67,150,26,8,12,8,8,8,12,8,208, - 208,191,191,191,191,208,191,191,191,208,16,191,208,191,16,16, - 121,16,16,16,191,16,191,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 208,208,16,16,208,208,208,208,208,208,208,208,16,208,208,16, - 100,74,100,74,74,74,74,102,74,74,74,248,102,74,102,74, - 248,102,102,74,102,74,102,74,71,74,74,74,74,74,74,71, - 71,74,71,71,71,74,74,71,74,74,74,74,74,140,71,71, - 74,74,71,71,74,71,74,71,74,74,74,74,140,74,71,74, - 74,140,71,71,74,74,71,71,74,74,71,74,71,74,74,74, - 102,74,74,74,74,102,102,74,102,102,74,102,102,74,248,102, - 71,74,74,74,71,74,71,74,71,71,74,74,74,74,71,74, - 140,144,74,71,71,74,144,74,74,144,140,144,74,71,71,71, - 74,144,71,144,71,71,144,140,71,144,71,144,140,71,140,144, - 71,71,144,71,144,140,71,144,74,140,74,71,140,71,140,144, - 74,140,74,114,144,74,140,140,144,140,140,114,140,140,140,144, - 140,140,144,140,140,140,144,74,74,74,74,144,74,39,39,26, - 243,187,12,8,42,26,17,122,49,139,211,211,211,211,61,211, - 211,109,8,8,67,12,17,109,0,67,211,211,211,211,211,91, - 211,109,211,211,8,67,17,17,109,122,49,211,211,211,211,211, - 91,139,187,211,8,139,67,150,219,109,122,49,139,139,8,211, - 211,61,211,211,211,211,8,67,17,219,211,122,49,211,211,211, - 211,211,109,109,211,211,8,8,67,132,219,211,122,49,211,211, - 211,211,8,211,211,211,211,8,139,139,150,17,109,0,67,139, - 211,8,211,211,211,91,211,211,8,139,67,150,219,211,122,49, - 211,211,139,211,8,61,211,211,211,211,8,67,150,219,211,122, - 49,211,211,8,139,211,91,211,211,8,211,139,67,150,219,211, - 122,49,139,211,211,211,211,211,211,211,8,211,211,67,150,219, - 211,122,67,211,211,8,211,211,211,187,139,8,8,139,67,150, - 219,109,122,67,211,211,211,211,211,211,211,211,8,211,8,139, - 150,219,211,122,49,211,211,8,139,211,91,211,211,8,211,211, - 67,150,219,109,122,49,211,211,211,211,211,211,211,211,211,8, - 8,67,17,219,211,122,49,211,211,211,211,211,61,139,211,211, - 211,8,67,12,219,211,122,139,139,211,211,211,211,211,211,109, - 211,211,8,67,132,219,211,122,49,139,211,211,8,211,211,109, - 211,211,211,8,67,150,219,211,122,67,211,139,8,211,211,61, - 211,211,211,139,8,139,150,17,8,26,8,8,8,243,8,208, - 208,208,191,208,121,191,208,16,191,191,16,16,16,191,16,208, - 191,208,191,16,16,16,16,191,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,208,16,208,16,16,16, - 16,16,16,16,54,16,54,16,16,54,16,16,16,16,208,208, - 74,100,74,102,100,100,102,74,102,102,102,74,74,102,74,102, - 74,74,74,102,74,102,74,74,102,102,71,102,71,71,74,74, - 74,74,74,74,74,74,71,74,71,71,74,144,140,71,74,144, - 71,71,71,74,71,74,74,74,74,71,74,71,71,140,74,140, - 144,74,74,74,71,140,71,74,71,74,74,74,74,74,102,74, - 74,74,102,74,102,74,74,248,74,74,102,74,74,102,74,74, - 102,74,102,248,74,74,74,74,74,74,71,74,74,71,74,71, - 71,74,71,74,74,74,71,71,144,71,71,71,144,140,71,74, - 71,71,74,74,144,74,71,71,144,74,140,71,71,144,71,74, - 144,140,71,74,71,71,140,74,144,71,140,144,71,114,71,74, - 114,71,140,140,140,114,144,140,140,140,144,140,144,140,144,140, - 140,144,140,140,140,140,140,140,144,140,140,74,144,140,114,187, - 12,150,91,8,219,12,26,42,101,139,139,139,139,139,139,211, - 211,139,139,139,139,132,26,109,26,101,139,139,139,139,139,139, - 139,211,211,139,139,139,132,26,243,42,101,139,139,139,139,139, - 139,139,139,211,139,211,67,17,26,211,26,139,139,139,139,139, - 139,139,139,211,211,139,139,139,150,26,109,42,101,139,139,139, - 211,139,211,139,211,211,139,211,139,12,26,243,42,101,139,139, - 139,139,139,139,211,211,211,139,139,67,17,26,243,26,101,139, - 139,139,139,139,139,139,211,211,139,211,67,17,26,109,26,101, - 139,139,139,139,139,139,211,211,211,139,139,139,17,26,109,42, - 101,139,139,211,139,139,211,139,211,211,139,211,67,17,26,109, - 42,139,139,139,139,139,139,139,211,211,139,139,8,67,17,26, - 109,42,101,139,139,139,139,139,139,139,211,211,139,211,67,17, - 26,211,26,101,139,139,139,139,139,211,211,139,211,139,139,67, - 17,26,109,42,101,139,139,139,211,139,139,211,211,139,139,8, - 67,17,26,211,42,101,139,139,139,139,139,211,211,211,211,139, - 139,139,150,26,109,42,101,139,139,139,139,139,139,211,211,211, - 139,139,139,132,26,109,26,101,139,139,139,139,139,211,211,211, - 211,139,139,139,12,26,109,42,139,139,139,139,139,139,211,211, - 211,211,139,139,139,17,26,109,42,101,139,139,139,139,139,139, - 211,211,211,211,139,67,150,17,8,12,8,141,8,8,141,208, - 191,191,191,191,191,208,121,16,16,16,16,191,208,16,191,16, - 16,121,208,16,16,16,16,16,16,16,16,16,208,16,16,16, - 16,16,16,16,16,16,16,16,208,16,16,16,16,208,208,16, - 16,16,208,208,208,208,208,208,208,208,208,208,208,208,54,16, - 74,102,100,74,102,100,74,74,74,74,102,102,74,102,74,102, - 102,102,74,102,74,102,74,74,74,102,74,74,74,74,102,74, - 71,74,74,74,74,71,140,71,140,144,74,74,71,140,71,74, - 140,140,144,74,71,71,74,71,74,74,74,74,74,74,74,74, - 74,71,144,74,74,140,74,74,74,144,74,74,74,74,74,102, - 74,102,74,74,102,102,74,102,102,74,248,102,74,74,102,74, - 74,74,74,102,74,74,71,74,74,74,71,74,71,74,74,74, - 74,144,140,71,71,140,74,71,140,140,140,74,71,144,140,74, - 74,144,71,71,144,140,144,74,144,71,144,74,71,71,71,71, - 71,140,144,144,144,71,144,74,144,71,144,140,140,140,114,74, - 114,144,144,140,140,140,140,144,140,140,140,140,140,140,140,140, - 140,144,140,144,140,140,140,140,140,144,114,140,144,39,39,187, - 12,150,187,8,42,187,26,78,91,91,26,91,91,26,91,26, - 91,26,91,26,67,150,26,187,42,187,91,26,91,91,26,91, - 26,91,26,91,26,67,150,26,8,162,8,91,26,91,91,187, - 26,91,26,91,26,26,67,132,26,12,78,91,91,26,91,91, - 26,26,91,26,91,26,91,182,150,26,187,42,8,91,26,91, - 26,91,91,26,91,91,26,12,182,150,26,187,42,8,91,26, - 91,26,91,26,91,26,91,26,26,67,132,26,12,78,8,91, - 26,91,26,91,26,91,26,91,26,26,67,132,26,187,42,8, - 91,26,91,26,187,26,91,26,91,26,26,67,150,26,8,122, - 8,91,26,91,26,12,26,91,26,91,26,26,67,132,26,8, - 122,91,12,91,26,91,26,91,91,26,91,26,12,67,132,26, - 8,122,8,91,26,91,91,26,91,26,91,26,91,26,67,132, - 26,12,78,8,91,26,91,91,26,91,91,26,91,26,26,67, - 132,26,12,78,8,26,91,91,26,91,26,91,26,91,26,26, - 67,132,26,8,162,8,91,91,26,91,26,91,91,26,91,26, - 91,182,150,26,187,42,187,91,26,91,26,187,26,91,26,91, - 26,26,67,132,26,8,162,8,91,26,91,26,91,26,91,91, - 26,91,26,67,132,26,8,122,91,91,26,91,26,91,26,91, - 91,26,91,26,67,150,26,12,78,91,91,26,91,26,187,26, - 91,26,91,91,26,8,150,12,8,12,8,12,8,12,7,208, - 208,208,191,191,191,191,191,208,191,16,208,191,191,16,16,16, - 16,208,121,208,121,16,16,16,16,16,16,16,16,16,208,16, - 16,16,16,208,16,16,208,16,16,208,16,16,16,16,16,16, - 208,16,208,16,208,208,16,16,16,208,16,54,16,208,208,208, - 100,100,74,100,100,102,100,102,102,102,74,74,102,102,74,74, - 74,74,102,74,74,74,102,102,74,74,74,102,71,71,74,74, - 74,71,71,74,74,71,74,71,74,74,74,71,140,74,71,71, - 71,71,74,74,74,74,74,74,71,74,74,74,71,74,74,74, - 74,140,74,140,74,71,140,71,74,74,74,74,74,74,74,74, - 74,74,102,74,74,74,74,74,74,102,74,74,102,74,74,102, - 102,74,74,74,248,74,74,74,71,71,74,74,71,74,71,74, - 71,74,71,140,140,71,71,74,71,71,71,71,140,74,71,140, - 144,74,144,140,71,71,74,144,74,140,74,144,144,140,144,140, - 144,71,74,74,71,140,71,71,74,140,144,140,71,114,71,114, - 140,140,140,71,144,140,144,140,144,144,140,144,140,144,144,140, - 144,140,140,140,74,140,144,140,140,140,140,71,140,114,114,166, - 8,12,187,8,219,17,12,0,219,219,219,26,219,219,183,187, - 42,26,183,219,8,150,12,211,0,26,17,219,26,183,219,183, - 187,26,26,183,219,8,132,187,211,0,26,219,219,26,183,42, - 187,183,219,219,187,26,8,150,12,211,0,219,219,219,26,183, - 187,187,183,42,26,219,219,8,150,12,211,0,26,219,187,219, - 187,42,26,183,42,183,187,26,8,150,12,211,0,26,219,187, - 26,26,42,187,219,42,219,187,26,8,150,187,211,0,26,219, - 187,26,187,42,187,183,26,219,187,26,8,150,12,211,0,26, - 219,219,219,187,42,187,187,26,26,187,17,8,132,17,211,0, - 26,219,219,219,187,42,187,183,219,219,219,26,8,150,17,211, - 0,219,26,26,26,26,26,42,183,219,26,183,26,8,150,17, - 211,0,26,219,219,26,183,26,183,187,183,219,219,26,8,150, - 12,211,0,26,219,219,219,219,42,26,183,26,26,187,26,8, - 150,12,211,0,26,219,219,219,219,219,187,219,219,219,187,26, - 8,150,17,211,0,26,219,183,187,26,26,26,183,26,42,219, - 219,8,150,12,211,0,26,17,26,183,187,42,187,183,26,219, - 187,219,8,12,17,211,0,26,219,187,26,26,26,26,183,42, - 26,183,219,8,150,17,211,0,219,219,219,26,187,26,26,183, - 42,26,183,219,8,12,12,211,122,219,219,219,219,187,26,187, - 183,219,219,219,26,182,17,17,8,26,8,8,8,12,8,208, - 208,191,191,208,208,191,16,191,208,191,191,16,208,191,208,191, - 121,208,121,208,16,121,16,16,16,16,16,16,208,16,16,16, - 16,208,16,16,208,16,16,208,16,16,16,16,208,16,208,208, - 16,208,16,208,208,208,208,16,208,16,208,208,208,16,208,208, - 74,100,74,100,100,100,100,100,100,102,100,74,74,102,74,102, - 74,74,102,102,102,74,74,74,102,74,74,102,74,71,74,71, - 74,74,71,74,74,71,140,74,74,144,140,71,71,140,71,140, - 74,74,71,74,71,71,74,74,74,74,74,74,74,74,71,140, - 74,74,74,74,74,74,140,140,74,71,74,74,74,74,74,74, - 74,74,74,74,102,100,74,74,74,74,102,74,102,102,74,74, - 102,102,74,74,74,248,74,74,74,74,71,74,140,74,74,140, - 140,140,71,71,74,74,71,140,74,74,140,71,71,140,71,74, - 71,140,71,140,144,144,74,144,71,71,71,74,74,74,71,140, - 144,144,144,140,71,140,144,144,74,71,71,140,140,114,140,144, - 140,144,39,140,144,140,140,140,140,140,140,144,140,140,140,140, - 144,140,144,114,74,140,140,140,144,140,114,144,74,39,114,26, - 12,12,187,211,26,42,26,122,8,139,67,139,139,139,139,67, - 182,139,139,139,8,150,219,8,0,211,139,67,139,139,139,139, - 182,67,139,139,139,8,150,42,243,0,211,139,139,139,67,139, - 67,139,139,139,139,139,8,150,219,243,0,8,101,139,139,139, - 139,139,67,182,139,139,139,8,150,219,243,0,211,139,139,139, - 67,139,139,67,139,139,139,67,8,187,219,243,0,211,139,67, - 67,67,139,139,67,139,139,139,139,8,150,219,243,0,211,139, - 67,139,67,139,139,67,139,139,139,139,8,150,219,243,0,211, - 139,139,139,67,139,139,182,182,139,139,139,8,150,42,243,0, - 211,101,139,139,67,139,139,139,139,139,139,139,8,150,26,243, - 0,211,67,67,67,139,139,139,139,67,139,139,139,8,150,42, - 243,0,211,139,67,139,67,139,139,139,139,139,139,139,8,132, - 219,243,0,211,139,139,139,67,139,139,67,182,139,139,139,8, - 150,219,211,0,211,139,139,139,139,139,67,139,139,139,139,139, - 8,150,42,243,0,211,139,139,67,67,139,139,67,67,139,139, - 139,8,150,219,243,0,211,67,139,139,67,139,139,67,139,139, - 139,139,139,150,42,243,0,211,139,67,67,139,99,139,67,67, - 139,139,139,8,150,26,243,0,8,101,67,139,67,139,139,67, - 67,139,139,139,139,132,219,243,0,8,101,139,139,67,139,139, - 139,139,139,139,139,8,12,219,141,12,8,8,8,12,8,208, - 208,16,191,191,16,191,16,191,16,16,208,191,16,16,16,191, - 208,191,16,16,121,208,121,16,16,16,16,208,16,16,208,16, - 16,16,16,16,16,16,16,208,16,208,16,16,16,16,16,16, - 16,208,208,54,208,63,208,16,208,208,208,208,208,208,16,208, - 100,102,100,100,100,102,100,102,74,100,102,102,102,102,74,100, - 102,102,74,74,74,102,102,102,74,74,102,74,74,102,74,102, - 74,71,74,71,74,74,74,74,74,74,74,74,74,74,140,71, - 74,74,144,74,74,74,74,74,74,74,74,74,74,74,74,74, - 74,74,71,74,74,74,74,74,140,140,74,74,74,74,74,74, - 74,74,74,74,74,74,102,100,100,102,74,102,74,74,102,74, - 74,74,102,102,102,74,102,102,248,74,71,74,71,74,74,74, - 71,74,140,74,74,140,140,71,144,71,71,140,140,71,140,71, - 140,71,144,71,74,74,144,71,140,144,140,144,144,140,144,74, - 74,74,74,71,144,71,74,74,144,140,140,144,71,140,140,140, - 140,140,144,140,140,140,140,144,140,144,140,140,114,140,144,140, - 140,144,140,140,140,140,144,140,140,140,140,140,114,114,39,166, - 243,17,12,12,26,0,187,0,8,139,139,211,211,139,211,211, - 8,211,139,139,211,12,122,182,0,8,139,139,211,139,211,139, - 211,211,8,139,139,211,12,122,211,0,8,139,139,139,211,211, - 139,187,211,211,139,182,211,12,122,211,0,211,139,139,211,211, - 211,139,211,211,211,139,139,211,187,122,109,0,8,139,139,211, - 139,109,139,109,8,211,139,139,211,150,122,109,0,8,139,211, - 211,211,109,139,187,211,211,139,182,211,12,122,211,0,8,139, - 211,211,211,211,211,8,211,211,139,182,211,17,122,211,0,8, - 139,139,139,211,109,139,139,211,211,139,139,211,187,122,211,0, - 8,139,139,139,211,211,139,211,109,139,139,182,211,187,122,211, - 0,211,139,211,211,211,139,139,211,8,211,139,139,211,187,122, - 211,0,8,139,211,139,211,211,211,211,211,211,139,182,211,187, - 122,211,0,8,139,139,139,211,211,139,211,8,139,139,182,211, - 187,122,243,0,8,139,139,211,211,211,139,187,211,211,139,182, - 211,187,122,211,0,8,139,139,211,211,211,211,109,8,211,139, - 139,211,12,122,211,0,8,139,139,139,211,211,139,187,211,211, - 139,139,8,187,122,211,0,8,139,139,211,139,211,211,109,211, - 8,139,139,211,187,122,211,0,139,139,109,139,109,139,211,109, - 211,8,139,139,243,12,122,211,0,211,139,139,211,139,109,139, - 211,211,211,139,139,211,150,42,8,12,8,243,8,8,141,208, - 208,191,208,191,191,16,16,16,191,191,16,191,208,191,191,16, - 16,208,121,208,191,16,191,16,16,16,16,16,208,16,208,16, - 16,208,16,208,16,208,16,16,208,16,16,208,208,16,208,208, - 208,16,208,208,208,208,208,208,16,16,208,208,208,208,208,208, - 100,100,100,100,100,100,100,100,102,100,74,100,100,102,102,74, - 74,102,102,102,74,74,74,74,102,74,74,102,74,102,74,74, - 74,74,74,74,74,74,71,140,74,71,74,140,71,74,74,74, - 71,74,74,74,140,74,74,144,74,71,74,74,74,74,74,74, - 74,169,140,140,74,74,74,74,74,74,74,140,74,74,74,74, - 74,74,74,100,74,74,74,102,100,100,74,102,102,100,74,102, - 74,74,74,74,74,74,74,100,74,74,74,74,74,74,71,74, - 74,74,71,140,71,74,74,74,74,140,71,71,140,74,140,74, - 140,74,144,140,71,74,140,71,140,71,140,140,71,144,140,144, - 144,144,140,144,140,144,144,74,144,140,140,140,144,144,140,114, - 140,140,140,140,140,140,140,140,140,140,140,140,114,39,140,144, - 140,140,144,140,140,140,140,140,144,140,140,140,140,39,39,187, - 243,132,187,8,219,122,26,0,8,211,211,211,109,109,187,211, - 211,8,211,139,243,17,42,243,0,8,211,211,109,109,187,211, - 187,211,8,211,139,243,17,42,8,0,8,211,109,109,109,109, - 211,8,211,211,211,139,243,17,42,8,0,8,211,211,211,109, - 187,211,8,8,8,211,139,243,17,26,243,0,8,211,109,187, - 139,187,211,187,211,8,211,139,211,17,26,243,0,8,139,109, - 211,211,109,139,8,8,139,211,139,243,17,42,243,0,8,139, - 109,109,211,109,211,187,139,211,211,139,211,17,42,211,0,8, - 139,109,109,211,187,8,109,8,211,211,139,243,17,42,243,0, - 8,139,109,109,109,109,8,211,187,139,211,139,8,17,42,243, - 0,8,139,109,211,109,109,187,211,211,211,211,139,243,17,42, - 211,0,8,139,109,109,211,211,187,8,211,211,211,139,8,17, - 42,8,0,8,211,109,109,109,187,211,109,187,139,8,139,8, - 17,42,8,0,8,211,182,211,109,109,211,8,211,211,211,139, - 8,17,42,243,0,8,139,109,109,109,109,211,187,139,187,139, - 139,243,17,42,211,0,187,139,109,109,109,109,211,8,211,187, - 211,182,8,17,42,8,0,8,139,109,109,211,211,8,109,211, - 187,139,139,243,17,42,243,0,8,139,109,211,109,109,8,109, - 211,8,211,182,243,17,42,8,0,8,211,254,8,109,109,8, - 187,211,211,8,182,243,17,26,211,12,8,243,8,12,8,208, - 208,191,16,191,191,191,208,16,16,191,16,16,16,16,208,191, - 208,121,191,16,121,208,16,16,16,16,16,16,16,16,208,16, - 208,16,208,16,16,208,16,208,16,208,16,16,208,16,16,16, - 208,208,208,208,208,208,208,16,208,208,208,208,208,208,16,208, - 100,100,100,100,100,100,102,100,100,100,100,102,74,100,100,102, - 100,100,100,74,102,102,102,102,74,102,102,74,74,74,102,74, - 102,74,71,74,74,74,74,71,74,140,74,74,74,74,140,140, - 74,74,71,140,71,74,140,74,74,140,74,74,74,74,74,74, - 140,74,74,74,74,74,74,74,74,140,140,74,74,74,74,74, - 100,74,74,74,74,100,74,100,74,102,100,74,74,102,102,74, - 102,102,74,102,102,74,74,102,74,74,74,71,74,74,74,74, - 74,74,140,74,74,74,74,74,140,74,74,140,74,74,71,74, - 71,140,140,71,140,140,71,140,71,140,71,74,140,74,74,140, - 74,74,71,74,71,74,74,144,140,71,74,144,140,140,144,140, - 140,140,140,144,140,140,140,140,140,140,140,140,140,140,140,114, - 140,140,140,140,140,144,140,140,140,144,140,71,144,114,39,17, - 91,187,12,91,183,91,26,0,8,139,139,139,139,139,139,139, - 211,211,211,67,211,150,122,187,0,8,139,139,139,139,139,139, - 139,139,211,211,67,211,150,122,187,0,8,67,139,139,139,139, - 139,211,211,139,211,67,211,150,122,187,0,8,67,139,67,139, - 139,139,211,211,211,211,67,211,150,122,187,0,8,139,67,67, - 139,139,139,139,211,211,211,67,243,150,122,187,0,211,139,139, - 139,139,139,139,211,211,211,211,67,211,150,162,187,0,8,139, - 139,139,139,139,139,139,211,211,139,67,243,150,0,12,0,8, - 139,139,139,139,139,139,211,211,211,211,67,211,150,122,187,0, - 8,139,139,139,139,139,139,139,139,211,211,67,211,150,122,187, - 0,211,139,139,67,139,139,139,211,211,211,211,67,211,150,0, - 12,0,8,139,139,139,139,139,139,139,211,139,211,67,211,150, - 122,187,0,8,139,139,139,139,139,139,139,139,211,139,67,211, - 150,162,187,0,8,139,139,67,139,139,139,211,211,139,211,67, - 211,150,122,187,0,8,139,139,139,139,139,139,139,139,139,211, - 67,211,150,0,12,0,211,139,67,139,139,139,139,139,139,139, - 139,139,211,150,122,187,0,8,139,139,139,139,139,139,139,211, - 139,211,67,211,150,122,187,0,8,139,139,139,139,139,139,211, - 211,211,139,139,211,150,122,187,0,211,139,139,139,139,139,139, - 139,211,8,67,139,211,150,0,8,26,8,12,8,8,141,208, - 208,208,191,208,208,191,208,191,191,16,208,191,208,191,16,191, - 208,208,16,16,16,16,16,16,16,16,16,16,208,16,16,16, - 208,16,16,208,16,16,208,16,16,208,208,208,16,208,208,208, - 16,208,208,63,208,208,208,208,54,208,16,208,208,63,208,208, - 100,100,100,100,100,100,100,102,100,102,100,100,102,74,100,102, - 102,102,100,100,100,100,100,74,74,74,102,74,74,74,74,74, - 74,74,74,74,74,74,74,74,74,140,74,140,74,74,71,140, - 140,140,74,74,74,74,74,140,74,140,140,74,169,74,100,100, - 74,100,74,74,74,74,74,74,74,74,74,140,140,140,140,74, - 74,100,74,74,74,100,74,74,100,74,102,100,74,100,100,74, - 100,102,74,100,74,102,100,74,74,102,74,74,74,74,74,74, - 74,74,74,74,74,74,74,74,74,140,74,74,144,169,140,140, - 74,74,140,74,74,140,144,140,144,140,140,140,144,140,74,144, - 140,140,144,140,144,144,74,71,114,144,74,140,140,140,144,114, - 140,140,140,140,140,140,140,140,114,140,140,140,144,140,140,140, - 140,140,140,140,74,140,140,140,140,140,39,144,140,114,39,166, - 8,12,17,12,219,12,91,0,187,187,12,187,187,8,111,91, - 12,12,91,17,12,187,26,8,162,187,187,12,187,8,187,109, - 91,91,12,26,12,109,132,42,8,162,26,187,187,187,187,109, - 91,187,12,187,91,12,12,150,42,8,162,26,187,12,187,187, - 211,91,187,187,187,91,12,12,150,42,8,162,26,187,187,187, - 109,187,109,91,12,187,91,26,12,150,42,8,162,187,187,187, - 187,187,111,187,111,91,12,26,12,12,150,42,8,162,187,187, - 187,187,187,187,111,187,187,26,91,12,12,150,42,8,162,187, - 187,187,187,187,211,91,187,91,12,26,12,109,150,42,8,162, - 187,187,12,187,187,109,91,187,187,12,91,12,150,150,42,8, - 162,187,187,187,187,187,8,111,91,91,12,26,12,109,150,42, - 8,162,187,187,187,187,187,109,187,187,12,187,91,12,12,150, - 42,8,162,187,187,187,8,111,187,187,187,187,91,26,12,12, - 150,26,8,162,26,187,187,187,187,187,109,91,187,187,91,12, - 150,150,42,8,162,187,187,187,187,109,91,187,187,12,12,26, - 12,12,150,42,8,0,26,187,187,187,187,109,91,187,12,187, - 12,12,150,150,42,8,162,187,187,187,187,187,111,91,187,12, - 12,26,12,243,150,42,8,162,187,187,187,187,187,187,109,91, - 91,12,187,12,12,150,42,8,162,187,187,187,187,109,91,187, - 187,12,91,17,26,187,150,26,8,26,8,12,8,12,7,208, - 191,191,208,191,16,191,208,191,191,191,191,191,208,191,208,16, - 16,16,208,16,16,16,16,16,16,16,208,16,16,208,16,16, - 16,208,16,208,208,16,16,208,16,208,16,208,16,208,16,208, - 208,208,208,208,208,208,208,208,16,208,208,208,208,54,208,208, - 100,100,100,100,100,100,100,100,102,100,100,74,100,102,74,100, - 100,100,102,74,102,74,102,102,102,100,100,102,74,100,102,74, - 74,100,74,74,74,74,74,74,74,74,74,74,140,74,74,74, - 74,74,74,140,140,74,140,74,74,74,74,74,74,100,140,74, - 100,74,74,140,74,100,140,140,140,100,140,100,74,74,74,140, - 140,140,74,74,74,74,74,100,74,100,100,102,100,102,102,102, - 102,100,100,102,100,74,74,102,74,74,100,74,74,74,74,74, - 74,74,74,140,74,140,74,74,74,74,74,140,74,74,74,74, - 140,74,74,140,140,74,74,140,74,140,71,74,140,71,140,140, - 140,140,140,140,140,74,140,140,74,74,114,140,144,140,140,140, - 140,140,140,140,140,144,140,140,140,140,140,140,140,140,140,140, - 140,74,114,140,140,140,144,140,140,144,140,140,140,39,114,132, - 91,17,150,12,26,12,219,0,0,0,122,162,0,0,0,0, - 0,0,0,0,219,132,26,187,0,0,0,162,0,0,0,0, - 0,0,0,0,0,26,187,219,187,0,0,122,122,0,0,0, - 0,0,0,0,0,0,219,187,219,187,0,0,0,122,0,0, - 0,0,122,0,0,0,0,219,187,26,187,0,0,0,122,0, - 0,0,0,0,0,0,0,0,219,187,26,187,0,0,0,122, - 0,122,122,0,0,0,0,0,0,219,132,26,187,0,0,0, - 122,122,122,122,122,122,0,0,0,0,17,166,26,187,0,0, - 0,122,0,0,0,0,0,0,0,0,0,26,187,26,187,0, - 0,0,122,0,0,0,0,0,0,0,0,0,26,187,26,187, - 0,0,0,122,162,0,0,0,0,0,0,0,0,26,166,26, - 187,0,0,0,122,0,0,0,0,0,0,0,0,0,219,187, - 219,187,0,0,0,0,0,122,122,0,0,0,0,0,0,17, - 166,219,187,0,0,0,0,122,122,0,0,0,0,0,0,0, - 26,187,26,187,0,0,0,122,0,0,0,0,0,0,0,0, - 0,219,132,26,187,0,0,0,122,122,0,0,0,0,0,0, - 0,0,26,187,219,187,0,0,0,122,0,122,0,0,0,0, - 0,0,0,26,187,26,187,0,0,0,122,122,0,0,0,0, - 0,0,0,0,219,17,219,187,0,0,122,122,0,0,122,0, - 0,0,0,122,122,219,17,26,8,12,8,8,12,17,8,208, - 208,191,191,208,191,208,191,208,208,208,208,16,208,16,191,208, - 16,16,16,191,208,16,16,208,16,16,16,16,208,16,16,208, - 16,16,16,208,16,208,16,208,208,16,208,16,208,208,208,208, - 208,54,208,208,63,208,208,16,208,208,208,208,208,208,16,208, - 100,100,100,100,100,100,100,100,102,100,100,102,100,100,102,100, - 102,100,102,100,102,100,100,100,102,102,100,102,100,100,100,102, - 74,100,74,74,100,74,74,74,74,74,74,74,74,74,74,74, - 74,74,74,74,140,74,74,74,74,74,140,74,74,74,100,74, - 100,74,100,140,140,100,100,100,140,100,74,100,74,100,74,100, - 74,74,74,74,74,74,74,74,74,74,100,100,100,100,100,100, - 74,102,100,102,100,74,100,74,100,74,100,74,74,74,74,140, - 74,140,100,140,74,74,74,140,74,74,74,74,140,140,140,74, - 140,140,74,71,74,140,74,140,140,140,140,71,140,74,71,140, - 71,140,71,140,144,140,144,140,144,74,144,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,114,140,140,140,140,140,144, - 114,74,140,140,144,140,140,140,140,140,140,144,140,39,114,166, - 12,17,12,8,26,12,42,122,26,26,26,26,26,42,26,17, - 219,219,219,26,17,132,183,12,42,12,26,26,26,42,42,219, - 219,17,219,219,219,219,17,219,12,42,26,26,26,26,26,42, - 26,17,219,219,219,26,17,219,219,12,42,91,26,26,26,42, - 42,26,17,219,219,219,26,17,132,219,12,42,26,26,26,26, - 26,42,219,17,17,219,17,26,17,132,183,12,42,26,26,26, - 26,42,42,26,17,17,219,17,26,26,132,219,12,42,26,26, - 26,26,42,42,26,17,219,219,219,26,26,132,219,12,42,26, - 26,26,26,42,42,26,17,17,219,219,219,17,132,183,12,42, - 26,26,26,26,42,42,26,219,219,219,219,219,17,132,183,12, - 42,26,26,26,26,42,42,26,17,17,219,219,219,26,132,219, - 12,42,26,26,26,26,26,42,26,17,219,219,219,26,17,219, - 219,12,42,12,26,26,26,42,42,26,17,219,219,219,26,26, - 17,219,12,42,26,26,26,26,42,42,219,219,219,219,219,219, - 17,132,219,12,42,26,26,26,26,26,42,26,17,17,219,219, - 26,26,132,219,12,42,26,26,26,26,42,42,26,17,219,219, - 219,219,17,219,219,12,42,26,26,26,26,26,42,26,17,17, - 219,219,219,17,132,183,12,42,26,26,26,26,42,42,26,219, - 219,219,219,26,17,17,219,12,42,26,26,26,26,42,42,26, - 219,17,219,219,26,17,132,219,17,26,12,243,8,12,141,208, - 208,208,208,191,191,16,208,208,191,191,191,191,16,208,191,16, - 191,208,16,16,16,16,16,16,208,16,16,16,16,16,208,16, - 208,16,208,16,208,16,16,208,208,208,208,16,16,208,16,208, - 208,208,16,208,208,208,208,16,16,16,208,208,208,208,208,208, - 88,100,100,100,100,100,100,100,100,100,100,100,100,102,100,102, - 100,100,100,100,100,102,100,100,100,100,102,100,100,102,74,100, - 102,74,74,74,74,100,100,100,74,100,100,74,74,140,74,74, - 74,140,140,140,74,74,140,140,140,74,74,74,140,100,74,74, - 74,100,74,100,100,74,140,74,100,74,74,140,169,140,100,74, - 74,140,140,169,140,140,140,74,100,100,100,102,100,74,100,100, - 100,100,102,100,100,102,74,100,102,74,74,74,100,100,100,100, - 100,100,74,100,74,140,74,74,74,140,140,169,74,74,74,74, - 74,74,74,169,144,74,140,140,140,140,140,140,140,140,140,74, - 140,74,140,74,140,140,74,140,140,140,140,140,140,140,140,140, - 140,144,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 140,39,140,114,140,140,144,74,140,140,140,140,144,39,188,26, - 12,17,12,12,219,91,219,26,243,12,150,187,219,17,17,243, - 12,150,12,12,17,219,26,187,26,150,12,150,187,219,17,12, - 243,12,150,12,12,12,17,42,12,26,243,12,150,17,219,17, - 12,243,12,150,12,150,17,17,26,187,26,150,12,150,17,219, - 17,12,8,12,150,12,150,17,219,42,12,26,243,12,150,17, - 219,17,17,243,12,150,12,150,17,17,26,187,26,243,12,150, - 17,219,17,12,243,12,150,12,150,150,219,26,187,26,243,12, - 150,17,219,17,12,8,150,150,12,150,150,219,42,12,26,243, - 12,150,17,219,17,12,243,12,150,12,17,17,219,26,187,26, - 243,12,150,17,219,17,12,8,12,150,12,17,17,17,26,187, - 26,243,12,150,187,219,17,12,243,12,150,12,12,150,219,42, - 12,26,243,12,150,17,219,17,12,243,12,150,12,150,17,17, - 26,187,26,150,187,150,17,17,17,12,243,150,150,12,150,150, - 17,26,12,26,243,12,150,17,219,17,12,8,12,243,12,17, - 17,219,26,187,26,243,12,150,17,219,17,12,243,12,150,12, - 150,150,219,26,12,26,243,12,150,17,219,17,12,243,12,150, - 12,12,187,17,26,187,26,243,12,150,17,219,17,12,243,12, - 150,12,17,17,219,26,187,26,243,12,150,187,219,17,12,8, - 12,243,12,12,187,219,26,187,26,243,12,150,17,219,17,12, - 8,12,150,12,150,17,219,26,12,12,12,150,8,8,141,208, - 208,191,191,208,191,208,191,208,191,208,208,16,16,191,208,16, - 16,16,208,16,16,208,16,16,16,208,16,16,208,16,208,16, - 16,16,208,16,208,208,208,16,208,16,16,208,208,16,208,208, - 16,208,208,208,16,208,54,208,208,208,208,208,208,208,54,208, - 100,100,88,100,100,102,100,100,102,100,100,100,100,100,100,100, - 100,100,100,100,100,102,100,102,100,100,102,100,100,100,102,100, - 100,102,100,100,74,100,74,100,74,74,100,100,100,74,100,140, - 74,100,74,74,140,74,74,74,140,74,140,74,74,74,100,74, - 140,169,74,74,100,100,140,140,74,169,74,74,74,140,169,140, - 74,74,74,74,74,100,140,74,74,74,100,74,100,102,100,102, - 100,100,102,100,100,100,102,100,100,102,100,74,100,74,74,74, - 74,100,74,100,100,74,100,169,100,100,74,74,74,74,140,140, - 140,140,74,74,74,74,74,74,74,74,74,74,74,74,140,140, - 140,140,140,74,74,140,140,140,140,74,140,140,144,140,140,140, - 140,140,140,140,140,140,140,140,140,140,140,140,144,140,140,140, - 140,140,140,140,140,140,114,140,144,140,140,140,140,39,207,17, - 12,17,187,12,219,150,219,219,150,12,17,17,17,17,26,243, - 150,150,150,17,12,219,26,243,26,150,17,17,17,17,17,17, - 243,150,150,17,17,17,17,26,243,219,150,17,12,17,132,17, - 26,243,150,150,17,17,17,219,26,150,219,150,17,17,187,17, - 17,17,243,150,150,12,17,12,17,26,243,219,150,17,12,187, - 17,17,26,243,150,150,17,17,17,17,26,243,219,150,17,12, - 17,17,17,17,243,150,150,17,17,12,219,26,243,219,150,17, - 17,17,17,17,17,243,150,150,12,17,12,17,26,243,219,150, - 17,12,17,17,17,17,243,150,150,12,17,12,17,26,243,219, - 150,17,17,17,17,17,17,243,150,150,12,17,17,219,26,243, - 219,150,17,17,17,17,17,17,243,150,150,12,17,12,219,26, - 243,219,150,12,17,187,17,17,26,243,150,150,17,17,17,219, - 26,243,26,150,12,17,17,17,17,26,243,150,150,17,17,17, - 219,26,243,219,150,17,17,17,17,12,17,150,150,150,12,12, - 12,219,26,243,219,150,17,12,17,17,17,26,243,150,150,12, - 17,12,219,26,243,219,150,17,17,17,132,17,26,243,12,150, - 12,17,17,219,26,243,219,150,17,17,17,17,17,26,243,150, - 150,12,17,12,17,26,243,219,150,17,17,17,17,12,17,243, - 17,150,150,17,12,219,26,243,219,150,17,17,17,17,17,17, - 243,12,150,17,12,17,219,26,243,219,8,243,12,12,7,208, - 208,208,208,191,191,208,191,208,208,191,208,16,208,16,16,208, - 16,16,208,16,208,16,16,208,16,16,16,16,208,16,16,208, - 16,16,16,208,16,208,208,16,208,208,208,16,208,208,16,208, - 16,16,208,208,208,208,208,208,208,16,208,208,208,208,208,208, - 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, - 100,102,100,102,100,100,100,100,100,100,100,100,102,100,100,100, - 100,100,100,74,100,74,100,74,74,100,74,140,74,100,74,74, - 169,74,74,100,74,74,74,74,100,74,74,74,74,169,140,169, - 100,74,140,74,169,74,100,100,169,74,74,100,100,100,74,100, - 140,169,140,169,140,140,100,140,100,100,100,100,100,100,100,100, - 100,100,100,100,102,100,100,100,100,100,100,100,74,100,100,74, - 100,74,74,74,74,169,74,74,74,74,74,100,74,169,74,74, - 74,74,74,74,140,140,71,140,140,140,140,74,140,140,74,74, - 140,71,74,140,140,144,74,144,140,114,140,140,140,140,140,140, - 140,140,140,140,144,140,140,140,140,140,140,140,140,140,140,140, - 144,140,140,140,140,140,140,74,140,140,140,144,114,140,39,187, - 12,219,12,243,219,12,219,219,12,17,132,17,150,150,219,150, - 12,17,17,17,17,187,26,109,219,12,17,132,17,132,12,26, - 150,12,17,150,132,17,187,26,109,219,12,17,132,187,17,150, - 219,150,12,17,12,132,12,187,26,109,219,12,17,132,17,132, - 150,26,150,17,17,12,132,17,187,26,109,219,12,17,132,17, - 150,12,17,150,17,132,12,132,17,187,26,109,219,12,17,132, - 17,132,150,26,150,12,17,12,17,17,187,26,109,219,12,12, - 132,187,132,150,26,12,17,17,12,17,17,187,26,109,219,12, - 17,132,187,132,150,26,150,12,17,150,132,17,187,26,109,219, - 12,12,132,17,132,150,26,150,17,17,150,132,17,187,26,109, - 219,12,17,132,17,132,150,26,150,17,17,150,17,17,187,26, - 109,219,12,17,132,17,150,150,219,150,12,17,12,132,12,187, - 26,109,219,12,17,132,187,150,150,219,12,12,17,12,17,187, - 187,26,109,219,12,12,132,187,132,12,26,150,17,17,150,132, - 17,187,26,109,219,12,17,132,187,150,150,219,150,12,12,17, - 17,17,187,26,109,219,12,12,132,17,17,150,219,150,150,17, - 150,132,12,187,26,109,219,12,12,132,17,150,150,219,150,17, - 17,150,132,17,187,26,109,219,12,17,132,17,132,150,26,150, - 150,17,12,132,17,187,26,109,219,12,17,132,17,150,150,26, - 150,150,12,17,132,12,187,219,211,26,12,12,8,26,141,208, - 208,208,191,208,191,208,191,208,191,208,191,208,16,191,208,191, - 208,16,208,16,16,208,16,16,16,208,16,208,16,208,16,16, - 16,208,16,208,208,208,16,208,208,208,16,208,208,16,208,208, - 208,208,16,208,208,208,208,208,208,208,208,208,63,208,208,208, - 100,88,100,88,100,100,100,100,102,100,100,100,100,100,102,100, - 102,100,100,100,100,100,100,100,100,100,102,100,100,100,102,100, - 102,100,100,102,100,100,100,100,74,74,100,140,140,100,100,74, - 169,100,140,100,140,140,169,74,169,74,74,74,74,74,74,74, - 74,100,100,74,100,74,100,74,100,169,140,140,74,100,74,100, - 74,74,74,100,74,140,100,140,74,74,100,100,100,100,100,102, - 100,100,100,102,100,100,102,100,74,74,102,100,100,100,100,74, - 100,100,140,140,74,74,100,169,140,169,74,169,74,74,74,100, - 74,140,140,74,74,140,74,74,74,74,140,74,74,140,74,74, - 140,140,144,140,140,140,74,74,74,140,140,140,140,140,144,74, - 140,144,140,140,140,140,144,140,140,144,140,140,140,140,140,140, - 140,140,114,140,74,140,114,140,114,140,140,140,114,39,39,187, - 12,219,17,8,42,8,26,219,12,17,132,219,17,12,219,150, - 150,150,12,17,12,132,26,243,219,12,17,132,219,17,150,219, - 150,150,17,17,17,17,132,26,109,219,12,17,132,219,17,12, - 219,150,150,150,17,219,12,132,26,243,219,12,17,132,219,17, - 150,219,150,150,150,17,219,17,132,26,109,219,150,17,132,219, - 17,12,219,150,17,150,17,17,17,132,26,243,219,12,17,132, - 219,17,150,219,150,150,132,17,17,17,132,26,243,219,17,17, - 132,219,17,150,219,150,150,150,17,17,17,132,26,109,219,12, - 17,132,219,17,150,219,150,150,17,17,219,12,132,26,243,219, - 12,17,132,219,17,150,219,150,150,17,17,17,12,132,26,243, - 219,150,17,132,219,17,150,219,150,150,17,17,17,17,132,26, - 243,219,17,17,132,219,12,12,219,150,150,150,17,219,12,132, - 26,243,219,17,17,132,219,17,12,219,150,150,150,17,17,17, - 150,26,109,219,17,17,132,219,17,150,219,150,150,17,17,219, - 12,132,26,243,219,12,17,132,219,17,12,219,150,132,132,12, - 17,17,132,26,211,219,17,17,132,219,12,12,219,12,150,17, - 17,219,12,132,26,243,219,17,17,132,219,17,12,219,150,150, - 17,17,17,17,132,26,243,219,12,17,132,219,17,150,219,17, - 150,132,17,17,17,150,26,243,219,12,17,132,219,17,150,219, - 17,150,150,17,219,12,187,26,243,17,8,8,8,12,141,208, - 208,208,191,208,191,191,208,191,208,208,191,191,208,16,16,208, - 16,208,16,208,16,16,208,16,16,16,208,16,208,16,208,16, - 208,16,16,16,208,208,208,16,208,208,208,16,208,208,208,208, - 208,208,208,16,208,208,208,54,208,208,208,208,208,208,208,208, - 88,100,100,88,100,100,100,100,100,100,100,102,100,100,100,100, - 100,100,102,100,100,100,100,102,100,100,102,100,102,100,100,100, - 100,74,100,100,100,74,100,140,169,100,74,74,100,140,140,100, - 74,140,74,74,100,100,74,140,74,140,140,140,74,74,140,169, - 100,100,140,100,140,169,74,100,100,74,100,100,169,140,169,100, - 100,100,140,140,169,100,140,100,169,100,100,100,100,100,100,100, - 100,102,100,100,102,100,100,102,100,100,100,100,100,74,100,100, - 74,74,100,74,100,100,140,74,100,74,140,74,74,169,169,140, - 140,140,74,74,140,74,140,140,140,140,74,140,140,74,140,74, - 140,140,74,140,140,140,140,114,140,140,140,140,140,140,140,39, - 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,140,140,140,114,39,187, - 26,17,17,8,183,8,132,26,150,17,17,17,150,132,219,12, - 219,17,132,17,17,150,26,211,26,150,17,17,17,150,17,219, - 12,17,150,12,17,166,150,26,211,26,150,17,17,17,150,132, - 219,12,219,132,12,17,132,150,26,211,26,150,17,17,17,150, - 219,219,12,219,132,12,17,132,150,219,211,26,12,17,219,17, - 150,132,219,12,150,132,12,17,17,150,26,109,26,150,17,17, - 17,150,219,219,12,17,150,132,17,132,150,26,211,26,150,17, - 17,17,150,219,219,12,219,132,132,17,132,132,26,243,26,150, - 17,17,17,150,17,219,12,17,150,12,17,17,132,26,211,42, - 150,17,17,17,150,17,219,12,17,150,12,17,17,150,26,211, - 26,12,17,17,17,150,17,219,12,17,150,132,17,132,150,26, - 211,26,150,17,17,17,132,132,219,12,219,132,12,17,132,150, - 26,211,26,150,17,17,17,150,132,219,12,219,132,150,17,132, - 132,219,243,26,150,17,17,17,150,17,219,12,17,150,12,17, - 132,150,26,211,26,150,17,219,17,150,132,219,12,17,150,132, - 17,166,150,219,109,26,150,17,17,17,132,132,219,150,17,150, - 12,17,132,150,26,211,26,150,17,17,17,150,132,219,12,17, - 150,17,17,17,150,26,211,26,150,17,17,17,150,219,219,150, - 17,12,12,17,132,132,26,109,26,150,17,17,17,150,219,219, - 150,219,132,12,17,132,150,26,211,17,12,243,8,8,8,105, - 208,208,191,208,191,208,191,208,191,191,208,208,191,208,191,208, - 16,208,208,16,208,16,208,16,208,16,208,16,208,208,208,16, - 16,208,208,208,16,16,16,208,208,16,208,208,208,208,208,208, - 208,208,208,208,208,16,208,208,16,16,208,208,63,208,63,208, - 100,100,88,100,88,100,100,100,100,100,100,100,100,100,102,100, - 100,102,100,100,100,100,100,100,100,100,100,100,102,100,74,100, - 102,100,100,100,100,74,100,74,140,100,100,74,100,100,140,169, - 100,100,140,74,140,100,100,169,100,140,74,140,140,74,74,140, - 74,100,74,100,74,169,74,140,100,74,100,74,100,74,140,140, - 169,100,100,140,140,169,169,140,169,100,100,100,100,100,100,100, - 100,100,102,100,100,100,100,100,102,100,74,100,102,100,74,169, - 100,74,100,74,140,100,169,140,100,100,100,140,74,74,100,100, - 74,140,140,74,140,74,74,74,74,140,74,74,140,74,140,74, - 74,140,140,140,140,140,140,140,71,140,140,144,140,140,140,140, - 74,140,140,140,74,140,74,140,140,140,140,140,140,140,140,74, - 140,169,140,140,140,140,140,140,140,140,140,140,140,127,114,126, - 12,187,26,12,42,12,17,26,150,219,17,17,17,17,219,150, - 150,150,219,132,26,132,26,109,26,150,17,17,17,150,219,219, - 150,17,132,150,219,26,150,26,109,26,150,17,150,17,17,17, - 219,150,12,132,132,219,26,150,26,109,26,150,17,17,17,150, - 17,219,150,12,132,17,17,26,187,26,109,26,150,17,17,17, - 17,17,219,12,17,132,17,132,26,132,26,109,26,150,17,17, - 17,150,17,219,150,17,12,17,17,26,132,26,109,26,150,17, - 17,17,150,17,219,150,12,12,17,219,26,150,26,109,26,150, - 17,17,17,132,17,219,150,17,132,17,132,26,132,26,109,42, - 150,17,17,17,132,17,219,150,17,132,17,132,26,132,26,109, - 26,150,17,17,17,132,17,219,150,17,12,17,17,26,132,26, - 109,26,150,17,17,17,17,17,219,150,12,132,132,219,26,132, - 26,211,26,150,219,17,17,17,17,219,150,17,12,132,17,26, - 187,26,211,26,150,219,17,17,150,17,219,150,17,132,17,219, - 26,132,26,109,26,150,17,17,17,17,17,219,150,17,12,17, - 17,26,187,26,109,26,150,17,150,17,17,17,219,150,17,132, - 132,219,26,132,26,109,26,150,219,17,17,17,17,219,150,17, - 150,17,132,26,132,26,109,26,150,219,17,17,150,17,219,150, - 132,132,132,219,26,150,26,109,26,150,17,17,17,150,17,219, - 150,17,150,17,219,17,132,219,8,17,12,8,8,150,8,208, - 105,208,191,208,208,191,208,191,208,208,191,208,16,208,191,208, - 208,208,16,208,16,208,16,16,208,16,208,208,16,208,208,16, - 208,16,208,208,208,208,16,16,208,208,208,208,54,208,54,208, - 63,208,54,208,208,16,208,208,208,54,208,208,208,208,63,208, - 169,100,100,88,100,100,100,100,100,102,100,100,100,100,102,100, - 100,100,100,100,102,100,102,100,102,100,100,100,100,102,100,100, - 100,100,102,74,100,100,100,100,100,74,74,100,74,74,100,74, - 74,140,100,169,100,140,140,74,140,100,140,140,100,169,140,74, - 169,74,100,100,100,74,169,100,169,169,74,100,74,169,100,100, - 100,140,140,169,169,100,169,100,100,100,100,100,100,100,100,100, - 100,100,100,100,102,74,100,74,100,102,100,100,100,100,100,100, - 140,100,74,169,100,74,74,100,140,74,140,100,169,74,74,140, - 100,100,74,169,74,140,140,140,140,74,140,140,74,140,140,140, - 140,140,140,74,140,140,74,140,140,140,140,140,140,140,140,140, - 140,140,140,74,140,140,140,140,140,140,140,140,140,140,140,39, - 140,140,169,140,140,140,140,140,140,140,140,140,140,39,39,187, - 12,17,187,243,42,109,219,42,12,17,150,17,150,17,219,12, - 219,12,132,219,17,187,219,243,26,17,17,150,17,17,17,219, - 12,132,17,12,219,17,187,219,243,42,12,219,17,17,150,17, - 219,12,132,17,12,219,17,187,219,243,26,17,17,150,17,17, - 17,219,12,132,17,150,219,17,12,219,243,219,12,219,150,17, - 150,17,219,150,132,12,132,219,17,187,17,211,42,17,17,150, - 17,17,17,219,12,132,132,150,219,17,187,219,243,42,12,219, - 150,17,17,150,219,12,132,132,132,17,17,187,17,243,42,12, - 219,150,17,17,17,219,12,132,12,132,219,17,187,17,109,26, - 12,219,150,17,17,17,219,12,132,12,132,219,17,187,219,243, - 219,12,17,150,17,17,17,219,12,132,132,150,219,17,187,219, - 211,26,17,17,150,17,150,17,219,12,132,17,12,219,17,187, - 219,243,42,12,17,150,17,150,150,219,12,132,132,17,219,17, - 187,17,243,42,12,17,150,17,17,17,219,12,132,12,150,219, - 17,187,17,243,42,12,219,150,17,150,17,219,12,132,132,150, - 219,17,12,17,243,42,12,219,17,17,150,12,42,12,132,12, - 12,219,17,187,219,109,42,12,17,150,17,150,17,219,12,132, - 17,132,219,17,187,17,243,26,12,17,150,17,17,12,26,12, - 219,17,12,219,17,187,17,243,42,12,219,150,17,17,12,26, - 12,132,17,150,219,26,187,12,187,17,12,8,8,12,8,105, - 208,208,208,208,191,208,208,16,208,191,208,208,191,208,16,208, - 16,208,16,208,16,208,16,208,16,16,208,208,208,208,208,208, - 16,208,16,16,208,16,208,208,208,208,208,208,208,208,208,208, - 208,208,208,16,208,208,208,208,208,208,208,208,208,208,208,208, - 88,100,100,100,88,100,100,100,100,100,100,100,100,100,100,100, - 100,102,100,100,100,100,100,100,100,100,102,100,100,100,100,102, - 74,100,100,100,100,74,100,74,169,100,140,100,100,74,100,169, - 100,74,74,74,100,74,100,100,74,100,74,140,74,100,100,74, - 100,169,140,169,100,74,100,74,100,169,140,169,74,169,140,169, - 100,169,100,100,169,100,169,169,169,169,100,100,100,100,100,100, - 100,100,100,100,100,100,100,100,100,100,74,100,100,74,74,100, - 74,100,74,74,100,100,74,100,169,100,74,74,169,140,100,140, - 140,169,74,140,74,140,74,74,140,74,74,140,140,74,100,140, - 140,74,140,140,140,140,140,140,140,140,74,140,140,140,140,140, - 140,140,39,140,74,169,140,140,140,140,140,140,140,140,140,169, - 140,140,140,140,169,114,169,140,140,140,169,140,140,127,39,187, - 17,17,187,243,42,12,219,26,17,219,12,17,150,219,219,150, - 17,17,17,219,17,187,26,150,42,17,219,150,150,150,219,219, - 132,132,17,17,17,219,187,26,150,42,17,17,12,17,150,219, - 219,17,132,17,17,17,17,187,26,150,42,17,219,12,150,150, - 219,219,17,132,17,17,17,219,187,26,12,42,17,219,150,17, - 150,219,219,219,132,17,17,17,17,187,42,150,26,17,219,12, - 150,150,219,219,17,219,17,17,17,17,187,26,150,26,17,219, - 12,150,17,219,219,17,17,17,17,17,17,187,26,150,42,17, - 219,12,150,150,219,219,132,132,17,17,219,17,187,26,150,26, - 17,17,17,150,150,219,219,132,132,17,17,17,17,187,26,12, - 42,17,219,12,150,150,219,219,132,17,17,17,17,17,187,26, - 150,42,17,219,12,17,150,219,219,17,132,17,17,17,17,187, - 26,150,26,17,219,12,17,17,219,219,17,17,17,17,17,17, - 187,42,150,26,17,219,150,150,150,219,219,132,132,17,17,17, - 17,187,26,150,26,150,219,12,17,150,219,219,219,17,17,17, - 17,219,187,26,150,26,17,17,12,17,150,219,219,132,132,17, - 17,17,17,187,26,150,26,17,219,12,17,150,219,219,132,132, - 17,17,17,17,187,26,150,26,17,219,12,150,150,219,219,150, - 132,17,17,17,17,187,26,150,26,17,219,12,150,150,219,219, - 17,132,17,17,17,17,17,26,12,17,12,8,8,150,8,208, - 105,191,208,208,208,208,208,208,191,208,208,208,208,191,208,208, - 208,208,208,16,208,16,208,16,208,208,16,16,208,16,208,208, - 16,208,208,16,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,63,208, - 100,100,169,100,100,100,100,100,100,100,100,102,100,100,102,100, - 100,100,102,100,100,100,100,100,102,100,100,100,100,100,74,100, - 100,100,102,100,74,100,74,100,74,140,100,169,140,169,100,74, - 74,169,169,140,140,100,140,140,140,74,100,169,140,140,140,169, - 169,74,100,74,100,100,169,100,169,140,100,100,169,100,100,74, - 169,100,169,140,169,169,169,169,100,100,169,169,100,100,100,100, - 100,100,100,74,100,102,100,100,102,100,100,100,74,100,100,74, - 169,140,100,100,140,100,100,100,74,74,140,100,74,100,74,74, - 100,74,140,100,140,100,140,140,140,169,140,140,74,140,140,74, - 74,140,140,74,140,140,140,140,140,140,140,74,140,74,140,169, - 140,74,74,140,140,140,140,169,140,169,140,169,140,169,140,140, - 140,140,127,140,39,140,140,140,169,140,140,39,39,39,207,187, - 12,12,26,8,183,12,219,219,17,26,17,17,12,17,219,17, - 17,17,219,219,17,150,26,150,219,17,26,26,17,12,17,219, - 17,17,17,132,219,17,12,26,150,219,219,26,17,17,12,17, - 219,150,17,17,132,219,17,12,26,150,219,17,26,17,17,12, - 17,219,150,17,219,132,219,12,12,26,150,219,17,26,26,17, - 17,17,26,132,17,17,219,219,17,17,26,150,219,17,26,17, - 219,12,17,219,150,17,17,132,219,17,12,26,150,219,17,26, - 17,17,12,17,219,132,12,219,132,219,17,17,26,150,219,17, - 26,17,17,12,17,219,219,17,17,219,219,17,17,26,132,219, - 17,26,17,17,12,17,219,219,17,17,219,219,17,17,26,150, - 219,17,26,17,17,12,17,219,17,17,219,132,219,17,12,42, - 150,219,17,26,17,17,12,17,219,132,17,17,132,219,17,150, - 26,150,219,17,26,17,17,12,17,219,132,12,17,132,219,17, - 12,26,150,219,17,26,26,17,17,17,219,219,17,219,132,219, - 17,17,42,150,219,26,26,17,17,17,17,219,132,17,17,132, - 219,12,12,26,150,219,219,26,17,17,17,17,219,219,17,219, - 132,219,17,12,26,150,219,17,26,17,17,12,17,219,17,17, - 17,219,183,17,17,42,150,219,17,26,17,219,17,17,219,17, - 17,17,132,219,17,17,26,150,219,17,26,17,219,12,17,219, - 132,12,219,132,219,17,187,219,243,26,12,8,8,12,150,105, - 208,63,208,208,208,208,191,208,208,208,208,208,208,16,208,191, - 208,16,208,16,208,16,208,16,208,16,208,208,208,208,208,208, - 208,208,208,208,208,16,16,54,208,208,208,16,208,208,208,208, - 208,208,63,208,208,16,208,54,208,208,208,208,208,208,208,208, - 169,100,169,100,100,100,100,100,100,102,100,100,100,102,100,102, - 100,102,100,102,100,102,100,100,100,100,74,102,74,102,100,74, - 102,100,100,100,100,100,74,100,100,74,74,100,74,169,100,169, - 74,74,100,100,140,100,100,100,140,140,74,169,169,169,74,74, - 169,169,169,169,169,74,169,74,100,169,140,100,169,169,169,100, - 140,100,169,100,100,100,100,169,100,100,100,100,100,100,100,74, - 100,100,100,100,100,74,102,100,74,100,102,100,100,100,100,74, - 100,100,74,100,140,169,74,100,169,100,140,169,140,169,169,74, - 100,74,140,169,140,169,140,100,140,140,100,169,74,140,140,140, - 140,140,140,74,140,74,74,74,74,140,140,74,39,140,140,169, - 127,140,169,169,169,169,140,169,140,169,140,169,140,140,140,169, - 140,140,140,140,169,140,169,140,169,39,140,140,140,127,207,94, - 219,219,26,12,42,219,122,122,122,122,122,0,122,42,122,122, - 42,122,122,122,42,78,42,187,122,42,122,122,0,122,42,0, - 122,122,122,0,122,42,42,42,187,122,42,122,122,0,122,122, - 0,122,122,122,0,122,42,42,42,187,0,122,122,122,0,122, - 122,0,122,122,122,0,0,183,122,42,187,122,42,122,122,122, - 122,42,122,122,122,122,0,122,42,42,42,187,0,42,122,122, - 0,122,122,122,122,122,122,0,122,42,42,42,187,0,122,122, - 122,0,122,42,0,122,122,122,0,122,42,42,42,187,122,122, - 122,122,0,122,42,122,122,42,122,122,122,42,42,42,187,0, - 42,122,122,0,122,42,122,122,42,122,0,122,42,42,42,187, - 0,122,122,122,0,122,42,122,122,122,122,0,122,42,42,42, - 187,0,42,122,122,0,122,42,0,122,122,122,0,122,42,78, - 42,187,0,42,122,122,0,122,42,0,122,122,0,0,122,183, - 42,42,187,0,42,122,122,0,122,42,122,122,42,0,0,122, - 42,42,42,187,122,42,122,122,0,122,42,122,122,122,122,0, - 0,183,42,42,187,0,42,122,122,0,122,42,122,122,42,0, - 0,122,42,42,42,187,0,42,122,122,0,122,42,122,122,122, - 122,122,122,42,42,42,187,0,42,122,122,0,122,42,0,122, - 122,122,0,122,42,42,42,187,0,42,122,122,0,122,42,0, - 122,122,122,122,122,26,42,42,187,42,42,17,12,26,12,105, - 208,208,63,208,208,208,208,208,208,208,208,208,208,208,208,16, - 208,208,16,208,208,208,16,208,208,16,208,16,208,16,208,208, - 208,208,208,208,208,208,208,16,208,208,63,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 100,169,100,100,100,100,100,100,100,100,74,74,74,100,102,74, - 100,100,74,100,100,100,74,74,74,74,100,100,100,74,74,100, - 100,74,74,74,74,100,100,100,100,100,100,74,100,74,74,100, - 169,169,140,74,74,140,140,140,100,169,169,74,100,74,169,169, - 169,100,100,74,100,169,100,169,169,100,169,140,74,74,169,169, - 100,169,100,169,169,169,169,100,169,100,100,100,100,100,74,100, - 100,74,100,74,74,100,100,74,100,74,100,74,74,74,100,100, - 100,74,169,100,100,74,169,169,74,140,100,74,74,74,74,169, - 140,169,74,74,140,74,100,140,140,169,140,140,169,74,169,140, - 169,74,140,140,100,140,140,140,140,169,140,140,74,74,140,74, - 140,169,140,169,140,140,169,140,169,140,169,140,169,169,169,140, - 169,169,169,169,169,140,127,140,140,140,127,169,169,127,188,183, - 42,122,183,42,0,122,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,219,122,0,122,122,122,122,17,105, - 105,63,208,96,208,208,191,208,208,208,208,208,208,191,208,208, - 16,208,208,208,16,208,208,208,208,208,208,208,208,208,208,208, - 208,16,208,16,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,54,208,208,208,208,63,208, - 100,140,169,140,74,74,100,74,74,100,100,74,74,74,100,102, - 74,102,74,74,102,100,74,100,100,74,74,74,100,74,74,74, - 100,100,100,74,74,100,100,100,100,100,100,74,100,169,74,100, - 74,169,169,169,100,100,100,140,74,74,169,169,169,100,169,100, - 169,169,169,169,100,169,100,100,140,100,100,169,169,100,74,169, - 100,169,100,100,100,169,169,100,169,169,169,169,100,100,100,74, - 100,74,100,74,74,74,74,74,102,100,100,74,100,74,100,100, - 169,100,74,74,100,74,74,88,140,169,169,169,169,169,140,169, - 74,169,169,100,169,140,169,100,74,140,140,140,169,74,100,140, - 169,169,169,140,169,169,140,169,74,169,169,140,127,140,127,100, - 169,88,140,169,88,140,88,140,169,140,88,140,169,140,88,140, - 169,140,169,140,127,140,169,127,169,169,39,140,169,207,127,187, - 8,12,109,211,26,26,26,122,42,122,42,122,122,42,122,122, - 122,122,122,42,12,219,26,17,0,42,122,42,122,42,122,42, - 122,122,42,122,122,243,219,26,17,0,42,122,42,122,42,122, - 42,122,122,122,122,42,243,219,26,12,122,42,122,42,122,42, - 122,42,122,42,122,122,42,12,219,26,17,0,42,122,42,122, - 122,42,122,42,122,42,122,42,243,219,26,17,0,42,122,42, - 122,42,122,42,122,122,122,122,42,243,219,26,12,122,42,122, - 42,122,122,42,122,42,122,122,122,42,243,219,26,17,122,42, - 122,42,122,122,42,122,122,122,122,122,42,243,219,26,17,0, - 42,122,42,122,122,42,122,122,122,42,122,42,243,183,26,12, - 122,42,122,42,122,122,42,122,42,122,122,122,42,243,219,26, - 17,0,42,122,42,122,42,122,42,122,122,42,122,42,12,219, - 26,17,0,42,122,42,122,42,122,42,122,42,122,122,42,12, - 219,26,17,0,42,122,42,122,122,42,122,122,42,122,122,42, - 243,219,26,17,0,42,122,42,122,122,42,122,42,122,122,122, - 42,12,219,26,12,0,42,122,42,122,122,42,122,122,42,122, - 122,42,243,219,26,17,0,42,122,42,122,122,42,122,42,122, - 122,122,42,243,219,26,17,0,42,122,42,122,42,122,42,122, - 122,122,122,42,243,219,26,17,0,42,122,42,122,122,42,122, - 42,122,122,122,42,12,26,26,17,42,26,243,8,8,12,105, - 208,105,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,16,208,208,208,208,208,208,208,208,208,16, - 208,208,208,208,16,208,208,208,208,208,208,208,208,63,208,208, - 54,208,208,208,208,16,208,208,208,208,208,208,208,208,208,208, - 169,100,169,100,100,100,74,100,100,74,74,100,74,74,74,100, - 100,100,100,74,100,74,100,74,74,100,74,100,102,100,100,100, - 100,74,74,100,100,74,100,74,169,169,169,169,169,74,169,140, - 169,74,169,140,140,169,140,169,169,169,140,140,169,169,100,169, - 169,169,169,169,140,100,169,169,100,169,169,169,169,169,169,169, - 169,100,169,169,169,100,100,169,100,100,140,100,169,169,100,100, - 100,100,74,100,100,74,100,100,100,74,74,100,100,100,100,100, - 100,100,169,169,169,100,169,74,100,169,74,74,140,74,100,74, - 169,140,74,140,140,100,74,169,140,88,100,169,169,169,140,100, - 169,74,140,88,140,100,100,140,88,100,140,169,100,100,74,127, - 169,140,88,140,169,169,169,169,39,169,140,127,140,169,169,169, - 140,88,169,127,140,169,127,140,39,127,39,127,39,127,207,187, - 12,109,243,8,219,150,219,42,49,139,139,8,8,211,8,139, - 8,8,139,139,49,12,26,12,42,49,139,8,8,139,8,8, - 139,8,8,139,139,101,17,26,12,42,49,139,8,8,139,8, - 8,139,8,8,139,139,101,17,26,12,42,49,139,8,8,139, - 8,8,139,8,8,139,139,67,12,26,12,42,49,139,8,8, - 139,8,139,211,8,8,139,139,101,17,26,12,42,49,139,8, - 8,139,8,8,139,8,8,139,139,101,17,26,12,42,49,139, - 139,8,8,211,8,139,8,8,139,139,101,17,26,12,42,49, - 139,139,8,8,211,8,139,8,8,139,139,101,17,26,12,42, - 49,139,139,8,8,211,8,139,8,8,139,139,101,17,26,12, - 42,49,139,139,8,8,211,8,139,8,8,139,139,101,17,26, - 12,42,49,139,8,8,139,8,8,139,8,8,139,139,49,12, - 26,12,42,49,139,139,8,139,8,8,139,8,8,139,139,49, - 17,26,12,42,49,139,139,8,8,211,8,139,8,8,139,139, - 101,17,26,12,42,49,139,139,8,8,8,139,211,8,8,139, - 139,49,17,26,12,42,49,139,139,8,139,211,8,139,8,8, - 139,139,101,17,26,12,42,49,139,139,8,8,211,8,139,8, - 8,139,139,101,17,26,12,42,49,139,8,139,139,8,8,139, - 8,8,139,139,101,17,26,12,42,49,139,139,8,139,8,139, - 211,8,8,139,139,49,219,17,243,26,8,8,67,7,8,105, - 105,208,105,208,63,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,54,208,208,208,63,208,63,16,208,16, - 208,54,208,54,208,208,16,208,208,208,208,208,208,208,208,63, - 169,74,169,169,100,100,74,74,100,74,74,74,100,74,74,74, - 74,74,100,74,100,74,100,74,74,100,74,100,74,74,102,100, - 100,100,100,100,100,100,100,100,74,100,100,74,169,100,100,74, - 169,74,100,169,74,169,74,74,100,100,100,100,169,169,169,100, - 169,169,100,169,169,169,100,169,169,169,100,100,100,100,100,100, - 169,169,169,169,169,169,100,169,169,100,169,74,100,140,100,74, - 100,100,74,74,100,102,100,100,100,100,74,100,100,100,100,100, - 74,100,100,74,169,100,169,140,169,169,169,100,169,140,169,140, - 100,169,100,100,140,88,140,169,169,169,100,169,169,88,140,169, - 169,100,169,100,169,169,100,169,39,169,169,127,169,88,140,169, - 88,169,88,140,169,127,169,169,169,88,140,88,140,127,169,88, - 127,140,169,88,169,169,88,140,127,140,169,169,127,127,188,187, - 12,12,150,139,26,150,26,42,101,8,211,211,8,211,8,8, - 211,8,8,211,139,150,150,211,42,101,8,139,8,211,8,8, - 8,211,8,8,139,101,150,150,211,42,101,8,139,8,211,8, - 8,211,8,8,139,8,67,150,150,243,42,101,8,139,8,211, - 8,8,8,211,8,8,139,101,150,150,211,42,101,8,139,8, - 211,8,8,8,211,8,211,139,101,150,150,243,42,101,8,139, - 8,211,8,8,211,8,8,139,8,67,150,150,243,42,101,8, - 211,211,8,211,8,8,211,8,139,8,67,150,150,109,42,101, - 8,211,211,8,211,8,8,211,8,139,8,49,150,150,243,42, - 101,8,211,211,8,211,8,8,211,8,211,139,101,150,150,243, - 42,101,8,211,211,8,211,8,8,211,8,139,8,67,150,150, - 243,42,101,8,139,8,211,8,8,8,211,8,8,211,139,150, - 150,211,42,101,8,211,8,211,8,8,8,211,8,8,211,101, - 150,150,211,42,101,8,211,211,8,211,8,8,211,8,211,139, - 101,150,150,243,42,101,8,211,211,211,8,8,211,8,8,8, - 211,101,150,150,243,42,101,8,211,8,8,8,8,211,8,8, - 139,8,67,150,150,243,42,101,8,211,211,8,211,8,8,211, - 8,139,8,67,150,150,211,42,101,8,8,8,211,8,8,211, - 8,8,139,8,67,150,150,211,42,101,8,211,8,8,8,8, - 211,8,8,8,211,67,12,17,243,219,8,8,8,141,12,105, - 208,208,208,208,105,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 16,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,63,208,208, - 169,169,169,140,140,140,169,100,74,100,100,100,74,100,74,100, - 74,100,74,74,74,102,74,100,100,100,100,100,102,100,100,74, - 100,100,74,100,100,100,100,100,100,100,169,100,100,169,100,169, - 100,169,169,100,169,100,169,169,169,169,169,169,100,169,169,169, - 169,169,188,169,169,169,169,169,100,100,169,169,169,169,169,169, - 169,169,169,100,100,169,169,169,100,169,100,169,169,100,140,169, - 74,100,100,100,74,100,100,100,100,100,100,74,100,100,74,100, - 169,100,100,100,100,169,100,100,100,100,140,169,140,88,74,100, - 169,74,169,140,88,140,88,169,140,169,169,169,74,169,88,100, - 169,88,169,169,169,169,169,169,169,169,140,169,140,127,100,127, - 127,88,169,88,169,169,169,169,140,127,169,127,127,169,140,127, - 169,127,127,39,127,39,127,169,169,127,127,39,169,218,218,187, - 150,109,17,182,132,187,219,42,101,8,211,211,8,211,8,211, - 8,211,8,139,8,150,17,243,122,49,8,211,8,211,211,8, - 211,8,211,8,8,139,150,17,243,122,49,8,211,8,211,211, - 8,211,211,8,8,211,8,150,17,211,122,49,8,211,8,211, - 211,211,8,211,211,8,8,139,150,17,243,122,49,8,211,8, - 211,187,211,8,211,8,8,8,139,150,17,211,122,49,8,211, - 8,211,211,8,211,211,8,8,211,8,150,17,211,42,101,8, - 211,211,8,211,8,211,8,211,8,8,139,150,17,243,42,101, - 8,211,211,8,211,211,8,211,8,8,211,8,150,17,211,122, - 49,8,211,211,8,211,211,8,211,8,8,8,139,150,17,211, - 42,101,8,211,211,8,211,211,8,211,8,8,8,139,150,17, - 211,122,49,8,211,8,211,211,8,211,8,211,8,211,8,150, - 17,243,122,49,8,211,8,211,211,187,211,8,211,8,8,139, - 150,17,243,122,49,8,211,211,8,211,211,8,211,8,8,8, - 139,150,17,211,122,49,8,211,8,211,8,211,8,211,211,8, - 139,8,150,17,211,122,49,8,211,8,211,211,187,211,211,8, - 8,8,139,150,17,211,122,49,8,211,211,8,211,8,211,8, - 211,8,8,139,150,17,243,122,49,8,211,211,211,8,211,211, - 8,211,8,8,139,150,17,243,122,49,8,211,211,211,8,211, - 8,211,211,8,8,139,150,17,254,26,8,141,67,8,243,105, - 105,105,105,208,105,208,208,208,105,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,63,208,208,208,208,208, - 208,16,208,16,208,208,54,208,16,54,63,208,208,208,208,63, - 100,100,100,169,169,74,140,100,74,74,74,74,74,100,74,100, - 74,100,100,100,169,74,74,74,74,74,74,100,100,100,100,100, - 100,100,100,74,100,100,100,169,169,100,169,100,100,169,100,169, - 100,100,169,169,169,100,100,169,100,100,169,169,169,100,169,100, - 169,169,169,169,169,169,169,169,169,169,169,100,169,100,100,100, - 100,100,169,169,100,169,100,169,169,169,100,100,169,100,100,169, - 74,100,100,100,100,74,74,100,100,100,100,100,100,100,100,100, - 169,169,169,169,100,169,169,169,169,100,100,100,100,88,140,100, - 88,100,100,169,88,74,100,100,100,169,100,88,100,169,169,169, - 127,100,88,169,169,88,169,100,88,88,100,88,169,127,100,169, - 39,39,127,169,88,169,169,88,169,169,169,169,169,127,169,169, - 169,88,127,169,169,169,127,127,127,127,169,127,88,143,218,187, - 17,12,219,8,132,187,26,122,101,139,8,211,211,8,109,211, - 187,211,187,139,139,243,26,211,122,139,211,211,211,109,187,211, - 109,187,211,211,8,67,12,17,211,122,139,211,211,211,211,187, - 211,187,211,187,139,139,139,243,26,211,122,139,211,211,211,109, - 187,8,109,187,211,187,139,8,243,26,211,122,139,211,211,211, - 8,211,8,109,187,211,187,139,8,243,17,211,122,139,211,211, - 211,109,8,109,109,187,8,109,139,139,243,219,243,122,101,139, - 8,211,211,187,211,109,187,211,187,211,139,150,17,8,122,101, - 211,211,8,211,8,109,187,211,187,211,139,139,243,26,8,122, - 139,211,211,8,211,187,211,187,211,211,187,139,8,243,219,8, - 122,101,211,211,8,211,187,211,187,211,187,139,8,139,150,17, - 211,122,139,211,211,211,109,187,211,109,8,211,187,139,67,12, - 26,211,122,139,139,211,211,8,211,211,8,109,211,187,211,139, - 150,26,211,122,139,211,211,8,211,187,211,187,211,187,139,8, - 67,12,26,8,122,139,211,211,211,187,211,211,187,211,8,187, - 139,139,243,219,8,122,139,139,211,211,8,211,8,211,187,211, - 187,211,139,150,26,8,122,139,211,211,8,211,109,187,211,109, - 187,139,8,139,243,17,211,122,139,139,211,211,187,211,8,109, - 187,211,109,8,139,243,26,211,122,139,139,8,211,187,211,211, - 187,211,8,109,8,67,150,26,182,219,243,8,8,8,8,105, - 208,208,208,208,208,208,105,208,208,208,105,208,208,208,105,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 63,208,208,208,208,208,208,63,208,208,208,208,208,208,208,208, - 208,16,208,208,16,208,208,208,208,16,208,208,208,208,208,208, - 169,140,39,169,140,169,100,74,100,100,74,100,74,74,74,74, - 100,74,74,74,74,100,100,100,100,100,100,100,100,100,100,100, - 100,100,100,100,100,100,100,100,100,169,100,169,169,169,169,169, - 169,169,100,100,169,169,169,100,169,169,169,169,169,188,169,188, - 169,169,169,140,169,169,100,169,169,169,100,169,100,169,169,169, - 140,169,140,169,140,169,169,169,100,169,169,169,100,169,169,100, - 100,100,100,100,74,100,100,100,100,100,100,100,100,100,100,169, - 100,100,100,100,169,100,100,100,100,169,169,169,140,88,100,140, - 169,169,88,100,169,88,169,88,169,88,140,88,127,100,88,169, - 100,127,88,169,169,88,169,127,169,88,39,88,169,169,127,169, - 88,88,169,169,169,88,169,127,127,169,88,127,127,88,127,127, - 39,127,88,127,127,127,88,169,88,127,127,39,207,218,236,132, - 26,187,26,141,187,12,132,42,101,139,91,211,8,91,211,8, - 211,8,139,8,67,12,17,211,42,101,211,91,211,211,211,8, - 211,8,211,211,8,139,150,26,211,42,101,211,91,211,211,211, - 8,211,8,211,109,8,139,17,17,211,42,101,211,91,211,211, - 211,211,8,211,8,139,8,67,12,17,211,42,101,211,211,211, - 211,91,109,8,139,8,139,8,67,12,26,211,42,101,211,211, - 8,211,91,8,211,211,8,211,8,67,12,26,211,42,101,211, - 211,211,8,91,211,8,139,8,139,8,139,12,26,182,26,101, - 211,211,211,91,211,8,211,8,211,211,8,139,12,17,182,42, - 101,139,91,8,211,211,211,8,211,8,139,8,67,12,26,182, - 26,101,139,91,211,211,211,8,139,8,109,211,211,139,12,26, - 211,42,101,211,91,8,211,211,109,8,109,8,139,8,139,150, - 17,8,42,101,211,211,211,211,8,211,187,211,8,139,8,67, - 12,17,8,26,101,139,91,211,211,211,8,139,8,211,109,8, - 139,150,17,182,26,101,211,8,211,211,211,8,211,211,8,139, - 8,67,12,26,182,42,101,211,211,211,211,211,211,187,139,8, - 139,8,139,12,17,182,26,101,211,8,91,211,211,8,211,8, - 109,8,211,139,12,26,8,42,101,211,8,211,211,91,109,8, - 211,8,211,211,139,12,17,8,42,101,211,211,211,211,8,211, - 211,8,109,211,211,139,12,17,8,26,8,8,141,8,12,105, - 105,208,105,208,105,208,105,208,105,208,105,208,105,208,208,105, - 208,208,105,208,208,208,208,208,208,208,208,105,208,208,208,208, - 208,208,63,208,208,208,208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,63, - 169,100,140,100,169,140,169,169,74,100,74,100,100,100,100,74, - 100,100,100,100,100,74,100,74,100,100,100,100,74,100,100,74, - 100,100,100,100,169,100,100,169,100,169,169,169,100,169,100,100, - 100,169,169,100,100,100,169,100,169,100,169,169,169,88,169,169, - 169,169,169,169,140,140,169,169,100,169,169,169,169,169,169,169, - 169,169,169,169,169,140,169,169,100,169,140,169,169,100,169,169, - 169,100,100,100,100,100,100,100,100,100,169,100,169,169,100,169, - 169,169,169,100,169,169,169,169,100,169,100,88,100,169,100,100, - 169,169,169,100,169,169,88,169,169,88,169,100,127,169,88,39, - 88,39,88,169,127,100,88,169,169,169,88,169,88,169,169,88, - 169,169,88,169,127,127,169,88,127,127,169,169,127,169,88,88, - 88,39,169,88,39,127,39,127,127,127,127,127,127,218,153,111, - 17,12,26,8,12,91,219,122,101,182,211,211,8,211,187,211, - 211,187,139,187,67,150,17,243,122,101,67,211,8,211,91,8, - 109,109,187,139,8,67,150,17,8,122,101,67,211,8,211,91, - 8,211,187,211,8,8,67,150,17,243,122,101,67,211,8,211, - 91,8,211,211,187,139,8,67,150,17,243,122,101,139,211,211, - 8,8,211,187,211,187,139,187,67,150,17,243,122,101,139,211, - 91,139,8,211,109,187,211,211,91,67,150,17,8,122,101,139, - 211,91,139,8,211,187,211,187,139,8,67,150,26,8,122,101, - 139,211,8,211,8,211,109,187,211,8,8,67,150,26,8,122, - 101,182,139,211,211,91,8,109,187,211,211,8,67,150,26,8, - 122,101,182,139,8,211,91,8,109,8,109,8,8,67,150,17, - 8,122,101,67,211,211,211,91,8,211,187,211,211,8,67,150, - 17,243,122,101,139,211,91,8,211,211,8,211,187,139,91,67, - 150,17,243,122,101,182,139,8,211,91,8,109,187,211,8,8, - 67,150,26,243,122,101,139,211,211,211,91,8,109,187,211,211, - 91,67,150,26,8,122,101,139,211,91,8,91,211,8,8,109, - 211,8,67,150,26,8,162,101,139,139,211,8,91,8,211,8, - 109,211,8,67,150,17,243,122,101,139,211,211,211,8,211,187, - 211,211,211,8,67,150,17,243,122,101,139,211,91,8,91,8, - 109,8,211,211,8,67,150,17,8,26,12,8,8,8,8,105, - 105,105,208,105,208,208,208,105,208,105,208,105,208,208,105,208, - 105,208,208,105,208,208,208,105,208,208,208,208,105,208,208,208, - 208,208,208,208,63,208,208,208,208,63,208,16,208,208,208,208, - 208,208,208,208,208,208,208,208,208,16,208,208,208,208,208,208, - 169,140,169,169,100,169,169,74,169,140,100,74,74,74,74,100, - 74,100,100,100,100,100,100,100,100,100,74,100,100,74,100,100, - 100,100,100,169,100,169,100,100,169,169,100,100,169,100,169,169, - 88,169,100,169,88,169,100,169,169,88,169,88,169,39,169,169, - 169,169,169,169,169,169,140,169,169,169,100,169,100,140,100,100, - 169,169,169,169,169,169,169,169,169,169,100,169,100,169,100,100, - 100,100,100,100,74,100,100,100,100,100,100,100,100,100,100,100, - 100,169,100,169,169,88,169,169,88,100,88,100,88,100,88,88, - 100,169,100,88,169,169,169,169,88,169,169,127,169,169,88,169, - 88,169,88,169,100,88,169,88,169,88,39,169,88,169,39,88, - 169,88,169,127,88,169,169,127,88,169,127,127,127,127,39,127, - 127,127,127,127,88,169,127,127,127,127,127,188,188,218,218,132, - 26,150,187,141,150,12,12,42,101,211,8,211,211,211,8,211, - 187,139,8,211,67,132,17,8,42,101,8,211,8,211,211,211, - 8,211,8,109,211,139,150,17,243,42,101,8,211,8,211,211, - 8,211,8,211,211,211,67,132,17,8,42,101,8,211,211,8, - 139,187,211,8,211,109,211,139,132,17,8,42,139,8,211,211, - 211,211,8,211,8,139,8,211,67,150,17,243,42,101,211,8, - 211,8,211,187,211,8,211,8,211,67,132,17,211,42,101,211, - 8,211,8,211,187,139,8,211,211,211,139,150,17,211,42,101, - 8,211,211,91,211,187,211,8,211,211,211,67,150,17,211,42, - 101,211,8,211,8,211,211,8,211,8,109,211,139,150,17,211, - 42,101,211,8,211,8,139,187,211,109,8,211,211,139,150,17, - 243,42,101,211,211,8,211,8,211,8,211,8,109,211,139,187, - 17,211,42,139,211,211,8,211,211,187,211,8,139,8,8,67, - 132,17,211,42,101,211,8,211,8,211,109,8,211,211,211,211, - 139,187,17,211,42,101,211,211,211,8,139,187,211,8,211,8, - 211,67,150,17,211,42,139,8,211,139,8,211,211,187,109,8, - 211,211,67,150,17,211,42,101,211,8,211,211,139,211,187,109, - 8,211,211,139,132,17,211,42,101,109,211,211,8,211,8,211, - 8,109,8,211,139,132,17,211,78,101,211,8,139,211,211,109, - 211,8,187,211,211,8,17,12,141,17,8,8,8,8,150,36, - 105,105,208,105,105,208,105,208,208,208,105,208,105,208,208,105, - 208,208,208,208,105,105,208,208,105,208,105,208,208,208,63,208, - 208,208,208,63,208,208,63,208,63,208,208,63,208,208,208,208, - 208,208,16,63,208,208,208,16,208,208,208,208,208,208,208,63, - 169,100,39,169,100,100,169,100,169,169,100,100,100,169,100,100, - 74,100,100,100,100,100,100,100,100,100,100,100,100,100,100,169, - 169,169,100,100,100,169,100,100,100,169,88,100,169,88,169,169, - 100,169,100,169,88,169,88,100,169,100,169,169,169,169,169,169, - 39,39,169,140,169,169,169,140,140,39,169,39,100,169,39,100, - 169,169,140,169,39,169,39,39,169,188,169,169,169,169,169,100, - 169,100,100,100,100,74,100,169,169,100,169,100,100,100,100,169, - 88,169,88,100,100,88,100,100,88,169,169,169,88,169,169,169, - 100,88,169,100,100,169,88,169,169,169,169,169,169,169,169,88, - 140,88,169,169,88,169,88,169,100,169,88,39,88,88,169,88, - 127,169,169,127,88,127,169,127,127,88,88,169,127,127,127,127, - 127,127,207,207,127,127,127,169,127,127,127,207,207,153,218,166, - 12,187,219,243,187,12,187,122,101,139,211,211,211,211,211,139, - 8,211,211,8,139,150,17,109,122,101,139,211,211,8,139,109, - 211,211,211,211,8,139,150,17,109,122,101,139,211,211,139,211, - 109,211,211,109,211,91,101,150,17,109,122,101,139,211,211,8, - 139,211,211,211,211,211,8,139,150,17,109,122,101,139,211,211, - 139,211,109,211,8,109,211,8,139,150,17,109,122,101,139,139, - 139,211,211,211,211,211,211,8,8,139,150,17,109,122,101,139, - 211,139,139,139,211,211,211,109,8,8,139,150,17,109,122,101, - 139,211,139,139,139,211,211,211,109,211,91,139,150,17,243,122, - 101,139,211,211,211,139,109,211,211,211,211,8,139,150,17,243, - 122,101,139,211,211,211,139,211,211,211,109,211,8,139,150,17, - 109,122,101,139,211,211,211,211,109,211,211,211,211,8,67,132, - 17,243,122,101,139,211,211,211,211,211,211,8,211,211,8,139, - 150,17,243,122,101,139,211,211,211,139,211,211,211,109,8,8, - 67,150,17,109,122,101,139,211,211,8,139,211,211,211,109,8, - 8,139,150,219,109,122,101,139,211,211,211,139,139,211,211,211, - 8,8,139,150,17,243,122,101,139,211,211,211,139,109,211,211, - 109,211,8,139,150,219,109,122,101,139,211,211,211,211,211,109, - 211,211,211,8,139,150,26,211,122,101,139,211,211,211,139,109, - 211,211,211,211,211,67,150,26,141,26,12,8,141,8,8,105, - 36,208,105,208,208,105,208,105,208,105,208,208,105,208,105,208, - 105,105,208,208,208,208,105,208,208,208,208,105,208,105,208,105, - 208,63,208,208,63,208,105,105,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 169,39,169,169,169,140,100,169,100,100,140,140,169,100,140,169, - 169,169,169,100,100,100,100,100,100,100,100,100,100,100,169,100, - 100,100,100,169,100,100,169,88,100,100,169,88,169,100,100,88, - 169,100,88,100,100,88,100,88,169,169,169,169,169,169,169,169, - 169,169,39,169,140,169,140,169,169,169,140,169,188,140,169,39, - 140,39,188,39,169,39,169,169,169,169,169,169,169,169,169,169, - 100,169,169,100,169,100,169,100,100,169,100,169,88,169,88,100, - 100,100,100,88,88,100,100,169,100,100,88,100,100,100,100,88, - 169,100,100,88,169,74,88,100,88,169,169,169,169,169,169,169, - 88,127,169,169,39,100,169,169,169,169,88,169,88,169,169,127, - 169,127,88,88,188,88,188,88,88,169,127,218,188,188,188,188, - 88,127,127,127,127,218,127,127,127,188,127,127,188,218,218,187, - 12,187,219,243,187,150,17,42,49,211,139,8,211,211,91,109, - 8,211,211,211,139,132,219,211,78,49,211,211,211,211,8,91, - 211,211,8,211,211,67,132,219,211,78,49,211,211,211,8,211, - 211,109,211,8,211,8,67,132,219,211,78,49,211,211,211,211, - 211,109,211,109,8,211,211,67,132,219,211,78,49,211,211,211, - 8,211,91,109,211,211,211,211,67,132,26,211,78,67,211,211, - 8,211,211,91,211,8,109,211,8,67,132,219,211,122,49,139, - 139,8,211,8,109,211,8,211,211,211,67,132,219,211,78,49, - 211,211,8,8,211,211,211,211,8,211,8,67,132,219,211,122, - 67,139,211,211,8,211,211,109,109,8,211,211,67,132,219,211, - 122,49,211,211,139,8,211,109,211,211,8,211,211,67,132,219, - 211,122,49,211,211,211,211,211,211,109,109,211,211,211,8,132, - 26,211,122,49,211,211,211,211,211,91,109,109,211,211,8,67, - 132,26,211,122,49,211,211,8,139,8,61,109,211,211,211,211, - 8,132,26,211,122,49,211,211,211,211,211,211,109,8,211,211, - 8,67,132,219,211,78,67,139,8,211,211,8,109,211,211,211, - 211,211,139,132,219,211,122,49,211,211,8,211,8,211,211,211, - 8,211,211,67,132,26,211,122,67,139,211,8,211,211,61,211, - 211,8,211,211,67,150,219,211,122,67,139,8,211,139,91,211, - 109,211,211,8,211,139,12,17,8,26,8,8,8,8,150,36, - 105,105,105,105,208,105,208,208,208,105,208,105,208,208,208,208, - 208,208,105,208,105,208,208,208,105,208,105,208,208,208,208,208, - 208,105,208,208,208,208,208,208,208,208,208,208,208,208,63,208, - 208,208,208,208,208,208,208,208,208,54,208,208,208,208,208,208, - 169,169,169,169,169,169,74,169,140,100,100,74,140,100,74,100, - 100,100,140,169,140,169,100,100,100,100,100,100,169,100,100,100, - 169,169,100,169,169,100,100,169,100,100,169,100,169,88,100,100, - 169,100,169,169,100,169,169,100,169,88,169,169,188,188,188,169, - 169,169,169,169,169,169,39,169,140,169,140,169,169,169,140,169, - 169,169,169,169,169,169,169,39,169,169,169,169,169,169,169,169, - 100,100,169,100,169,100,100,100,100,169,100,100,100,100,100,100, - 100,169,100,169,169,88,100,169,100,100,169,169,169,169,100,100, - 169,169,169,169,169,169,169,169,88,169,169,169,169,169,88,74, - 100,169,127,100,127,88,100,88,169,169,88,39,88,127,169,88, - 88,188,188,88,127,88,188,188,218,88,88,188,218,127,88,207, - 188,218,218,218,88,88,127,127,127,188,127,127,188,236,218,187, - 219,26,26,243,187,150,219,122,101,139,139,139,139,139,139,211, - 211,211,139,139,139,12,26,109,122,101,139,139,139,139,139,139, - 211,211,211,139,211,139,12,26,109,122,101,139,139,139,139,139, - 211,211,139,211,139,139,139,12,26,109,122,101,139,139,139,139, - 139,211,211,211,211,139,211,139,12,26,109,122,101,139,139,139, - 139,139,139,211,211,211,139,211,139,150,26,211,122,101,139,139, - 139,139,139,139,211,139,211,139,211,139,12,26,211,122,101,139, - 139,211,139,139,211,211,211,139,139,139,139,12,26,211,122,101, - 101,139,139,139,211,211,211,139,211,139,139,139,12,26,211,42, - 101,139,139,139,139,139,211,139,211,211,139,211,139,12,26,211, - 122,101,139,139,139,211,139,211,211,211,139,139,211,139,12,26, - 211,122,101,139,139,139,139,139,211,139,91,139,139,139,67,150, - 26,211,122,101,139,139,139,139,139,139,139,211,211,139,211,139, - 150,26,211,122,101,101,139,139,139,139,139,211,139,211,139,139, - 67,150,26,211,122,101,139,139,139,139,139,211,211,211,211,139, - 211,101,12,26,109,42,101,139,139,139,139,139,211,211,211,211, - 139,139,139,12,26,211,122,101,101,139,139,139,139,211,211,139, - 211,139,139,139,150,26,211,122,101,139,139,139,139,139,139,211, - 211,211,139,139,139,150,26,211,122,101,139,139,8,67,211,139, - 211,139,211,139,139,67,150,26,141,26,8,8,8,8,8,36, - 36,208,105,105,208,105,105,105,105,208,105,208,105,105,208,105, - 208,208,208,208,208,105,208,208,208,208,208,105,105,208,105,208, - 208,208,105,208,105,208,208,208,208,208,208,208,208,208,208,208, - 208,208,63,208,208,63,16,208,208,208,208,208,208,208,208,208, - 169,140,39,169,169,169,169,169,100,169,140,169,100,169,169,140, - 140,74,100,74,100,74,169,140,169,74,100,169,100,100,100,100, - 100,100,100,100,100,100,169,100,169,100,88,100,100,100,100,100, - 100,88,169,169,169,169,100,169,100,169,88,169,39,169,169,39, - 39,39,39,39,140,169,169,39,169,169,169,169,140,169,169,169, - 140,169,39,39,39,39,39,169,169,169,188,140,169,169,140,100, - 169,169,74,100,100,100,100,169,100,100,100,169,169,169,169,169, - 169,100,169,100,100,100,100,88,169,169,169,169,88,169,169,169, - 169,100,88,169,88,100,169,169,169,169,140,88,169,100,88,169, - 88,169,169,127,169,169,169,169,88,127,169,169,88,169,88,127, - 188,88,88,188,88,188,88,88,88,188,188,218,188,188,188,127, - 88,169,127,127,207,207,188,88,127,127,127,39,207,236,236,166, - 12,187,42,243,187,12,187,122,8,91,26,91,26,91,91,26, - 91,91,26,91,182,132,12,109,42,8,91,26,91,91,187,91, - 26,91,91,26,91,8,132,12,109,42,8,91,26,91,91,26, - 91,26,91,26,91,26,182,132,12,243,42,8,91,26,91,26, - 91,91,26,91,91,26,91,8,132,12,109,42,8,91,26,91, - 91,187,26,91,26,91,26,91,8,132,12,243,42,8,187,26, - 91,91,187,26,91,26,91,26,91,182,132,12,12,122,12,187, - 26,91,26,91,91,26,91,26,91,26,182,132,12,187,78,8, - 26,91,91,26,91,91,26,91,26,91,26,182,132,12,12,122, - 8,91,26,91,91,26,91,91,26,91,26,91,182,132,12,12, - 122,8,91,26,91,91,91,26,91,26,91,26,91,8,150,17, - 243,42,8,26,91,91,26,91,26,91,12,91,26,91,8,132, - 187,12,122,8,91,26,91,91,91,26,91,26,91,26,91,182, - 132,12,12,78,8,91,26,91,26,187,26,91,26,91,26,91, - 8,132,17,243,42,91,91,26,91,91,26,91,91,26,91,26, - 91,182,132,17,243,162,8,187,26,91,26,91,91,26,91,26, - 91,26,182,132,12,12,122,211,26,91,26,91,26,91,91,26, - 91,26,91,8,132,17,243,42,8,91,26,91,91,26,91,91, - 26,91,26,91,8,132,12,12,78,8,17,91,91,26,91,26, - 91,26,91,26,91,8,132,12,8,17,12,243,8,8,8,36, - 36,105,105,105,208,105,208,105,208,105,208,105,208,105,208,105, - 105,105,105,105,105,208,208,105,105,208,105,208,208,105,208,105, - 208,105,208,208,208,208,105,208,208,208,54,208,208,208,208,208, - 63,208,208,208,96,208,208,208,208,16,208,208,208,208,208,208, - 169,169,39,169,169,140,100,169,169,169,74,74,74,74,100,100, - 169,140,169,140,169,100,100,100,169,74,100,74,140,169,140,100, - 169,169,169,100,169,100,169,169,169,100,169,169,169,169,88,169, - 169,100,100,169,88,169,169,169,169,169,169,169,39,39,39,39, - 169,39,188,188,39,169,169,169,169,169,169,169,169,169,39,169, - 39,169,169,39,39,39,39,39,39,169,169,169,140,169,39,74, - 100,169,74,100,140,140,100,140,100,169,100,100,100,100,169,169, - 169,100,169,169,169,169,100,100,100,100,169,169,100,169,169,100, - 169,169,100,169,169,100,100,169,169,88,140,169,169,169,88,169, - 169,169,169,88,88,169,88,169,88,88,88,127,88,169,88,88, - 188,188,188,188,88,188,188,188,188,218,88,88,188,218,188,207, - 127,188,188,127,88,127,207,88,188,188,127,127,127,207,218,187, - 17,166,42,109,111,187,12,0,219,219,219,219,219,219,187,183, - 26,219,219,26,8,17,26,8,0,219,219,219,219,42,42,187, - 183,26,219,219,17,8,17,26,8,0,219,219,219,219,219,42, - 187,219,219,219,219,26,8,12,26,211,0,219,219,26,26,219, - 42,187,183,26,219,219,17,8,17,26,8,0,219,219,219,219, - 26,187,187,183,26,219,219,17,8,17,26,211,0,26,187,219, - 219,26,187,183,26,26,219,219,26,8,12,187,211,0,26,187, - 219,219,183,42,187,183,26,219,219,26,8,12,17,211,0,219, - 219,219,219,219,42,187,183,26,219,219,26,8,12,187,8,0, - 219,219,219,26,42,42,183,42,26,219,219,26,8,187,187,211, - 0,219,219,219,42,42,26,187,183,26,183,219,17,8,12,26, - 211,0,219,17,26,26,26,26,187,42,42,219,219,219,8,12, - 187,8,0,219,219,219,219,219,42,219,187,183,26,219,26,8, - 187,187,211,0,219,219,219,219,26,26,187,183,26,219,219,219, - 8,12,26,8,0,219,17,26,219,219,42,219,187,42,219,219, - 26,8,12,26,8,0,26,187,219,219,183,42,187,183,26,219, - 219,26,8,12,187,8,0,219,17,26,219,187,42,183,42,26, - 26,219,219,8,12,26,8,0,219,219,219,219,219,42,219,183, - 26,26,219,219,8,12,187,211,0,26,219,219,219,26,26,187, - 183,26,219,219,219,8,12,26,8,219,8,141,8,8,8,36, - 36,105,105,105,105,105,105,208,105,208,105,208,105,208,208,208, - 105,208,208,208,105,208,208,208,208,208,208,105,208,208,105,208, - 208,208,105,208,105,208,208,63,208,208,208,16,208,208,208,208, - 208,208,208,208,208,208,16,208,208,208,208,16,208,208,16,208, - 169,74,169,140,169,169,39,140,140,100,140,169,100,169,140,140, - 140,100,74,100,74,140,169,140,100,169,74,169,100,74,100,169, - 100,169,100,169,100,169,169,100,169,169,100,100,100,169,169,100, - 100,169,169,169,169,169,100,169,74,169,88,169,169,169,169,169, - 188,188,39,39,169,39,169,169,39,39,39,39,169,169,169,169, - 169,39,39,169,169,39,39,39,140,169,169,169,169,169,100,169, - 169,100,169,140,100,100,74,100,169,169,140,169,169,169,100,100, - 169,169,100,100,169,169,169,169,88,169,100,169,169,100,100,169, - 140,100,88,169,169,169,88,100,169,140,88,100,169,140,88,169, - 100,100,100,169,169,88,127,88,169,188,188,169,127,188,88,218, - 188,188,88,88,188,188,218,218,88,88,188,218,127,88,127,88, - 218,88,218,188,188,127,127,188,127,127,127,127,188,236,58,17, - 26,17,183,12,17,26,150,0,139,101,139,139,139,139,67,139, - 139,139,139,139,8,150,219,211,0,139,139,139,139,67,182,139, - 139,139,139,139,139,139,150,219,211,0,211,139,139,139,139,139, - 139,139,139,139,139,139,139,132,219,243,0,211,139,67,67,139, - 182,139,139,139,139,139,139,139,150,219,211,0,211,139,139,139, - 67,139,139,139,139,139,139,139,139,150,219,243,0,211,139,139, - 139,67,139,139,67,67,139,101,139,8,132,219,8,0,139,67, - 139,139,139,139,67,139,139,139,139,139,139,132,219,243,0,139, - 101,139,139,139,139,139,139,67,139,139,139,139,132,219,211,0, - 211,101,139,182,67,67,139,67,67,139,101,139,8,150,219,243, - 0,211,139,139,67,182,67,139,139,139,139,139,139,139,132,219, - 243,0,139,139,67,67,67,139,67,182,67,139,139,139,139,150, - 219,211,0,139,101,139,139,139,67,139,139,139,139,139,139,8, - 150,219,243,0,211,101,139,139,67,67,139,139,67,139,139,139, - 139,150,219,211,0,211,139,67,139,139,139,67,139,67,139,101, - 139,8,150,219,211,0,211,67,139,139,139,139,139,139,139,139, - 139,139,139,132,219,211,0,139,139,67,139,139,139,139,67,67, - 139,139,139,139,150,219,211,0,211,101,139,139,139,67,139,139, - 139,139,139,139,139,132,219,243,0,211,67,139,139,67,139,139, - 139,139,139,139,139,139,150,219,141,219,8,8,141,141,141,36, - 105,105,105,105,208,105,105,105,208,105,105,105,105,105,105,208, - 208,105,208,105,208,105,105,105,208,105,208,105,208,105,208,208, - 105,208,208,208,208,208,105,208,63,208,208,208,208,208,63,208, - 208,208,208,208,208,208,208,208,208,16,208,63,208,208,208,208, - 188,140,169,140,140,169,169,100,140,100,74,140,74,169,169,74, - 140,140,140,169,140,74,100,140,169,169,100,100,169,169,74,74, - 100,169,100,169,100,100,169,100,169,169,88,169,100,88,169,169, - 169,169,100,100,169,169,100,169,100,169,169,88,39,188,188,39, - 169,169,169,39,140,39,39,169,169,169,169,39,39,169,39,39, - 169,169,39,39,169,39,169,188,39,39,140,169,140,140,169,140, - 140,169,100,100,169,169,100,74,100,100,74,100,100,169,169,100, - 88,169,88,100,88,169,169,169,169,169,100,169,169,169,169,88, - 169,169,100,169,169,169,140,169,88,140,127,169,88,169,169,127, - 88,127,88,88,169,169,169,127,169,88,88,88,88,188,88,88, - 88,218,218,218,88,88,88,218,207,218,88,218,207,218,207,127, - 127,127,218,218,127,88,207,127,188,127,188,127,127,218,236,187, - 26,17,42,150,187,26,17,0,8,139,139,139,211,211,211,211, - 8,211,139,67,243,150,122,243,0,8,139,139,211,139,211,211, - 211,8,211,211,139,243,150,122,243,0,8,139,139,211,139,211, - 139,211,8,211,139,139,243,150,122,243,0,8,211,211,139,139, - 211,211,211,8,211,139,139,243,150,122,243,0,8,139,211,211, - 211,211,211,139,187,139,211,139,243,150,78,243,0,8,139,139, - 109,139,211,211,109,109,8,139,182,8,12,122,243,0,8,139, - 139,139,211,211,211,211,8,139,211,139,8,187,42,243,0,8, - 139,139,211,211,211,211,211,8,211,139,139,243,12,122,243,0, - 8,139,211,139,211,211,211,109,8,8,139,182,8,12,122,243, - 0,8,139,211,211,139,211,211,211,8,8,139,211,8,150,122, - 243,0,8,211,211,109,211,109,139,187,8,211,139,211,243,12, - 122,243,0,8,139,211,211,211,211,211,211,211,211,139,67,8, - 12,122,243,0,8,139,139,211,211,211,211,211,211,8,139,211, - 8,150,122,243,0,8,211,139,211,211,211,109,8,211,8,139, - 67,243,150,122,243,0,8,139,139,139,211,139,139,211,8,139, - 139,139,8,12,122,243,0,8,211,139,211,139,211,211,109,211, - 211,139,139,243,150,122,243,0,8,139,139,211,211,211,139,211, - 211,211,139,211,8,12,78,243,0,8,139,139,109,139,211,139, - 211,8,211,139,211,8,150,122,8,26,12,8,8,8,8,36, - 36,105,105,105,105,208,105,208,105,208,105,208,105,208,105,208, - 208,105,208,208,105,208,208,208,105,208,208,105,208,105,208,105, - 208,105,208,105,105,208,208,105,208,63,63,208,208,208,208,208, - 208,208,208,208,208,208,208,63,208,208,208,208,208,63,208,208, - 169,169,188,169,169,140,140,140,169,140,140,169,140,74,74,140, - 74,100,74,74,100,140,140,169,74,169,74,169,74,74,100,169, - 140,74,140,169,169,169,100,169,100,169,188,169,188,169,169,169, - 169,100,169,169,100,169,88,169,169,169,169,188,169,169,39,188, - 39,39,39,39,188,169,140,169,140,169,39,169,169,39,169,169, - 39,39,169,39,39,169,39,39,140,169,188,140,100,169,140,169, - 169,74,100,169,74,100,140,169,140,169,100,140,169,100,100,169, - 169,169,169,188,169,169,169,169,169,169,169,169,169,169,88,169, - 169,88,169,169,169,169,88,100,169,169,100,100,169,169,88,169, - 88,169,169,127,169,88,188,88,88,169,169,88,88,88,88,218, - 218,188,188,88,218,207,188,88,218,188,188,188,88,127,218,188, - 218,188,127,127,188,207,127,127,127,218,207,127,218,218,218,111, - 26,187,42,187,17,42,187,0,8,211,109,211,109,109,8,187, - 109,8,243,139,211,17,42,211,0,8,211,109,109,109,211,8, - 8,109,8,8,182,243,17,42,211,0,8,211,109,211,109,109, - 109,211,187,211,243,67,243,187,26,211,0,211,139,139,187,109, - 211,8,187,109,8,243,182,211,17,42,211,0,8,139,211,211, - 109,109,211,8,211,8,8,182,211,187,42,211,0,8,211,109, - 211,187,109,211,109,8,211,8,67,243,132,26,211,0,8,211, - 109,8,109,109,211,109,109,8,243,67,243,132,42,211,0,8, - 139,109,211,211,211,8,211,187,211,8,182,243,132,26,211,0, - 8,211,139,187,211,109,109,211,109,211,8,67,243,132,26,211, - 0,8,139,211,211,109,109,8,109,109,211,8,182,109,187,26, - 211,0,8,211,211,211,109,211,211,211,211,8,243,67,243,132, - 42,211,0,8,139,211,211,211,109,8,8,109,8,243,139,243, - 132,26,211,0,8,139,109,211,109,109,211,187,109,211,211,182, - 243,187,26,211,0,8,139,109,211,109,211,211,187,109,211,243, - 139,211,187,42,211,0,8,211,211,187,109,211,187,211,111,8, - 8,182,243,132,26,211,0,8,139,211,109,109,109,211,211,187, - 211,8,182,243,187,42,211,0,8,211,211,211,109,109,8,109, - 109,211,8,182,243,132,42,211,0,8,211,109,211,109,109,8, - 109,109,8,8,182,211,187,26,8,219,8,8,8,8,8,244, - 36,105,105,105,105,105,105,105,105,105,105,208,105,105,105,105, - 208,105,208,105,208,208,105,208,208,105,208,105,208,105,208,105, - 208,105,208,105,208,105,105,208,208,208,208,208,208,208,208,208, - 208,63,208,208,208,208,208,208,208,208,208,208,208,208,208,208, - 169,169,169,39,169,169,169,140,169,140,140,140,39,39,140,169, - 140,169,140,140,169,74,74,169,74,169,74,169,169,140,169,100, - 169,169,74,100,100,169,100,169,169,169,169,169,169,169,169,100, - 169,169,169,169,169,169,169,88,169,88,169,188,169,169,169,39, - 188,39,169,140,39,169,39,169,140,169,39,39,39,39,39,169, - 39,39,169,188,39,39,39,188,140,140,169,39,140,169,74,74, - 169,140,74,169,140,100,74,100,74,169,100,169,169,169,100,100, - 169,169,74,169,169,169,169,88,100,88,169,169,169,169,100,169, - 88,169,88,169,169,88,39,88,169,169,127,169,169,88,74,127, - 169,88,169,88,169,169,169,188,188,188,188,88,188,188,88,88, - 218,88,218,218,88,218,218,218,88,218,218,207,188,127,218,88, - 218,188,218,218,218,218,218,218,88,127,218,127,218,153,58,111, - 26,166,42,12,187,219,187,0,8,67,139,139,139,139,67,139, - 211,139,139,139,211,150,0,187,0,211,67,139,139,139,139,139, - 139,211,139,139,139,211,150,0,187,122,8,67,139,139,139,139, - 139,139,139,139,211,139,8,187,0,12,0,8,139,67,139,139, - 139,139,139,139,139,139,139,211,150,0,187,0,8,67,139,139, - 139,139,139,139,139,139,139,139,243,187,0,187,0,211,67,139, - 67,139,139,139,211,211,139,139,139,211,150,0,187,0,211,67, - 139,139,139,139,139,139,211,139,139,67,12,150,0,187,0,8, - 67,139,67,139,139,139,139,139,139,139,139,8,132,0,187,122, - 8,139,139,139,139,139,139,211,211,139,139,139,211,187,122,187, - 0,8,67,139,139,139,139,139,139,211,139,139,67,243,187,0, - 187,0,211,139,139,67,139,139,139,211,211,139,139,139,211,150, - 0,187,0,8,67,139,139,139,139,139,139,211,139,139,139,211, - 187,0,187,0,8,139,139,139,139,139,139,139,211,139,139,67, - 211,132,0,187,122,8,139,139,67,139,139,139,139,211,139,139, - 139,243,150,0,187,0,211,67,139,67,139,139,139,139,211,139, - 139,67,8,132,0,187,0,8,67,139,139,139,139,139,139,139, - 139,139,139,8,150,0,187,122,8,139,139,139,139,139,139,139, - 211,211,139,67,8,187,0,187,0,211,67,139,139,139,139,139, - 139,211,139,139,67,243,187,122,8,26,12,8,8,8,12,36, - 105,36,105,105,105,105,105,105,208,105,105,105,208,105,208,105, - 208,105,208,105,208,105,208,105,208,208,105,208,105,208,105,208, - 105,208,208,208,208,208,105,105,105,208,63,63,208,208,63,208, - 208,208,208,208,208,208,208,63,208,208,208,208,208,208,63,208, - 140,169,39,140,39,140,140,169,140,169,140,169,140,140,169,140, - 140,140,140,140,140,39,140,140,140,140,169,74,74,169,74,140, - 169,74,169,140,169,169,169,169,169,169,169,169,169,169,88,169, - 169,88,169,88,169,169,169,169,88,169,169,169,39,39,39,140, - 140,140,39,39,140,39,140,39,39,39,140,169,169,39,169,39, - 169,169,39,39,39,39,140,39,39,169,140,140,140,140,140,140, - 140,169,169,74,100,140,169,169,169,169,140,74,169,140,169,140, - 169,169,169,169,169,169,88,100,169,169,88,169,88,100,127,169, - 169,169,169,169,169,127,169,169,88,127,169,169,169,169,127,100, - 100,169,100,127,88,88,188,88,88,88,88,188,88,218,188,218, - 88,218,218,188,218,88,218,188,218,218,127,218,218,218,218,218, - 218,218,218,127,127,127,127,127,207,218,127,127,236,153,153,132, - 26,219,56,109,42,12,132,162,26,187,187,12,187,91,111,187, - 26,91,187,12,12,187,42,211,0,26,12,187,187,187,111,187, - 187,187,91,12,12,12,187,26,211,0,26,187,187,12,109,187, - 187,12,91,26,91,12,109,150,26,211,162,26,187,91,109,187, - 109,187,12,91,26,12,12,12,12,26,211,0,26,187,187,187, - 187,111,187,187,187,91,26,12,187,150,26,211,0,26,187,187, - 187,187,91,111,12,91,91,26,12,12,187,26,211,0,26,187, - 187,187,111,187,187,187,91,91,26,91,109,187,26,211,0,26, - 187,187,187,187,111,187,187,17,91,12,12,187,12,42,211,162, - 26,187,8,187,91,109,187,12,91,91,26,12,12,150,42,211, - 0,26,187,12,91,111,109,187,187,187,91,12,91,187,150,26, - 8,122,26,187,187,187,91,109,187,12,91,91,26,91,12,187, - 42,211,0,26,187,187,187,187,111,187,187,26,91,187,12,12, - 150,26,211,162,26,187,91,109,187,111,8,187,26,91,26,91, - 12,12,26,211,0,26,187,187,187,91,109,187,12,91,91,187, - 12,187,12,26,211,0,26,187,187,187,187,111,8,187,26,91, - 17,91,187,187,26,211,162,26,187,187,187,111,187,187,187,12, - 91,26,12,109,187,26,211,0,26,187,12,187,111,187,187,12, - 12,91,17,91,187,150,26,211,0,26,187,187,187,187,91,109, - 187,26,91,17,91,187,150,42,8,26,12,8,141,8,141,244, - 105,105,105,105,105,105,105,105,36,208,105,105,105,105,208,105, - 105,208,105,105,208,105,208,105,208,105,208,105,208,105,208,105, - 105,208,105,105,105,208,208,208,208,105,208,208,63,208,208,63, - 208,63,208,63,63,208,208,208,208,208,208,63,208,63,208,208, - 169,140,188,140,169,39,140,140,140,169,140,140,74,140,140,140, - 140,169,140,140,140,140,169,169,140,140,169,140,74,169,169,74, - 169,74,169,140,140,169,169,169,169,169,169,169,169,169,169,169, - 169,169,188,169,169,88,169,169,169,169,169,169,169,169,169,39, - 39,140,140,39,140,169,140,169,140,39,39,39,140,39,140,39, - 39,39,169,39,39,39,39,39,39,169,169,169,140,169,169,74, - 140,140,169,140,169,140,140,140,74,169,140,140,169,169,169,100, - 169,169,169,169,169,169,188,88,169,169,88,169,127,100,169,169, - 169,88,169,169,169,169,169,169,88,88,127,169,169,88,127,169, - 88,127,100,169,88,88,169,88,88,88,88,218,88,218,88,218, - 88,88,218,218,218,188,218,218,127,218,218,218,88,127,188,218, - 127,127,218,218,218,218,218,127,127,218,218,127,207,153,153,132, - 26,17,42,150,183,91,219,0,0,0,0,122,122,122,0,122, - 0,0,0,0,219,150,26,12,0,0,0,0,122,122,0,122, - 0,0,0,0,0,219,132,42,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,219,132,42,12,0,0,0,0,0,0, - 0,0,0,0,0,0,0,219,132,42,12,0,0,0,122,122, - 122,122,0,0,0,0,0,122,219,150,42,12,122,0,0,122, - 122,122,0,122,0,0,0,0,0,219,132,42,12,0,0,0, - 122,122,122,122,0,0,0,0,0,0,219,132,26,12,0,0, - 0,0,0,0,0,122,0,0,0,0,0,17,150,42,12,0, - 162,162,0,0,0,0,0,0,0,0,0,0,219,17,26,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,219,132,26, - 12,162,0,0,0,0,0,0,0,0,0,0,0,0,219,150, - 42,12,0,0,0,0,122,122,122,122,0,0,0,0,0,219, - 132,26,12,0,0,0,0,0,0,0,0,0,122,0,0,0, - 219,132,26,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,17,132,26,12,0,0,0,122,122,122,0,0,162,122,0, - 0,0,219,150,42,12,0,0,0,0,122,122,122,122,0,0, - 0,0,0,219,132,42,12,0,0,0,122,122,122,122,0,0, - 0,0,0,0,219,132,26,12,0,0,0,122,122,0,0,0, - 0,0,0,0,0,219,17,42,243,219,12,8,8,8,8,244, - 105,105,105,105,105,105,105,36,105,105,105,208,105,105,105,208, - 105,105,105,208,105,208,105,208,105,208,105,208,105,208,105,208, - 105,208,208,208,208,105,208,208,208,208,105,208,63,63,208,208, - 208,63,208,208,208,63,208,105,208,105,208,208,208,208,63,208, - 39,169,39,39,39,140,169,169,169,39,140,140,39,74,140,140, - 140,140,74,140,140,169,140,140,169,140,140,100,39,140,140,169, - 74,169,140,169,100,140,169,140,169,140,169,169,169,218,169,169, - 169,169,169,169,188,39,188,169,169,88,169,169,169,39,39,140, - 140,39,39,169,39,39,39,39,39,169,140,39,39,39,39,39, - 39,140,39,39,39,39,39,140,140,140,140,140,140,140,140,39, - 140,140,140,140,140,100,169,100,169,74,169,100,100,140,169,39, - 169,140,169,169,169,169,169,188,169,169,169,169,169,127,88,88, - 88,169,88,88,88,88,88,88,169,188,169,169,169,169,100,127, - 127,88,127,188,188,88,88,169,218,88,88,88,88,88,218,218, - 218,218,218,218,218,218,88,218,218,218,218,127,218,218,218,218, - 218,218,218,218,127,127,218,218,218,143,218,218,218,153,184,111, - 26,219,183,12,42,12,219,42,91,26,26,26,42,42,26,17, - 17,219,219,26,17,219,26,187,26,26,26,26,26,42,42,26, - 17,219,219,219,26,17,17,26,187,42,91,26,26,26,42,42, - 26,17,17,219,219,26,26,219,26,187,26,26,26,26,26,26, - 42,26,17,17,219,17,26,219,219,26,187,42,91,26,26,26, - 42,42,26,17,219,219,17,26,26,219,26,187,42,26,26,26, - 26,42,42,26,17,219,219,17,26,17,17,26,187,42,91,26, - 26,26,42,42,26,17,219,219,219,26,17,219,26,187,42,91, - 26,26,26,26,42,26,17,219,219,219,26,219,219,26,187,26, - 26,26,26,26,26,42,26,17,219,219,17,26,26,132,26,187, - 42,26,26,26,26,26,42,26,17,219,219,219,26,26,219,26, - 187,42,12,26,26,26,42,42,26,17,219,219,219,26,17,219, - 26,187,26,26,26,26,26,42,42,26,17,17,219,17,26,26, - 219,26,187,42,91,26,26,26,26,42,26,17,17,219,219,26, - 17,219,26,187,42,12,26,26,26,42,42,26,17,219,219,219, - 26,219,219,26,187,26,26,26,26,26,42,42,26,17,219,219, - 219,26,17,219,26,187,42,91,26,26,26,42,42,26,219,219, - 219,17,26,17,219,26,187,42,12,26,26,26,42,42,26,12, - 219,219,219,26,26,17,26,187,26,26,26,26,26,42,42,26, - 17,17,219,219,26,26,132,26,187,42,12,8,8,8,12,244, - 36,105,36,105,105,105,105,208,105,105,36,208,105,105,208,105, - 208,105,105,208,105,208,105,208,105,208,208,105,208,208,105,208, - 105,208,105,208,105,208,105,208,105,208,208,208,105,208,208,208, - 105,208,208,105,105,208,105,208,208,208,208,63,208,208,208,208, - 39,140,169,39,169,39,140,140,74,140,169,140,39,140,169,140, - 169,39,74,140,140,140,140,140,169,140,140,74,169,169,140,140, - 74,74,140,169,169,169,169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,188,188,169,169,169,39,169,140,188,39, - 39,140,39,39,39,140,140,39,39,39,140,169,169,39,39,39, - 39,39,39,39,39,114,39,39,39,140,140,169,140,140,140,169, - 140,140,100,140,39,140,140,140,140,140,39,140,169,169,169,140, - 169,169,140,169,169,169,169,88,169,169,88,88,169,169,188,169, - 88,127,188,169,169,188,169,88,169,88,169,88,169,127,169,169, - 169,88,88,88,188,218,88,88,88,218,88,218,218,88,88,218, - 88,218,218,88,218,143,218,88,218,127,218,218,218,218,218,218, - 127,218,218,218,218,218,127,127,218,207,143,236,143,153,184,111, - 26,219,26,187,42,187,17,219,150,12,12,219,219,17,12,243, - 12,243,150,17,12,17,219,187,17,243,12,12,187,219,17,12, - 243,12,243,150,17,12,17,219,12,219,150,12,12,187,219,12, - 12,150,150,150,150,150,12,17,219,187,17,243,12,17,187,219, - 12,17,243,12,150,150,12,187,17,219,12,219,150,12,17,17, - 219,17,12,243,150,150,150,150,12,17,219,12,17,243,12,12, - 17,219,17,12,243,150,150,150,17,12,17,219,12,219,150,12, - 12,17,219,12,12,243,150,150,150,17,12,219,219,12,219,150, - 12,12,187,219,17,12,243,12,243,150,12,12,17,219,12,219, - 243,187,150,17,219,12,17,243,150,150,150,150,12,219,219,12, - 219,243,12,17,17,219,12,12,243,12,150,150,150,12,17,219, - 12,26,243,12,150,17,219,12,12,150,243,150,150,17,12,17, - 219,187,17,243,12,12,187,219,17,17,243,12,150,150,150,12, - 17,219,12,219,150,12,12,187,219,12,17,243,150,150,150,17, - 12,219,219,187,26,243,12,150,17,219,17,12,243,12,150,150, - 12,12,17,219,187,17,243,12,12,17,219,12,12,243,12,150, - 150,17,12,17,219,12,219,150,12,12,17,219,17,12,243,150, - 150,150,17,12,17,219,187,26,243,187,17,17,219,17,17,243, - 12,243,150,150,12,17,219,12,219,243,12,17,17,219,17,12, - 243,12,150,150,150,12,219,26,12,42,12,8,8,8,12,244, - 105,105,105,208,36,105,105,208,105,208,105,105,208,105,105,208, - 105,208,105,208,105,208,105,208,105,208,105,208,105,105,208,105, - 208,105,208,208,105,208,105,208,63,105,208,208,105,208,105,208, - 208,105,208,208,208,208,208,208,105,208,208,105,208,105,105,208, - 188,39,39,169,39,140,169,39,39,169,140,140,140,169,140,140, - 140,140,169,140,169,140,140,140,140,140,140,39,140,140,140,169, - 140,39,169,39,140,169,140,169,169,169,169,169,169,169,169,169, - 188,188,188,188,188,169,169,169,169,188,169,169,169,188,140,39, - 39,39,39,39,140,39,39,169,140,140,39,39,39,188,169,39, - 39,39,39,39,39,188,39,39,39,39,169,140,140,169,140,140, - 169,140,39,140,140,140,169,74,169,140,140,39,140,169,140,169, - 169,169,169,169,169,169,169,169,169,88,169,169,169,88,169,127, - 188,169,88,127,88,169,188,188,88,169,88,127,127,88,88,88, - 188,88,88,188,88,100,218,218,88,88,218,88,218,218,218,218, - 218,218,218,218,218,218,218,143,218,218,218,218,218,218,143,218, - 218,218,127,218,143,218,143,143,143,207,143,207,207,153,184,111, - 26,42,42,187,183,109,17,26,150,12,132,187,219,12,26,243, - 150,17,12,17,17,219,42,243,26,150,12,132,17,17,12,26, - 243,150,17,12,17,17,219,42,150,26,150,17,132,17,17,17, - 17,243,12,12,12,219,17,219,42,243,26,150,12,150,219,17, - 17,17,243,150,17,12,17,17,17,42,150,26,150,17,150,17, - 219,12,26,243,12,12,12,17,17,17,26,187,26,150,12,132, - 17,219,12,26,243,12,12,12,17,17,219,42,150,26,150,17, - 132,187,219,17,17,243,12,150,12,17,17,17,26,150,26,150, - 17,150,219,17,12,26,243,150,17,12,17,17,219,42,150,26, - 150,12,219,187,17,17,17,243,12,12,12,219,17,17,26,109, - 26,150,12,132,187,17,12,26,243,150,150,12,17,187,219,42, - 109,219,150,12,17,187,17,17,12,150,12,150,12,17,12,219, - 42,243,26,150,12,150,219,17,12,26,243,150,12,12,219,12, - 219,42,150,26,150,17,132,219,17,17,17,243,12,150,12,17, - 17,17,26,243,219,150,12,219,187,17,12,17,243,150,12,12, - 17,17,219,42,109,26,150,12,132,187,17,17,17,243,150,150, - 12,17,17,219,42,150,26,150,17,132,187,17,12,26,243,12, - 17,12,17,17,17,42,243,219,150,12,132,187,17,12,26,243, - 150,150,12,219,17,219,42,109,26,150,12,150,187,17,12,26, - 243,150,150,12,17,17,17,26,12,219,12,12,8,8,243,244, - 105,105,36,105,208,105,105,105,105,105,208,105,105,105,208,105, - 105,105,208,105,208,208,105,208,105,208,105,208,208,208,208,105, - 105,208,105,208,208,105,208,105,208,208,105,208,208,63,208,208, - 208,208,208,208,208,105,105,208,208,105,208,208,208,208,208,208, - 169,39,39,39,39,39,169,140,39,140,169,74,140,140,169,140, - 140,140,140,140,140,169,140,140,169,140,140,140,169,169,140,169, - 140,140,140,169,140,169,169,140,169,140,169,169,169,188,188,169, - 169,188,169,169,39,39,188,39,169,188,169,39,169,188,169,140, - 39,39,39,39,169,169,39,39,39,39,140,39,39,39,188,39, - 39,39,39,39,39,188,39,169,169,140,140,140,140,140,140,140, - 140,140,140,140,140,140,39,140,169,169,140,169,140,169,169,169, - 169,169,169,39,169,169,39,169,39,188,169,88,169,169,88,169, - 88,169,88,188,88,88,88,188,127,188,88,88,188,188,188,88, - 188,188,88,88,218,169,88,218,218,88,218,218,88,218,218,88, - 218,218,218,218,127,143,218,218,143,218,236,143,218,218,218,143, - 143,218,143,218,143,218,207,207,143,207,143,218,207,153,184,132, - 26,183,42,12,122,150,132,26,150,17,17,17,150,150,26,150, - 150,150,12,17,187,17,26,109,26,150,17,219,17,150,150,26, - 150,150,150,12,17,12,17,26,109,26,150,17,17,17,150,17, - 26,150,150,150,17,12,12,17,26,109,26,150,219,12,17,132, - 12,26,150,150,150,12,17,17,17,26,211,26,150,17,17,17, - 150,150,26,150,150,150,17,12,17,17,17,109,26,150,17,17, - 17,150,150,26,150,150,132,12,17,187,17,26,211,26,150,17, - 219,17,150,12,26,150,17,150,12,17,17,219,26,109,26,150, - 17,17,17,132,150,26,150,150,150,17,17,12,17,26,211,26, - 150,17,17,17,132,12,26,150,150,132,12,17,17,219,26,109, - 26,150,17,17,219,150,150,26,150,17,150,12,17,12,219,26, - 243,26,150,17,219,17,132,12,26,150,12,150,12,219,12,17, - 26,109,26,150,219,12,17,132,150,26,150,150,150,12,219,12, - 17,26,211,26,150,17,12,17,132,12,26,150,12,150,12,132, - 17,219,26,109,26,150,17,17,17,132,12,26,150,150,132,12, - 17,187,17,26,243,26,150,219,17,219,150,17,26,150,17,150, - 12,17,12,17,26,109,26,150,17,17,219,150,150,26,150,150, - 150,12,17,17,17,26,109,26,150,17,17,17,150,150,26,150, - 17,150,12,17,12,17,26,109,26,150,219,17,219,150,150,26, - 150,17,150,17,17,17,17,17,109,219,12,8,8,8,150,244, - 105,105,105,105,105,105,105,105,105,105,105,105,208,105,105,208, - 105,208,105,105,208,105,208,105,208,208,105,208,105,105,208,105, - 208,105,208,105,208,208,208,208,105,208,208,105,208,105,208,105, - 208,105,208,105,208,208,208,105,208,208,105,105,208,105,208,105, - 39,39,39,39,140,140,140,39,140,39,140,39,140,140,140,140, - 140,140,169,140,169,140,169,169,140,39,140,140,140,140,140,140, - 140,169,140,140,169,169,169,169,169,188,140,169,169,169,169,169, - 188,169,39,39,188,39,169,39,39,39,39,188,39,169,39,188, - 39,39,39,39,39,39,39,140,39,39,39,39,39,188,39,188, - 39,39,39,207,39,188,188,39,39,39,169,140,169,140,169,140, - 169,169,140,169,140,169,140,169,140,140,169,140,169,169,169,140, - 169,39,169,169,169,169,169,188,188,169,188,188,188,88,188,188, - 188,88,169,88,188,188,188,88,88,88,188,188,88,88,88,188, - 88,88,169,218,169,88,218,88,88,218,88,218,218,88,218,218, - 218,218,218,218,218,218,218,218,218,218,143,218,218,218,218,218, - 218,143,218,218,218,207,143,143,207,207,143,236,218,236,184,111, - 26,183,219,187,26,187,17,219,150,17,150,219,17,17,219,12, - 17,17,17,132,12,187,219,243,219,12,17,132,17,17,17,219, - 12,17,17,17,132,17,187,219,243,219,12,17,132,17,17,12, - 219,150,17,17,17,132,17,187,219,243,219,17,17,132,17,17, - 17,219,12,219,17,12,132,12,187,219,243,219,17,17,132,17, - 17,12,219,150,17,17,17,132,17,187,26,243,219,17,17,132, - 219,17,12,219,150,17,17,17,132,12,187,219,243,219,12,17, - 132,17,17,17,219,150,132,17,12,132,12,187,219,243,219,12, - 17,132,17,17,17,219,12,17,17,12,132,17,187,219,243,219, - 17,150,132,17,17,12,219,150,17,17,12,17,187,187,219,243, - 219,150,17,132,17,17,17,219,12,132,17,12,132,12,187,219, - 109,219,17,150,132,17,17,12,219,150,132,17,12,132,17,187, - 219,243,219,150,17,132,17,17,12,219,12,219,17,12,132,12, - 187,219,243,219,17,17,132,17,17,12,219,150,132,17,17,17, - 12,187,219,243,219,17,150,132,17,17,17,219,12,17,17,17, - 132,12,187,219,109,219,17,17,132,17,17,12,219,12,150,17, - 17,132,17,187,219,243,219,17,17,150,219,17,12,219,150,17, - 17,12,132,12,187,219,243,219,17,17,132,219,17,17,219,12, - 132,17,12,132,17,187,219,243,219,17,17,132,17,17,12,219, - 12,150,17,12,17,187,166,26,243,26,8,150,8,8,12,244, - 36,105,105,105,105,105,105,105,105,105,105,105,208,105,208,105, - 105,208,105,105,208,105,208,105,208,105,208,208,208,208,105,208, - 105,208,105,208,105,105,105,208,208,105,105,208,208,208,105,208, - 63,208,208,208,208,105,208,208,105,208,208,208,105,208,208,208, - 39,39,39,39,39,169,169,169,140,169,140,169,169,140,169,140, - 169,140,140,140,140,140,140,140,140,169,169,140,169,169,140,169, - 140,169,169,140,140,140,140,140,169,39,169,188,169,169,188,169, - 39,188,169,39,188,39,169,169,169,188,39,188,188,188,39,39, - 39,39,39,207,39,39,39,140,140,39,39,39,39,188,39,39, - 39,39,39,207,39,207,207,39,39,39,169,140,140,140,169,140, - 140,169,140,169,140,140,140,140,140,140,169,39,140,39,39,39, - 140,39,140,169,169,169,169,169,39,169,169,169,188,169,88,169, - 188,188,188,188,188,188,188,188,188,188,88,188,188,188,88,188, - 188,188,88,218,218,169,218,218,88,218,88,218,218,218,88,218, - 188,218,218,218,207,218,218,218,218,218,218,236,207,143,236,236, - 236,218,143,218,143,207,143,143,143,143,207,143,218,236,184,111, - 26,42,26,12,42,109,187,42,150,219,150,17,150,17,219,150, - 150,150,17,132,132,187,219,211,219,150,17,132,17,150,17,219, - 150,150,150,17,132,132,187,219,211,219,150,17,132,17,150,17, - 26,150,150,150,17,132,132,187,219,211,219,150,17,132,17,150, - 17,219,150,150,150,219,132,132,187,219,211,219,150,17,132,17, - 150,17,26,150,150,150,17,132,132,150,219,211,219,150,17,132, - 17,132,17,26,150,150,150,17,132,132,187,219,211,219,150,17, - 132,17,150,17,26,12,150,150,219,132,132,12,219,211,219,150, - 17,132,17,150,17,219,150,150,132,17,132,132,187,219,211,219, - 12,219,132,17,150,17,26,150,150,150,132,132,132,12,219,211, - 42,150,17,132,17,150,17,219,12,150,150,219,132,132,187,26, - 211,219,12,219,132,17,150,17,26,12,150,150,219,150,166,12, - 219,109,42,150,219,132,17,150,17,219,150,150,150,17,132,132, - 187,219,211,219,150,17,132,17,150,17,26,12,150,150,17,132, - 132,187,26,211,219,12,219,132,17,150,17,219,150,150,150,12, - 132,132,187,219,211,219,150,17,132,17,150,17,219,12,132,150, - 17,132,132,187,219,211,219,150,17,132,17,150,17,26,150,132, - 150,219,132,132,187,26,211,219,150,17,150,17,150,17,219,12, - 150,150,219,150,132,187,219,211,219,150,17,132,17,150,17,219, - 12,132,150,132,132,17,150,26,109,219,8,150,8,12,8,36, - 105,105,36,105,105,105,105,105,105,105,208,105,105,105,105,208, - 105,105,208,105,208,105,208,208,105,208,208,105,105,208,105,208, - 208,208,105,208,208,208,208,208,208,208,208,105,208,208,208,105, - 105,208,105,208,208,208,105,208,105,208,105,208,105,105,105,208, - 169,39,39,169,169,39,140,140,140,39,169,140,140,140,140,140, - 39,140,140,169,140,140,140,140,169,140,140,140,140,140,169,140, - 140,140,140,169,169,169,169,39,39,169,39,169,169,188,169,188, - 88,169,188,169,169,88,39,188,188,39,169,188,39,39,39,169, - 169,188,39,39,39,39,39,39,39,39,39,39,207,39,39,207, - 207,39,39,39,207,39,39,188,169,140,140,140,169,140,140,140, - 140,140,140,140,140,169,169,140,169,140,140,140,140,140,140,140, - 188,140,169,169,39,188,169,188,169,39,188,188,188,188,39,188, - 169,188,188,188,188,188,188,88,188,188,188,88,218,218,188,188, - 188,218,218,169,218,218,218,169,218,88,218,218,88,218,218,218, - 188,127,207,207,127,207,207,218,236,207,218,143,236,236,218,143, - 143,236,236,236,218,143,207,207,143,207,143,207,218,184,153,166, - 26,183,26,12,78,8,132,26,12,132,219,150,132,150,219,12, - 219,150,17,219,26,150,26,187,42,12,132,219,150,132,150,219, - 12,219,132,17,17,26,150,26,12,42,12,132,219,150,132,150, - 219,12,219,132,12,219,26,150,26,12,42,12,132,219,150,132, - 150,219,12,219,150,12,219,26,150,26,12,42,12,132,219,150, - 132,132,219,12,17,132,17,219,26,187,26,187,42,12,132,17, - 150,132,150,219,12,219,132,12,219,26,150,26,12,42,12,132, - 17,150,132,150,219,150,17,150,17,17,26,150,26,12,42,12, - 132,17,150,132,150,219,12,219,150,12,219,26,150,26,12,42, - 150,132,17,150,132,132,219,12,219,150,17,219,26,150,26,187, - 26,12,132,17,150,132,150,219,150,219,150,17,219,26,150,26, - 12,42,150,132,17,150,132,132,219,150,219,150,17,17,26,150, - 26,187,26,12,132,17,150,132,150,219,12,17,132,17,219,26, - 150,26,243,42,12,132,17,150,132,17,219,150,219,132,132,17, - 26,150,26,187,42,150,132,17,132,132,150,219,12,219,132,17, - 219,26,150,26,12,42,12,132,17,150,132,17,219,150,17,132, - 17,17,26,150,26,12,42,12,132,17,150,132,150,219,12,17, - 150,12,219,26,150,26,187,42,12,132,17,132,132,150,219,150, - 219,132,12,219,26,150,26,12,26,17,150,219,150,132,132,219, - 150,17,132,17,219,17,187,26,8,26,8,8,141,8,243,244, - 36,208,36,105,105,105,105,105,105,105,105,36,208,105,208,105, - 105,208,105,208,105,208,105,208,208,105,208,105,208,208,105,208, - 105,208,208,105,208,105,105,105,208,105,208,208,105,208,208,208, - 208,208,208,105,208,105,208,208,105,208,208,105,208,208,208,105, - 39,169,39,39,169,169,169,169,140,140,140,39,169,140,169,140, - 140,169,140,169,169,140,169,140,140,140,169,140,140,39,140,39, - 140,39,39,114,169,39,140,140,39,169,140,39,169,188,169,188, - 188,188,188,188,188,188,39,169,169,39,39,188,188,169,188,39, - 39,188,188,207,39,188,39,207,114,39,39,39,39,39,39,39, - 39,39,39,207,207,39,39,39,169,39,169,140,169,140,169,140, - 140,169,140,140,140,140,169,140,169,39,169,39,169,169,169,140, - 188,39,39,169,169,39,169,188,169,169,169,39,188,188,169,188, - 188,188,188,88,188,188,188,88,188,218,188,169,169,218,218,88, - 169,188,218,188,188,188,188,188,218,188,218,218,218,218,188,207, - 188,188,207,207,207,127,207,127,218,236,207,218,207,143,207,218, - 218,143,143,236,143,236,143,207,236,236,236,236,143,184,153,166, - 26,219,187,187,42,211,132,219,17,17,17,17,17,17,219,150, - 219,150,17,132,26,187,17,211,219,17,17,17,17,17,17,219, - 150,17,150,17,132,26,187,12,211,219,12,219,17,17,17,132, - 219,150,17,150,17,132,26,187,17,211,219,17,17,17,17,17, - 17,219,150,219,150,17,132,26,187,12,211,219,17,17,17,17, - 17,132,219,150,219,150,17,132,17,187,17,211,219,17,17,17, - 17,17,132,219,150,17,150,17,132,26,187,12,211,219,17,17, - 17,17,17,132,42,150,219,150,17,132,26,187,17,211,219,17, - 219,17,17,17,17,219,150,219,150,17,132,26,187,17,211,42, - 17,17,17,17,17,132,219,150,219,12,17,132,26,12,17,211, - 219,17,17,17,17,17,17,26,150,219,150,17,132,26,150,17, - 211,42,17,17,17,17,17,132,26,150,219,150,17,132,26,187, - 12,211,219,17,17,17,17,17,17,219,150,219,150,17,132,26, - 187,26,211,219,17,219,17,17,150,132,26,150,17,12,17,132, - 26,150,17,211,26,17,17,17,17,17,17,219,150,17,150,17, - 132,26,187,17,211,219,17,17,17,17,150,17,42,150,17,150, - 17,132,26,12,17,211,219,17,17,17,17,17,132,219,150,219, - 150,17,132,26,150,12,211,219,17,17,17,17,17,17,26,150, - 17,150,17,132,26,187,12,211,219,17,17,17,17,17,17,26, - 150,17,17,12,219,17,132,17,211,26,12,8,141,8,8,244, - 105,105,36,105,105,105,105,105,105,105,105,208,105,105,208,208, - 105,105,208,105,208,105,208,105,208,105,208,208,105,208,105,208, - 105,208,105,208,105,208,208,208,208,208,105,208,208,105,208,105, - 208,105,208,208,208,208,105,208,208,105,208,208,105,208,208,63, - 188,39,39,169,39,169,169,39,169,39,39,140,140,140,140,140, - 169,140,140,140,140,169,140,140,140,169,140,140,140,140,169,140, - 169,140,140,169,140,140,39,39,140,39,188,39,188,169,188,39, - 169,169,188,188,39,169,169,39,188,188,39,39,169,39,39,39, - 169,169,39,39,188,39,39,188,39,39,39,39,39,39,39,39, - 39,89,39,207,39,39,39,39,39,140,140,140,140,140,140,140, - 169,140,140,169,140,140,140,140,140,140,140,140,140,39,39,188, - 140,140,39,39,39,188,39,169,188,39,39,169,39,188,188,39, - 169,169,169,188,169,188,39,188,188,169,169,188,188,169,188,188, - 188,188,188,188,188,188,188,169,188,188,188,188,188,188,188,127, - 207,207,188,127,207,207,207,207,207,207,207,207,218,236,143,236, - 236,207,207,153,207,143,207,143,143,143,143,143,236,153,184,126, - 26,183,26,187,42,187,132,42,12,219,12,17,150,132,219,150, - 150,17,17,219,17,150,26,12,26,17,17,12,17,150,132,219, - 150,132,17,17,219,17,132,26,187,42,12,17,17,150,150,219, - 219,17,132,17,17,219,17,150,26,187,26,17,17,17,150,150, - 132,219,150,132,17,17,219,17,132,42,187,26,17,17,17,12, - 150,219,219,17,132,12,17,219,219,150,26,12,26,17,17,17, - 12,150,219,219,17,132,17,17,219,17,132,42,187,42,12,219, - 17,150,150,219,219,17,132,17,17,219,17,150,26,187,26,12, - 219,12,17,150,132,219,150,150,17,17,219,17,150,26,12,26, - 17,17,17,150,150,219,219,17,132,150,17,219,187,132,26,187, - 42,12,219,12,17,150,132,219,17,132,12,17,219,17,187,26, - 12,26,17,17,17,150,150,219,219,17,150,17,17,219,17,150, - 42,12,42,12,219,12,17,150,132,219,17,150,17,17,219,17, - 150,219,187,42,12,17,17,150,150,219,219,17,132,17,17,219, - 17,187,26,12,42,12,17,17,150,150,132,219,150,132,17,17, - 219,219,150,26,187,26,17,17,17,150,150,132,219,17,132,17, - 17,219,17,132,26,12,42,12,219,12,17,150,219,219,17,132, - 17,17,219,17,187,42,12,26,17,17,17,12,150,132,219,17, - 132,17,17,219,17,150,42,187,26,17,17,17,12,150,132,219, - 150,132,150,17,219,17,187,42,12,17,8,8,8,8,12,244, - 36,105,105,105,105,105,105,105,105,105,105,105,105,36,208,105, - 208,105,105,105,105,208,208,105,208,208,105,208,105,208,105,208, - 105,208,208,105,208,208,105,208,105,208,208,208,208,208,208,208, - 208,208,105,208,105,208,208,105,208,208,105,105,208,105,105,105, - 169,169,188,169,169,140,169,169,169,140,169,140,169,140,100,74, - 140,169,140,140,140,169,169,169,140,169,169,169,140,140,140,140, - 140,169,140,39,169,169,169,39,140,39,169,39,188,169,169,39, - 39,39,169,39,39,188,39,39,39,169,169,39,39,169,169,39, - 39,140,169,39,207,207,39,39,39,39,114,39,39,39,39,89, - 39,39,89,39,207,39,39,140,140,169,169,169,169,169,169,140, - 169,169,140,169,169,140,169,140,169,39,169,39,140,140,140,188, - 39,140,169,140,169,39,39,140,169,39,188,39,169,39,188,188, - 39,39,39,188,39,188,39,188,188,127,188,188,188,169,188,188, - 169,39,188,169,188,188,188,188,188,188,188,188,188,207,207,39, - 39,207,39,39,39,39,207,207,207,207,143,89,207,207,207,143, - 236,236,143,236,218,236,143,207,143,207,143,218,218,153,184,95, - 26,187,26,187,42,187,12,219,26,219,17,17,26,17,26,219, - 17,17,17,219,26,150,26,150,219,26,219,17,219,26,12,26, - 219,12,17,219,219,26,150,26,150,219,26,219,26,17,12,17, - 219,17,17,17,219,219,26,150,26,150,219,26,219,26,17,26, - 17,26,17,17,17,219,17,26,150,26,150,219,26,219,17,17, - 17,17,219,17,17,17,219,219,26,150,26,150,219,26,219,17, - 17,17,17,219,17,17,17,219,17,26,150,26,150,219,26,219, - 26,17,17,17,219,17,17,17,219,219,26,150,26,150,219,26, - 219,17,219,26,12,26,219,17,17,219,219,26,150,26,150,219, - 26,219,26,17,12,17,219,17,17,17,219,219,26,150,219,150, - 219,26,219,17,17,26,17,219,17,17,17,17,219,12,132,26, - 150,219,26,219,26,17,12,17,219,17,17,17,219,219,26,150, - 219,150,219,26,219,17,219,26,17,219,219,17,17,17,219,26, - 187,26,150,219,26,219,26,17,17,17,219,17,17,17,219,219, - 12,132,26,150,219,26,219,26,17,26,17,26,17,17,17,17, - 219,26,150,26,150,219,26,219,26,17,26,17,219,17,17,17, - 219,219,26,150,26,150,219,26,219,17,219,12,17,219,17,17, - 17,219,219,17,150,26,150,219,26,219,17,219,26,17,219,17, - 17,17,17,219,26,150,26,150,219,26,219,17,219,26,17,26, - 219,17,17,219,219,12,17,26,243,219,12,8,8,8,8,244, - 105,105,105,105,105,105,105,105,105,105,105,105,208,105,105,208, - 105,105,208,105,208,105,208,105,208,105,208,105,208,105,208,105, - 208,208,105,208,105,208,105,208,208,105,208,105,105,208,105,208, - 105,208,105,208,208,208,208,105,208,208,208,105,208,208,208,208, - 188,169,169,188,169,169,169,39,169,169,140,169,140,169,39,140, - 169,140,169,169,169,140,140,169,39,169,169,140,169,169,169,39, - 169,140,169,140,39,39,39,169,39,140,39,169,140,169,39,169, - 169,169,39,169,169,140,39,39,140,39,39,140,140,39,39,140, - 140,39,39,114,39,39,39,39,39,39,39,39,39,39,114,39, - 39,207,39,114,207,39,140,169,169,140,74,140,140,140,140,169, - 140,140,169,140,140,140,39,39,140,140,140,140,169,39,39,140, - 169,39,39,39,39,169,39,39,39,169,39,188,39,39,188,39, - 188,39,39,39,127,39,169,127,39,188,39,127,188,188,39,188, - 188,39,39,39,39,39,207,39,188,207,207,207,207,127,39,207, - 39,39,39,207,39,207,39,207,127,207,207,207,143,207,207,207, - 143,207,236,143,236,143,207,143,207,143,207,236,218,184,153,126, - 42,219,17,187,78,187,187,0,42,122,122,122,122,42,122,122, - 122,122,122,162,42,78,183,187,0,42,122,122,122,0,42,122, - 122,122,122,122,78,219,78,219,187,122,42,122,122,0,122,42, - 122,122,42,122,122,162,183,42,183,187,122,42,122,122,122,122, - 42,122,122,42,122,122,0,219,42,183,187,0,42,122,122,0, - 122,42,122,122,42,122,122,122,183,42,183,187,0,42,122,122, - 0,122,42,122,122,42,122,122,0,219,42,183,187,0,42,122, - 122,122,122,42,122,122,42,122,122,162,183,42,183,187,122,42, - 122,122,122,0,42,0,122,42,122,122,78,42,78,183,187,122, - 42,122,122,0,0,42,122,122,42,122,122,122,183,42,42,187, - 0,42,122,122,122,122,42,122,122,122,122,0,162,42,42,183, - 187,0,42,122,122,0,0,42,122,122,42,122,122,162,183,42, - 42,187,0,42,122,122,122,122,42,122,42,122,122,122,122,183, - 42,219,187,0,42,122,122,0,122,42,122,122,42,122,122,162, - 42,42,183,187,0,42,122,122,122,122,42,122,122,122,122,122, - 122,183,42,183,187,122,42,122,122,0,122,42,122,122,42,122, - 122,78,183,42,183,187,0,42,122,122,0,122,42,122,122,42, - 122,122,162,42,122,183,187,122,42,122,122,122,122,42,122,122, - 122,122,122,162,219,78,219,187,0,42,122,122,122,122,42,122, - 122,42,122,122,122,42,42,183,187,26,12,12,243,12,150,244, - 36,105,105,105,105,36,105,105,105,105,105,105,105,208,36,208, - 105,208,105,105,105,208,105,208,105,208,208,105,208,105,208,208, - 105,208,208,105,208,105,208,105,208,208,105,208,208,105,208,208, - 208,208,208,105,208,105,208,208,105,105,208,208,208,208,208,105, - 188,169,169,188,188,169,169,169,169,169,169,169,169,140,169,169, - 169,169,169,169,169,169,169,169,169,169,188,169,169,140,169,39, - 39,39,169,140,140,140,39,169,39,39,39,39,39,140,169,140, - 169,140,140,169,169,140,140,169,140,140,39,39,140,140,39,188, - 169,39,169,140,39,114,39,39,39,39,39,39,39,207,39,114, - 207,39,207,39,39,39,39,140,169,39,169,169,169,169,169,169, - 169,39,169,169,169,169,169,39,169,39,169,39,169,169,39,39, - 169,39,140,39,39,39,39,140,39,169,169,39,169,169,188,39, - 188,39,39,39,39,188,39,188,39,127,169,39,39,127,39,39, - 188,207,207,39,39,39,207,39,39,39,39,39,39,207,39,207, - 39,127,39,207,39,39,127,207,39,207,207,207,89,143,89,207, - 207,207,236,143,207,236,143,143,236,143,143,143,218,184,184,111, - 0,122,42,42,0,122,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,42,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,42,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,42,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,42,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,42,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,42,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,26,42,122,0,122,0,0,219,244, - 105,105,36,105,105,105,105,105,105,105,105,208,105,105,105,105, - 208,105,208,105,208,105,208,105,208,105,208,208,105,208,208,105, - 208,105,208,208,208,105,208,105,105,208,105,105,208,105,105,105, - 208,208,208,105,208,208,208,208,208,208,105,105,105,105,208,208, - 188,188,188,188,169,169,169,169,39,39,169,39,169,169,169,169, - 140,169,140,169,169,169,39,169,39,39,169,140,169,169,140,169, - 140,169,39,169,169,169,169,169,169,169,140,169,140,39,39,169, - 140,169,140,39,39,169,169,39,39,39,140,140,39,39,39,39, - 39,140,39,39,39,39,39,39,39,39,39,114,39,39,39,39, - 39,39,39,39,207,169,140,169,169,169,169,169,169,169,140,169, - 169,169,39,188,169,140,169,169,169,169,39,169,39,169,169,169, - 140,169,39,169,140,140,169,188,169,39,39,169,39,39,39,169, - 169,169,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,207,39,39,207,207,207,39,39,39, - 39,39,39,127,39,39,39,39,89,127,39,207,207,89,143,207, - 143,207,143,236,236,143,207,207,143,218,143,207,236,184,184,111, - 26,183,187,243,122,219,42,0,42,42,122,122,122,42,122,42, - 122,42,122,78,8,26,26,17,0,26,122,42,122,122,122,42, - 122,42,122,122,42,12,26,26,17,0,26,122,42,122,122,42, - 122,122,122,42,122,42,12,26,26,17,0,42,42,122,122,42, - 122,122,42,122,122,122,42,12,26,26,17,0,42,42,122,122, - 42,122,122,42,122,122,122,42,12,26,26,17,0,42,122,42, - 122,122,42,122,42,122,122,122,42,12,26,26,17,0,42,42, - 122,122,122,42,122,42,122,122,122,42,12,26,26,17,0,42, - 42,42,122,122,42,122,42,122,122,122,78,8,26,26,17,0, - 26,122,42,122,122,42,122,42,122,122,122,42,12,26,26,17, - 0,42,42,122,122,122,42,42,122,42,122,122,42,12,26,219, - 17,0,26,122,42,122,122,42,122,122,42,122,122,42,12,26, - 26,17,0,42,42,122,122,122,42,122,122,42,122,122,78,243, - 26,26,17,0,26,122,42,122,122,42,122,42,122,122,122,42, - 12,26,219,17,0,26,122,42,122,122,122,42,122,42,122,122, - 42,12,26,26,17,0,42,42,42,122,122,42,122,42,122,122, - 122,42,12,26,26,17,0,42,122,42,122,122,42,122,42,122, - 122,122,42,12,26,26,17,0,42,42,122,122,122,42,42,122, - 42,122,122,42,12,26,26,17,0,42,42,122,122,42,122,122, - 42,122,122,122,78,243,26,26,17,122,26,12,12,219,150,244, - 36,105,36,105,36,105,105,105,105,105,105,105,105,208,105,105, - 105,105,105,105,105,105,105,208,105,208,105,208,105,105,208,105, - 208,208,105,208,105,208,105,208,208,208,208,208,208,208,208,208, - 105,105,208,208,105,208,105,208,105,208,208,208,208,208,208,63, - 188,169,188,188,169,169,169,169,169,39,169,169,140,169,169,169, - 169,169,169,169,169,169,39,169,188,39,188,39,188,169,169,169, - 169,169,169,169,169,169,39,169,169,188,39,188,169,169,39,39, - 169,39,140,140,39,114,140,169,39,39,39,39,39,140,140,39, - 39,39,39,39,39,39,39,39,39,39,207,39,39,114,39,39, - 39,39,39,39,39,39,39,39,169,169,169,169,169,169,169,169, - 169,169,169,39,169,169,169,39,169,169,169,169,169,169,169,188, - 169,169,39,188,188,39,39,39,169,169,39,169,127,39,39,39, - 39,39,169,39,39,169,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,114,207,39,39,39,207,39,39,39, - 39,39,39,39,39,39,39,39,39,39,127,89,127,207,207,207, - 89,207,89,236,89,236,143,207,236,207,236,143,143,236,184,224, - 139,12,111,49,219,187,12,42,101,139,139,139,8,8,211,8, - 8,8,139,139,67,17,26,12,42,101,139,139,139,8,8,8, - 211,8,8,139,139,49,17,26,8,42,101,139,139,8,8,8, - 8,139,8,8,139,139,49,17,26,8,42,101,139,139,139,8, - 8,211,211,8,8,139,139,67,17,26,12,26,101,139,139,8, - 8,8,211,139,8,8,139,139,49,219,26,8,42,101,139,139, - 8,8,8,211,211,8,8,139,139,49,219,26,8,42,101,139, - 139,8,139,8,8,211,8,8,139,139,49,17,26,8,42,101, - 139,139,139,8,8,211,211,8,8,139,139,67,17,26,8,42, - 101,139,139,8,8,8,211,211,8,8,139,139,49,219,26,8, - 42,101,139,139,139,8,8,211,211,8,8,139,139,67,17,26, - 12,26,101,139,139,139,8,8,8,211,8,8,139,139,49,17, - 26,12,26,101,139,139,8,8,8,139,8,8,8,139,139,67, - 17,26,12,42,101,139,139,8,139,8,8,211,8,8,139,139, - 49,219,26,8,42,101,139,139,139,8,8,8,211,8,8,139, - 139,49,219,26,8,42,101,139,139,139,8,8,211,211,8,8, - 139,139,49,17,26,12,26,101,139,139,8,8,8,211,211,8, - 8,139,139,49,219,26,8,42,101,139,139,139,8,8,211,211, - 8,8,139,139,49,17,26,8,42,101,139,139,139,8,8,211, - 211,8,8,139,139,67,17,17,243,42,12,67,67,141,243,244, - 36,105,105,105,105,105,105,105,105,105,105,105,105,105,105,208, - 105,105,208,105,105,208,105,105,105,105,208,105,208,208,105,208, - 105,208,105,208,105,208,208,105,105,105,208,105,208,105,105,208, - 208,208,208,208,208,208,208,208,208,208,208,208,63,105,105,208, - 169,188,188,169,188,169,169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,100,169,188,169,169,169,169,169,169,169,140, - 140,169,169,169,39,169,169,39,39,169,39,39,39,39,169,140, - 39,169,39,169,169,169,39,39,140,39,39,140,39,39,39,140, - 39,140,114,39,140,39,39,207,207,114,39,39,39,207,39,39, - 39,39,207,39,207,169,169,169,169,169,169,169,169,100,169,169, - 169,169,169,169,169,169,169,169,169,169,169,169,39,169,39,169, - 39,39,188,39,39,39,169,169,39,39,169,39,169,169,169,169, - 169,169,39,39,39,39,39,39,169,39,169,39,39,127,140,39, - 39,39,39,114,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,89,39,207,127,89,207,127,89, - 207,207,143,207,143,207,207,127,207,89,143,207,207,153,236,109, - 8,187,219,67,187,8,187,26,101,8,8,8,211,211,8,211, - 211,8,139,8,101,150,17,211,42,49,8,8,8,211,211,211, - 8,211,8,211,211,101,150,17,243,42,49,8,8,211,211,211, - 8,8,211,211,8,139,101,150,17,243,26,101,8,8,8,211, - 211,8,8,211,211,8,139,67,150,17,211,26,101,8,8,139, - 211,211,8,8,8,211,8,139,101,150,17,243,42,49,8,8, - 211,211,211,8,8,211,8,211,139,101,150,17,243,26,101,8, - 8,8,8,211,211,8,211,8,211,139,101,150,17,243,42,49, - 8,8,8,211,211,8,8,211,211,8,139,101,150,17,243,42, - 49,8,8,211,211,211,8,8,211,8,211,139,101,150,17,243, - 26,101,8,8,8,8,211,8,8,211,211,8,139,67,12,17, - 211,42,49,8,8,8,211,211,211,8,211,8,211,139,101,150, - 17,211,26,101,8,8,211,211,211,8,211,211,211,8,8,101, - 150,17,211,42,49,8,8,8,8,211,211,8,211,8,211,139, - 101,12,17,243,42,49,8,8,8,211,211,211,8,211,8,211, - 139,101,150,17,243,42,49,8,8,8,211,211,8,8,211,8, - 211,211,101,150,17,211,42,49,8,8,211,211,211,8,8,211, - 8,211,139,101,150,17,243,26,101,8,8,8,8,211,8,8, - 211,8,211,139,101,150,17,243,42,49,8,8,8,211,211,8, - 8,211,8,139,8,139,150,17,243,219,12,243,7,8,12,244, - 36,36,105,36,105,36,105,36,105,105,208,105,208,105,105,208, - 105,105,105,208,105,208,105,208,208,105,208,105,105,208,105,208, - 208,105,208,105,208,208,105,208,208,208,105,208,105,208,208,105, - 208,105,208,105,105,105,105,208,105,105,105,105,208,208,208,208, - 188,169,188,188,188,39,169,169,169,169,140,169,169,39,169,169, - 188,39,169,169,39,169,39,188,188,39,39,140,39,39,169,169, - 140,39,39,169,39,39,169,169,39,169,39,39,39,39,188,169, - 140,169,39,39,140,169,140,39,39,140,39,39,140,169,39,39, - 39,169,140,39,39,39,39,39,207,39,39,39,39,39,39,207, - 39,207,39,39,39,39,169,169,39,39,169,169,188,169,169,169, - 169,169,169,169,169,169,169,39,188,169,169,169,39,169,39,169, - 169,169,188,188,188,39,39,127,169,39,169,39,39,39,39,39, - 39,39,169,39,127,39,127,39,169,39,39,169,39,127,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,89,127,207,89,143,207, - 89,127,207,207,207,127,127,127,143,207,89,236,207,153,184,224, - 243,187,26,67,126,12,132,122,101,139,8,211,8,211,8,211, - 8,187,211,8,101,150,132,243,122,101,211,8,211,8,211,8, - 211,211,8,8,8,139,150,17,243,122,101,211,211,8,211,8, - 211,211,8,211,12,8,139,150,17,141,42,49,8,211,8,211, - 8,211,8,211,8,8,8,139,150,132,141,42,49,211,8,8, - 211,8,211,211,8,211,8,8,139,150,17,243,122,101,211,211, - 8,211,8,211,8,211,8,8,8,139,150,17,141,42,49,211, - 211,211,8,211,8,211,211,8,8,8,139,150,17,243,122,101, - 8,211,8,211,8,211,211,8,211,8,8,139,150,17,243,122, - 101,211,139,8,211,8,211,8,211,8,8,8,139,150,17,141, - 42,49,211,8,211,211,8,211,8,211,8,8,8,139,150,132, - 243,122,101,211,8,211,8,211,8,211,211,8,187,8,101,150, - 132,141,42,49,211,8,211,8,211,8,211,8,211,8,8,101, - 150,132,243,122,101,211,211,211,8,211,8,211,211,8,8,8, - 67,150,17,243,122,101,211,8,211,8,211,8,211,211,8,8, - 8,101,150,17,243,122,101,8,211,8,211,8,211,8,211,8, - 211,8,101,150,132,243,122,101,211,139,8,211,8,211,8,211, - 8,8,8,101,150,17,141,42,49,211,8,211,211,8,211,8, - 211,8,8,8,139,150,12,243,122,101,211,8,211,8,211,8, - 211,8,8,187,8,67,12,17,243,219,12,8,141,8,12,244, - 36,36,36,36,105,36,105,105,105,105,105,105,36,105,105,105, - 105,105,208,36,105,105,105,105,105,105,105,105,208,36,105,208, - 105,208,208,208,105,208,105,208,105,208,105,208,208,105,208,105, - 208,105,208,208,208,208,208,208,208,208,208,208,208,63,105,208, - 188,188,188,188,39,169,169,188,169,39,169,169,140,140,169,169, - 169,169,169,169,169,169,169,39,188,188,39,188,169,140,140,39, - 39,140,140,169,169,169,39,188,169,188,169,188,169,188,39,39, - 188,39,140,169,39,39,39,169,169,39,39,39,39,39,140,39, - 39,39,39,39,39,207,39,207,207,39,39,89,39,39,207,207, - 207,188,207,207,207,169,39,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,39,169,169,169,188,169,188, - 188,39,39,169,169,188,188,169,39,169,127,39,169,127,169,169, - 39,169,39,127,39,39,39,39,39,39,169,39,39,39,39,39, - 39,39,39,39,39,39,39,127,39,39,39,39,89,39,39,39, - 39,39,39,39,39,39,39,39,39,207,207,127,207,143,127,207, - 143,89,207,143,207,89,127,89,127,89,143,207,207,58,184,224, - 109,26,42,182,150,243,187,42,101,211,8,211,211,8,211,211, - 8,211,211,8,67,150,26,182,42,101,211,211,211,8,211,8, - 109,8,109,109,8,67,150,17,182,42,101,211,211,211,211,8, - 187,211,187,211,211,8,67,150,17,139,122,139,211,211,211,8, - 211,187,211,8,109,109,8,67,150,26,211,122,139,211,211,211, - 8,211,187,211,187,109,109,8,67,150,17,182,42,101,211,211, - 8,211,211,8,109,8,109,109,8,67,150,17,139,122,101,8, - 211,211,211,8,109,8,211,8,111,8,67,150,17,182,42,101, - 211,211,211,211,8,211,8,211,187,109,8,67,150,17,182,42, - 101,8,91,8,211,211,187,211,8,109,109,8,67,150,219,139, - 122,139,211,211,211,8,211,187,211,8,109,109,8,67,150,26, - 182,42,101,211,211,211,8,211,187,211,8,187,139,8,67,150, - 26,211,122,101,211,211,211,8,211,187,109,8,109,211,8,67, - 150,26,182,42,101,8,211,211,211,187,109,8,109,8,111,8, - 139,150,17,182,42,101,211,211,211,8,211,187,211,8,109,109, - 8,139,150,17,182,42,101,211,211,211,8,109,211,8,211,187, - 109,8,67,150,26,182,42,101,8,91,8,211,211,187,211,8, - 109,109,8,139,150,17,139,122,139,211,8,211,211,211,187,109, - 8,109,109,8,67,150,219,182,42,101,211,211,211,211,8,109, - 211,8,211,211,211,139,150,17,254,219,243,8,141,243,8,244, - 36,36,105,36,105,36,105,36,105,105,105,105,105,105,36,208, - 105,105,105,105,105,208,105,208,105,105,208,105,105,208,36,208, - 105,208,105,105,105,208,105,105,208,105,208,105,105,208,208,208, - 105,208,105,208,105,208,105,105,105,208,208,105,105,105,208,63, - 188,188,188,169,188,188,39,39,169,39,140,39,169,140,39,140, - 140,169,140,169,169,188,169,188,39,169,169,169,169,169,74,169, - 169,169,140,140,169,169,169,188,169,188,169,39,39,39,39,39, - 140,169,39,39,39,169,39,39,140,39,140,39,39,39,140,140, - 114,39,39,39,39,39,39,39,207,114,39,39,39,207,39,207, - 207,207,207,39,207,140,39,140,169,39,140,140,169,169,169,100, - 169,169,169,169,169,169,169,169,169,169,188,188,169,169,169,169, - 169,169,188,39,39,188,39,188,39,169,169,188,39,127,39,169, - 39,39,39,39,127,39,39,39,169,39,39,169,39,140,169,39, - 39,127,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,89,114,127,39,39,127,127,39,89,127,89,89,89,127, - 207,89,236,127,143,207,143,89,127,143,207,127,207,236,184,224, - 109,219,122,211,111,243,187,122,101,139,211,211,91,211,187,211, - 187,211,211,8,139,150,26,8,122,101,139,211,91,211,91,8, - 109,8,211,211,8,139,12,26,8,122,101,139,211,91,8,211, - 211,8,211,8,211,8,139,12,26,8,122,101,139,211,8,211, - 91,8,211,8,109,211,8,139,150,26,8,122,101,139,211,91, - 8,211,211,8,211,8,211,8,139,12,26,8,122,101,139,211, - 91,211,91,8,109,211,187,139,8,139,12,26,8,122,101,139, - 211,91,8,91,8,109,187,211,211,8,139,12,26,8,122,101, - 139,211,8,91,211,187,211,8,211,211,8,139,12,26,8,122, - 101,67,211,211,211,91,8,211,8,109,211,8,139,12,26,8, - 122,101,139,211,91,211,211,8,109,8,211,211,8,139,150,26, - 8,122,101,139,211,91,211,8,211,8,139,8,211,8,139,150, - 26,8,42,101,139,211,91,211,91,8,211,8,109,211,8,139, - 150,26,8,122,101,139,211,211,8,211,8,211,187,211,211,8, - 139,12,26,8,122,101,139,211,91,211,8,211,187,211,8,211, - 8,139,12,26,8,122,101,139,211,8,91,211,91,8,211,211, - 211,8,139,150,26,8,122,101,67,211,211,211,91,8,211,8, - 211,211,8,139,12,26,8,122,101,139,211,211,91,8,211,8, - 109,8,211,8,139,12,26,8,122,101,139,211,91,8,91,8, - 109,8,211,211,211,67,12,26,8,26,150,8,67,12,12,144, - 36,36,36,36,105,105,105,105,105,105,105,105,105,105,105,105, - 105,208,105,105,105,105,105,105,105,105,105,208,105,105,105,105, - 105,105,208,105,208,105,208,105,208,105,208,208,105,105,105,208, - 208,208,105,208,105,208,208,208,105,105,208,208,208,208,105,208, - 188,188,188,188,39,39,169,169,39,169,39,169,140,169,140,169, - 169,169,39,140,140,169,188,39,188,188,39,169,169,140,169,140, - 140,140,169,169,39,169,169,169,188,169,39,169,188,169,169,169, - 169,39,140,169,140,39,140,140,169,140,39,140,39,39,39,39, - 169,140,114,39,39,207,39,39,39,207,39,89,39,39,207,39, - 39,39,188,39,39,39,169,188,39,140,188,39,140,39,169,39, - 169,169,169,169,39,169,169,169,169,188,88,169,169,188,188,188, - 188,188,39,169,188,169,169,169,169,39,127,39,188,169,127,127, - 127,39,39,39,39,39,127,127,39,39,39,39,140,127,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,89,39,39, - 39,39,39,39,127,114,89,39,127,89,39,39,127,39,127,89, - 127,127,207,89,127,89,207,127,89,127,89,236,236,236,153,59, - 17,187,42,141,150,150,12,42,101,211,211,8,8,211,211,8, - 211,8,211,8,67,150,17,211,42,101,211,211,211,211,8,109, - 8,211,187,211,211,67,150,17,211,42,101,211,211,8,211,211, - 211,211,187,109,211,211,67,150,17,211,42,101,139,91,211,211, - 211,8,211,187,211,211,8,139,150,17,211,42,101,211,211,211, - 8,91,109,211,8,109,211,211,67,150,17,211,42,101,211,211, - 211,211,8,211,8,211,8,109,211,67,150,17,211,42,101,211, - 211,211,211,8,211,8,211,8,211,211,67,150,17,211,42,101, - 211,211,211,8,211,211,8,109,8,211,211,67,150,17,211,42, - 101,211,211,211,8,211,211,187,109,8,211,211,67,150,17,211, - 42,101,211,211,8,139,91,111,8,211,187,211,211,67,150,17, - 211,42,101,211,139,211,211,91,109,211,187,109,211,8,67,150, - 17,211,122,101,211,139,8,211,211,8,211,187,211,211,8,139, - 150,17,211,42,101,211,139,91,211,211,187,211,8,211,211,211, - 67,150,17,211,42,101,211,211,139,8,91,211,211,8,109,211, - 211,67,150,17,211,42,101,211,211,8,211,8,109,8,109,8, - 211,8,67,150,17,211,42,101,211,211,8,211,8,211,109,8, - 187,211,211,67,150,17,211,42,101,211,211,8,139,91,211,109, - 8,109,211,211,67,150,17,211,42,101,211,211,211,211,139,187, - 211,187,109,8,8,139,150,17,8,219,12,8,8,150,243,244, - 36,36,36,36,105,36,105,36,105,36,105,105,105,105,105,105, - 105,105,105,105,105,105,105,208,105,105,105,105,105,105,105,105, - 208,36,208,36,208,105,105,105,105,105,105,208,105,208,105,105, - 105,105,208,105,208,105,208,105,208,208,105,208,105,105,208,208, - 188,39,188,188,188,188,188,169,39,169,140,169,140,169,39,39, - 39,169,169,39,140,169,169,169,169,169,39,169,169,39,140,39, - 169,140,140,169,140,39,169,169,188,169,188,169,188,39,169,39, - 140,169,140,140,140,39,114,140,140,169,140,140,140,39,140,39, - 39,140,39,39,114,39,39,39,39,39,39,39,89,39,39,207, - 39,39,207,188,39,39,39,39,188,140,169,39,140,169,169,169, - 169,39,39,169,169,169,169,169,169,188,169,188,169,169,169,169, - 169,88,188,169,127,188,188,188,127,169,39,169,39,39,169,39, - 39,127,169,127,169,39,39,39,39,169,39,39,39,39,39,39, - 114,39,39,39,39,39,114,39,39,114,127,39,39,114,127,39, - 39,39,39,39,127,39,39,39,39,114,89,89,127,39,127,89, - 89,127,89,89,127,127,89,127,89,143,127,207,143,236,184,99, - 17,26,42,243,187,109,187,122,101,211,211,211,211,211,187,211, - 187,211,211,91,67,12,17,243,122,101,139,8,8,211,211,187, - 211,211,8,211,91,67,12,17,243,122,101,139,211,8,211,91, - 8,211,8,211,187,8,67,12,17,243,122,101,211,8,211,8, - 211,109,8,211,8,211,8,67,12,17,243,122,101,139,8,211, - 211,211,8,109,91,8,109,91,67,12,17,243,122,101,139,8, - 8,211,211,187,211,211,8,109,91,67,12,17,243,122,101,139, - 8,211,211,211,187,211,109,8,211,91,67,150,219,243,122,101, - 211,211,211,211,211,91,8,109,211,109,91,67,12,17,243,122, - 101,211,211,91,8,211,8,211,8,109,211,91,67,12,17,243, - 122,101,139,8,8,211,211,8,211,211,8,211,91,67,12,17, - 243,122,101,139,8,8,211,211,8,211,8,211,211,91,67,150, - 17,243,122,101,139,8,211,8,211,109,8,211,8,211,8,67, - 12,17,243,122,101,211,211,8,211,211,211,8,211,8,211,91, - 67,12,17,243,122,101,139,8,8,211,211,8,109,8,109,211, - 91,67,150,219,243,122,101,139,211,211,211,8,109,8,109,8, - 211,91,67,12,17,243,122,101,211,211,91,139,211,187,8,211, - 211,211,91,67,12,17,243,122,101,211,211,8,211,211,8,109, - 91,8,109,91,67,150,17,243,122,101,139,8,8,8,211,211, - 8,211,8,211,8,67,12,132,141,17,12,8,8,150,150,244, - 36,36,105,36,36,105,36,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,208,105,105,105,105, - 105,105,105,105,208,105,105,105,208,105,105,105,105,105,105,208, - 208,105,208,208,208,105,208,208,105,208,105,208,208,105,105,208, - 188,169,188,188,169,39,169,169,169,169,39,39,169,140,140,140, - 140,140,39,169,169,140,188,39,39,39,169,39,39,140,169,140, - 140,169,140,140,39,140,140,140,169,39,39,39,169,140,39,140, - 140,140,140,114,39,140,169,140,140,74,140,140,140,140,39,140, - 140,39,39,140,169,39,39,39,39,39,39,39,39,39,207,39, - 207,207,39,207,207,39,140,39,39,39,39,169,39,39,140,169, - 140,169,169,169,169,169,188,169,169,169,188,169,188,188,188,188, - 188,188,188,188,188,127,39,188,39,188,169,39,39,169,39,39, - 39,39,39,39,39,169,169,169,140,39,127,39,39,39,39,39, - 169,39,39,39,39,39,127,39,39,39,39,39,39,39,39,127, - 114,127,114,39,39,39,89,39,39,127,39,39,89,89,89,39, - 127,89,39,127,89,89,39,89,207,127,89,89,207,236,184,59, - 187,183,42,243,111,150,111,42,101,211,211,8,211,211,211,211, - 139,211,8,139,8,132,17,211,42,101,139,211,211,211,211,211, - 211,211,211,8,139,8,132,17,211,42,101,211,139,8,211,139, - 211,211,211,211,211,211,139,132,17,109,122,49,139,211,211,211, - 211,211,109,211,211,211,211,139,132,17,211,42,101,139,139,211, - 211,211,109,139,211,211,8,139,8,132,17,211,42,101,139,211, - 8,211,211,211,211,211,211,8,139,8,132,17,109,42,101,139, - 211,8,211,211,211,211,211,211,8,211,139,132,17,211,42,101, - 211,211,8,211,211,211,211,8,211,8,139,8,132,17,109,42, - 101,211,139,8,139,139,61,211,8,211,8,139,8,132,17,109, - 42,101,139,211,139,8,211,211,109,211,211,8,139,8,132,17, - 109,42,101,211,139,211,211,139,61,211,8,211,8,139,8,132, - 17,211,42,101,139,211,211,211,211,211,109,211,211,211,211,139, - 132,17,109,42,101,139,8,211,211,211,211,109,211,211,8,211, - 139,132,17,109,42,101,211,139,8,139,211,109,211,211,211,8, - 8,67,132,17,109,42,101,211,211,211,211,211,211,211,211,211, - 8,139,8,132,17,211,42,101,211,139,211,8,211,211,211,211, - 211,8,8,67,132,17,109,42,101,211,139,211,211,211,109,139, - 211,211,8,139,8,132,17,109,42,101,139,211,211,139,211,211, - 211,211,109,211,211,139,150,26,243,17,150,8,141,12,243,144, - 36,36,36,105,36,105,36,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,208,105,105, - 208,105,105,36,105,105,105,105,105,105,105,208,105,208,105,105, - 208,105,105,105,208,105,208,105,208,105,208,105,105,208,208,105, - 188,188,39,188,169,39,39,169,169,169,140,39,169,169,169,169, - 140,140,140,39,39,169,169,169,169,39,39,169,169,140,169,140, - 140,140,140,140,140,169,169,140,140,140,140,39,39,140,140,140, - 140,140,74,140,140,140,140,74,140,140,169,140,140,140,39,39, - 140,140,39,39,114,39,39,114,39,39,39,114,39,39,114,39, - 39,39,39,39,114,39,140,39,39,39,39,169,169,39,39,39, - 169,169,39,39,188,169,188,39,169,169,188,169,188,169,169,169, - 188,188,188,188,188,188,188,188,39,39,39,169,39,39,169,39, - 39,39,39,207,39,39,39,127,39,140,39,39,39,39,39,39, - 39,39,39,39,114,127,114,39,39,39,39,39,39,39,39,39, - 127,39,39,39,39,39,114,89,39,39,89,39,39,39,39,89, - 39,127,39,39,127,89,127,39,89,39,127,127,207,89,184,59, - 12,183,78,243,132,150,187,122,49,139,211,211,211,211,211,109, - 8,211,8,139,67,150,219,109,122,67,211,211,211,211,211,211, - 91,8,211,8,139,67,150,219,211,122,49,211,211,211,8,211, - 61,139,8,211,211,8,67,17,17,211,122,67,139,211,211,211, - 211,91,211,211,91,8,8,67,150,219,243,122,67,211,211,8, - 139,211,91,211,211,8,211,139,67,150,219,109,122,67,211,211, - 211,211,211,91,211,8,211,8,139,67,150,219,211,122,67,211, - 211,211,211,211,91,211,211,211,211,211,139,150,219,109,122,49, - 139,211,211,211,8,61,211,211,211,8,139,67,150,17,211,122, - 49,211,139,211,211,8,211,211,211,211,8,139,67,150,219,211, - 122,67,211,211,211,211,211,211,91,8,211,8,139,67,150,219, - 211,122,67,211,211,8,211,8,139,211,211,211,8,139,139,12, - 219,211,122,67,211,211,211,211,211,211,91,8,211,211,8,67, - 12,17,211,122,67,139,211,211,211,211,211,91,8,211,211,211, - 67,150,219,211,122,67,211,211,211,211,211,91,211,8,211,211, - 8,139,150,17,109,122,49,211,211,211,211,211,61,211,211,211, - 8,139,67,150,219,211,122,49,211,139,8,139,211,91,139,8, - 211,139,8,67,132,17,109,122,49,211,211,8,139,211,91,211, - 211,8,211,139,139,150,17,109,122,67,211,211,211,211,211,109, - 211,211,211,8,8,67,132,17,243,17,243,12,67,17,12,244, - 36,36,36,36,36,105,36,105,36,105,105,105,105,105,105,208, - 105,105,105,105,105,105,105,105,105,105,105,105,105,36,105,105, - 105,105,105,105,36,105,105,105,36,105,105,105,105,105,105,105, - 105,105,208,105,208,105,105,208,105,208,208,208,105,105,208,208, - 207,39,188,39,188,169,169,169,39,140,169,140,140,140,140,140, - 169,169,169,140,140,140,39,188,39,39,140,39,39,169,140,140, - 74,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 140,140,140,74,140,140,140,39,140,140,140,140,140,140,140,140, - 140,140,140,140,169,39,140,169,114,39,39,39,39,39,39,39, - 114,39,39,169,39,39,39,39,39,39,39,39,39,169,140,169, - 39,39,169,169,169,140,169,169,39,39,169,188,169,188,188,188, - 39,169,39,169,39,188,169,169,39,188,39,39,39,39,39,39, - 39,39,39,39,207,39,39,39,39,39,127,114,39,39,39,39, - 169,114,127,39,39,39,169,39,39,39,39,39,39,39,39,39, - 39,114,39,39,39,39,127,114,89,39,114,39,89,39,89,39, - 89,89,89,89,89,127,39,127,127,89,89,39,207,236,58,224, - 187,26,78,8,187,132,187,42,101,139,139,139,139,139,211,139, - 211,211,139,211,67,17,26,211,26,101,139,139,139,139,139,139, - 139,139,211,139,211,67,17,26,109,42,101,139,139,139,139,139, - 139,211,139,211,139,139,139,132,26,109,42,101,139,139,139,139, - 139,139,211,139,139,139,139,67,17,26,109,42,101,139,139,139, - 139,139,211,139,211,211,139,211,67,17,26,211,26,101,139,139, - 139,139,139,139,211,211,211,139,211,67,17,26,109,42,101,139, - 139,139,139,139,139,139,211,139,139,8,67,17,26,211,42,139, - 139,139,139,139,139,139,211,139,211,139,211,67,17,26,109,26, - 101,139,139,139,139,139,139,211,211,211,139,211,67,17,26,109, - 42,101,139,139,139,139,139,139,139,211,211,139,139,139,17,26, - 109,42,101,139,139,139,139,139,211,211,211,211,139,139,67,150, - 26,243,42,101,139,139,139,139,139,139,139,139,211,139,139,139, - 132,26,109,42,101,139,139,139,139,139,139,139,211,211,139,8, - 67,17,26,109,42,101,139,139,139,139,139,139,139,211,211,139, - 139,67,17,26,211,42,101,139,139,139,139,139,139,139,211,211, - 139,211,67,17,26,109,42,101,139,139,139,139,139,139,211,211, - 211,211,211,139,17,26,211,42,101,139,139,139,211,139,139,139, - 211,211,139,139,67,17,26,109,26,101,139,139,139,139,211,139, - 211,211,211,139,139,139,17,26,211,17,12,243,8,150,243,144, - 36,36,105,36,105,36,36,36,105,36,36,36,105,105,36,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,36,105,105, - 105,105,105,105,36,105,36,105,105,105,36,105,36,105,105,105, - 105,36,208,105,105,105,105,105,208,105,105,105,208,63,208,105, - 188,169,188,188,188,39,39,169,39,140,140,169,140,140,169,140, - 140,140,140,169,140,140,140,140,140,39,140,140,140,140,140,140, - 74,74,74,140,140,140,74,74,74,140,140,140,140,140,140,140, - 144,140,140,144,74,140,74,140,140,140,140,140,140,140,140,39, - 114,169,39,39,140,39,39,39,39,39,39,39,39,39,39,169, - 39,140,39,140,39,39,140,39,39,39,39,39,39,39,140,169, - 140,39,39,39,169,39,39,140,169,39,140,39,39,39,39,39, - 39,39,39,39,39,39,39,188,169,169,39,140,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 127,140,39,39,39,39,39,39,39,39,39,114,39,39,39,39, - 127,39,39,39,39,39,127,39,39,127,39,39,89,127,89,114, - 127,114,127,39,114,89,89,114,39,127,89,114,127,207,119,224, - 12,26,78,187,187,12,187,122,91,91,26,91,91,26,91,26, - 91,26,91,26,67,132,26,12,78,8,91,26,91,91,26,91, - 26,91,26,91,26,67,132,26,12,78,8,91,26,91,26,187, - 26,91,26,91,26,26,67,150,26,12,78,8,91,26,91,91, - 26,91,26,26,91,26,26,67,132,26,8,162,8,26,91,91, - 26,12,26,91,26,91,26,26,67,132,26,187,42,8,91,91, - 26,91,26,91,91,26,91,26,26,67,132,26,8,162,8,91, - 91,26,91,26,91,26,91,26,91,26,67,132,26,12,78,91, - 91,26,91,91,26,91,26,91,26,91,26,67,132,26,12,122, - 8,26,91,26,91,26,91,26,91,26,91,26,67,132,26,8, - 162,8,26,91,91,26,91,26,91,91,26,91,17,67,132,26, - 8,122,8,91,26,91,187,26,91,91,26,91,26,26,182,150, - 26,8,122,8,91,26,91,26,91,26,91,26,91,26,26,67, - 150,26,8,162,8,91,91,26,91,26,91,26,91,26,91,26, - 67,132,26,8,162,8,26,91,91,26,91,26,91,26,91,26, - 26,67,132,26,12,78,8,91,26,91,91,26,26,91,26,91, - 26,26,67,132,26,8,162,8,26,91,26,91,187,26,91,26, - 91,26,12,67,132,26,12,78,8,26,91,91,26,91,26,26, - 91,26,26,26,67,132,26,12,78,8,91,26,91,26,91,91, - 26,91,26,91,26,67,150,17,12,12,12,8,8,17,150,144, - 36,36,36,36,36,105,105,105,105,105,105,105,36,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,36,105,36,105,105, - 105,105,105,105,105,105,105,105,105,36,36,105,105,36,105,36, - 105,105,105,36,105,105,208,105,105,208,105,208,105,105,208,105, - 188,188,188,39,39,169,169,169,140,169,140,140,140,140,39,140, - 140,140,169,140,169,140,169,169,39,169,169,100,140,140,140,140, - 114,140,140,74,140,74,140,140,140,140,140,140,140,140,144,74, - 140,144,140,74,144,140,114,140,140,140,140,140,140,140,140,140, - 169,140,140,140,114,39,39,39,114,39,140,39,39,39,140,114, - 39,39,39,39,140,39,39,39,39,39,39,140,169,169,169,39, - 39,140,39,169,39,140,169,39,39,140,39,39,169,39,39,39, - 207,207,207,127,39,39,127,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,114,39,169,114,127,114,39,39,39, - 39,39,127,39,39,39,39,39,39,127,39,39,39,207,114,39, - 39,39,39,39,39,114,127,114,89,39,89,39,114,39,39,127, - 127,39,89,89,127,127,127,39,89,89,127,89,89,89,240,224, - 187,187,42,12,132,17,109,0,219,219,219,26,26,26,183,187, - 42,219,219,26,8,150,12,211,0,26,219,219,26,183,42,183, - 187,42,219,219,26,8,150,12,211,0,26,219,219,219,187,42, - 187,183,26,26,187,219,8,17,12,211,0,26,219,219,26,219, - 219,183,187,219,219,187,26,8,150,187,211,0,26,219,26,183, - 187,42,187,219,219,219,219,26,8,150,12,211,0,26,219,219, - 219,219,219,183,183,42,219,187,26,8,150,12,211,0,26,219, - 219,219,26,183,183,187,42,219,219,26,8,150,12,211,0,219, - 219,219,219,219,219,183,187,42,219,219,26,8,150,12,211,0, - 26,17,219,183,187,26,183,187,26,219,183,26,8,150,17,211, - 0,26,219,26,183,187,42,183,219,42,183,219,26,8,150,17, - 211,0,26,219,219,219,26,26,183,183,42,219,219,26,8,132, - 187,211,0,26,219,187,26,42,42,187,183,42,26,187,219,243, - 150,17,211,0,26,219,219,26,26,42,187,219,219,219,219,26, - 8,150,12,211,0,26,219,219,219,26,183,187,183,26,26,187, - 26,8,150,12,211,0,26,219,219,26,26,183,187,183,26,219, - 187,26,8,150,17,243,0,26,219,219,219,183,42,187,183,26, - 219,187,26,8,150,12,211,0,26,219,219,219,219,183,187,187, - 219,219,187,26,8,150,12,211,0,26,219,219,26,219,42,183, - 187,26,26,183,219,8,187,26,211,17,150,8,141,150,8,244, - 36,36,36,105,36,36,36,36,36,36,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,36,105,36,105, - 105,105,36,36,36,36,36,36,105,105,105,36,105,36,36,105, - 36,105,105,36,105,36,105,105,105,105,105,105,105,105,105,63, - 188,188,188,39,39,39,140,169,140,169,140,169,140,140,140,169, - 140,140,140,140,169,140,140,140,140,140,39,140,169,140,140,140, - 140,140,140,74,140,140,140,140,140,140,144,140,144,140,140,71, - 140,140,144,140,140,74,140,71,140,140,140,140,140,140,140,140, - 39,140,169,169,140,39,39,127,39,39,39,39,114,127,169,140, - 140,140,140,39,140,39,39,39,140,39,39,39,140,39,140,169, - 188,140,39,39,188,39,169,140,39,39,39,39,140,39,39,39, - 39,39,39,39,207,39,39,39,39,169,39,39,39,39,39,39, - 39,39,127,39,39,39,39,39,39,39,39,39,39,39,39,39, - 127,39,114,140,127,39,39,39,39,39,39,39,39,39,39,39, - 39,127,39,39,127,39,89,39,39,89,114,89,89,89,89,89, - 89,114,127,89,89,89,89,114,127,89,114,127,39,119,108,59, - 17,183,42,150,132,219,187,0,8,101,67,67,139,139,139,67, - 139,139,139,139,8,132,219,243,0,211,139,139,139,67,139,67, - 182,139,139,139,139,8,150,183,243,0,211,139,139,139,67,139, - 139,67,182,139,139,139,139,132,219,243,0,211,139,67,139,139, - 139,139,139,139,139,139,139,8,150,42,243,0,211,67,139,139, - 67,139,67,139,139,139,139,139,8,150,183,243,0,211,139,139, - 139,139,139,139,67,139,139,139,139,8,132,42,243,0,211,139, - 139,67,139,139,139,182,139,139,139,139,8,150,219,8,0,8, - 101,139,139,139,139,139,67,139,139,139,139,8,132,219,211,0, - 211,67,139,139,67,139,139,67,139,139,139,139,8,150,42,243, - 0,211,67,139,139,67,139,67,182,139,139,139,139,8,150,42, - 243,0,211,139,139,67,67,139,139,67,139,139,139,139,8,150, - 42,243,0,211,139,67,67,139,139,139,67,182,139,139,139,8, - 12,42,243,0,211,139,67,67,139,139,67,139,139,139,139,139, - 8,132,42,243,0,211,139,139,67,139,139,139,67,182,139,139, - 139,8,150,183,243,0,211,139,67,67,139,139,139,67,139,139, - 139,139,8,150,26,8,0,211,139,139,139,67,139,139,67,139, - 139,139,139,8,150,219,109,0,211,139,139,139,139,139,67,139, - 139,139,139,139,8,150,219,243,0,211,139,67,139,139,139,139, - 67,182,139,139,139,8,150,219,141,12,141,8,8,12,243,244, - 244,105,36,36,36,105,36,105,105,36,105,36,105,36,105,105, - 36,105,105,105,105,105,105,105,36,105,36,105,36,105,36,36, - 36,105,36,105,36,105,36,36,36,36,36,105,36,36,36,36, - 36,36,105,105,105,105,105,36,36,208,208,105,105,105,105,105, - 39,169,188,188,39,169,169,140,100,140,39,140,140,140,140,140, - 140,140,140,140,140,140,140,169,140,140,140,140,140,140,140,140, - 140,74,71,140,140,140,144,140,71,140,140,140,140,74,140,140, - 71,140,140,144,74,114,140,140,140,140,140,140,169,169,169,169, - 140,39,39,39,39,39,39,39,39,39,39,39,188,39,39,39, - 39,39,39,140,39,140,140,39,39,39,188,140,39,169,39,39, - 39,188,39,169,39,39,39,188,39,39,140,39,39,39,39,39, - 39,39,39,39,39,207,39,39,39,39,39,39,39,39,127,39, - 39,39,39,39,127,39,39,140,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,114,39,39,39,39,39,39,39, - 39,39,39,39,127,39,39,39,39,39,89,39,39,114,39,114, - 127,114,89,127,114,127,114,127,89,127,89,89,89,89,240,47, - 187,42,183,243,150,42,150,0,8,139,139,211,211,139,139,187, - 211,211,139,182,211,12,122,211,0,8,139,139,139,109,139,211, - 8,211,211,139,182,211,187,122,211,0,8,139,139,139,211,211, - 211,211,211,211,139,139,8,12,122,109,0,8,139,139,211,139, - 211,139,211,211,211,139,182,211,187,122,211,0,8,139,139,139, - 211,109,211,8,211,139,139,182,211,12,122,211,0,8,139,139, - 139,139,139,139,187,211,211,139,182,211,12,122,211,0,8,139, - 139,211,139,211,211,211,211,211,139,182,211,187,122,182,0,211, - 139,139,211,211,211,139,187,211,211,139,182,211,12,122,243,0, - 8,211,139,139,211,109,139,187,211,211,139,182,211,187,122,211, - 0,8,139,139,211,109,139,211,8,211,211,139,182,211,12,122, - 211,0,8,139,139,109,211,139,139,187,211,139,139,67,211,12, - 122,109,0,8,139,211,211,211,211,211,211,211,211,139,139,211, - 150,122,211,0,8,139,139,211,211,139,109,8,211,211,139,182, - 211,12,122,211,0,8,139,139,109,139,211,139,211,211,211,139, - 182,211,187,122,211,0,8,139,211,211,211,139,139,187,211,211, - 139,182,211,187,162,182,0,8,139,139,139,109,139,211,8,109, - 211,139,182,211,187,122,243,0,8,139,139,211,211,211,139,187, - 211,211,139,182,211,17,122,211,0,8,139,139,211,139,139,211, - 211,211,211,139,139,211,12,42,8,150,243,12,8,219,150,244, - 36,36,36,105,36,36,36,36,36,105,36,105,105,36,105,36, - 105,36,105,105,36,105,105,36,105,36,105,105,36,105,36,105, - 105,36,105,36,36,105,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,105,105,36,36,105,105,105,36,105,105,63, - 39,169,188,169,169,39,169,39,140,140,140,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 114,140,74,71,140,140,140,144,74,71,114,140,114,140,140,144, - 74,140,140,114,74,140,144,140,140,140,140,140,140,140,140,169, - 169,39,140,127,39,39,39,127,207,207,207,39,39,39,188,169, - 169,39,39,39,188,39,169,39,39,39,188,39,39,140,140,140, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,207,39,39,39,39,39,39,114,39,39,39, - 39,39,127,39,39,39,127,39,39,39,39,39,39,39,114,39, - 39,39,39,39,39,39,39,127,39,39,39,39,39,39,127,114, - 207,114,207,39,39,39,89,39,89,114,39,89,89,89,89,89, - 89,127,114,89,127,89,89,127,89,114,127,39,89,119,159,64, - 187,42,78,141,187,42,187,0,8,139,109,109,109,109,211,8, - 211,211,211,139,243,17,42,8,0,8,211,109,211,109,109,211, - 187,211,211,211,139,8,17,42,211,0,8,139,109,109,109,109, - 8,109,8,211,211,182,243,17,26,243,0,8,211,109,211,109, - 109,187,8,187,139,8,139,8,17,42,8,0,8,211,109,109, - 211,109,109,187,211,211,211,139,243,17,42,243,0,8,211,109, - 109,109,109,211,8,211,211,211,139,243,17,42,8,0,8,139, - 109,211,211,211,8,8,8,211,211,139,8,17,42,8,0,8, - 211,182,211,211,109,211,8,211,211,211,139,243,17,42,211,0, - 8,211,109,109,211,109,211,8,8,139,8,139,8,17,42,8, - 0,8,211,211,211,109,109,8,109,8,8,211,139,243,17,42, - 243,0,8,139,109,211,109,109,211,211,187,139,8,139,109,17, - 26,243,0,8,139,109,211,211,109,8,109,8,211,211,139,243, - 17,42,243,0,8,139,109,109,109,109,8,109,8,139,211,139, - 243,17,42,8,0,8,211,211,109,109,187,211,8,211,8,139, - 139,8,17,42,8,0,8,139,109,211,109,109,211,8,211,211, - 211,139,8,132,42,211,0,8,139,109,211,109,109,109,211,187, - 8,139,139,8,17,26,8,0,8,211,182,211,109,187,139,8, - 211,211,211,139,211,17,42,211,0,8,139,109,109,109,109,187, - 211,8,8,211,182,182,17,42,8,12,243,243,8,26,8,244, - 244,36,36,36,36,105,105,36,36,36,36,36,105,36,105,36, - 105,36,105,36,105,36,105,105,36,105,105,36,36,105,36,105, - 36,105,36,36,36,36,36,36,105,36,36,36,36,36,244,36, - 244,36,36,36,36,36,36,36,36,105,36,36,105,105,105,105, - 188,39,169,39,39,169,169,169,140,169,140,140,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,74,74,140,140,140,140, - 140,140,140,140,144,74,144,140,140,140,74,144,74,74,140,74, - 140,140,71,74,114,140,140,140,140,140,140,169,39,169,169,39, - 39,39,39,39,127,39,39,39,39,39,39,39,39,188,39,39, - 39,188,39,169,39,188,39,188,188,39,207,140,140,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,114, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,207,39,127,39,39,207,39,39,39,39,39,39,39,39, - 39,114,39,39,39,39,39,39,39,39,39,39,39,39,39,207, - 39,127,39,89,39,39,114,89,39,39,89,127,114,39,39,39, - 127,89,89,114,89,127,114,89,127,89,89,89,207,119,108,59, - 187,187,162,243,166,219,187,0,211,139,139,67,139,139,139,211, - 211,139,139,67,211,150,122,187,0,8,67,139,139,139,139,139, - 139,211,139,139,67,211,150,122,187,0,8,139,139,139,139,139, - 139,139,211,211,139,139,211,150,122,187,0,8,139,139,139,139, - 139,139,139,139,211,139,67,211,150,162,187,0,8,139,139,139, - 139,139,139,139,211,211,139,67,211,150,122,187,0,8,139,139, - 139,139,139,139,211,211,139,139,67,211,150,122,187,0,8,139, - 139,139,139,139,139,211,211,139,139,67,211,150,122,187,0,8, - 139,139,67,139,139,139,211,211,139,139,67,211,150,122,187,0, - 8,139,67,139,139,139,139,211,211,211,139,67,211,150,162,187, - 0,8,139,67,139,139,139,139,139,211,211,211,67,211,150,0, - 109,0,8,139,139,139,139,139,139,139,139,211,139,67,8,150, - 122,187,0,211,139,139,67,139,139,139,139,211,211,211,67,211, - 150,122,187,0,8,139,139,67,139,139,139,139,211,211,211,67, - 211,150,162,187,0,8,139,139,139,139,139,139,211,211,211,211, - 139,211,150,122,187,0,8,139,139,139,139,139,139,211,211,211, - 139,67,211,12,122,187,0,8,139,139,139,139,139,139,139,139, - 211,211,139,211,150,162,187,0,8,139,139,139,139,139,139,211, - 211,139,139,67,243,150,0,12,0,8,139,139,139,139,139,139, - 139,211,211,139,67,12,150,78,187,17,12,8,8,17,150,244, - 244,36,36,36,36,36,36,36,105,105,36,36,36,36,105,36, - 105,36,105,105,36,36,36,36,36,36,105,36,36,36,36,105, - 36,36,105,36,105,36,36,36,36,36,244,36,36,36,36,36, - 36,244,36,36,244,36,244,36,36,105,105,36,36,105,105,36, - 188,39,169,169,169,39,169,169,140,39,39,140,169,140,140,140, - 140,140,140,140,140,140,140,140,140,39,114,74,140,140,140,140, - 140,140,140,74,114,74,140,140,144,140,74,140,144,74,144,74, - 74,140,140,74,74,140,144,140,140,140,39,140,140,140,140,169, - 140,39,207,39,39,39,127,39,39,39,39,169,39,169,188,39, - 39,188,207,39,39,207,39,39,188,39,207,39,169,39,169,140, - 39,39,39,39,39,39,140,140,39,39,39,39,39,39,39,39, - 39,39,39,39,127,39,39,39,140,39,39,39,39,127,39,39, - 39,39,39,39,39,39,39,39,127,39,39,39,39,39,39,39, - 39,127,39,39,39,39,114,207,39,39,39,39,39,39,39,39, - 39,39,39,39,89,127,39,39,89,114,89,89,89,89,89,39, - 39,127,89,127,89,89,127,89,114,89,127,89,89,119,119,47, - 26,26,78,8,111,132,187,0,187,187,187,187,187,187,109,91, - 187,26,91,12,12,150,42,8,162,26,187,187,187,187,187,187, - 187,187,26,91,17,12,150,42,8,162,187,187,187,187,187,111, - 91,187,91,12,187,12,12,150,42,8,162,187,187,187,187,187, - 8,111,187,187,91,26,12,243,150,42,8,162,187,187,187,187, - 187,8,91,187,187,91,26,12,12,150,42,8,162,187,187,12, - 187,187,187,109,91,187,26,91,12,150,150,42,8,162,187,187, - 12,187,187,111,187,111,91,26,91,17,12,187,26,8,162,26, - 187,187,187,187,109,91,12,187,26,91,12,12,150,42,8,162, - 26,187,187,187,187,109,91,187,187,91,26,12,243,150,42,8, - 162,26,187,187,187,187,111,91,187,187,187,26,12,243,150,42, - 187,162,187,187,187,187,187,187,187,187,187,91,26,12,109,132, - 42,8,162,187,187,187,187,187,111,91,187,91,12,91,26,243, - 150,42,8,162,187,187,187,187,187,111,91,187,187,12,91,12, - 243,150,42,8,162,187,187,187,187,8,111,91,187,187,12,187, - 12,12,150,42,8,162,187,187,187,187,187,187,109,91,12,91, - 26,12,150,12,42,8,162,187,187,187,187,187,109,91,12,187, - 12,12,12,12,150,26,8,162,187,187,187,8,187,109,91,187, - 187,26,91,12,12,150,42,8,162,187,187,12,187,187,211,187, - 187,187,12,91,12,243,132,42,211,12,150,243,8,17,8,244, - 36,36,36,36,36,36,105,36,36,36,36,105,105,36,105,36, - 105,36,36,36,105,105,105,105,36,36,36,105,36,36,36,36, - 105,36,36,36,36,36,36,36,36,244,36,36,244,36,244,36, - 244,36,244,36,244,36,244,244,244,36,36,36,105,36,36,105, - 169,169,188,39,39,169,39,140,169,140,140,74,140,74,140,140, - 140,140,74,140,140,140,140,114,140,140,74,140,140,140,140,140, - 74,140,74,140,74,114,140,140,140,140,144,140,140,140,140,144, - 140,140,140,114,140,140,140,140,140,39,140,140,169,39,169,39, - 39,39,39,39,89,39,207,207,127,127,188,188,188,188,39,188, - 39,39,39,39,188,39,188,188,207,188,39,39,39,140,39,39, - 39,39,39,169,39,39,39,39,39,39,39,39,39,39,127,39, - 127,39,39,39,127,39,39,127,39,39,39,39,39,39,39,39, - 39,39,114,39,39,207,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,127,39,39,39,127,114,89,39,127,39,127,114,39,39,89, - 89,89,89,89,89,127,89,89,89,89,89,89,127,89,108,99, - 187,187,162,8,12,17,111,0,0,0,122,122,122,0,0,0, - 0,0,0,0,219,187,219,187,0,0,122,122,122,122,122,0, - 122,0,0,0,0,219,17,26,187,0,0,0,122,122,0,0, - 0,0,0,0,0,0,219,187,26,187,0,0,122,122,162,0, - 0,0,0,0,0,0,0,26,132,219,187,0,0,0,122,162, - 0,0,0,0,0,0,0,0,219,187,26,187,0,0,0,122, - 122,0,0,0,0,0,0,0,0,26,187,219,187,0,0,0, - 0,0,122,122,0,0,0,0,0,0,219,132,219,187,0,0, - 0,122,0,0,0,0,0,0,0,0,0,219,187,26,187,0, - 0,0,122,0,0,0,0,0,0,0,0,0,26,132,219,187, - 0,0,0,122,122,122,0,122,0,122,122,0,0,26,17,26, - 109,0,0,0,122,122,122,122,0,0,0,0,0,0,26,187, - 26,187,0,0,0,0,122,0,0,0,0,0,0,0,0,26, - 187,26,187,0,0,0,122,122,122,0,0,0,0,0,0,0, - 26,132,219,187,0,0,122,162,0,0,0,122,0,0,0,0, - 0,219,187,219,187,0,0,0,122,122,0,0,0,0,0,0, - 0,0,26,132,26,187,0,0,0,122,122,0,0,0,0,0, - 0,0,0,219,132,219,187,0,0,0,0,0,0,0,0,122, - 0,0,0,0,17,166,26,187,0,0,0,122,0,0,0,122, - 0,0,0,0,0,26,187,219,243,187,12,12,141,17,141,244, - 244,36,36,36,36,36,36,36,36,105,36,36,36,36,36,36, - 36,36,105,36,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,244,36,244,36,244,36, - 36,244,36,36,36,244,36,36,244,36,36,36,36,36,36,36, - 188,169,169,39,39,140,39,140,169,140,140,74,39,140,140,140, - 140,140,140,144,140,140,140,140,140,114,140,140,74,140,140,114, - 140,114,140,140,140,140,140,140,140,140,74,74,140,140,140,140, - 140,140,140,140,140,140,140,140,140,140,169,39,140,39,39,39, - 39,39,39,127,39,207,39,207,39,188,188,39,188,188,188,39, - 39,39,207,39,39,207,39,39,207,207,39,39,39,39,39,39, - 39,114,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,207,39,207,39,39,39,207,39,39,39,39,39,39,39,39, - 39,207,207,39,39,114,127,207,39,39,39,39,39,39,39,39, - 39,39,39,39,127,39,39,127,39,39,127,39,127,39,39,89, - 207,39,89,39,127,89,39,89,89,89,114,89,89,89,39,127, - 114,127,114,127,89,89,114,89,127,89,114,89,127,89,159,59, - 219,42,162,243,150,12,187,42,26,26,26,26,42,42,219,17, - 219,219,219,26,17,219,219,12,42,26,26,26,26,26,42,26, - 17,219,219,219,26,17,132,183,12,42,26,26,26,26,26,42, - 26,219,219,219,219,26,17,132,219,12,42,26,26,26,26,26, - 42,26,17,219,219,219,219,26,17,219,12,42,26,26,26,26, - 42,42,26,17,17,219,219,26,17,132,183,12,42,26,26,26, - 26,26,42,219,17,219,219,219,219,17,219,219,12,42,26,26, - 26,26,26,42,26,17,219,219,219,26,17,219,219,12,42,26, - 26,26,26,42,42,26,17,219,219,219,26,17,132,183,12,42, - 26,26,26,26,26,42,26,17,219,219,219,219,26,17,219,12, - 42,26,26,26,26,26,42,26,17,17,219,219,219,17,17,26, - 17,42,26,26,26,26,42,42,26,17,219,219,219,219,219,132, - 219,12,42,26,26,26,26,26,42,26,219,17,219,219,219,219, - 132,219,12,42,26,26,26,26,26,42,26,17,219,219,219,219, - 26,17,219,12,42,26,26,26,26,26,42,26,17,17,219,219, - 26,17,219,219,12,42,26,26,26,26,26,42,219,219,219,219, - 219,219,17,132,219,17,42,26,26,26,26,42,42,26,17,17, - 219,219,26,26,17,219,12,42,26,26,26,26,26,42,26,17, - 219,219,219,26,26,132,219,12,42,26,26,26,26,26,42,26, - 17,219,219,219,219,17,219,26,12,17,243,243,8,17,141,244, - 36,36,244,105,36,36,244,105,36,36,36,36,36,36,105,36, - 36,36,105,36,36,105,36,36,105,105,36,36,36,36,36,36, - 105,36,36,36,36,36,244,36,244,36,36,36,244,36,244,244, - 36,244,244,244,36,244,244,244,244,36,244,36,36,36,36,36, - 188,39,39,169,140,39,169,169,140,140,140,140,140,140,140,74, - 140,140,140,140,140,144,140,144,140,74,144,140,144,140,140,74, - 74,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 74,140,74,140,74,140,140,114,140,140,39,140,39,140,114,39, - 39,39,39,39,207,207,207,188,207,39,207,188,188,188,39,188, - 39,39,39,39,114,39,39,39,39,39,39,39,39,39,39,39, - 39,188,114,39,39,39,169,114,39,39,39,39,39,39,207,39, - 114,207,39,39,89,39,127,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,89,39,39,39,207,39,39,39,39,39,39,127,39,207,39, - 39,127,39,89,127,39,89,39,114,127,89,127,114,127,89,89, - 89,89,89,89,89,127,236,114,89,89,89,89,89,89,108,59, - 187,42,122,243,187,132,132,26,243,12,150,17,219,17,12,243, - 150,150,12,150,17,17,42,12,26,243,12,150,17,219,17,12, - 243,150,150,12,150,187,219,26,187,26,243,12,150,17,219,17, - 12,8,12,150,12,150,17,219,26,187,26,243,12,150,187,219, - 17,12,8,150,150,12,17,150,219,42,12,26,243,12,150,187, - 219,17,12,243,150,150,12,12,17,219,26,12,26,243,12,150, - 187,219,17,12,243,150,150,12,12,17,17,42,12,26,243,12, - 150,17,219,17,12,243,150,243,12,12,12,17,26,12,26,243, - 12,150,17,219,17,12,243,150,150,12,132,17,219,26,12,26, - 243,12,150,17,219,17,12,243,150,150,12,17,150,219,42,12, - 26,243,12,150,17,219,17,12,243,12,150,12,17,187,219,219, - 12,26,243,12,150,17,219,17,12,243,150,150,12,12,12,219, - 26,187,26,243,12,150,17,219,17,12,243,12,150,12,17,187, - 219,26,187,26,243,12,150,17,219,17,12,243,12,150,12,17, - 150,219,42,12,26,243,12,150,17,219,17,12,243,12,150,12, - 150,187,17,26,187,26,243,12,150,187,219,17,12,8,150,150, - 12,12,17,219,42,12,26,243,12,150,17,219,17,12,243,12, - 150,12,150,150,219,42,12,26,243,187,150,17,219,17,12,243, - 150,150,12,150,150,219,26,187,26,243,12,150,17,219,17,12, - 243,12,150,12,17,17,17,42,187,219,12,150,8,17,243,244, - 244,36,244,36,36,105,36,244,36,105,36,105,36,36,36,105, - 36,36,105,36,36,105,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,244,244,36,244,36,244,244, - 36,244,36,244,36,244,36,244,36,244,244,36,244,244,244,244, - 169,169,39,39,169,140,140,140,140,140,140,74,140,74,140,74, - 74,74,71,140,140,140,140,74,144,74,74,140,140,71,114,114, - 74,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, - 74,140,140,140,74,140,140,140,140,140,39,169,39,169,39,39, - 39,89,39,207,39,39,39,127,188,188,127,188,188,188,188,39, - 39,39,114,188,39,39,114,39,140,39,39,39,39,39,39,39, - 39,188,39,169,140,39,169,39,39,39,39,207,39,39,39,127, - 127,207,39,39,207,39,39,39,127,127,39,207,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,127, - 39,39,39,89,39,39,207,39,207,39,89,207,39,207,39,207, - 207,39,39,207,39,39,89,89,89,39,89,89,89,39,89,89, - 89,89,89,89,89,89,89,127,89,89,89,127,39,119,108,95, - 132,42,78,150,187,187,187,219,150,17,17,17,17,12,26,243, - 150,150,17,12,17,17,26,243,219,150,17,17,187,17,17,26, - 243,150,150,12,17,12,17,26,243,219,150,17,12,17,17,17, - 17,243,12,150,12,17,17,219,26,243,219,150,17,17,17,17, - 17,17,243,150,150,12,17,12,219,26,243,219,150,17,17,17, - 132,17,26,243,150,150,150,17,12,219,26,243,219,150,17,17, - 17,17,12,26,243,150,150,17,17,17,17,26,243,219,150,12, - 17,17,17,12,17,243,150,150,150,219,17,219,26,243,219,150, - 17,17,17,132,17,26,243,150,150,12,17,12,219,26,243,219, - 150,17,12,17,132,17,26,243,150,150,12,17,187,17,26,243, - 219,150,17,17,17,17,17,26,243,150,150,12,12,17,219,26, - 243,219,150,17,17,187,17,17,26,243,150,150,17,17,12,219, - 26,243,219,150,17,12,17,132,17,17,243,150,150,12,17,12, - 219,26,243,219,150,17,17,17,17,17,26,8,150,150,12,17, - 12,219,26,243,219,150,17,12,17,17,17,26,243,12,150,17, - 17,17,219,26,243,219,150,17,17,17,17,12,17,243,150,150, - 12,17,12,17,26,243,219,150,17,17,17,17,17,26,243,12, - 150,17,17,187,17,26,243,219,150,12,17,17,17,17,26,243, - 150,150,17,17,12,219,26,243,219,150,17,17,187,17,17,26, - 243,150,150,12,12,17,17,219,12,219,12,150,8,17,141,244, - 244,36,36,244,36,244,105,36,36,244,105,36,36,105,36,36, - 105,36,36,36,36,36,36,244,36,36,36,36,36,36,36,36, - 36,36,36,36,244,36,36,36,244,36,36,244,36,244,36,244, - 244,244,244,36,244,244,244,244,244,244,36,244,244,36,244,244, - 39,140,140,169,140,140,169,140,140,140,140,140,140,140,140,144, - 140,140,144,140,144,140,144,140,140,144,140,144,140,140,74,74, - 140,140,140,140,140,39,140,140,140,140,140,74,74,140,74,140, - 39,140,140,140,39,140,169,169,39,169,140,39,39,39,114,127, - 39,39,207,39,207,207,207,207,207,39,188,207,188,188,39,39, - 39,39,207,39,39,39,39,39,39,39,39,39,39,39,39,207, - 39,39,39,207,188,39,207,39,39,169,39,39,207,39,207,39, - 39,39,39,39,207,39,207,188,39,39,39,39,39,39,207,39, - 39,39,39,169,127,39,39,39,207,39,39,39,39,39,39,207, - 39,39,127,39,39,39,207,39,39,207,39,207,39,207,39,207, - 207,207,207,127,39,89,39,127,39,89,39,89,89,89,89,127, - 127,89,114,127,89,127,89,89,127,89,89,89,89,89,240,59, - 26,42,78,12,150,219,109,219,17,12,132,187,132,12,219,12, - 17,12,17,132,187,187,26,109,219,12,17,150,219,150,150,17, - 12,17,17,12,132,17,187,26,109,219,12,17,132,17,132,150, - 26,150,150,17,12,132,12,187,26,109,219,12,17,132,17,132, - 150,26,12,17,17,150,17,17,187,26,109,219,12,17,132,17, - 17,150,219,12,17,17,12,132,17,187,26,109,219,12,17,150, - 219,132,12,219,12,12,17,150,132,17,187,26,109,219,12,17, - 132,17,132,150,26,12,17,17,17,17,187,187,26,109,219,12, - 12,132,17,17,150,219,12,17,17,12,132,17,187,26,109,219, - 12,17,132,17,17,150,219,12,12,17,150,12,17,187,26,109, - 219,12,17,132,219,150,150,219,150,17,17,150,17,12,187,26, - 109,219,12,12,132,17,150,150,219,12,12,17,150,132,17,187, - 26,109,219,12,17,132,17,17,150,26,150,17,132,150,132,17, - 187,26,109,219,12,17,132,17,150,150,219,150,17,17,150,17, - 17,187,26,109,219,12,17,132,187,150,150,219,150,150,17,12, - 132,12,187,26,109,219,12,17,132,17,132,17,26,12,17,17, - 150,17,17,187,26,109,219,12,12,132,187,150,150,219,150,150, - 12,17,12,17,187,26,109,219,12,17,132,17,150,150,219,12, - 12,17,12,17,17,187,26,109,219,12,12,132,17,150,150,219, - 150,17,17,150,17,17,187,26,109,219,12,150,8,17,8,244, - 244,36,36,244,36,244,36,244,36,36,36,36,36,244,36,36, - 244,36,36,244,36,36,36,105,244,36,36,244,36,36,36,36, - 36,36,36,36,36,244,36,244,36,244,244,36,244,244,36,244, - 244,36,244,244,244,244,244,244,36,244,244,244,244,244,244,244, - 169,169,140,169,169,140,140,169,140,140,140,74,140,74,140,140, - 144,140,74,140,140,140,140,144,140,140,140,144,140,144,114,140, - 140,140,140,140,140,140,169,140,140,140,39,39,140,39,140,74, - 169,169,140,140,169,140,140,140,39,140,39,140,39,39,207,39, - 89,207,39,207,207,39,39,207,207,207,207,207,39,188,39,39, - 39,140,39,114,39,169,140,39,39,39,39,39,207,39,39,39, - 39,39,39,207,39,39,127,39,207,39,127,39,127,39,39,39, - 39,207,207,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,207,207,39,127,39,207,39,39,39,127,207,127,39,39,207, - 39,207,39,207,207,207,39,89,39,39,39,207,39,207,207,39, - 39,127,207,207,127,127,89,89,39,89,39,89,89,127,89,89, - 114,89,89,127,89,114,89,89,89,89,89,89,127,119,159,59, - 219,42,42,243,187,17,187,219,12,17,132,219,17,12,219,150, - 132,150,17,17,17,132,26,109,219,12,17,132,219,12,17,219, - 150,150,150,17,219,17,132,26,243,219,12,17,132,219,17,150, - 219,17,150,150,17,219,12,132,26,243,219,12,17,132,219,17, - 150,219,150,150,17,12,17,17,150,26,109,219,12,17,132,17, - 17,12,219,150,150,150,17,17,17,150,26,109,219,12,17,132, - 219,17,12,219,150,150,17,17,17,17,132,26,109,219,12,17, - 132,219,17,150,219,150,150,132,12,17,12,132,26,109,219,17, - 17,132,17,17,12,219,150,150,150,17,17,17,150,26,109,219, - 12,17,132,219,12,17,17,150,150,17,17,17,17,132,26,109, - 219,12,17,132,219,12,17,219,150,150,17,150,132,17,132,26, - 109,219,17,17,132,219,17,12,219,150,150,17,17,17,17,132, - 26,243,219,12,17,132,219,17,150,219,150,17,17,12,17,17, - 150,26,243,219,12,17,132,219,17,12,219,150,150,17,12,17, - 17,150,26,243,219,12,17,132,219,17,12,219,12,150,150,17, - 219,12,132,26,243,219,12,17,132,219,17,150,219,150,150,17, - 12,17,17,132,26,109,219,17,17,132,219,17,12,219,12,132, - 150,17,17,17,132,26,243,219,17,17,132,219,12,17,219,150, - 150,150,17,17,17,132,26,243,219,12,17,132,219,17,12,219, - 150,150,17,150,17,17,132,219,211,219,12,150,8,132,8,244, - 244,36,244,36,36,244,36,36,36,244,36,36,36,36,36,36, - 36,36,36,36,244,36,244,36,36,244,36,244,36,244,36,244, - 36,36,244,36,36,36,36,36,244,36,244,36,244,244,244,244, - 244,244,36,244,244,244,244,244,244,244,244,244,244,244,244,244, - 39,140,188,140,140,140,140,140,140,140,140,140,71,140,140,140, - 140,144,140,144,140,144,140,74,74,71,74,74,140,140,140,71, - 74,140,140,140,140,169,140,169,169,188,140,169,169,169,169,39, - 39,169,169,169,169,169,39,169,169,169,140,39,39,114,39,39, - 39,207,89,39,39,207,39,39,39,39,39,188,207,39,188,39, - 39,39,39,39,39,39,188,39,39,39,39,39,39,39,39,39, - 188,39,188,39,188,188,207,188,39,207,188,188,39,39,207,127, - 39,39,39,39,207,39,207,207,207,207,127,39,39,127,39,39, - 39,39,39,39,39,39,39,39,207,127,39,39,207,39,39,39, - 207,207,39,207,207,127,207,127,207,207,207,39,39,39,127,207, - 127,207,207,207,89,89,127,127,89,89,89,89,39,89,89,127, - 236,127,89,89,89,89,89,127,89,127,89,127,89,89,108,47, - 17,42,78,243,150,12,12,26,150,17,17,17,150,132,219,12, - 17,132,12,17,132,132,26,211,42,150,17,17,17,132,150,219, - 12,219,132,12,17,17,150,26,211,26,150,17,17,17,150,17, - 219,150,219,150,12,17,132,150,26,211,26,150,17,17,17,150, - 219,219,12,17,150,150,17,132,132,26,243,26,150,17,17,17, - 132,150,219,12,219,17,12,17,187,132,26,211,26,150,17,17, - 17,132,132,219,12,17,150,12,17,132,132,26,211,26,150,17, - 17,17,150,219,219,12,17,17,150,17,132,150,219,243,26,150, - 17,17,17,132,150,219,12,17,132,12,17,187,132,219,211,26, - 150,17,17,17,150,132,219,12,17,132,150,17,132,132,219,211, - 42,150,17,17,17,132,132,219,12,17,132,17,17,17,150,26, - 243,26,150,17,17,17,150,132,219,12,17,150,12,17,132,150, - 26,109,26,150,17,17,17,150,17,219,12,150,150,17,17,132, - 132,26,109,42,150,17,17,17,150,132,219,12,219,150,132,17, - 132,132,26,109,26,150,17,219,17,150,132,219,150,219,132,12, - 17,132,150,26,211,26,150,17,17,17,150,17,219,12,219,150, - 132,17,166,150,26,109,26,150,17,17,17,150,132,219,150,17, - 132,150,17,132,150,26,211,26,150,17,17,17,132,132,219,12, - 219,132,150,17,132,150,26,211,42,150,17,17,17,150,132,219, - 12,17,150,17,17,132,187,26,109,42,12,17,243,17,141,244, - 244,244,36,244,36,244,36,244,36,36,244,36,244,36,36,36, - 244,36,36,36,36,36,36,36,36,244,36,36,36,244,36,244, - 36,36,244,36,244,244,36,244,36,36,244,36,244,36,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, - 39,140,39,169,140,169,74,140,140,140,140,140,74,71,140,71, - 140,140,74,74,74,140,140,140,140,140,144,140,144,140,114,114, - 140,140,140,140,140,169,140,39,169,188,169,169,169,39,169,140, - 39,39,39,39,188,169,39,39,39,188,39,140,39,39,39,89, - 207,207,207,207,207,207,207,207,39,39,207,39,207,207,207,39, - 207,39,169,39,39,39,39,39,39,39,39,39,188,188,188,39, - 188,188,188,207,207,39,207,188,188,188,39,207,207,39,39,207, - 39,127,39,39,39,127,39,39,39,39,127,39,39,127,127,127, - 39,127,188,127,207,127,127,127,39,207,39,127,207,39,207,207, - 39,207,39,39,207,207,207,39,127,127,207,143,207,127,188,207, - 188,127,207,39,39,127,89,127,127,127,127,89,89,127,89,236, - 236,89,89,236,89,127,89,89,89,89,89,89,127,236,159,59, - 219,42,162,243,166,243,111,26,150,17,17,17,17,17,219,150, - 17,132,132,219,26,150,26,109,26,150,17,17,17,17,17,219, - 150,12,132,17,132,26,132,26,109,26,150,17,17,17,150,17, - 219,150,17,132,17,219,26,132,26,109,26,150,17,17,17,150, - 17,219,150,17,17,132,219,26,150,26,211,26,150,17,150,17, - 17,17,219,150,150,132,17,132,26,132,26,109,26,150,17,17, - 17,12,17,219,150,17,132,132,17,26,132,26,109,26,150,219, - 17,17,150,17,219,150,132,132,132,219,26,187,26,109,26,150, - 17,150,17,17,17,219,150,17,132,17,132,26,187,26,109,26, - 150,17,150,17,17,17,219,150,17,17,132,219,26,187,26,211, - 26,150,17,17,17,17,17,219,150,17,132,17,219,26,150,26, - 109,26,150,17,17,17,17,17,219,150,17,132,17,219,26,132, - 26,109,26,150,17,150,17,132,17,219,12,219,150,17,219,26, - 150,26,211,26,150,219,17,17,17,17,219,150,17,12,132,17, - 26,150,26,109,26,150,17,17,17,17,17,219,150,17,150,132, - 219,26,132,26,109,26,150,17,17,17,150,17,219,150,17,150, - 17,17,26,150,26,109,26,150,219,17,17,17,17,219,150,17, - 17,132,17,26,132,26,109,26,150,17,17,17,17,17,219,150, - 17,12,17,17,26,132,26,211,42,150,219,17,17,17,17,219, - 150,17,150,132,219,17,187,26,211,219,150,150,150,12,8,144, - 244,36,244,36,36,36,36,244,36,244,36,244,36,244,36,36, - 36,244,36,244,36,244,36,244,36,244,36,244,36,36,244,36, - 244,36,36,244,36,36,36,244,36,244,244,244,244,244,36,244, - 244,244,244,36,244,244,244,244,244,244,244,244,244,244,244,244, - 140,140,140,140,140,74,140,140,140,140,144,140,140,140,74,114, - 71,74,144,140,144,71,140,144,140,140,140,74,140,140,74,140, - 140,140,140,140,140,140,169,140,169,169,39,39,39,140,169,169, - 169,169,169,169,169,39,169,169,169,169,169,39,39,39,39,207, - 207,207,89,207,39,207,39,39,207,207,39,207,39,39,188,39, - 39,39,39,39,39,207,188,188,39,39,188,188,207,207,39,188, - 188,188,39,39,39,207,39,207,39,188,207,39,39,39,207,39, - 207,39,127,127,207,127,39,127,39,207,39,207,188,39,39,39, - 188,39,207,207,188,39,207,39,207,188,188,39,127,207,39,39, - 207,127,127,143,39,127,188,207,207,207,127,207,207,207,207,127, - 207,207,127,207,143,89,127,89,89,89,236,236,127,89,143,143, - 127,143,143,127,143,236,236,127,89,89,89,127,236,119,108,47, - 26,219,122,8,132,187,150,42,12,219,150,17,150,150,219,12, - 132,17,17,17,17,187,219,243,42,12,219,150,17,150,132,219, - 12,132,17,150,219,17,187,219,243,42,12,219,150,17,17,12, - 42,12,132,12,132,17,17,187,219,243,26,17,17,150,17,17, - 150,219,12,132,150,17,17,17,187,17,243,42,12,219,17,17, - 150,150,219,12,219,17,132,219,17,187,219,243,26,17,17,150, - 17,150,132,219,12,132,12,12,219,17,187,219,243,42,12,17, - 150,17,17,150,219,12,17,17,17,219,17,187,17,243,42,12, - 219,17,17,150,132,219,12,132,17,150,219,17,12,219,243,42, - 12,219,17,17,150,132,219,12,132,150,17,17,17,12,219,243, - 42,17,17,150,17,150,17,219,12,132,12,17,132,17,187,17, - 109,42,12,219,150,17,150,150,219,12,132,12,150,219,17,187, - 17,211,42,12,219,17,17,17,17,219,150,132,12,150,219,17, - 187,17,243,42,12,17,150,17,150,150,219,12,132,150,17,219, - 17,187,17,243,42,12,219,150,17,150,12,26,12,132,17,17, - 219,17,187,219,243,42,12,219,150,17,17,132,219,12,132,17, - 132,219,17,187,17,243,42,12,17,150,17,150,12,42,12,132, - 150,17,219,17,187,219,211,26,17,17,150,17,150,150,219,12, - 132,132,132,219,17,187,17,109,42,12,17,150,17,150,17,219, - 12,132,17,17,219,17,150,219,243,26,26,17,243,150,141,244, - 244,36,244,244,244,244,36,244,36,36,36,244,36,36,244,36, - 244,36,36,36,244,36,36,244,36,36,36,244,244,36,244,36, - 244,36,244,36,36,244,36,244,36,244,36,244,36,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,144,144, - 169,169,140,169,39,140,140,140,140,140,140,140,140,140,140,114, - 114,140,140,140,140,140,140,140,74,140,140,140,140,140,74,140, - 140,140,140,140,169,140,169,140,39,169,169,169,188,39,169,169, - 169,169,169,39,169,39,169,169,169,169,188,39,39,39,89,89, - 89,207,207,207,207,207,207,39,207,39,39,207,39,39,39,39, - 207,39,39,39,188,207,39,188,188,188,39,188,39,207,39,188, - 188,188,207,188,188,207,39,207,207,207,207,207,207,39,207,39, - 127,39,39,188,39,188,188,207,188,188,188,188,207,188,188,207, - 188,39,39,207,188,188,207,188,207,207,207,188,39,207,127,127, - 207,207,188,207,188,207,207,207,207,207,188,188,188,127,207,207, - 207,207,207,207,207,207,143,207,143,127,143,89,143,143,207,89, - 143,89,89,89,89,236,89,236,143,236,119,89,143,236,159,47, - 26,26,78,243,187,12,150,42,17,219,150,17,17,219,219,17, - 150,17,17,17,219,187,26,150,26,17,219,12,17,12,219,219, - 17,132,17,17,219,17,187,26,150,42,17,219,12,150,150,219, - 219,17,132,17,17,17,17,187,26,150,42,12,219,12,150,17, - 219,219,132,219,17,12,219,17,187,42,150,26,17,17,12,17, - 17,219,219,150,150,17,17,219,17,12,26,150,42,12,219,150, - 17,17,17,219,132,132,17,17,17,17,187,26,150,26,17,219, - 12,150,17,219,219,150,17,17,17,17,17,17,26,150,26,17, - 17,17,17,12,219,219,17,150,17,17,219,17,187,26,150,42, - 17,17,17,17,12,219,219,132,17,17,17,17,17,187,26,150, - 42,12,17,17,12,150,219,219,132,132,150,219,17,17,187,26, - 150,26,17,219,12,17,17,219,219,132,132,17,17,17,17,187, - 42,150,26,17,17,12,150,150,17,219,132,132,17,17,17,17, - 187,42,150,42,17,219,12,17,17,219,219,132,219,17,12,219, - 17,187,26,150,26,17,219,12,17,150,219,219,17,150,17,17, - 17,17,187,26,150,26,17,219,150,150,17,17,219,132,17,17, - 17,17,17,187,26,150,26,17,219,12,17,150,219,219,17,219, - 12,17,17,17,187,26,150,42,17,17,17,12,17,219,219,17, - 17,17,17,17,17,187,26,150,26,17,219,12,17,150,219,219, - 132,132,17,150,219,219,12,26,150,183,17,12,12,150,243,144, - 144,244,244,244,244,36,244,36,244,36,244,36,244,36,36,36, - 36,244,36,36,36,244,36,36,244,244,36,244,36,244,36,244, - 36,36,244,36,244,36,244,36,244,244,36,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,144,244,244,244, - 140,140,169,140,140,140,74,140,140,140,140,140,74,140,140,140, - 140,140,140,144,140,74,140,71,140,74,140,140,140,140,114,140, - 74,114,140,140,140,140,140,169,140,169,188,188,169,169,188,188, - 188,169,169,169,169,169,188,188,188,188,169,140,127,39,207,39, - 207,207,207,207,39,188,39,207,39,207,39,39,207,39,207,188, - 39,39,39,207,39,39,188,207,188,188,188,188,188,39,207,207, - 207,207,188,207,39,188,207,39,207,39,39,188,39,127,188,188, - 39,188,207,39,207,207,207,188,188,207,39,207,39,207,188,39, - 207,188,188,188,207,207,188,207,188,207,188,207,127,188,207,207, - 188,188,188,127,207,207,207,188,207,188,207,207,207,207,188,207, - 127,207,207,207,207,207,207,207,143,207,207,143,207,236,89,143, - 207,143,236,143,143,127,143,236,236,236,143,143,236,236,108,59, - 26,26,78,211,17,187,132,219,17,26,26,17,12,17,219,132, - 17,17,132,219,17,12,26,150,219,17,26,17,17,12,17,219, - 150,17,17,219,219,17,12,26,150,219,17,26,17,219,12,17, - 219,132,17,219,132,219,17,12,26,150,219,219,26,17,219,12, - 17,219,17,12,219,132,219,17,17,26,150,219,219,26,17,17, - 12,17,219,17,17,17,219,219,17,187,26,150,219,17,26,26, - 17,17,17,219,219,17,219,132,219,17,12,26,150,219,17,26, - 17,17,12,17,219,219,12,17,132,219,17,187,26,150,219,17, - 26,17,17,12,17,219,132,17,17,219,219,17,12,26,150,219, - 17,26,17,17,12,17,219,17,17,17,219,183,17,12,26,150, - 219,17,26,17,17,12,17,219,17,17,219,219,183,17,12,26, - 150,219,17,26,17,17,12,17,219,17,17,219,132,219,17,12, - 26,150,219,219,26,17,17,17,17,26,17,17,219,132,219,17, - 17,26,150,219,17,26,17,17,12,17,219,17,12,219,132,219, - 17,17,26,150,219,17,26,17,17,17,17,219,132,17,17,132, - 219,17,12,26,150,219,17,26,26,17,17,17,219,17,12,17, - 132,219,17,17,26,150,219,17,26,17,17,17,17,219,132,12, - 219,132,219,17,12,26,150,219,219,26,17,17,12,17,219,150, - 17,17,132,219,17,17,26,150,219,17,26,17,17,12,17,219, - 17,17,17,219,26,26,166,26,150,219,17,17,150,12,141,244, - 144,244,244,244,36,244,244,244,36,244,244,36,244,244,36,244, - 36,244,36,244,36,36,244,36,36,36,244,36,244,244,36,244, - 244,36,244,36,244,36,36,36,36,244,244,36,244,36,244,244, - 244,244,244,244,244,144,244,144,244,244,244,244,144,244,144,144, - 169,140,39,169,140,169,140,140,140,140,140,39,140,74,140,140, - 140,140,140,140,140,74,140,140,140,140,140,74,140,74,140,114, - 74,140,169,140,169,169,140,169,140,169,169,169,188,169,169,169, - 188,188,169,188,169,169,169,169,169,169,188,39,207,39,207,207, - 39,89,39,207,39,207,39,39,207,207,207,39,207,39,207,39, - 188,188,188,39,188,207,39,207,39,188,188,207,188,39,39,39, - 188,207,39,207,207,127,207,188,207,207,207,127,188,39,207,207, - 207,188,188,188,188,188,39,188,188,188,188,188,188,207,207,188, - 207,207,207,207,188,207,207,207,188,207,188,207,188,188,188,207, - 188,207,188,207,188,188,207,127,207,218,218,207,188,207,188,207, - 188,207,127,207,143,207,143,207,207,207,143,207,207,143,207,236, - 207,143,89,236,236,236,236,236,236,236,236,89,236,236,108,47, - 26,26,183,211,166,187,187,122,42,122,122,122,122,42,0,122, - 122,122,0,122,42,42,42,187,0,42,122,122,0,122,42,0, - 122,122,122,122,122,42,42,42,187,122,42,122,122,0,122,42, - 0,122,42,0,0,122,42,42,42,187,122,42,122,122,0,122, - 42,0,122,122,122,0,122,42,42,42,187,0,42,122,122,0, - 122,42,0,122,42,122,122,122,42,42,42,187,122,42,122,122, - 122,122,42,122,122,42,0,0,122,42,42,42,187,0,122,122, - 0,0,122,42,122,122,122,122,122,122,42,42,42,187,0,42, - 122,122,0,122,42,0,122,122,122,122,122,42,42,42,187,0, - 42,122,122,0,122,42,122,122,122,122,122,122,42,78,42,187, - 0,122,122,122,0,122,42,122,122,122,122,122,122,42,122,42, - 187,0,42,122,122,0,122,122,122,122,122,122,0,122,42,122, - 42,187,122,42,122,0,0,122,42,0,122,122,122,0,122,42, - 42,42,187,0,42,122,122,0,122,42,0,122,122,122,0,122, - 42,42,42,187,0,42,122,122,0,122,42,0,122,122,122,0, - 122,42,42,42,187,122,42,122,122,0,122,42,0,122,122,0, - 0,122,42,42,42,187,0,122,122,122,0,122,42,0,122,122, - 122,0,122,42,122,42,187,122,42,122,122,0,122,42,0,122, - 122,122,0,122,42,42,42,187,0,122,122,122,0,122,42,122, - 122,122,122,122,122,26,42,42,187,42,219,26,12,17,150,114, - 144,244,244,244,244,36,244,244,36,244,36,244,36,244,36,244, - 36,244,36,244,36,244,36,244,244,36,244,36,244,244,36,244, - 244,244,36,244,36,244,244,244,36,244,244,244,244,244,244,244, - 244,244,244,244,244,244,144,244,244,244,144,244,144,244,244,144, - 140,169,140,140,39,140,140,169,140,74,74,140,74,114,140,140, - 140,140,140,140,140,114,140,140,140,140,74,140,140,140,74,100, - 140,74,140,140,140,140,140,140,169,140,140,39,169,39,169,169, - 169,169,188,169,188,188,188,39,188,169,169,140,39,39,207,207, - 89,39,89,207,39,39,39,207,39,39,207,207,39,207,127,188, - 188,188,188,207,207,39,207,39,207,207,207,188,207,207,207,207, - 207,188,207,188,188,188,127,207,188,188,188,39,207,207,188,39, - 188,39,207,188,207,207,207,207,207,207,188,188,207,188,188,207, - 188,188,188,188,207,188,188,207,207,188,207,188,207,207,207,188, - 207,207,207,188,207,207,207,207,207,207,207,207,207,207,207,207, - 207,207,207,207,207,207,207,218,218,218,207,207,143,207,207,207, - 207,143,143,143,236,236,143,236,143,236,236,143,236,236,108,59, - 0,183,122,12,0,42,183,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,122,122,122,42,42,132,114, - 244,244,244,244,244,244,244,244,244,244,36,244,244,36,244,36, - 244,36,244,36,244,244,36,244,36,244,244,244,244,244,36,244, - 36,244,244,244,36,244,36,244,36,244,36,244,244,244,244,244, - 244,244,144,144,244,244,144,244,244,244,144,244,144,244,144,144, - 140,169,169,140,39,100,140,169,114,39,140,140,74,140,140,140, - 140,140,140,140,74,140,140,140,140,39,140,140,169,39,114,169, - 39,140,169,140,140,169,140,140,169,169,140,39,140,39,39,39, - 169,169,169,169,169,169,169,169,39,169,188,39,207,39,207,39, - 89,207,39,39,39,39,39,39,39,39,207,207,127,188,207,207, - 39,188,188,188,207,188,207,39,188,188,207,207,207,39,207,207, - 207,188,207,207,207,207,188,207,207,207,207,188,188,207,207,188, - 188,188,39,188,188,188,188,188,207,207,207,188,207,188,188,207, - 207,207,188,188,207,207,188,207,207,207,207,207,207,188,207,188, - 188,207,207,188,188,188,188,207,207,207,207,207,188,207,207,207, - 207,207,207,236,207,143,218,236,218,218,218,207,218,236,143,218, - 207,207,236,143,143,236,143,236,143,143,236,143,153,153,108,59, - 42,26,187,12,183,0,26,0,42,122,42,122,42,122,42,122, - 122,42,122,42,243,219,26,17,0,42,122,42,122,122,42,122, - 42,122,122,122,42,243,219,26,17,0,42,122,42,122,42,122, - 122,42,122,122,122,42,243,219,26,17,0,42,122,42,122,42, - 122,42,122,122,42,122,42,243,219,26,12,0,42,122,42,122, - 122,42,122,122,122,42,122,42,243,219,26,17,0,42,122,42, - 122,122,42,122,122,42,122,122,42,243,219,26,12,122,26,122, - 42,122,122,42,122,42,122,122,122,42,243,219,26,17,0,42, - 122,42,122,122,42,122,42,122,122,122,42,243,219,26,12,0, - 42,122,42,122,122,42,122,42,122,122,122,42,12,219,26,12, - 122,42,122,42,122,122,42,122,42,122,122,122,42,12,219,26, - 12,0,42,122,42,122,42,122,42,122,122,42,122,42,12,219, - 26,17,0,42,42,122,122,42,122,42,122,42,122,122,42,243, - 219,26,17,0,42,122,42,122,42,122,42,122,122,42,122,42, - 243,219,26,17,0,42,122,42,122,42,122,42,122,122,122,122, - 42,243,219,26,17,0,42,42,122,122,42,122,42,122,42,122, - 122,42,243,219,26,12,122,42,122,42,122,122,42,122,42,122, - 122,122,42,12,219,26,17,0,42,122,42,122,122,42,122,42, - 122,122,122,42,243,219,26,12,122,42,122,42,122,122,42,122, - 42,122,42,122,42,243,183,26,187,122,26,12,150,219,141,114, - 144,244,244,244,244,244,244,244,244,244,244,244,36,244,244,244, - 36,244,244,244,244,244,244,244,244,244,244,244,36,244,244,36, - 244,244,36,244,244,36,244,244,244,244,244,244,244,244,244,244, - 244,144,144,244,144,144,244,144,144,244,144,244,244,144,244,144, - 188,169,39,169,140,39,140,169,169,140,140,140,39,169,140,140, - 169,140,140,140,39,169,140,140,140,140,140,169,39,140,169,140, - 140,140,140,140,169,140,169,140,140,140,169,140,169,169,169,169, - 39,169,39,169,140,169,169,169,169,188,188,127,39,207,127,207, - 207,207,89,89,39,39,39,39,207,207,39,39,39,39,39,188, - 188,188,39,207,39,188,188,207,207,207,207,39,207,207,39,188, - 188,207,188,188,188,188,207,188,188,188,188,207,207,188,207,207, - 207,188,207,207,207,207,207,207,188,207,207,207,188,207,188,188, - 188,188,207,188,188,188,207,207,207,207,207,207,188,207,188,207, - 207,188,207,207,207,207,207,188,188,207,207,207,207,207,207,207, - 207,89,207,207,207,207,207,218,218,218,218,143,218,218,207,236, - 236,236,143,236,236,143,143,143,236,236,236,236,236,58,184,47, - 187,109,111,139,187,42,254,42,49,139,8,8,139,8,8,139, - 8,8,139,139,101,17,26,12,42,49,139,139,8,8,211,8, - 139,8,8,139,139,101,17,26,12,42,49,139,8,139,139,8, - 8,139,8,8,139,139,101,17,26,12,42,49,139,8,8,139, - 8,8,139,8,8,139,139,101,17,26,12,42,49,139,139,8, - 8,211,8,139,8,8,139,139,101,17,26,12,42,49,139,139, - 8,8,211,8,139,8,8,139,139,101,17,26,12,42,49,139, - 139,8,8,8,139,211,8,8,139,139,101,17,26,12,42,49, - 139,139,8,8,8,139,211,8,8,139,139,101,17,26,12,42, - 49,139,139,8,8,211,8,139,8,8,139,139,67,17,26,12, - 42,49,139,139,8,8,211,8,139,8,8,139,139,49,17,26, - 12,42,49,139,139,8,139,8,8,139,8,8,139,139,67,17, - 26,12,42,49,139,139,8,139,8,8,139,8,8,139,139,101, - 17,26,12,42,49,139,139,8,139,8,8,139,8,8,139,139, - 101,17,26,12,42,49,139,8,139,139,8,8,139,8,8,139, - 139,101,17,26,12,42,49,139,8,8,139,8,8,139,8,8, - 139,139,101,17,26,12,42,49,139,139,8,139,211,8,139,8, - 8,139,139,49,17,26,12,42,49,139,139,8,8,8,139,211, - 8,8,139,139,101,17,26,12,42,49,139,139,8,8,211,211, - 211,8,8,139,139,101,12,26,12,42,12,182,7,141,8,114, - 114,244,144,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,36,244,36,244,244,244,36,244,244,244,244,244,36, - 244,244,244,36,244,244,36,244,244,244,244,244,244,244,244,244, - 144,244,244,144,244,244,144,144,244,244,144,144,244,144,244,144, - 169,169,188,188,169,169,169,140,169,169,169,140,169,169,188,169, - 169,169,169,140,39,169,169,169,169,39,169,140,169,169,39,169, - 39,39,169,140,169,140,39,39,140,140,169,39,39,39,39,140, - 39,169,39,188,39,188,39,39,39,188,188,188,188,207,207,207, - 207,39,39,114,39,207,39,207,39,207,207,207,207,188,207,207, - 207,188,188,188,207,207,188,188,188,188,207,188,188,207,207,207, - 188,207,207,207,207,207,207,207,207,207,188,188,207,188,207,39, - 207,188,188,188,188,188,188,207,188,188,188,207,188,207,207,207, - 207,188,207,207,207,207,188,218,188,218,188,218,207,207,207,207, - 207,207,207,207,207,207,207,207,39,207,207,207,207,207,207,39, - 207,207,207,143,207,207,207,207,236,236,218,236,218,218,218,218, - 207,236,207,143,143,236,236,143,143,143,143,143,143,159,240,59, - 187,109,187,109,150,42,109,122,101,211,139,8,211,8,8,8, - 211,8,211,139,101,150,150,211,42,101,8,211,211,8,211,8, - 8,211,8,139,8,67,150,150,211,42,101,8,8,8,211,8, - 8,211,8,8,139,8,67,150,150,211,42,101,8,139,8,211, - 8,8,8,211,8,211,139,101,150,150,243,42,101,8,211,211, - 8,211,8,8,211,8,211,139,101,150,150,109,42,101,8,211, - 211,8,211,8,8,211,8,211,139,101,150,150,243,122,101,8, - 211,211,211,8,8,211,8,8,139,8,67,150,150,211,42,101, - 8,211,211,211,8,8,211,8,8,139,8,67,150,150,243,42, - 101,8,211,211,8,211,8,8,211,8,139,8,101,150,150,243, - 42,101,8,211,211,8,211,8,8,211,8,8,211,101,150,150, - 243,42,101,8,211,8,211,8,8,8,211,8,211,8,67,150, - 150,243,42,139,8,211,8,211,8,8,8,211,8,211,139,101, - 150,150,211,42,101,8,211,8,211,8,8,8,211,8,211,139, - 101,150,150,211,42,101,8,8,8,211,8,8,211,8,8,139, - 8,67,150,150,109,42,101,8,139,8,211,8,8,8,211,8, - 211,139,101,150,150,243,42,101,8,211,8,8,8,8,211,8, - 8,8,211,101,150,150,243,42,101,8,211,211,211,8,8,211, - 8,8,139,8,67,150,150,243,42,101,8,211,211,8,8,8, - 211,8,8,8,139,101,150,150,8,42,243,8,182,141,141,114, - 144,244,144,144,144,244,144,244,244,244,244,244,36,244,244,244, - 36,244,244,244,244,244,244,244,244,244,244,36,244,244,244,244, - 36,244,244,244,244,244,244,244,244,36,244,244,144,244,244,244, - 244,144,144,244,144,144,244,144,144,144,144,244,144,144,244,144, - 39,169,39,169,39,169,169,169,169,169,39,169,140,169,169,140, - 169,140,169,169,169,169,169,169,169,169,169,169,39,39,169,169, - 169,169,169,169,39,169,140,140,39,169,39,140,140,169,140,188, - 169,169,39,188,188,188,188,169,188,188,188,207,188,188,127,39, - 39,207,207,89,89,39,39,207,207,39,207,39,39,207,39,39, - 207,207,207,207,39,188,207,207,207,207,188,207,207,207,188,207, - 207,188,188,188,127,207,207,207,188,207,207,207,188,207,188,207, - 188,207,207,207,207,207,207,188,207,207,207,188,207,207,188,188, - 188,207,207,188,207,188,207,207,207,188,207,207,207,207,127,207, - 207,188,207,207,207,39,207,207,207,207,207,207,207,207,89,89, - 89,207,207,207,207,236,207,218,218,218,207,218,218,236,143,207, - 143,207,207,143,236,207,143,143,236,236,236,236,236,184,108,47, - 17,141,187,243,111,42,109,26,101,8,211,8,211,211,211,8, - 211,8,8,8,139,150,17,243,122,49,8,211,211,8,211,8, - 211,8,211,8,8,139,150,17,243,122,49,8,211,211,211,8, - 211,211,8,211,8,8,139,150,17,243,122,49,8,211,8,211, - 211,211,8,211,8,8,8,8,150,17,211,122,49,8,211,211, - 8,211,211,8,211,8,8,8,139,150,17,8,122,49,8,211, - 211,8,211,211,8,211,8,8,8,8,150,17,211,26,101,8, - 211,8,211,8,211,211,8,211,8,8,139,150,17,243,42,101, - 211,8,211,8,211,8,211,211,8,8,211,8,150,17,211,122, - 49,8,211,211,8,211,211,8,211,8,8,139,8,150,17,211, - 42,101,8,211,211,8,211,8,211,8,211,8,8,8,150,17, - 211,122,49,8,211,8,211,211,8,211,8,211,8,8,139,150, - 17,211,122,49,8,211,8,211,211,109,8,211,8,8,8,139, - 150,17,243,122,49,8,211,8,211,211,211,8,211,8,8,8, - 139,150,17,243,122,49,211,211,8,211,211,8,211,211,8,8, - 211,8,150,17,8,122,49,8,211,8,211,211,211,8,211,8, - 8,8,139,150,17,109,42,101,8,211,211,8,211,211,8,211, - 211,8,8,139,150,17,211,42,101,211,8,211,8,211,8,211, - 211,8,8,8,139,150,17,109,42,101,8,211,8,211,8,211, - 8,211,211,8,8,139,150,17,254,183,12,182,67,8,8,114, - 144,144,144,244,244,144,244,144,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,36,244, - 244,244,244,36,244,244,36,244,244,244,244,244,144,144,144,244, - 144,244,144,144,144,144,244,144,144,244,144,144,244,144,244,144, - 39,169,39,169,39,169,169,169,169,169,169,169,169,140,188,169, - 169,169,39,169,39,39,39,169,169,39,169,169,169,188,39,169, - 169,39,169,169,39,169,169,169,39,140,140,169,140,188,140,169, - 39,169,39,39,39,188,188,188,188,188,188,207,188,188,188,207, - 207,207,39,39,39,89,207,207,207,39,207,207,39,207,207,39, - 207,39,188,207,207,188,188,188,188,207,188,188,188,207,188,207, - 207,207,207,207,188,218,207,218,207,207,207,207,207,207,207,207, - 207,188,188,188,188,218,207,207,207,207,207,188,188,207,207,207, - 188,218,207,218,207,188,188,207,207,207,207,207,207,207,188,207, - 207,207,207,207,39,207,39,89,207,207,207,89,207,207,207,207, - 89,207,89,207,143,207,89,207,218,218,207,236,207,89,207,207, - 207,207,207,207,236,89,89,143,236,236,236,143,143,58,240,47, - 26,109,183,109,111,91,111,122,101,211,211,211,109,187,8,109, - 187,211,187,139,8,243,17,8,122,139,211,211,8,211,109,187, - 211,109,187,211,8,139,243,26,211,122,139,139,211,211,187,211, - 187,211,187,211,187,211,139,150,26,211,122,139,211,211,211,109, - 187,8,109,187,211,109,139,67,12,17,8,122,101,211,211,8, - 211,187,211,187,211,187,211,211,67,12,17,8,122,139,211,211, - 8,211,187,211,187,211,8,109,139,67,12,17,243,122,101,139, - 211,211,187,211,8,109,187,211,187,211,139,150,17,243,122,101, - 211,211,211,187,211,8,109,187,211,187,139,139,243,219,8,122, - 139,211,211,8,211,187,211,187,211,187,211,139,139,243,219,243, - 122,101,139,8,211,211,187,211,211,8,211,109,139,67,12,26, - 8,122,139,139,211,211,187,211,109,187,211,211,187,211,139,150, - 26,8,122,139,139,211,211,8,211,187,211,187,211,187,139,8, - 243,26,211,122,139,139,211,211,187,211,187,211,187,211,187,139, - 139,150,17,8,122,139,211,211,211,109,8,109,109,187,8,109, - 139,139,243,17,211,122,139,211,211,211,109,187,8,109,187,211, - 187,139,8,243,17,243,122,101,139,8,211,109,187,211,8,109, - 8,109,8,67,12,17,243,122,101,211,211,211,187,211,187,211, - 187,211,109,8,139,150,17,243,122,101,211,211,211,211,8,211, - 109,187,211,187,8,67,12,26,8,219,12,243,141,150,141,114, - 114,244,144,144,244,144,244,144,144,244,144,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,36,244,244,244,244,244,244,244,244,144,244,144,244,144, - 244,144,244,144,244,244,244,144,144,144,144,244,114,144,244,144, - 169,169,169,169,169,39,169,169,169,169,169,169,169,169,169,169, - 169,169,169,188,169,169,169,39,39,169,169,169,188,169,169,188, - 169,169,39,39,169,39,188,169,169,39,39,39,188,140,169,39, - 140,39,39,39,39,39,188,188,39,39,39,188,188,188,207,39, - 207,39,127,39,89,39,207,207,207,207,207,207,207,39,207,207, - 188,207,207,188,188,207,207,207,207,188,207,207,207,207,207,207, - 207,188,188,218,218,207,218,207,218,218,207,218,188,207,188,188, - 188,207,218,218,218,188,218,188,218,188,218,207,218,207,218,188, - 207,188,207,188,207,207,207,188,207,207,207,207,207,188,207,207, - 207,207,207,207,89,89,89,39,207,207,89,207,89,89,89,89, - 207,89,207,89,207,207,207,207,207,236,207,207,207,207,236,207, - 143,236,236,127,127,127,143,89,143,236,236,236,236,58,108,64, - 26,111,26,150,254,42,182,26,101,8,91,211,211,211,211,8, - 139,8,139,8,67,12,26,182,42,101,211,8,91,211,211,8, - 211,8,211,211,211,67,12,17,8,42,101,211,211,211,8,211, - 211,8,139,8,139,8,139,12,17,211,42,101,211,91,211,211, - 211,211,8,211,8,211,8,139,150,26,182,42,101,139,91,211, - 211,211,8,139,8,211,8,8,139,150,26,182,42,101,139,91, - 211,211,211,8,211,211,187,211,8,139,150,26,211,42,101,211, - 211,211,8,91,109,8,139,8,139,8,139,12,17,211,26,101, - 211,8,211,211,91,109,8,211,8,139,211,67,12,26,182,42, - 101,139,91,211,211,211,8,211,8,211,211,8,67,12,26,211, - 42,101,211,211,211,8,91,211,109,8,187,211,211,139,150,17, - 182,42,101,211,211,211,8,211,211,8,211,8,139,8,139,12, - 17,182,42,101,211,211,91,8,211,211,8,139,8,139,8,67, - 12,17,8,42,101,211,211,211,8,211,211,8,139,8,139,8, - 67,12,26,182,42,101,211,211,8,211,91,8,211,211,8,211, - 8,67,12,26,211,42,101,211,91,211,211,211,211,8,139,8, - 139,8,67,12,26,211,42,101,211,211,8,139,91,109,109,8, - 109,211,211,139,150,26,211,26,101,211,211,211,8,211,211,8, - 211,211,211,8,139,12,26,211,26,101,211,8,211,91,211,187, - 211,8,211,139,211,139,150,17,182,42,12,8,8,243,182,114, - 114,144,144,144,144,244,144,244,144,244,144,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,144,244,144,144,144, - 244,144,144,144,144,244,144,244,244,144,244,144,244,144,144,144, - 188,188,188,169,169,188,188,169,169,188,169,169,169,169,169,169, - 39,169,169,188,188,188,169,169,169,188,169,169,169,188,169,188, - 188,169,169,188,169,169,39,39,169,169,169,169,188,39,169,39, - 39,39,39,169,169,39,39,188,188,39,39,207,39,188,127,188, - 207,207,39,207,89,127,207,207,207,39,39,207,207,39,207,207, - 188,188,207,207,188,188,207,207,207,188,188,207,207,207,207,207, - 207,218,188,207,207,207,207,188,207,218,207,218,218,218,218,207, - 218,207,207,207,207,207,218,207,218,207,218,207,218,207,207,218, - 207,207,207,207,207,207,207,207,207,207,207,207,89,207,207,207, - 39,207,89,207,39,207,89,89,89,207,89,89,236,207,236,89, - 207,207,207,207,207,143,207,207,143,207,207,143,207,207,89,89, - 207,207,89,236,89,127,127,89,127,89,236,236,143,236,240,47, - 26,109,183,12,111,26,109,162,101,67,211,211,91,8,109,187, - 211,187,139,187,67,150,26,8,78,101,139,139,211,8,91,8, - 211,187,211,8,91,67,150,17,243,122,101,139,211,91,211,211, - 187,8,211,109,211,8,67,150,17,243,122,101,67,211,8,211, - 91,8,109,109,8,211,8,67,150,26,8,122,101,182,139,8, - 211,91,8,109,187,211,211,8,67,150,26,8,122,101,182,139, - 8,211,91,8,211,211,8,211,8,67,150,17,8,122,101,139, - 211,211,211,211,8,187,211,109,211,8,67,150,17,243,122,101, - 139,211,211,139,8,211,8,109,187,139,91,67,150,26,8,122, - 101,182,139,8,211,91,8,211,187,211,8,187,67,150,17,8, - 122,101,139,211,91,139,8,211,91,211,211,8,8,67,150,26, - 243,122,101,139,211,91,211,211,187,211,8,109,211,8,67,150, - 26,8,122,101,139,211,8,211,211,187,8,109,187,139,8,67, - 150,17,243,122,101,139,211,211,211,91,8,187,211,187,139,91, - 67,150,26,8,122,101,139,211,91,139,8,211,109,187,211,211, - 91,67,150,17,243,122,101,67,211,8,211,91,8,187,211,187, - 139,8,67,150,17,8,122,101,139,211,91,8,8,211,187,211, - 8,211,8,139,150,17,8,122,101,139,211,211,211,91,8,187, - 211,8,211,8,67,150,17,8,122,101,139,211,8,211,211,8, - 211,8,187,139,8,139,150,26,141,219,17,243,8,150,141,114, - 114,114,144,144,144,144,144,244,144,144,244,144,144,244,144,244, - 244,244,244,244,244,144,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,144,244,144,144,244,144, - 144,244,144,144,144,244,144,244,144,144,244,244,144,144,244,244, - 188,188,188,188,188,169,169,169,169,169,169,169,169,169,169,169, - 169,169,188,169,169,169,188,169,188,169,188,169,188,169,188,169, - 169,188,169,169,169,169,169,169,39,188,39,39,169,39,39,39, - 39,39,140,39,39,39,39,39,207,188,207,188,207,39,39,39, - 39,207,39,207,39,89,207,207,207,207,207,39,207,207,207,207, - 207,207,188,188,207,218,207,188,207,207,207,207,188,218,218,207, - 207,207,207,207,218,188,218,218,218,218,218,218,218,207,207,218, - 207,218,188,207,218,218,207,218,207,218,207,207,207,207,207,207, - 207,207,207,207,207,207,207,39,39,207,207,207,207,89,207,89, - 89,89,207,207,89,89,207,89,89,89,89,143,207,89,207,236, - 89,89,89,89,89,207,207,207,207,89,207,89,207,207,143,207, - 127,207,143,207,143,89,89,143,89,236,89,236,236,159,108,64, - 26,111,42,109,109,26,224,42,101,211,8,211,8,211,8,139, - 8,139,8,211,67,150,17,211,42,101,211,8,211,211,211,211, - 8,211,211,8,211,67,132,17,211,78,101,8,139,8,211,211, - 139,187,109,8,211,211,139,150,17,8,42,101,8,211,211,8, - 211,109,8,211,109,109,211,139,150,17,211,42,101,211,8,211, - 8,211,109,8,211,8,109,211,139,150,17,211,42,101,8,211, - 8,211,139,187,211,187,109,211,211,139,132,17,8,42,101,8, - 211,211,8,211,8,211,211,8,211,211,139,17,17,8,42,101, - 211,211,211,8,211,187,211,8,211,8,8,67,150,17,211,42, - 101,8,211,8,211,211,8,211,211,8,211,211,67,132,17,211, - 42,101,211,8,211,8,211,187,211,8,8,211,211,139,187,17, - 243,42,101,8,139,8,211,211,109,8,109,8,211,211,139,150, - 17,243,42,139,139,8,91,211,139,187,211,8,211,109,211,139, - 132,17,243,42,101,187,211,211,8,139,8,211,8,211,8,8, - 67,150,17,211,42,101,211,8,211,8,211,187,211,8,211,8, - 211,67,150,17,8,42,101,8,211,211,8,139,187,139,8,139, - 187,211,139,132,17,211,42,101,211,8,139,211,211,211,8,211, - 187,211,211,67,150,17,243,42,101,8,211,211,8,211,211,211, - 8,109,211,211,139,132,17,211,42,101,211,211,211,211,211,211, - 211,8,211,8,211,67,150,17,243,219,150,243,182,8,141,89, - 114,144,114,144,144,144,144,144,144,144,244,144,144,144,244,144, - 144,144,244,144,244,244,144,244,244,144,244,244,244,244,244,244, - 244,244,244,244,244,244,244,144,244,244,144,244,144,144,144,144, - 244,144,144,244,144,144,144,244,144,144,144,244,144,244,144,144, - 169,218,218,188,188,188,188,188,169,169,169,169,169,169,188,169, - 169,169,169,39,39,169,188,169,169,169,169,169,169,169,39,169, - 169,188,169,39,39,188,188,169,169,169,169,39,169,39,39,140, - 140,39,39,39,39,39,39,39,39,39,188,188,188,188,207,39, - 207,207,39,207,207,207,39,207,127,188,207,127,207,39,207,207, - 188,207,207,188,207,188,218,207,218,218,188,207,207,207,218,218, - 207,218,218,207,218,188,207,207,207,218,236,207,218,218,207,207, - 207,218,218,207,207,207,188,207,207,207,207,207,207,207,207,207, - 207,89,207,207,207,207,89,89,207,207,207,207,207,207,39,207, - 207,207,89,207,207,89,143,89,236,207,89,89,236,89,207,236, - 236,236,89,127,207,127,89,207,127,207,207,89,207,207,207,89, - 89,207,207,89,127,89,89,143,127,236,143,89,236,159,240,47, - 17,109,42,243,111,26,109,122,101,139,211,211,139,211,109,109, - 8,109,211,8,139,150,17,109,122,101,139,211,211,211,139,111, - 211,211,8,8,8,139,150,26,211,122,101,139,211,211,8,211, - 211,139,8,109,211,8,139,150,17,109,122,101,139,211,211,8, - 139,109,109,211,211,8,8,139,150,17,243,122,101,139,211,211, - 211,139,211,211,211,211,211,8,139,150,17,109,122,101,139,211, - 211,211,139,211,139,139,8,211,8,139,150,17,109,122,101,139, - 211,211,211,211,109,211,211,211,8,8,67,150,17,109,122,101, - 139,211,211,211,211,211,211,211,211,211,8,67,132,17,243,122, - 101,139,211,211,139,211,109,211,211,211,211,91,67,150,17,109, - 122,101,139,211,139,139,139,211,211,211,109,211,8,67,150,12, - 109,122,101,139,211,211,8,211,211,211,211,109,211,8,139,150, - 12,109,122,101,139,211,139,8,139,211,211,211,211,211,8,139, - 150,17,109,122,101,139,211,211,211,211,109,139,109,211,211,8, - 139,150,219,109,122,101,139,139,139,211,211,211,211,211,211,8, - 8,139,132,17,109,122,101,139,211,211,211,139,211,211,211,211, - 211,8,139,150,219,109,122,101,139,211,211,211,211,211,211,211, - 211,211,91,67,132,17,109,122,101,139,211,211,139,211,211,109, - 211,211,211,8,139,150,17,109,122,101,139,211,211,8,211,109, - 211,211,109,211,91,101,150,26,8,219,17,12,8,150,67,181, - 144,144,114,144,144,144,144,144,144,144,244,244,144,144,144,144, - 244,144,144,244,144,144,244,244,144,244,244,144,244,244,244,244, - 244,244,244,244,144,244,144,244,244,244,244,144,144,244,144,144, - 144,144,144,244,144,244,144,144,144,244,144,244,144,244,144,244, - 218,169,188,169,188,169,169,169,188,169,39,169,169,140,169,39, - 39,140,140,169,169,39,169,39,39,39,39,169,39,39,169,188, - 169,169,39,169,169,169,169,140,39,39,39,169,39,169,169,39, - 39,39,39,39,39,39,39,39,207,188,188,188,188,207,127,207, - 39,207,207,207,127,207,207,39,207,207,188,188,188,207,207,207, - 207,188,188,207,188,218,207,218,207,207,218,218,207,207,188,207, - 207,207,207,218,218,218,218,218,218,236,207,218,207,236,218,218, - 207,207,218,207,218,207,207,207,207,207,236,207,207,207,207,89, - 207,207,89,89,89,89,207,207,89,89,89,89,89,89,89,89, - 89,89,89,89,89,207,89,207,236,89,236,236,207,143,89,236, - 89,143,236,89,89,89,207,207,207,207,127,207,89,207,207,207, - 143,89,89,89,89,127,127,89,89,89,89,236,127,236,83,47, - 26,111,183,109,111,26,211,122,49,139,211,211,211,8,91,211, - 211,211,211,211,67,132,219,211,122,49,211,211,211,211,8,211, - 211,211,211,211,211,67,132,219,211,122,49,211,211,211,211,139, - 61,109,211,8,211,211,67,132,219,211,78,67,139,211,211,211, - 211,91,211,211,211,211,211,67,132,219,211,122,49,211,211,211, - 139,8,91,211,187,211,211,8,67,132,219,211,122,49,211,211, - 139,8,8,211,109,109,8,211,211,67,132,219,211,42,139,139, - 211,211,211,8,91,109,109,211,211,211,139,132,219,211,122,49, - 211,211,211,211,211,211,211,211,8,211,211,8,132,219,211,42, - 67,139,211,211,8,211,211,109,211,8,211,139,8,17,219,211, - 122,49,139,211,211,8,8,211,109,211,8,211,211,139,132,26, - 211,78,67,211,139,211,211,211,61,211,8,211,211,211,67,132, - 219,211,122,67,139,139,8,139,139,91,211,109,8,211,211,67, - 132,26,211,42,49,139,211,139,8,211,211,109,211,109,211,8, - 67,132,219,211,122,67,211,211,8,211,211,211,211,139,187,211, - 211,67,132,219,211,78,49,211,139,211,211,211,211,109,8,211, - 211,8,67,132,219,211,78,49,211,211,8,139,8,61,211,211, - 8,139,8,139,12,219,211,42,67,139,211,211,8,211,109,211, - 8,211,211,8,67,132,219,211,122,67,139,211,211,211,211,211, - 109,211,8,139,8,67,150,219,211,26,12,12,243,219,141,89, - 114,144,144,144,144,144,144,144,144,144,144,144,144,244,144,144, - 244,144,144,144,244,144,144,244,144,144,244,144,144,244,144,144, - 244,244,144,244,144,244,144,144,144,244,144,244,244,144,144,144, - 244,144,144,144,114,244,144,244,144,144,244,144,144,244,144,144, - 218,88,218,218,218,218,169,169,188,169,188,188,188,169,169,169, - 169,188,169,140,169,39,169,169,169,169,169,169,169,169,169,39, - 169,169,188,188,169,169,188,169,39,188,188,169,39,39,169,169, - 169,169,39,39,39,39,188,39,39,207,188,207,127,188,188,188, - 127,207,39,207,207,207,207,207,188,207,207,207,207,188,207,207, - 207,207,207,207,207,207,207,218,218,207,207,218,218,218,218,218, - 207,218,207,207,236,207,236,218,218,218,218,218,218,236,218,218, - 218,236,207,207,218,236,207,207,207,207,236,236,236,207,207,207, - 207,207,207,207,207,89,89,89,89,89,89,236,236,89,89,207, - 207,143,207,207,236,236,236,89,236,89,236,89,236,236,207,236, - 236,143,89,236,89,127,207,127,89,89,207,39,89,89,89,89, - 127,127,127,89,89,89,127,89,127,119,89,119,236,236,108,47, - 26,187,42,243,111,26,109,122,101,139,139,139,139,139,139,211, - 211,139,211,139,139,12,26,211,122,101,101,139,139,139,139,211, - 211,211,211,139,211,101,150,26,211,122,101,139,139,139,211,139, - 139,211,211,139,139,211,139,12,26,109,42,101,139,139,139,139, - 139,139,211,211,211,139,211,139,12,26,211,122,101,101,139,139, - 211,139,139,139,139,211,139,139,139,12,26,211,122,101,139,139, - 139,211,139,61,139,211,211,139,139,139,150,26,109,122,101,101, - 139,139,139,139,139,139,211,211,139,139,139,12,26,211,122,101, - 139,139,139,139,139,211,211,211,211,139,139,101,12,26,109,122, - 101,139,139,139,139,211,139,211,211,211,139,139,67,12,26,211, - 122,101,139,139,211,139,211,139,211,211,139,139,139,139,150,26, - 109,42,101,139,139,139,139,139,139,211,211,139,139,139,139,17, - 26,211,122,101,139,139,211,139,139,139,139,211,211,139,139,139, - 150,26,109,122,101,139,139,139,211,139,211,211,139,211,139,211, - 101,12,26,211,42,101,139,139,139,139,211,211,211,139,139,211, - 139,139,12,26,109,122,101,139,139,8,139,211,139,211,211,139, - 139,139,139,12,26,109,122,101,101,139,139,139,139,139,139,211, - 211,139,139,67,12,26,109,122,101,139,139,139,139,139,211,211, - 211,139,139,211,101,12,26,211,122,101,139,139,139,139,139,91, - 139,211,211,139,139,139,150,219,182,17,150,12,243,150,141,114, - 114,114,114,114,144,144,144,144,144,144,144,144,144,144,244,144, - 144,144,244,144,144,244,144,244,244,144,144,244,144,144,144,244, - 144,244,144,144,244,144,244,144,244,144,144,244,144,244,144,144, - 244,144,244,144,244,144,144,144,144,244,144,244,144,244,144,244, - 218,218,218,218,188,88,218,218,88,218,169,169,169,169,169,169, - 188,169,169,188,39,169,39,188,188,39,39,169,188,39,188,169, - 39,188,169,169,188,188,169,188,169,169,188,188,188,188,188,188, - 188,188,39,188,188,188,39,188,207,188,207,188,188,207,207,207, - 127,39,207,39,207,207,207,207,207,188,188,207,218,207,207,207, - 218,218,218,218,207,218,188,188,207,218,218,218,207,218,207,218, - 236,207,218,218,207,218,218,207,207,218,236,236,207,218,236,207, - 236,207,218,207,89,207,207,207,207,207,207,207,207,236,207,236, - 236,207,89,89,89,207,89,207,236,236,236,89,89,89,143,89, - 89,89,89,236,207,207,89,236,89,143,236,236,89,236,236,207, - 236,236,236,127,143,89,89,89,89,127,127,89,89,127,127,127, - 89,89,89,236,236,89,236,119,119,236,143,236,236,159,240,59, - 26,111,219,187,111,26,109,78,8,26,91,26,91,187,26,91, - 26,91,26,91,182,132,12,12,122,8,91,26,91,91,26,91, - 91,26,91,26,91,8,132,17,243,42,8,26,91,26,91,187, - 26,91,26,91,26,91,8,132,12,12,122,8,91,26,91,26, - 91,91,26,91,91,26,91,182,132,12,12,122,8,91,26,91, - 91,187,26,91,26,91,26,91,182,132,17,243,42,8,91,26, - 91,91,91,187,91,26,91,26,91,8,17,12,243,42,8,91, - 26,91,91,187,91,26,91,26,91,26,182,150,17,243,42,8, - 91,26,91,91,26,91,91,26,91,26,91,182,132,12,243,42, - 8,91,26,91,91,91,26,91,26,91,26,91,182,150,17,243, - 42,187,17,91,91,26,91,91,26,91,26,91,26,182,132,12, - 12,122,8,91,26,91,26,91,26,91,26,91,26,91,8,132, - 12,243,42,187,187,26,91,26,187,26,91,26,91,26,91,182, - 132,12,243,42,8,26,91,91,26,91,26,91,26,91,26,91, - 182,132,17,243,162,8,187,26,91,91,91,26,91,26,91,26, - 91,8,132,12,8,122,8,91,26,91,91,91,26,91,26,91, - 26,91,8,132,17,8,122,8,91,26,91,26,187,91,26,91, - 26,12,26,182,132,12,243,42,8,91,26,91,91,26,91,91, - 26,91,26,91,8,132,17,243,42,8,91,26,91,91,91,187, - 91,26,91,26,26,182,150,26,12,26,12,243,243,17,235,119, - 114,140,144,140,144,114,144,144,114,144,144,144,144,144,144,144, - 144,144,144,244,144,144,144,144,144,244,144,144,144,144,144,144, - 144,244,144,144,144,144,144,144,144,244,144,244,144,144,244,144, - 244,144,244,144,144,244,244,144,144,144,114,244,144,244,144,144, - 218,218,218,218,218,218,88,218,218,218,218,88,218,188,188,169, - 188,188,169,169,188,169,169,169,169,169,188,169,188,188,188,188, - 169,188,188,188,188,188,188,188,188,188,188,188,188,218,188,188, - 188,169,188,188,188,188,188,188,188,188,188,207,188,188,127,188, - 207,188,207,127,207,207,207,207,207,207,207,207,207,218,207,89, - 207,188,207,218,207,218,218,218,207,207,218,218,236,218,207,218, - 218,207,218,218,236,218,236,218,207,207,207,236,236,207,236,207, - 207,236,236,236,207,236,236,89,207,89,89,236,207,236,89,207, - 89,236,207,236,236,236,89,89,236,236,236,236,236,236,89,207, - 143,89,236,236,89,143,89,143,89,207,89,236,143,89,236,236, - 89,236,236,89,236,89,127,89,89,89,89,89,119,89,89,89, - 236,236,127,236,236,236,143,236,236,119,143,236,143,159,108,44, - 26,187,183,12,187,26,109,0,219,17,219,219,26,187,187,183, - 26,219,219,26,8,12,187,8,0,219,219,219,219,183,42,219, - 183,26,219,219,219,8,12,26,211,0,219,17,219,219,26,219, - 187,183,26,219,219,17,8,12,187,8,0,219,219,219,219,219, - 42,187,183,26,219,219,26,8,187,187,211,0,219,219,219,219, - 26,187,183,187,42,219,219,26,8,12,26,211,0,219,219,219, - 219,219,219,219,187,42,219,219,219,8,17,26,8,0,219,219, - 219,219,26,42,187,183,26,219,219,26,8,12,26,243,0,26, - 219,26,26,219,42,219,183,219,219,219,26,8,187,26,8,0, - 219,219,219,42,219,42,187,183,219,219,219,26,8,12,26,8, - 0,26,17,219,219,183,42,187,183,26,219,219,26,8,12,187, - 8,0,219,219,219,219,219,26,219,26,42,26,219,219,8,12, - 26,8,0,26,187,219,219,26,91,183,42,26,219,219,26,8, - 17,26,8,0,219,219,219,219,219,187,183,26,219,219,219,26, - 8,12,26,8,0,26,187,219,219,219,42,187,183,26,219,219, - 219,8,12,26,8,0,219,219,219,219,219,42,219,187,183,42, - 219,219,8,12,26,211,0,219,219,219,219,26,42,187,183,26, - 26,187,26,8,17,26,8,0,219,219,219,219,219,42,26,183, - 26,219,219,17,8,12,26,8,0,26,219,26,26,219,42,219, - 187,183,26,219,26,8,150,187,211,187,187,187,243,17,99,181, - 114,114,114,114,140,114,144,144,114,144,144,144,144,144,144,144, - 144,144,144,144,244,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,244,144,144,144,144,244,144,144,144, - 244,144,144,244,144,144,244,244,144,244,144,244,244,114,144,244, - 218,218,218,218,218,218,218,218,88,88,218,218,169,88,218,218, - 88,218,218,188,88,218,218,218,218,218,169,218,169,169,169,188, - 188,188,188,188,188,218,88,218,218,169,218,88,218,188,218,188, - 188,188,188,188,207,127,188,188,207,188,207,127,207,207,207,207, - 127,207,188,207,127,207,207,207,207,207,188,207,207,207,218,188, - 207,207,218,207,218,218,207,207,218,218,236,207,207,207,218,218, - 236,218,236,236,207,236,218,207,236,218,218,218,207,236,207,218, - 236,236,207,207,236,236,89,207,89,207,236,236,236,236,236,89, - 236,89,236,89,89,89,236,236,89,119,236,236,89,236,207,89, - 236,236,236,89,236,89,207,89,236,236,236,207,89,143,89,207, - 207,143,89,236,127,236,89,143,89,89,89,89,127,89,89,143, - 127,143,236,236,143,236,236,236,119,143,119,236,119,159,108,64, - 26,111,26,211,126,187,109,0,139,139,139,139,67,139,139,139, - 139,139,139,139,8,132,219,211,0,211,101,139,139,139,139,139, - 139,139,139,139,139,139,150,219,243,0,139,139,139,139,67,139, - 139,139,139,139,139,139,139,132,219,211,0,211,101,139,139,139, - 67,139,139,139,139,139,139,8,150,219,243,0,211,101,139,139, - 67,139,139,139,139,139,139,139,8,150,219,243,0,211,139,139, - 139,67,139,139,139,139,139,139,139,139,150,219,211,0,211,101, - 139,139,67,182,139,139,139,139,139,139,139,150,219,211,0,139, - 139,67,67,139,67,139,139,139,139,139,139,8,150,219,211,0, - 211,139,139,67,139,67,139,139,139,139,139,139,8,132,219,211, - 0,211,67,139,139,139,139,67,139,139,139,139,139,139,132,219, - 211,0,139,101,139,139,139,67,139,67,67,139,139,139,139,132, - 219,211,0,139,67,139,139,182,182,139,67,139,139,139,139,8, - 150,219,211,0,139,139,139,139,139,139,139,67,139,139,101,139, - 8,150,219,211,0,211,139,139,139,139,139,67,139,139,139,139, - 139,139,132,219,211,0,8,67,139,139,139,139,67,139,139,139, - 139,139,139,150,219,243,0,211,139,139,139,67,67,139,139,182, - 139,139,139,139,150,219,211,0,211,139,139,139,139,67,67,139, - 139,139,139,139,139,150,219,211,0,211,139,67,182,67,139,139, - 139,139,139,101,139,139,12,219,182,12,12,243,12,150,141,119, - 114,114,114,144,114,144,114,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,114,244,144,144,244,144,144,144,244,144,144, - 144,144,144,244,144,144,144,144,144,144,244,144,144,144,244,144, - 144,244,144,144,244,144,144,144,244,144,144,144,244,144,144,144, - 218,218,218,218,218,88,218,218,218,88,218,218,218,88,88,218, - 88,88,218,218,169,169,188,188,169,218,169,218,169,218,169,218, - 169,218,188,188,188,188,188,169,218,169,207,188,188,188,218,218, - 218,188,188,188,207,188,188,188,188,188,207,188,188,207,188,188, - 188,207,188,207,207,207,207,207,218,218,218,218,207,207,218,218, - 218,207,218,207,207,218,218,236,236,218,218,218,218,218,207,218, - 236,207,218,218,207,236,236,207,207,89,89,236,207,236,236,207, - 207,236,236,236,236,236,236,236,119,89,236,236,236,89,236,236, - 236,89,236,236,89,89,89,236,89,89,89,236,236,119,236,236, - 236,89,236,236,236,236,236,236,236,143,89,236,236,89,89,89, - 127,89,89,89,89,236,236,89,89,127,236,89,143,236,236,89, - 236,236,236,236,143,236,143,236,119,159,236,236,159,119,108,142, - 26,111,42,243,187,94,109,0,8,139,139,109,211,211,211,211, - 8,211,139,182,8,12,122,243,0,8,139,139,211,139,139,139, - 211,8,211,139,139,243,150,162,243,0,8,139,139,211,139,211, - 139,211,8,211,211,139,243,12,122,243,0,8,139,139,211,211, - 211,211,211,8,211,139,67,243,12,122,243,0,8,139,211,211, - 211,211,211,211,8,211,139,67,243,150,122,243,0,8,139,139, - 243,211,211,211,211,8,211,139,182,211,150,122,243,0,8,139, - 211,211,211,211,211,139,8,139,211,139,243,150,122,243,0,8, - 211,211,139,109,139,211,139,187,139,139,67,243,150,122,243,0, - 8,139,8,211,211,139,211,211,8,211,139,182,8,150,122,243, - 0,8,139,139,211,211,211,211,211,8,139,211,139,243,12,122, - 243,0,8,139,139,139,211,211,211,109,211,211,139,139,243,150, - 122,243,0,8,139,139,139,139,211,211,211,8,211,139,182,211, - 150,122,243,0,8,139,139,139,211,211,211,211,8,8,139,182, - 8,150,122,243,0,8,139,211,211,211,211,211,211,8,211,139, - 139,243,150,122,109,0,8,139,211,211,211,211,211,211,211,211, - 139,139,243,150,122,243,0,8,139,139,211,211,211,139,211,139, - 8,139,139,243,150,122,243,0,8,139,139,211,211,109,139,109, - 211,8,139,211,243,150,122,243,0,8,211,8,211,211,211,211, - 211,211,139,139,139,243,12,122,243,132,12,243,150,150,99,181, - 114,114,114,144,114,140,114,114,114,144,114,144,144,144,144,114, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,244,144,144,144, - 144,244,144,144,244,144,244,144,244,244,144,244,144,244,144,244, - 218,218,218,218,218,218,88,218,218,218,88,218,88,218,218,218, - 218,218,169,88,218,218,218,88,218,169,218,169,218,169,88,169, - 188,169,188,188,188,188,188,188,169,188,188,188,188,188,169,169, - 169,218,207,188,188,207,207,188,207,207,188,218,207,218,207,218, - 207,207,207,207,218,218,207,207,188,207,207,207,218,218,207,207, - 207,207,207,218,218,236,207,218,218,218,218,218,236,236,236,207, - 207,218,207,236,236,207,207,207,89,207,207,207,236,207,236,236, - 236,236,236,236,236,89,119,119,236,236,236,119,236,236,119,89, - 89,236,89,89,236,236,236,236,236,236,236,236,236,236,58,236, - 236,236,236,89,236,89,236,89,207,236,236,236,89,143,207,143, - 89,89,127,236,236,236,143,236,236,89,143,236,119,236,236,143, - 236,119,236,159,119,119,159,236,159,236,159,236,119,240,240,44, - 26,150,183,187,187,42,109,0,8,211,211,211,211,109,8,109, - 109,8,243,67,243,132,26,211,0,8,211,211,211,211,187,109, - 109,109,8,8,182,243,187,26,211,0,8,211,109,211,109,109, - 8,109,109,8,8,182,243,132,26,211,0,8,211,211,211,109, - 211,8,12,109,8,243,139,243,132,26,211,0,8,139,211,211, - 109,211,8,187,109,8,243,139,211,187,26,211,0,8,211,211, - 8,211,109,8,109,109,8,8,139,243,187,42,211,0,8,139, - 211,211,211,211,211,187,109,8,8,182,243,187,42,211,0,8, - 139,109,8,109,109,211,8,211,8,243,139,243,187,42,211,0, - 8,139,211,211,109,109,8,211,187,211,243,67,211,187,42,211, - 0,8,211,109,211,109,109,8,109,109,8,243,67,243,132,42, - 211,0,8,211,109,211,109,109,211,211,187,211,8,182,243,187, - 42,211,0,8,211,109,109,211,109,211,109,109,8,8,139,243, - 187,42,211,0,8,211,109,109,211,211,109,109,109,211,8,67, - 211,187,26,211,0,8,139,211,211,211,109,8,109,109,8,8, - 182,243,187,42,8,0,8,211,211,211,211,109,8,187,109,8, - 8,182,243,187,26,211,0,8,139,109,211,109,211,187,211,187, - 211,211,182,243,187,42,211,0,8,211,211,8,109,109,211,8, - 109,211,8,182,211,187,42,211,0,211,139,211,211,211,211,8, - 8,8,187,8,67,141,132,42,211,187,109,187,150,219,235,119, - 114,114,39,114,144,114,114,144,144,114,144,114,144,114,144,144, - 144,144,144,144,144,144,144,144,244,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,244,144,144,244,144,144,144,144,244, - 144,144,244,244,144,244,144,144,144,244,144,244,144,144,144,144, - 218,218,218,218,218,218,218,88,218,218,218,218,169,88,188,88, - 88,218,88,188,169,169,218,188,218,169,88,169,218,218,169,88, - 218,169,188,188,188,188,188,207,207,218,188,188,188,218,207,218, - 188,188,218,207,188,188,188,127,188,207,188,188,188,207,207,218, - 218,207,207,207,188,218,218,207,207,207,218,207,218,218,218,218, - 218,218,236,207,218,218,218,207,218,236,236,218,218,218,218,218, - 207,236,207,207,236,236,236,236,236,236,89,89,236,89,236,89, - 89,89,89,236,236,236,236,236,119,119,236,119,119,236,236,236, - 236,236,236,236,89,89,89,236,89,119,236,236,236,236,236,236, - 236,207,236,89,236,207,236,89,236,207,236,236,236,89,89,236, - 236,89,89,236,236,236,143,89,143,236,236,236,236,236,159,159, - 236,143,236,143,143,143,159,236,159,236,159,143,159,159,240,47, - 26,111,183,243,187,183,111,0,211,67,139,139,139,139,139,139, - 211,139,139,139,211,132,0,187,122,8,139,139,67,139,139,139, - 139,211,139,139,139,211,150,0,187,0,211,67,139,139,139,139, - 139,139,211,139,139,139,211,132,0,187,122,8,139,139,139,139, - 139,139,139,211,139,139,139,211,187,0,12,0,8,67,139,139, - 139,139,67,139,211,139,139,139,243,187,0,187,122,8,67,139, - 139,139,139,139,139,211,139,139,67,243,150,0,187,0,8,67, - 139,139,139,139,139,139,211,139,139,139,211,187,0,187,0,8, - 67,139,139,139,139,139,139,139,211,139,67,211,150,0,187,0, - 8,67,139,139,139,139,139,139,139,139,139,139,243,150,0,187, - 0,211,67,139,139,139,139,139,139,211,139,211,139,8,150,0, - 12,0,8,67,139,139,139,139,139,139,139,139,139,139,8,150, - 0,187,0,211,67,139,139,139,139,139,139,211,139,139,67,243, - 150,0,187,0,211,67,139,139,139,139,139,139,211,211,139,139, - 243,132,0,187,122,8,139,139,67,139,139,139,139,211,139,139, - 139,211,150,162,187,122,8,67,139,67,139,139,67,139,211,139, - 139,139,211,187,0,187,0,8,67,139,139,139,139,139,139,139, - 211,139,67,211,150,0,187,122,8,67,139,139,139,139,139,139, - 211,139,139,139,8,150,0,12,0,8,139,139,67,139,139,139, - 139,139,139,211,139,211,12,0,12,26,150,12,243,132,99,181, - 114,114,114,114,114,140,114,114,144,114,114,144,144,114,144,114, - 144,144,144,144,144,114,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,244,144,244,144,244,144, - 244,244,144,144,244,244,244,244,244,244,244,244,244,144,244,244, - 218,218,153,218,218,218,218,218,88,218,188,88,218,218,218,218, - 218,169,218,218,218,218,188,88,169,218,218,218,169,188,188,218, - 169,218,188,188,188,188,188,188,188,188,188,188,188,188,188,188, - 188,207,188,188,207,207,188,188,188,188,207,218,218,218,218,207, - 207,218,218,218,207,188,188,218,218,218,207,218,218,218,218,207, - 236,207,218,236,207,236,236,218,207,207,218,236,236,236,236,236, - 236,207,236,236,236,236,236,89,89,89,236,236,236,236,89,236, - 236,236,236,89,119,236,119,119,89,236,119,236,236,236,236,236, - 89,236,236,236,236,236,236,89,236,236,236,236,236,236,236,236, - 207,236,143,236,89,236,236,236,89,89,89,236,236,236,236,89, - 127,236,236,236,236,236,236,236,236,236,143,143,236,236,236,236, - 143,119,236,119,159,119,119,143,159,143,119,159,236,240,108,44, - 26,132,26,187,183,187,109,0,26,187,187,187,109,187,187,187, - 91,91,26,12,12,12,26,211,0,26,187,187,187,187,109,187, - 12,91,26,91,12,12,12,26,211,0,26,187,187,187,111,111, - 187,187,12,91,187,12,12,12,26,211,0,26,187,187,12,111, - 187,109,187,26,91,187,12,12,150,26,211,162,26,187,187,187, - 187,111,187,12,91,91,187,12,187,150,26,211,0,26,187,187, - 187,187,91,109,187,187,26,17,91,187,187,42,211,0,26,187, - 187,187,187,109,187,187,12,91,187,12,12,150,26,211,162,26, - 187,91,109,187,111,187,187,91,91,17,91,12,187,42,211,162, - 26,187,187,187,109,187,187,187,26,91,26,12,187,12,26,211, - 0,26,187,187,187,187,111,187,187,91,26,91,12,187,187,42, - 211,162,26,187,91,109,187,111,187,187,17,91,17,12,109,12, - 26,211,0,26,187,12,187,187,111,187,187,12,91,12,91,187, - 187,42,211,0,26,187,12,187,111,187,187,187,91,91,26,12, - 187,12,26,211,0,26,187,187,187,187,111,187,187,12,91,187, - 12,12,187,26,211,162,26,187,187,187,187,111,187,187,12,91, - 187,12,12,150,26,211,0,26,187,187,187,109,187,187,187,12, - 91,17,91,12,187,42,211,0,26,187,91,109,187,111,187,187, - 187,91,187,12,109,187,42,211,162,26,187,187,187,187,111,187, - 187,187,91,12,91,12,150,219,211,187,12,12,150,183,99,181, - 114,114,114,114,114,114,114,114,114,114,144,114,144,114,144,144, - 114,144,144,144,144,144,144,144,144,144,144,144,244,144,144,144, - 144,144,144,144,144,144,144,244,144,144,244,144,244,144,144,144, - 144,244,244,244,244,244,244,244,244,244,244,244,244,244,144,144, - 218,218,153,153,218,218,218,218,218,88,218,188,88,88,188,88, - 218,88,88,88,188,218,218,218,169,88,188,218,88,218,169,218, - 169,218,169,218,188,218,169,88,169,218,188,188,188,188,188,188, - 188,207,218,218,218,207,188,218,218,207,207,207,207,207,188,218, - 207,207,207,218,218,218,207,207,207,218,207,207,236,207,218,218, - 236,207,218,218,207,207,236,236,207,207,207,207,207,236,207,218, - 236,207,207,207,236,236,236,236,236,181,236,119,236,236,181,236, - 89,89,119,89,236,89,89,119,119,236,119,119,119,119,119,119, - 236,236,89,236,236,236,207,236,89,89,236,89,236,236,89,236, - 236,89,236,236,236,89,236,236,236,236,236,236,236,236,236,119, - 89,127,127,89,89,89,143,89,236,119,119,236,143,159,236,159, - 159,159,159,236,236,134,119,143,159,159,236,159,119,159,108,47, - 26,111,183,109,187,187,111,0,0,0,0,0,0,0,122,0, - 0,0,0,0,219,132,42,12,0,0,0,0,122,0,0,0, - 0,0,0,0,0,219,132,26,12,122,0,0,122,122,122,122, - 0,0,0,0,0,0,219,132,42,12,0,0,0,122,0,122, - 0,0,0,122,0,0,0,219,132,42,12,0,0,0,0,122, - 122,122,0,0,0,0,0,0,219,132,42,12,0,0,0,122, - 122,0,0,0,0,0,0,0,0,219,150,26,12,0,0,0, - 122,122,0,0,122,0,0,0,0,0,219,132,42,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,219,132,26,12,0, - 0,0,0,0,0,0,122,122,122,0,0,0,17,132,26,12, - 0,0,0,122,122,122,122,0,122,0,122,0,0,219,150,42, - 12,0,0,0,0,0,0,122,122,0,0,0,0,0,219,132, - 42,12,0,0,0,0,122,122,122,122,0,0,0,0,0,219, - 150,26,12,0,0,0,0,122,122,122,122,0,0,0,0,0, - 17,132,42,12,0,0,0,122,0,122,0,122,0,0,0,0, - 0,219,132,42,12,0,0,0,0,122,122,122,0,0,0,0, - 0,0,219,132,26,12,0,0,162,0,0,0,122,122,0,0, - 0,0,0,219,132,42,12,0,0,0,0,0,0,122,122,0, - 0,0,0,0,219,132,42,12,0,0,0,122,0,122,0,0, - 0,0,0,0,0,219,17,42,243,219,150,12,243,150,141,181, - 119,114,114,114,114,114,114,114,144,114,114,144,114,144,114,144, - 144,144,144,114,144,144,144,144,144,144,144,144,144,144,144,144, - 244,144,144,144,244,144,144,144,144,144,244,144,144,144,244,244, - 144,244,244,244,244,244,244,244,244,244,244,244,244,244,244,144, - 218,218,218,218,218,218,218,88,218,218,218,218,218,218,218,218, - 218,218,218,218,218,88,218,88,218,218,88,188,218,88,218,88, - 218,188,218,188,88,218,188,218,218,169,188,188,188,188,188,218, - 218,188,188,188,207,218,218,207,207,218,207,207,207,218,218,188, - 218,218,218,207,218,207,218,218,218,207,218,218,207,207,236,207, - 218,218,207,236,236,236,89,207,207,207,207,236,236,207,236,236, - 218,236,236,236,236,181,236,89,119,236,119,236,119,119,236,236, - 236,119,236,236,119,236,236,236,236,119,236,89,236,236,236,236, - 236,236,236,236,89,236,236,236,236,119,236,236,89,236,236,58, - 236,236,236,236,236,236,89,236,89,143,236,236,89,143,89,236, - 236,89,89,143,89,127,89,89,236,236,236,236,119,236,159,236, - 236,236,119,159,236,236,236,119,119,236,159,159,236,240,108,35, - 26,111,42,111,187,187,187,26,26,26,26,26,26,42,26,17, - 219,219,17,26,17,219,26,187,42,12,26,26,26,26,42,26, - 17,17,219,219,26,17,219,26,187,42,26,26,26,26,42,42, - 26,12,219,219,219,26,17,219,26,187,42,12,26,26,26,42, - 42,26,17,17,219,17,26,26,219,26,187,42,91,26,26,26, - 42,42,26,17,219,219,17,26,26,17,26,187,42,91,26,26, - 26,26,42,26,17,17,219,219,26,17,219,26,187,42,91,26, - 26,26,26,42,26,12,219,219,17,26,26,17,26,187,26,26, - 26,26,26,26,42,26,219,219,219,219,26,17,219,26,187,42, - 91,26,26,26,26,42,26,219,219,219,17,26,219,219,26,187, - 26,26,26,26,26,42,42,26,219,17,219,219,26,17,219,26, - 187,26,26,26,26,26,42,42,26,17,219,219,219,26,219,219, - 26,187,26,26,26,26,26,42,42,26,17,219,219,219,26,17, - 219,26,187,26,26,26,26,26,42,42,26,17,17,219,17,26, - 17,219,26,187,42,187,26,26,26,42,42,26,17,219,219,17, - 26,17,17,26,187,42,91,26,26,26,42,42,26,17,219,219, - 17,26,26,17,26,187,42,91,26,26,26,42,42,26,17,219, - 219,219,26,17,17,26,187,26,26,26,26,26,42,42,26,17, - 219,219,219,26,17,17,26,187,42,187,26,26,26,42,42,26, - 17,219,219,219,26,26,219,26,187,42,150,150,150,141,99,119, - 114,114,114,114,114,114,114,114,114,114,114,144,144,114,144,144, - 114,144,144,144,144,144,144,244,144,144,144,144,244,144,144,144, - 144,144,144,144,144,144,144,144,244,144,244,244,244,244,244,244, - 244,244,244,244,244,244,36,244,244,36,244,244,244,244,144,244, - 218,218,218,218,218,218,218,218,218,88,218,88,218,88,218,169, - 88,188,218,88,218,218,218,218,88,218,218,169,218,188,218,188, - 88,218,88,218,188,88,188,188,218,88,207,207,188,207,188,188, - 207,207,207,207,207,207,218,218,207,218,218,218,207,207,218,207, - 207,218,218,236,218,218,236,207,218,218,236,218,218,207,218,207, - 207,207,207,218,236,207,236,236,236,207,207,207,236,89,89,181, - 236,89,89,89,236,119,119,236,58,119,119,119,236,119,119,119, - 236,236,236,89,119,119,119,89,89,119,236,119,119,119,236,119, - 119,236,236,236,236,236,236,236,236,89,236,236,119,236,236,119, - 236,236,236,236,236,236,236,236,89,89,89,236,236,236,89,236, - 236,89,236,143,89,127,89,89,143,89,143,236,236,236,159,119, - 159,143,159,159,159,143,159,143,119,143,119,159,159,159,108,64, - 26,111,219,109,187,187,166,219,243,12,12,187,219,12,12,243, - 150,150,150,12,187,17,219,187,26,243,12,12,187,219,12,17, - 243,150,150,150,17,12,17,219,187,17,243,12,17,17,219,17, - 17,243,12,243,150,12,187,17,219,187,26,243,12,12,17,219, - 12,12,243,12,150,150,150,187,17,219,12,219,150,12,12,187, - 219,17,12,243,12,150,150,150,12,17,219,12,219,150,12,17, - 17,219,12,12,243,12,150,150,17,12,17,219,12,219,150,12, - 17,187,219,17,17,243,12,150,150,150,12,17,219,187,17,150, - 12,12,187,219,12,12,243,12,150,150,17,12,219,219,12,219, - 150,12,12,187,219,17,12,8,150,150,150,12,12,17,219,187, - 17,243,12,12,17,219,12,12,243,12,150,243,17,12,17,219, - 187,17,243,12,12,17,219,17,12,243,12,243,150,12,12,17, - 219,187,17,243,12,12,17,219,17,17,243,12,150,150,17,12, - 17,219,187,17,243,12,17,17,219,17,12,150,150,150,150,17, - 12,17,219,12,26,150,12,12,187,219,17,12,243,12,150,150, - 17,12,219,219,12,219,150,12,17,187,219,12,12,243,12,150, - 150,150,12,219,219,12,219,150,12,12,187,219,17,12,243,12, - 150,150,17,12,219,219,187,17,150,12,12,187,219,17,12,243, - 12,150,150,17,17,17,219,12,26,243,12,12,187,219,12,12, - 243,12,150,150,150,150,219,26,187,26,187,150,150,132,141,181, - 114,89,114,114,114,114,144,114,114,114,144,114,144,114,144,144, - 144,114,144,144,144,144,144,144,244,144,144,144,144,144,144,144, - 144,244,144,144,144,244,244,144,144,244,244,144,244,244,144,244, - 244,244,244,36,244,36,36,244,36,244,244,244,244,244,244,144, - 218,188,218,218,218,218,218,218,188,218,188,218,169,218,218,218, - 218,88,169,218,218,169,218,188,218,88,218,218,218,218,169,218, - 218,188,218,169,218,188,218,218,188,207,218,218,218,188,207,188, - 218,188,218,218,218,218,188,207,218,218,218,218,218,218,218,218, - 218,218,207,207,207,207,218,218,236,207,218,236,236,218,89,207, - 207,207,207,89,218,236,236,207,89,236,89,236,89,236,236,236, - 89,236,236,236,236,236,236,119,236,236,119,119,119,119,119,236, - 119,119,119,119,236,236,89,119,119,236,119,236,236,236,119,236, - 236,236,89,236,207,236,236,89,89,119,119,89,236,236,236,236, - 236,236,236,236,207,143,89,207,236,236,236,236,89,89,143,236, - 236,236,127,89,89,119,89,127,236,236,89,159,236,236,236,236, - 119,119,236,236,236,159,236,119,159,159,119,236,159,58,240,44, - 26,132,42,109,42,187,187,26,150,12,132,17,219,17,26,243, - 12,12,12,17,17,17,42,243,219,150,12,132,219,17,17,17, - 243,12,12,12,17,17,219,26,12,26,150,12,132,187,17,12, - 26,243,150,17,12,17,17,17,26,243,219,150,12,132,187,17, - 17,17,243,150,12,12,17,17,17,42,150,26,150,17,132,17, - 219,12,17,243,150,12,12,219,17,219,42,150,26,150,17,150, - 219,17,17,26,243,150,150,12,17,17,219,42,150,26,150,17, - 150,219,17,12,26,243,150,12,12,219,17,219,42,243,26,150, - 12,132,219,17,17,17,150,150,150,12,17,17,17,26,150,26, - 150,12,132,219,17,12,26,243,12,12,12,17,17,219,42,243, - 26,150,12,132,187,219,12,26,243,150,12,17,17,17,219,42, - 243,26,150,12,132,187,219,12,26,243,150,17,12,219,17,219, - 26,109,26,150,12,132,17,219,12,26,243,150,150,12,17,12, - 219,42,243,26,150,12,132,187,17,12,26,243,12,12,12,17, - 17,219,42,109,219,150,12,132,17,17,12,26,243,150,12,12, - 17,17,17,26,150,26,150,12,150,17,219,12,26,243,150,12, - 12,219,17,17,26,150,26,150,17,132,17,17,12,26,150,150, - 150,12,17,17,17,42,243,26,150,12,132,17,219,12,26,243, - 150,12,12,17,12,219,42,109,219,150,12,150,219,17,12,26, - 243,150,150,12,219,187,17,219,109,183,12,12,150,150,141,119, - 114,114,114,114,144,114,114,114,144,144,114,144,114,144,144,114, - 144,144,144,144,144,144,144,144,144,144,144,144,244,144,244,144, - 144,144,144,244,144,144,144,244,144,244,244,244,244,244,244,244, - 244,244,244,244,244,36,244,36,244,36,36,244,244,244,144,144, - 218,218,218,188,218,88,218,88,218,218,169,218,88,169,88,218, - 218,218,169,88,218,188,218,88,218,188,188,218,88,218,218,169, - 218,169,218,218,218,169,218,88,218,188,188,218,218,188,218,188, - 218,207,207,207,207,218,218,218,218,207,218,218,218,207,236,218, - 236,218,218,236,153,207,218,207,236,207,207,207,181,218,236,236, - 207,236,207,89,236,89,236,236,89,236,89,236,236,236,236,236, - 236,181,89,89,89,236,89,119,119,236,236,119,236,236,181,236, - 236,89,236,236,119,236,236,236,236,236,89,119,236,89,89,236, - 119,236,89,89,89,236,236,236,236,89,236,89,119,236,89,119, - 119,236,236,236,236,236,236,236,89,236,236,236,143,119,236,236, - 236,119,236,236,127,89,89,119,89,89,89,236,89,236,143,119, - 159,236,159,236,236,159,236,119,119,143,119,236,159,159,108,47, - 26,111,219,254,183,187,111,26,150,17,17,17,150,150,26,150, - 150,150,17,17,17,17,26,109,26,150,17,17,17,150,17,26, - 150,150,150,12,17,187,17,17,109,26,150,17,17,17,132,150, - 26,150,150,150,12,17,17,219,26,109,26,150,17,219,17,150, - 17,26,150,150,132,12,17,17,17,26,109,26,150,17,17,17, - 150,17,26,150,150,132,12,17,12,17,26,109,26,150,17,17, - 17,132,150,26,150,12,150,12,17,12,17,26,109,26,150,17, - 17,17,132,150,26,150,150,150,17,12,12,17,26,109,26,150, - 17,17,17,150,17,26,243,17,150,12,17,17,219,26,109,26, - 150,17,12,17,150,150,26,150,150,150,17,12,187,17,26,109, - 26,150,17,219,17,150,150,26,150,150,132,12,12,17,17,26, - 109,26,150,17,17,17,150,150,26,150,150,150,12,12,12,219, - 26,243,26,150,17,17,17,150,150,26,150,17,150,12,219,12, - 17,26,109,26,150,17,17,17,132,150,26,150,150,150,12,17, - 187,17,26,109,26,150,17,219,17,150,150,26,150,150,132,12, - 132,17,219,26,109,26,150,219,17,17,150,150,26,150,150,150, - 12,17,17,219,26,211,26,150,17,17,17,132,150,26,243,17, - 150,12,17,17,17,26,109,26,150,17,17,17,150,150,26,150, - 150,150,17,17,12,17,26,243,26,132,17,17,17,132,150,26, - 150,17,150,12,17,17,219,26,109,219,17,150,150,150,99,181, - 114,114,114,114,114,144,144,114,114,144,114,144,144,144,144,144, - 144,144,144,244,144,144,144,144,144,244,144,144,244,144,244,144, - 244,144,244,144,144,244,144,144,244,244,244,244,244,244,244,244, - 244,36,244,36,36,244,36,244,36,244,36,244,144,244,244,144, - 218,218,218,218,218,218,188,218,188,218,218,188,218,188,188,88, - 88,88,218,218,88,88,218,218,218,88,88,188,218,88,218,88, - 218,218,88,218,218,218,218,218,218,218,218,188,218,218,207,218, - 218,218,218,218,218,207,218,207,207,218,218,218,218,218,218,207, - 218,236,218,218,207,218,236,218,218,236,236,236,218,89,207,207, - 207,207,236,236,89,236,119,236,181,89,236,119,89,236,236,236, - 119,236,236,236,119,119,119,89,89,119,119,236,119,119,58,119, - 119,119,119,119,89,236,236,236,236,236,119,236,119,236,236,89, - 236,236,236,236,236,236,89,236,89,236,119,119,89,119,236,236, - 89,236,89,236,89,236,89,236,236,236,89,89,89,89,236,119, - 236,236,236,89,119,127,89,89,89,236,89,119,119,119,119,236, - 236,119,236,119,159,236,119,143,159,159,159,236,236,159,108,142, - 42,187,42,182,187,12,111,219,17,17,132,17,17,12,219,150, - 17,17,12,132,12,187,219,243,219,17,17,132,17,17,12,219, - 150,17,17,17,132,12,187,26,243,219,17,17,132,219,17,12, - 219,12,17,17,17,132,187,187,219,243,219,17,17,132,17,17, - 12,219,17,17,17,17,132,12,187,219,243,219,150,17,132,17, - 17,12,219,17,17,17,12,132,17,187,219,243,219,12,17,132, - 17,17,12,219,12,132,17,17,132,17,187,219,243,219,12,17, - 132,17,17,12,219,12,17,17,17,132,17,187,219,243,219,17, - 17,150,219,17,12,219,17,150,17,12,132,12,187,219,243,219, - 17,17,132,17,17,17,219,150,17,17,17,132,12,187,219,243, - 219,17,17,132,17,17,17,219,12,17,12,17,132,187,187,219, - 243,219,17,17,132,219,17,17,219,12,17,17,17,132,17,187, - 219,109,219,17,17,132,17,17,12,219,12,132,17,12,132,17, - 187,219,243,219,17,17,132,219,17,12,219,150,17,17,17,132, - 12,187,219,243,219,12,17,132,17,17,17,219,12,17,17,17, - 17,12,187,219,243,219,12,17,132,17,17,17,219,12,17,17, - 17,132,12,187,219,243,219,12,17,132,219,17,12,219,12,132, - 17,12,132,187,187,219,243,219,17,17,132,17,17,12,219,12, - 17,12,17,132,17,187,219,109,219,12,17,132,17,17,17,219, - 12,150,17,17,17,12,187,219,109,219,12,12,150,17,141,119, - 114,114,114,114,144,114,114,144,144,114,144,144,114,144,144,114, - 144,144,144,144,144,244,144,144,144,144,144,144,244,144,144,144, - 244,144,244,144,144,144,244,244,144,244,244,244,244,244,36,244, - 36,244,36,244,36,36,244,36,36,244,36,36,244,244,144,144, - 218,218,218,218,218,218,218,218,88,218,88,188,218,218,188,218, - 218,188,169,218,218,188,218,88,218,218,218,218,218,188,218,218, - 218,218,188,218,218,188,218,218,218,218,218,218,218,218,218,207, - 218,218,218,188,218,218,218,218,218,207,207,207,218,218,218,218, - 218,236,236,218,236,207,236,207,218,218,218,236,236,236,89,236, - 89,207,89,236,236,236,89,236,119,119,236,58,119,236,119,89, - 236,236,119,236,89,236,119,119,89,119,119,236,119,236,119,236, - 236,236,236,236,119,236,89,89,236,236,236,236,236,119,119,89, - 236,236,89,89,89,236,119,236,89,236,236,236,89,119,89,236, - 236,236,236,236,236,119,236,236,236,236,236,236,236,236,236,236, - 143,89,236,143,89,236,236,236,89,236,236,236,236,89,236,236, - 236,236,236,236,159,236,119,236,119,236,119,236,119,159,108,34, - 26,132,42,224,187,150,111,219,150,17,132,17,132,17,26,150, - 150,150,17,132,132,187,26,211,219,150,17,132,17,150,17,26, - 150,150,150,17,132,132,150,219,109,219,150,17,150,17,150,17, - 219,150,150,150,17,132,132,187,26,211,219,150,17,132,17,150, - 17,219,150,150,150,17,132,132,187,219,211,26,150,219,132,17, - 150,17,219,150,150,150,17,132,132,187,219,211,219,150,17,132, - 17,150,17,219,12,150,150,17,132,132,187,219,211,219,150,219, - 132,17,150,17,219,150,150,150,17,132,132,187,219,211,219,150, - 219,150,17,150,17,219,12,132,150,17,132,132,187,219,211,219, - 150,17,132,17,150,17,26,150,150,150,17,132,132,187,219,211, - 219,150,17,132,17,150,17,219,150,132,150,17,132,132,187,219, - 211,219,150,17,132,17,150,17,219,150,150,150,17,132,132,187, - 219,211,219,150,219,132,17,150,17,219,12,150,150,17,132,132, - 187,219,211,219,150,17,150,17,150,17,26,150,150,150,17,132, - 132,187,26,211,219,150,17,132,17,150,17,219,150,150,150,17, - 132,132,12,219,211,219,150,219,132,17,150,17,219,150,150,150, - 17,132,132,12,219,211,219,150,17,132,17,150,17,219,12,150, - 132,17,132,132,187,219,211,219,150,17,132,17,150,17,219,150, - 132,150,17,132,132,187,26,211,219,150,17,132,17,150,17,219, - 12,132,150,150,132,132,150,42,109,183,17,150,243,17,235,114, - 114,114,114,114,140,144,114,114,114,144,144,144,144,144,144,244, - 144,144,144,244,144,144,244,244,144,244,244,144,244,244,244,144, - 244,144,144,244,244,144,244,144,244,244,244,244,36,244,244,36, - 244,244,36,36,244,36,36,244,36,244,36,244,244,244,244,144, - 218,218,218,188,188,218,88,218,218,188,218,218,88,169,218,188, - 188,88,218,218,88,218,188,218,88,218,88,218,218,218,88,218, - 169,218,218,88,218,218,218,218,218,218,218,218,218,218,218,218, - 218,236,218,218,218,218,218,218,218,218,218,218,218,218,218,236, - 207,218,218,236,207,207,207,218,89,236,236,236,236,236,236,89, - 236,89,236,89,89,236,119,58,119,119,119,236,236,119,236,236, - 89,119,236,236,236,119,236,236,119,236,236,119,236,119,236,119, - 119,119,119,236,89,89,236,236,89,89,236,89,236,89,236,236, - 89,236,236,236,236,119,89,236,119,119,119,119,236,236,119,119, - 236,119,119,236,236,236,236,236,236,236,89,89,143,89,143,89, - 89,236,127,236,236,236,236,236,143,143,236,236,119,143,119,119, - 236,119,119,119,236,119,119,236,236,119,143,236,159,58,240,47, - 26,111,187,211,219,111,109,26,12,132,17,132,150,132,219,12, - 17,132,17,219,26,150,26,187,26,17,150,219,150,132,132,219, - 12,219,132,17,219,26,187,26,8,26,12,132,219,150,132,150, - 219,12,219,132,17,17,26,150,26,187,42,12,132,219,150,132, - 17,219,12,219,150,17,219,26,150,26,187,26,12,132,17,150, - 132,132,219,12,219,132,17,17,26,150,26,12,42,12,132,219, - 150,132,150,219,150,219,132,17,17,26,150,26,12,26,12,132, - 17,150,132,132,219,12,219,132,12,219,26,150,26,12,26,12, - 132,17,150,132,150,219,150,17,132,17,219,26,150,26,12,42, - 12,132,17,132,132,150,219,12,219,132,17,219,26,150,26,12, - 42,12,132,17,150,132,150,219,12,17,132,17,17,26,150,26, - 243,42,12,132,17,150,132,150,219,12,219,132,17,17,26,150, - 26,12,26,12,132,17,150,132,150,219,150,219,150,17,219,26, - 150,26,187,42,12,132,17,150,132,132,219,12,219,150,17,219, - 26,150,26,12,42,12,132,219,150,132,132,219,12,219,132,150, - 219,26,150,26,12,26,12,132,17,150,132,150,219,12,17,132, - 17,17,26,150,26,12,42,12,132,17,150,132,150,219,150,219, - 150,17,219,26,150,26,243,42,12,132,219,150,132,132,219,12, - 219,132,12,219,26,150,26,12,42,12,132,219,150,132,150,219, - 150,17,132,17,219,26,187,219,8,42,187,17,150,132,235,89, - 114,144,144,144,114,114,144,144,144,144,114,144,144,144,144,144, - 144,244,144,144,244,244,144,144,244,144,144,244,144,244,244,144, - 244,244,244,144,244,244,244,244,244,244,36,244,36,36,244,36, - 244,36,244,36,36,244,36,36,36,36,36,36,244,244,244,144, - 218,218,218,218,188,218,188,188,218,218,218,218,218,218,218,218, - 218,188,169,218,188,88,188,218,188,218,188,218,88,218,218,218, - 218,88,218,218,218,218,218,218,218,218,218,218,218,218,153,153, - 218,153,153,218,218,153,218,218,218,218,218,236,218,207,218,218, - 236,236,236,236,236,218,236,218,207,236,89,207,236,181,236,89, - 119,236,236,236,236,236,236,236,89,119,119,119,119,119,119,119, - 119,89,119,119,236,119,236,236,119,119,236,119,119,119,89,236, - 236,236,119,236,236,89,236,236,236,89,236,236,236,236,119,119, - 119,119,236,236,89,236,119,236,236,89,236,119,119,236,119,119, - 236,236,58,236,236,236,236,207,207,143,207,89,89,89,236,236, - 127,119,236,236,236,143,159,119,119,236,143,143,119,143,143,119, - 143,143,159,236,236,236,119,236,119,119,119,236,119,159,240,47, - 26,111,166,182,187,150,224,219,17,219,17,17,17,132,219,150, - 219,150,17,132,26,150,17,211,219,17,17,17,17,17,132,219, - 150,17,150,17,132,17,187,26,109,219,17,17,17,17,17,17, - 219,150,17,150,17,132,26,150,12,211,219,12,17,17,17,150, - 17,219,150,219,150,17,132,26,12,17,211,219,17,17,17,17, - 17,17,219,150,17,150,17,132,26,187,12,211,219,17,17,17, - 17,17,17,26,150,17,150,17,132,26,187,12,109,219,17,17, - 17,17,17,17,219,150,17,150,17,132,26,187,17,211,219,17, - 219,17,17,17,17,26,150,17,150,17,132,26,12,17,211,219, - 17,219,17,17,17,132,219,150,17,150,17,132,26,187,17,211, - 219,17,17,17,17,17,17,219,150,17,150,17,132,26,187,26, - 211,219,17,17,17,17,17,17,219,150,17,150,17,132,26,187, - 12,109,219,17,17,17,17,17,17,26,150,219,150,17,132,26, - 187,12,211,219,17,17,17,17,17,132,219,150,219,150,17,132, - 26,150,17,211,219,17,17,17,17,17,17,219,150,219,12,17, - 132,26,187,12,109,219,17,17,17,17,17,17,219,150,219,150, - 17,132,26,187,17,211,219,17,17,17,17,17,17,26,150,219, - 150,17,132,26,187,26,211,219,17,17,17,17,17,17,219,150, - 17,150,17,132,26,150,17,211,219,17,17,17,17,17,17,26, - 150,219,12,17,17,219,187,26,211,26,17,12,150,17,99,114, - 114,114,144,144,144,144,144,144,114,144,144,144,144,144,144,244, - 144,144,244,144,144,244,244,244,144,244,244,244,244,244,244,244, - 144,244,244,144,244,244,244,244,244,244,36,244,36,244,36,36, - 244,36,36,36,36,244,36,244,36,36,36,36,244,244,244,244, - 188,188,207,188,188,188,188,169,188,169,169,188,169,169,169,188, - 188,188,188,169,188,207,188,188,188,188,169,188,218,218,169,218, - 188,218,218,218,218,218,218,218,218,153,218,153,218,153,218,218, - 218,218,218,153,236,218,153,218,218,218,218,218,207,218,188,236, - 207,207,207,236,236,236,89,236,236,207,207,236,236,236,119,119, - 236,119,181,119,119,119,119,119,119,236,89,89,119,119,119,58, - 236,119,236,236,236,89,119,119,236,236,119,119,236,236,236,119, - 119,119,236,89,89,236,89,89,236,236,89,89,236,89,236,236, - 236,89,236,119,119,119,119,236,236,236,89,236,236,236,236,89, - 236,236,236,236,236,236,207,236,236,89,236,236,236,236,89,89, - 119,236,119,143,119,119,236,236,143,236,119,119,159,119,119,159, - 119,119,236,119,236,236,236,89,89,89,89,89,236,119,240,47, - 26,111,187,182,183,109,111,42,12,17,17,12,150,219,219,17, - 150,17,17,219,17,187,26,12,26,17,17,17,150,150,219,219, - 132,150,17,17,219,219,150,219,12,26,17,17,12,17,150,132, - 219,17,150,17,17,219,17,187,42,12,42,12,219,17,150,150, - 132,219,17,150,17,17,219,17,132,26,12,26,17,17,17,150, - 150,132,219,150,132,17,17,219,17,150,42,12,42,12,219,12, - 17,150,132,219,17,150,17,17,219,17,150,42,12,26,17,17, - 17,12,150,132,219,150,132,17,17,219,17,150,26,187,42,12, - 17,17,150,150,132,219,17,132,17,17,219,17,132,26,12,42, - 12,17,17,12,150,219,219,132,150,17,17,219,17,150,26,12, - 42,12,219,12,17,150,132,219,132,132,17,17,219,219,150,219, - 187,42,12,219,12,17,150,132,219,17,132,17,17,219,17,150, - 42,12,42,12,219,12,17,150,132,219,17,150,17,17,219,17, - 132,42,12,42,12,219,17,12,150,219,219,132,150,17,12,219, - 219,187,26,187,26,17,17,17,12,150,132,219,150,150,17,17, - 219,17,150,42,12,42,12,219,12,17,150,132,219,132,150,17, - 17,219,17,150,26,187,42,12,219,12,17,150,132,219,17,132, - 12,17,219,17,150,219,187,26,17,17,17,12,150,132,219,17, - 132,17,17,219,17,187,26,187,26,17,17,17,12,150,132,219, - 17,150,17,12,219,17,187,219,187,183,219,17,150,132,7,89, - 114,71,114,144,144,144,144,144,244,144,144,144,144,144,244,144, - 244,144,244,244,144,244,144,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,244,244,36,36,244,36,36,36, - 36,244,36,244,36,36,36,36,36,36,36,36,36,36,244,244, - 207,188,188,188,39,169,188,169,188,39,39,188,188,188,188,39, - 169,188,188,188,188,188,207,188,169,188,169,188,188,207,188,188, - 188,188,218,218,88,218,218,218,218,218,218,153,218,218,153,218, - 218,236,218,218,218,218,153,153,236,153,207,236,236,218,207,218, - 218,218,218,207,236,236,89,89,89,236,236,89,236,236,236,119, - 119,236,58,236,236,236,89,236,119,181,58,89,89,236,89,119, - 236,119,236,119,236,236,89,119,119,119,89,119,119,119,89,89, - 236,119,119,236,89,119,236,89,236,236,236,89,236,89,236,89, - 236,236,236,236,236,89,119,236,119,119,236,89,89,236,236,119, - 119,236,119,236,236,89,236,89,236,236,236,236,236,236,236,143, - 89,236,119,236,236,236,236,236,236,236,127,89,89,89,89,236, - 236,236,236,236,236,89,236,236,236,119,119,236,119,119,159,47, - 26,111,166,182,187,111,150,219,26,219,17,17,17,17,219,219, - 17,17,17,219,17,132,26,150,219,26,219,26,17,12,17,26, - 219,17,17,219,219,26,187,26,150,219,26,219,17,219,26,12, - 219,219,17,17,17,219,17,150,26,150,219,26,219,26,17,26, - 17,219,17,17,17,17,219,26,150,219,150,219,26,219,26,17, - 26,17,26,219,12,17,219,219,26,150,26,150,219,26,219,17, - 17,26,17,219,219,17,17,17,219,26,150,26,150,219,26,219, - 17,17,26,17,26,219,12,17,219,219,26,150,26,150,219,26, - 219,26,17,26,17,219,17,17,17,219,219,26,150,26,150,219, - 26,219,17,17,17,17,26,219,17,17,17,219,26,150,26,150, - 219,26,219,17,219,26,12,26,219,12,17,219,219,26,187,26, - 150,219,26,219,17,219,26,12,219,17,17,17,219,219,26,150, - 26,150,219,26,219,17,219,26,12,219,219,12,17,17,219,26, - 150,26,150,219,26,219,17,17,17,17,26,219,17,17,219,219, - 12,150,26,150,219,26,219,17,17,26,17,26,219,17,17,17, - 219,26,150,26,150,219,26,219,17,219,26,17,26,219,17,17, - 219,219,26,150,26,150,219,26,219,17,219,26,12,219,17,17, - 17,219,219,26,12,26,150,219,26,219,17,17,26,17,219,17, - 17,17,219,219,12,132,26,150,219,26,219,17,219,26,17,219, - 17,17,17,132,26,17,187,219,109,42,26,17,243,219,99,114, - 114,144,144,144,144,144,144,144,144,144,144,244,144,244,144,244, - 244,244,144,144,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,244,244,244,36,244,36,36,36,244,36,244, - 36,36,105,36,36,244,36,36,36,36,36,36,36,36,36,244, - 218,218,218,207,188,188,188,188,188,188,188,39,39,207,188,188, - 188,39,39,169,39,39,39,39,207,188,188,39,39,188,188,169, - 188,188,188,188,218,188,218,218,218,236,218,207,218,153,218,236, - 218,218,153,153,153,218,207,218,218,218,236,218,218,236,218,207, - 236,236,207,236,236,207,236,207,181,89,89,119,119,236,119,119, - 119,119,236,119,119,119,119,119,119,119,89,236,236,236,119,236, - 119,236,119,236,119,236,236,89,236,89,236,236,236,89,119,119, - 119,89,236,119,119,89,119,119,119,119,119,236,119,236,236,236, - 236,119,89,236,119,119,89,119,236,236,119,236,236,236,236,236, - 236,119,236,236,236,58,236,236,119,236,89,236,236,89,89,89, - 236,236,236,236,143,143,143,89,89,127,89,89,89,89,89,89, - 127,236,236,236,89,236,236,89,119,236,236,89,236,119,108,47, - 122,126,26,59,42,166,187,0,42,122,122,122,122,42,122,122, - 122,122,122,162,42,42,183,187,122,42,122,122,0,122,42,122, - 122,42,122,122,122,183,42,183,187,0,42,122,122,122,122,42, - 122,122,122,122,122,162,42,122,183,187,0,42,122,122,122,122, - 42,122,122,122,122,122,162,183,78,42,187,122,42,122,122,122, - 122,42,122,122,122,122,122,122,183,42,183,187,0,42,122,122, - 122,122,42,122,122,122,122,122,162,219,42,183,187,0,42,122, - 122,0,122,42,122,122,122,122,122,162,183,42,183,187,0,42, - 122,122,122,122,42,122,122,42,122,122,78,183,42,183,187,0, - 42,122,122,122,122,42,122,122,122,122,122,162,183,42,183,187, - 0,42,122,122,122,122,42,122,122,42,122,122,122,183,42,219, - 187,0,42,122,122,122,0,42,122,122,42,122,122,162,219,42, - 183,187,0,42,122,122,122,0,42,122,122,122,122,122,162,219, - 42,183,187,0,42,122,122,0,122,42,122,122,122,122,122,122, - 42,42,183,187,0,42,122,122,0,122,42,122,122,122,122,122, - 162,183,42,183,187,0,42,122,122,122,122,42,0,42,122,122, - 122,162,183,42,183,187,0,42,122,122,122,0,42,122,122,42, - 122,122,78,183,42,219,187,0,42,122,122,122,122,42,122,122, - 42,122,122,0,42,42,183,187,0,42,122,122,122,122,42,122, - 122,122,122,0,122,42,42,42,187,42,42,183,219,215,235,89, - 114,144,144,144,144,144,144,144,144,244,144,144,144,244,244,144, - 244,244,244,144,244,244,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,244,36,244,36,244,244,244,36,244,36,36,36, - 36,36,36,36,36,36,244,36,36,36,36,36,244,36,36,120, - 207,207,207,218,218,188,188,188,188,188,188,188,188,188,188,207, - 188,39,39,169,39,39,207,39,207,39,169,39,39,39,188,169, - 169,39,188,207,188,188,207,207,218,207,218,236,218,218,218,236, - 153,218,218,218,153,218,218,153,181,218,236,236,207,207,236,207, - 207,236,236,207,236,236,236,236,119,236,89,236,89,89,236,236, - 119,119,119,119,119,119,58,236,236,58,119,119,119,236,236,89, - 236,89,119,236,119,89,236,89,236,119,119,119,236,236,89,89, - 119,119,89,89,89,89,89,89,89,89,236,236,236,119,236,236, - 89,236,119,89,236,119,89,236,119,89,119,119,89,236,236,89, - 236,236,236,236,236,119,236,236,236,236,236,236,236,236,236,143, - 236,236,127,236,89,207,207,127,89,89,39,89,127,89,89,119, - 89,89,119,236,89,89,236,236,119,119,119,236,119,159,240,47, - 122,183,42,126,122,94,42,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,42,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,42,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,42,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,42,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,42,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,42,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,42,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,42,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,42,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,42,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,42,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,141,181, - 144,144,144,144,144,144,144,144,144,244,144,244,244,144,244,244, - 244,244,244,244,244,244,244,244,244,244,36,244,36,244,36,244, - 244,244,244,36,244,244,36,244,36,36,36,36,36,244,36,36, - 36,36,36,36,36,36,36,36,36,36,36,105,36,36,36,36, - 39,207,207,207,207,207,39,188,39,169,39,39,39,39,188,188, - 207,188,39,39,39,39,39,39,39,207,39,39,39,39,39,188, - 188,169,39,39,207,207,188,188,207,207,218,218,218,153,218,218, - 218,236,236,236,218,153,218,218,218,218,218,207,207,236,207,207, - 207,207,207,207,236,236,236,236,236,89,236,89,119,119,89,119, - 236,119,236,236,119,58,119,119,119,119,236,89,236,119,119,236, - 119,119,236,89,89,236,89,236,89,89,89,89,89,89,119,119, - 119,89,119,236,119,119,119,236,236,236,119,236,119,236,89,119, - 119,119,236,236,236,236,236,119,236,119,236,89,119,119,236,119, - 236,119,119,236,236,236,236,236,236,236,236,89,207,143,89,89, - 89,89,236,89,89,89,89,89,89,127,89,89,119,89,127,89, - 89,236,89,236,236,236,236,119,236,119,119,119,119,119,108,47, - 122,187,42,254,122,122,122,0,42,42,122,122,122,42,42,122, - 42,122,122,42,12,26,26,17,0,26,122,42,122,122,42,122, - 42,122,122,122,42,12,26,26,17,0,42,42,122,122,122,42, - 42,122,42,122,122,42,12,26,26,17,0,42,42,122,122,122, - 42,42,122,42,122,122,78,8,26,26,17,0,42,42,122,122, - 42,122,42,122,42,122,122,42,12,26,26,17,0,42,42,122, - 122,122,42,42,122,42,122,122,42,12,26,26,17,0,42,42, - 122,122,42,122,122,42,42,122,122,42,12,26,26,17,0,42, - 42,122,122,122,42,122,42,122,122,122,42,12,26,26,17,0, - 42,42,122,122,122,42,42,122,42,122,122,42,12,26,26,17, - 0,42,42,122,122,122,42,122,122,42,122,122,78,243,26,26, - 17,0,42,42,122,122,42,122,122,42,122,122,122,42,12,26, - 26,17,0,42,42,122,122,42,122,42,122,42,122,122,42,12, - 26,26,17,0,26,122,42,122,122,42,122,42,42,122,122,42, - 12,26,26,17,0,42,42,122,122,42,122,42,122,42,122,122, - 42,12,26,26,17,0,42,42,122,122,122,42,122,122,42,122, - 122,42,12,26,26,17,0,42,42,122,122,42,122,122,42,122, - 122,122,78,243,26,26,17,0,42,42,122,122,122,42,122,42, - 122,122,122,42,12,26,26,17,0,42,42,122,122,122,42,122, - 42,122,42,122,78,243,26,26,187,122,26,26,150,221,235,114, - 144,144,244,144,144,144,144,244,144,244,144,244,244,244,144,244, - 244,244,244,244,244,244,244,244,244,244,244,244,36,244,36,244, - 36,244,36,244,36,244,36,244,36,244,36,244,36,36,244,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, - 39,39,39,207,39,39,39,39,39,39,39,39,39,39,188,188, - 188,188,207,39,39,39,207,39,39,207,39,39,39,207,39,207, - 39,39,39,39,188,207,207,188,207,207,207,236,207,236,218,207, - 218,218,218,207,218,236,218,236,236,236,207,236,207,207,89,89, - 207,207,89,207,207,236,89,236,119,236,236,236,236,119,89,119, - 119,119,119,236,236,119,236,236,236,119,236,89,236,89,236,89, - 236,89,236,236,89,236,89,236,236,236,236,119,119,236,236,236, - 119,119,119,89,236,89,119,119,119,236,89,236,119,119,89,236, - 89,236,89,89,236,119,236,119,236,236,236,236,236,119,236,236, - 236,236,119,236,236,236,236,236,236,89,143,89,236,236,236,236, - 236,89,143,127,89,127,89,127,89,89,89,89,89,89,89,89, - 89,236,119,89,119,119,89,119,236,119,236,236,119,159,108,64, - 187,59,187,214,42,187,187,42,101,139,139,8,8,8,139,8, - 8,8,139,139,49,219,26,8,42,101,139,139,8,139,8,8, - 211,8,8,139,139,49,17,26,8,42,101,139,139,8,139,8, - 8,211,8,8,139,139,49,17,26,8,42,101,139,139,8,139, - 8,8,211,8,8,139,139,67,17,26,8,42,101,139,139,139, - 8,8,8,211,8,8,139,139,49,219,26,8,42,101,139,139, - 139,8,8,211,211,8,8,139,139,67,17,26,12,26,101,139, - 139,139,8,8,8,211,8,8,139,139,49,17,26,8,42,101, - 139,139,139,8,8,211,211,8,8,139,139,49,219,26,8,42, - 101,139,139,8,139,8,8,211,8,8,139,139,67,17,26,12, - 26,101,139,139,139,8,8,8,211,8,8,139,139,67,17,26, - 8,42,101,139,139,139,8,8,8,211,8,8,139,139,67,17, - 26,12,26,101,139,139,139,8,8,211,211,8,8,139,139,49, - 219,26,8,42,101,139,139,8,139,8,8,211,8,8,139,139, - 49,219,26,8,42,101,139,139,139,8,8,139,8,8,8,139, - 139,49,17,26,12,26,101,139,139,139,8,8,8,211,8,8, - 139,139,49,17,26,8,42,101,139,139,139,8,8,211,211,8, - 8,139,139,67,17,26,8,42,101,139,139,8,139,8,8,211, - 8,8,139,139,49,219,26,8,42,101,139,139,139,139,8,8, - 211,8,8,139,139,49,219,26,8,219,187,187,49,141,99,181, - 144,144,144,144,244,144,244,144,244,144,244,244,244,244,244,244, - 244,244,244,244,244,36,244,36,36,36,244,36,36,244,36,244, - 36,244,36,36,244,36,36,244,36,36,36,36,244,36,36,105, - 36,36,105,36,36,36,36,36,36,105,36,105,36,36,244,36, - 140,181,39,39,207,207,39,140,39,39,39,39,39,39,39,39, - 39,39,39,39,39,188,39,207,207,39,39,39,188,39,39,39, - 207,39,39,39,207,207,39,188,188,188,207,207,207,207,207,236, - 236,207,218,236,218,218,218,218,218,236,236,207,236,236,207,188, - 181,207,207,207,89,89,207,89,236,236,119,119,119,236,236,89, - 236,89,236,119,119,236,119,119,119,236,236,236,236,236,89,236, - 89,236,89,89,119,89,119,119,89,89,89,89,236,89,119,119, - 119,89,119,119,119,119,89,119,89,119,119,89,89,236,236,119, - 119,119,119,236,89,236,119,236,119,119,119,236,236,236,236,119, - 236,236,236,236,236,236,236,89,236,236,236,236,236,89,236,236, - 89,236,89,89,89,119,89,89,89,89,127,89,89,89,89,236, - 89,89,89,119,89,89,89,89,89,236,119,89,119,119,240,44, - 109,182,187,99,78,111,166,26,101,8,8,211,211,8,8,211, - 211,8,211,139,101,150,17,243,42,49,8,8,8,8,211,211, - 8,211,8,211,139,101,150,17,243,26,101,8,8,211,8,8, - 211,8,211,8,139,8,101,150,17,243,26,101,8,8,211,8, - 8,211,8,211,211,8,139,101,150,17,243,26,101,8,8,8, - 8,211,211,8,211,8,211,139,101,150,12,243,26,101,8,8, - 8,8,211,8,8,211,211,8,139,67,150,17,211,26,101,8, - 8,8,211,211,211,8,211,8,211,8,101,150,17,243,26,101, - 8,8,8,211,211,8,8,211,8,211,139,101,150,17,243,26, - 101,8,8,211,8,8,211,8,211,211,8,139,67,150,17,211, - 26,101,8,8,8,211,211,211,8,211,211,8,8,101,150,17, - 243,42,49,8,8,8,211,211,211,8,211,211,8,139,67,150, - 17,211,42,49,8,8,8,8,211,8,8,211,8,211,139,101, - 150,17,243,42,49,8,8,8,8,211,211,8,211,8,211,139, - 101,150,17,243,26,101,8,8,8,211,8,8,211,211,8,211, - 211,101,150,17,211,26,101,8,8,8,211,211,211,8,211,8, - 211,8,101,150,17,243,42,49,8,8,8,211,211,8,8,211, - 211,8,139,101,150,17,243,26,101,8,8,8,8,211,211,8, - 211,8,211,139,101,150,17,243,26,101,8,8,8,8,211,8, - 8,211,211,8,211,101,150,17,109,187,12,187,141,132,235,114, - 144,144,244,144,244,144,144,244,244,244,144,244,244,244,244,244, - 244,244,244,244,244,244,36,244,244,36,244,36,244,36,36,244, - 36,36,36,244,36,36,36,244,36,244,36,36,36,36,244,36, - 36,36,36,105,36,36,36,36,36,36,36,36,36,105,36,36, - 39,39,114,39,181,39,207,39,39,39,140,39,39,39,39,114, - 39,39,39,188,39,39,39,207,207,207,39,207,39,207,39,39, - 39,39,39,39,39,207,39,39,207,207,207,207,207,207,207,218, - 236,207,218,236,218,236,218,236,218,236,236,207,207,236,89,207, - 207,207,89,207,207,236,207,236,89,236,236,236,119,119,119,236, - 119,119,89,119,119,89,236,236,119,119,119,89,89,236,89,236, - 89,236,236,89,119,89,89,119,119,119,89,89,236,89,89,236, - 119,119,119,119,236,119,89,119,236,236,119,236,89,119,89,236, - 236,236,236,236,236,236,119,236,236,236,119,236,236,236,236,236, - 119,236,58,236,236,236,236,236,236,236,236,119,236,236,236,236, - 89,236,89,89,89,89,236,89,236,89,89,127,119,89,89,89, - 119,89,89,236,89,119,236,119,119,119,119,236,119,159,159,44, - 187,109,26,99,166,187,166,42,49,211,139,8,211,211,8,211, - 8,8,8,8,139,150,17,243,122,101,211,211,211,8,211,8, - 211,211,8,187,8,139,150,17,141,42,49,211,8,211,8,211, - 211,8,211,187,211,8,139,150,17,141,42,49,211,8,211,8, - 211,211,8,211,8,8,8,139,150,17,141,42,49,211,8,211, - 211,8,211,8,211,8,8,8,139,150,17,141,42,49,211,8, - 211,211,8,211,8,211,8,8,8,139,150,132,141,42,49,8, - 211,8,211,8,211,8,211,8,211,8,139,150,17,141,42,49, - 8,211,8,211,8,211,8,211,8,8,8,139,150,17,141,42, - 49,211,8,211,8,211,211,8,211,8,8,8,139,150,132,141, - 42,49,8,211,8,211,8,211,8,211,8,211,8,101,150,17, - 243,122,101,211,8,211,8,211,8,211,8,211,8,91,67,150, - 132,243,122,101,211,8,211,211,8,211,8,211,8,8,8,139, - 150,17,243,122,101,211,211,211,8,211,8,211,8,8,8,8, - 139,150,17,141,42,49,211,8,211,8,211,211,8,211,8,8, - 8,101,150,132,141,42,49,8,211,8,211,8,211,8,211,8, - 211,8,139,150,17,243,122,101,211,8,211,8,211,8,211,8, - 211,8,8,139,150,12,141,42,49,211,211,211,8,211,8,211, - 211,8,8,8,139,150,17,141,42,49,8,211,8,211,8,211, - 211,8,211,8,8,101,150,17,243,132,219,187,141,141,99,114, - 144,144,144,144,244,244,244,144,244,244,244,244,244,244,244,244, - 244,36,244,36,244,36,244,244,36,36,244,36,36,36,36,244, - 36,244,36,36,244,36,36,36,36,36,36,36,36,36,36,36, - 36,105,36,36,36,36,36,36,105,36,36,36,36,105,105,36, - 39,39,207,39,39,39,181,39,39,114,39,140,114,39,39,39, - 39,39,207,207,207,39,39,39,207,39,39,39,39,39,39,39, - 207,39,188,39,207,39,207,207,39,207,207,207,207,207,207,207, - 207,207,207,207,236,218,236,218,236,236,236,236,89,207,207,89, - 89,89,207,236,236,236,236,89,119,236,89,119,236,236,236,119, - 236,119,119,236,236,236,119,119,236,236,89,89,236,89,89,89, - 236,89,89,236,89,89,89,89,89,89,119,119,119,236,119,119, - 119,89,236,236,119,236,119,119,119,236,89,236,119,236,236,119, - 119,236,119,119,89,236,236,119,236,236,236,119,119,119,236,119, - 236,119,89,119,236,236,58,236,236,119,236,236,236,236,236,89, - 236,89,236,236,236,143,236,143,236,236,89,119,89,89,89,236, - 89,119,236,119,119,89,89,89,119,119,119,119,119,119,108,44, - 187,109,162,139,187,187,111,122,101,8,91,211,211,187,109,109, - 8,109,109,8,67,150,17,182,42,101,8,211,211,211,187,109, - 8,211,8,139,8,67,150,17,139,122,101,211,211,211,8,211, - 187,211,8,211,211,8,67,150,17,139,122,139,211,211,211,211, - 187,109,8,211,211,187,211,139,150,17,139,122,139,211,211,211, - 211,8,211,187,211,8,111,8,67,150,219,139,122,139,211,211, - 211,8,211,187,109,8,109,109,8,67,150,26,211,122,139,211, - 211,8,91,8,109,8,211,187,109,8,67,150,17,139,122,139, - 211,211,211,8,211,211,187,211,211,187,211,67,243,219,139,122, - 139,211,211,211,8,211,187,109,8,109,109,8,67,150,26,211, - 122,101,211,211,8,91,211,211,8,211,187,211,8,67,150,17, - 182,42,101,211,8,211,211,8,109,8,109,8,211,8,139,150, - 26,182,42,101,211,8,211,211,211,187,109,8,109,109,8,67, - 150,17,182,42,101,8,211,211,211,187,109,211,187,109,109,8, - 67,150,219,139,122,139,211,211,211,8,187,211,187,211,109,109, - 8,67,150,26,211,122,101,211,211,8,91,211,211,8,211,187, - 109,8,67,150,17,182,42,101,211,8,211,211,8,211,8,211, - 187,109,8,67,150,219,211,122,139,211,211,211,8,211,187,109, - 8,109,109,8,67,150,17,139,122,139,211,211,211,8,211,187, - 109,8,109,109,8,139,150,17,182,187,187,187,150,141,235,114, - 144,244,144,244,144,244,144,244,244,244,244,244,244,244,244,244, - 244,36,244,244,244,36,244,36,244,36,244,36,244,36,36,244, - 36,36,36,244,36,244,36,36,36,36,36,36,244,36,36,36, - 36,36,105,36,36,36,36,36,36,36,36,105,36,36,36,36, - 39,39,39,114,39,39,39,207,207,39,114,39,39,39,39,114, - 39,39,39,207,181,39,207,39,181,39,39,39,39,39,39,39, - 39,39,39,39,207,207,207,39,181,39,207,207,181,188,207,188, - 207,207,207,207,207,218,236,218,218,236,236,207,89,236,207,207, - 207,89,207,89,89,236,236,236,236,236,89,119,119,119,236,119, - 89,119,119,119,119,89,89,119,119,236,236,89,236,89,89,89, - 119,236,89,236,119,119,119,119,119,236,89,89,119,236,89,236, - 119,119,119,89,119,236,119,119,119,236,236,236,236,119,236,89, - 119,236,236,119,236,89,236,89,119,236,236,236,236,119,236,236, - 236,236,236,119,119,236,236,236,236,236,236,236,236,207,143,89, - 127,89,236,236,119,159,119,236,143,143,236,143,143,119,236,159, - 236,119,236,236,236,119,89,89,89,119,89,89,119,119,108,47, - 187,111,42,109,183,187,166,122,101,67,8,211,211,211,8,91, - 8,211,211,8,139,12,26,8,122,101,139,211,211,8,211,8, - 109,187,211,211,8,139,12,26,8,122,101,139,211,91,211,211, - 8,211,187,8,139,8,139,12,26,8,122,101,139,211,91,8, - 211,8,91,8,211,139,8,139,12,26,8,122,101,139,211,91, - 8,211,211,8,211,8,211,211,139,12,26,8,122,101,139,211, - 91,211,211,8,211,8,109,211,8,139,150,26,8,122,101,139, - 211,211,211,211,187,211,139,8,139,8,139,12,26,8,122,101, - 139,211,8,91,211,8,211,8,211,139,8,139,12,26,8,122, - 101,139,211,91,211,8,211,8,211,109,211,8,139,150,26,8, - 122,101,139,211,211,8,211,91,8,211,211,211,8,139,12,26, - 8,122,101,139,211,211,91,211,187,211,109,8,211,211,139,150, - 26,8,122,101,139,211,211,91,8,211,8,211,187,139,8,139, - 12,26,8,122,101,139,211,211,8,211,8,211,8,211,211,8, - 139,12,26,8,122,101,139,211,91,139,211,8,211,8,211,211, - 8,139,150,26,8,122,101,139,211,211,8,211,91,8,139,8, - 139,8,139,12,26,8,122,101,139,211,211,91,211,187,211,211, - 8,211,8,139,12,26,8,42,101,139,211,211,211,91,8,211, - 8,109,211,8,139,12,26,8,122,101,139,211,8,211,91,8, - 211,8,211,211,8,139,150,26,8,150,17,166,243,132,235,114, - 144,144,244,144,244,244,244,244,244,244,244,244,36,244,36,244, - 36,244,36,244,36,244,36,36,244,36,36,36,36,36,36,36, - 244,36,36,36,36,36,244,36,36,36,36,36,36,36,36,105, - 36,36,36,36,105,36,36,36,105,36,36,36,105,105,105,36, - 39,39,207,207,39,39,39,207,181,39,39,39,114,39,39,207, - 39,39,114,207,207,181,39,207,207,181,39,207,181,39,207,39, - 39,207,39,39,207,39,207,207,39,89,207,207,89,39,207,39, - 207,39,207,39,207,89,207,207,207,207,207,236,207,207,89,207, - 89,207,89,207,207,89,236,89,89,119,236,89,89,236,181,236, - 119,236,119,89,89,119,119,89,236,119,89,89,119,236,236,119, - 89,119,236,89,89,236,236,119,119,119,119,119,236,119,119,119, - 236,89,89,119,89,119,89,89,119,89,236,236,119,236,119,236, - 236,119,236,236,236,236,236,58,236,236,119,119,236,236,236,236, - 236,236,236,236,236,236,119,236,236,119,89,143,89,89,89,89, - 119,236,119,236,236,236,236,159,159,159,236,119,119,143,119,236, - 236,236,89,119,119,236,236,119,119,119,119,236,119,159,108,29, - 187,224,94,109,126,187,111,42,139,139,8,91,211,211,8,243, - 211,187,211,211,67,150,17,211,42,101,211,139,91,211,211,187, - 211,8,8,109,211,67,150,17,211,42,101,211,211,8,211,211, - 109,8,211,8,109,211,67,150,17,211,42,101,211,139,211,211, - 211,8,211,211,187,211,8,67,150,17,211,42,101,211,211,8, - 211,91,109,211,187,109,211,8,139,150,17,211,42,101,211,211, - 8,211,211,8,91,109,8,211,211,139,150,17,211,42,101,211, - 211,8,211,211,8,109,8,187,211,211,67,132,17,211,42,101, - 211,211,211,8,211,211,187,211,187,109,8,67,150,17,211,42, - 101,211,211,8,211,211,8,91,109,8,211,211,139,150,17,211, - 42,101,211,211,8,211,8,243,211,8,187,211,211,67,150,17, - 211,42,101,211,211,211,8,211,8,211,8,187,211,8,67,150, - 17,211,42,101,211,211,8,139,91,109,8,211,8,211,211,67, - 150,17,211,42,101,211,211,211,211,91,211,109,8,187,211,211, - 67,150,17,211,42,101,211,211,211,8,211,211,187,211,187,211, - 8,67,150,17,211,42,101,211,211,8,211,8,211,109,8,187, - 109,211,67,150,17,211,42,101,211,211,211,8,211,8,211,8, - 211,211,211,67,150,17,211,122,101,211,211,211,8,211,211,187, - 109,8,211,211,67,150,17,211,42,101,139,91,211,211,211,211, - 187,211,187,211,8,67,150,17,141,132,187,187,12,141,235,114, - 244,144,244,144,244,244,144,244,244,244,244,244,244,244,244,244, - 244,36,244,36,244,36,244,36,36,36,244,36,36,244,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, - 36,105,36,36,105,36,36,105,36,36,36,36,36,36,36,36, - 39,39,181,39,181,114,39,39,181,207,39,39,39,114,39,39, - 39,207,39,39,89,236,89,89,207,236,207,39,39,207,39,39, - 39,39,39,39,181,207,89,89,39,207,89,207,89,89,39,181, - 39,39,39,207,39,207,89,207,218,207,89,236,89,207,89,207, - 89,89,89,89,236,236,236,181,207,236,119,119,119,236,119,236, - 119,236,119,119,236,236,119,119,236,119,236,89,119,119,89,119, - 89,119,119,236,89,119,89,236,119,236,119,181,236,119,119,119, - 119,236,89,119,89,119,119,236,236,119,236,236,236,236,119,236, - 236,236,236,89,236,236,236,236,119,236,236,58,58,119,58,119, - 58,236,236,236,119,236,58,236,236,236,236,89,236,236,236,236, - 236,236,236,143,236,236,236,236,236,236,159,119,119,119,119,159, - 119,159,89,236,236,119,236,119,89,119,119,119,119,108,108,142, - 26,111,78,109,187,187,187,0,101,139,211,211,8,211,211,211, - 8,211,211,91,67,12,17,243,122,101,211,211,8,211,211,211, - 8,109,211,109,91,67,12,17,243,122,101,139,211,8,211,91, - 8,109,109,8,109,91,67,12,17,243,122,101,139,8,211,211, - 91,243,8,211,8,211,8,67,17,17,243,122,101,139,211,8, - 211,211,8,211,8,211,8,211,67,12,17,243,122,101,139,211, - 8,211,91,8,8,109,187,211,8,67,12,17,243,122,101,211, - 211,211,211,91,8,109,211,8,211,91,67,12,17,243,122,101, - 211,211,211,211,211,8,211,8,211,211,91,67,12,17,243,122, - 101,139,211,211,8,211,8,8,109,91,8,8,67,12,17,243, - 122,101,139,211,211,211,211,109,8,211,211,211,91,67,150,17, - 243,122,101,211,211,211,8,211,91,8,139,187,8,8,67,12, - 17,243,122,101,211,211,8,211,211,8,109,109,187,211,8,139, - 12,17,243,122,101,211,211,91,8,211,8,211,8,211,211,91, - 67,12,17,243,122,101,139,8,211,211,211,8,211,8,211,211, - 91,67,150,17,243,122,101,139,211,211,211,8,109,187,139,211, - 8,8,139,150,17,243,122,101,211,211,211,8,211,111,8,109, - 211,91,8,67,12,17,243,122,101,211,211,91,8,211,8,211, - 8,109,109,91,67,12,219,243,122,101,211,8,211,8,211,8, - 211,8,211,211,8,139,12,17,8,150,26,219,243,141,235,114, - 144,244,144,244,244,244,244,244,244,244,36,244,36,36,244,36, - 244,36,244,36,244,36,36,244,36,244,36,36,36,36,36,244, - 36,244,36,244,36,105,36,105,36,105,36,36,36,36,36,36, - 36,36,105,36,36,105,36,36,105,105,36,36,36,105,105,36, - 39,207,39,207,39,39,207,39,207,181,181,39,39,39,181,39, - 39,181,39,89,207,181,236,236,119,181,207,39,89,207,181,89, - 207,181,89,39,207,89,89,207,89,89,89,181,89,39,39,39, - 89,39,181,207,89,207,207,89,89,89,207,207,207,89,89,89, - 207,207,236,89,207,89,236,236,119,119,236,236,236,119,236,119, - 119,119,236,236,119,119,119,119,119,89,119,236,89,89,119,89, - 119,89,89,119,119,89,119,119,89,119,89,236,119,119,89,89, - 89,89,236,236,119,236,119,119,119,89,89,236,119,119,236,119, - 236,119,236,119,236,236,236,236,236,236,236,236,236,236,236,236, - 236,119,236,119,236,236,236,236,236,236,119,236,236,236,236,236, - 236,236,58,119,159,153,236,236,236,236,236,236,119,236,236,236, - 236,89,159,119,236,236,119,119,119,119,119,119,119,119,108,29, - 17,111,78,111,126,26,111,78,49,139,8,211,211,211,211,109, - 8,211,8,139,8,132,17,109,42,101,139,8,211,211,211,211, - 211,8,211,8,139,8,132,17,109,42,101,211,139,8,211,211, - 211,211,211,211,8,139,8,132,17,109,42,101,211,211,8,211, - 211,211,211,211,211,211,211,139,150,17,109,42,101,211,139,211, - 211,211,109,211,211,211,8,211,139,132,17,109,42,101,211,139, - 8,211,211,139,211,211,211,211,211,139,150,17,109,42,101,211, - 211,8,139,211,211,211,211,211,8,211,139,132,17,109,42,101, - 211,211,211,211,211,109,211,211,211,8,8,67,132,17,109,42, - 101,211,211,211,211,211,109,211,211,211,211,211,139,132,17,109, - 42,101,211,211,8,211,211,109,211,8,211,8,139,8,132,17, - 109,42,101,211,211,211,211,139,211,211,211,139,211,211,8,132, - 17,109,42,101,211,139,211,211,211,211,211,211,211,211,211,67, - 132,17,109,26,101,211,139,8,139,211,211,211,211,211,8,139, - 8,132,17,109,42,101,211,211,211,211,211,109,211,211,211,8, - 139,8,132,17,109,42,101,211,211,211,211,211,211,139,8,211, - 211,211,67,132,17,109,42,101,211,211,211,211,211,211,211,8, - 211,8,211,139,132,17,211,42,101,211,139,139,211,211,211,211, - 211,211,8,8,139,132,17,211,122,49,139,211,211,211,211,211, - 211,211,211,211,211,67,150,26,109,150,219,187,132,132,145,114, - 244,244,144,244,144,244,244,244,244,244,244,244,244,244,244,244, - 36,244,36,244,36,244,36,244,36,36,36,244,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,105, - 36,36,36,105,105,36,105,36,36,105,36,105,36,36,36,36, - 39,207,39,207,207,39,207,39,207,207,58,181,39,39,39,39, - 39,89,39,39,207,89,236,181,240,119,181,207,207,39,39,207, - 39,39,207,207,207,89,236,89,89,236,89,89,89,89,89,39, - 89,39,39,39,39,207,207,89,207,207,89,89,207,207,89,89, - 89,207,207,89,236,89,236,236,236,89,89,89,236,119,236,236, - 119,119,119,119,119,236,236,119,119,119,119,119,119,119,119,236, - 119,119,119,119,119,236,236,236,89,119,119,89,89,119,119,236, - 236,236,236,236,119,236,89,236,236,119,89,236,89,236,236,236, - 236,89,236,236,236,236,236,236,119,58,119,236,58,119,58,119, - 236,119,236,119,236,89,236,236,236,236,58,119,236,58,236,236, - 236,236,236,236,89,236,236,236,236,236,89,236,236,236,236,119, - 143,119,236,119,236,236,89,119,89,119,119,119,119,119,108,142, - 17,111,122,109,126,187,126,0,67,211,211,211,211,211,211,109, - 211,211,8,139,67,150,17,109,122,67,139,211,211,211,211,61, - 211,211,211,8,139,67,150,219,211,122,67,211,211,139,211,8, - 91,211,211,8,8,139,67,150,17,109,122,49,211,211,139,139, - 8,61,139,109,8,211,8,67,17,17,109,122,67,211,211,8, - 139,211,109,211,211,211,211,8,67,17,17,109,122,49,211,211, - 139,211,8,91,139,8,211,211,8,67,150,219,211,122,49,139, - 211,8,139,8,91,139,187,211,211,211,67,150,219,211,122,49, - 139,211,211,211,211,211,211,211,8,139,187,67,150,219,211,122, - 49,211,211,211,211,211,91,211,211,8,211,8,67,150,219,211, - 122,49,211,211,211,211,211,91,211,211,211,8,139,139,150,219, - 211,122,49,139,211,211,8,211,211,211,187,211,211,139,67,150, - 219,211,122,49,211,211,8,139,211,211,91,211,8,211,8,67, - 12,219,211,122,49,211,139,211,139,211,109,109,211,8,8,139, - 67,150,219,211,122,49,211,211,211,211,211,91,211,8,211,8, - 139,139,150,17,109,122,49,211,211,211,211,8,61,211,211,109, - 211,91,139,150,17,109,122,49,139,211,211,211,211,61,211,211, - 211,8,8,67,12,219,211,122,49,211,8,139,211,211,91,211, - 8,211,139,8,67,150,219,211,122,67,139,211,211,211,211,91, - 211,8,211,211,91,67,150,17,211,150,219,219,150,150,235,114, - 144,144,244,244,244,244,244,244,244,120,244,36,36,36,244,36, - 244,36,244,36,36,244,36,36,36,244,36,36,36,36,36,244, - 36,36,36,36,36,36,36,105,36,105,36,105,36,36,105,36, - 105,36,36,36,36,36,105,36,105,36,36,36,105,105,105,36, - 207,39,181,39,207,207,207,207,207,207,236,184,181,39,181,207, - 181,207,89,181,89,89,236,236,240,108,89,39,207,89,89,39, - 89,89,89,207,236,181,58,181,236,119,119,89,89,89,39,89, - 114,89,89,89,89,89,89,207,207,207,207,207,89,89,207,236, - 236,89,236,236,236,236,89,236,236,119,119,119,119,89,119,119, - 236,119,119,236,236,119,119,89,119,89,119,119,119,236,119,119, - 119,119,89,236,119,119,119,119,89,89,89,119,119,119,236,119, - 89,236,89,236,89,119,236,236,119,236,236,89,236,89,89,89, - 236,236,236,119,236,236,89,236,236,236,236,119,236,236,236,236, - 119,236,236,236,119,236,119,236,236,236,236,236,236,236,236,236, - 236,236,236,89,236,236,236,236,159,236,236,236,119,89,89,236, - 119,236,119,236,119,236,119,89,119,89,89,119,119,119,108,29, - 26,111,122,109,166,26,111,26,101,139,139,139,139,139,211,139, - 211,211,139,211,67,17,26,211,26,101,139,139,139,139,139,139, - 211,139,211,139,211,67,17,26,109,42,101,139,139,211,139,139, - 139,139,211,211,139,211,67,17,26,243,26,101,139,139,139,139, - 139,139,211,211,211,139,139,139,132,26,211,26,101,139,139,139, - 211,139,139,211,211,211,139,139,139,150,26,109,42,101,139,139, - 139,139,139,139,211,211,211,139,139,139,17,26,109,42,101,139, - 139,139,139,139,139,139,139,139,139,8,67,17,26,109,42,139, - 139,139,139,139,139,211,211,211,211,139,139,67,17,26,109,42, - 101,139,139,139,139,139,139,139,139,211,139,139,139,17,26,109, - 42,101,139,139,139,139,139,139,211,211,211,139,139,67,12,26, - 109,42,139,139,139,139,139,211,211,139,139,211,139,139,139,17, - 26,109,42,101,139,139,139,211,139,139,139,211,139,139,211,139, - 132,26,109,26,101,139,139,139,211,139,211,139,211,211,139,211, - 67,17,26,243,42,101,139,139,139,139,139,139,139,211,211,139, - 139,67,17,26,109,42,101,139,139,139,139,139,139,211,211,139, - 139,139,67,17,26,109,26,139,139,139,139,139,139,139,211,139, - 211,139,139,67,132,26,109,26,101,139,139,211,139,139,139,139, - 211,211,211,139,67,17,26,109,42,101,139,139,139,139,139,139, - 139,211,211,139,139,67,132,219,109,254,187,26,166,141,145,114, - 244,244,244,244,244,244,244,244,244,244,244,244,244,244,36,244, - 36,244,36,244,36,244,36,244,36,36,36,244,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,105,36,36,36, - 36,36,36,105,36,105,36,105,36,105,36,36,36,36,36,36, - 207,39,89,207,207,39,207,207,181,188,207,236,108,236,39,207, - 207,207,207,207,89,89,236,181,240,83,108,89,207,89,89,181, - 39,39,207,39,236,58,184,240,240,119,181,89,89,89,39,89, - 207,89,207,89,181,236,181,89,89,207,89,207,89,89,89,89, - 236,181,89,89,119,236,89,119,236,236,236,119,119,119,119,119, - 236,236,119,181,236,236,119,119,119,119,89,119,119,89,119,236, - 236,119,181,119,119,119,119,236,236,236,236,236,236,119,236,119, - 89,119,236,119,89,89,119,236,89,119,236,236,119,236,236,89, - 119,89,89,236,89,58,119,236,236,236,236,236,236,236,236,236, - 236,119,236,236,236,236,236,236,236,236,236,58,236,58,58,236, - 119,236,236,89,236,89,89,89,89,89,89,236,119,119,89,236, - 236,236,119,89,119,236,119,89,119,119,119,119,119,119,108,142, - 26,150,162,109,126,219,187,0,8,91,26,91,26,91,91,26, - 91,26,91,26,67,132,26,12,78,91,91,26,91,91,26,91, - 26,91,26,91,26,67,132,26,8,162,8,91,26,91,91,26, - 91,26,91,26,91,26,67,132,26,12,78,8,26,26,91,26, - 187,26,91,26,91,26,91,182,150,26,12,78,8,91,26,91, - 26,91,26,91,91,26,91,26,67,132,26,8,122,8,26,91, - 26,91,187,26,91,26,91,26,26,67,132,26,8,122,91,91, - 26,91,26,187,91,26,26,91,26,12,67,132,26,8,122,91, - 12,26,91,26,91,91,26,91,91,26,26,67,132,26,8,122, - 91,91,26,91,91,17,26,26,91,91,26,26,67,150,26,187, - 42,187,91,91,26,91,91,26,91,91,26,26,91,141,150,26, - 8,122,91,91,26,91,26,91,91,26,91,26,91,26,67,150, - 26,8,122,8,26,91,91,26,91,26,91,26,91,26,12,182, - 150,26,12,78,8,26,91,26,91,26,91,26,91,26,91,26, - 67,132,26,187,42,187,91,26,91,91,26,91,26,91,26,91, - 26,67,132,26,8,122,91,91,26,91,91,17,26,91,26,91, - 17,26,67,132,26,12,42,187,91,26,91,91,26,91,26,91, - 26,91,26,182,150,26,12,78,8,91,26,91,91,26,91,26, - 91,91,26,26,67,132,26,12,78,8,26,91,91,26,187,26, - 91,26,91,26,26,8,12,17,12,150,17,187,150,150,145,114, - 144,144,244,244,144,244,144,244,244,120,244,36,244,36,244,36, - 244,36,244,36,36,244,36,36,244,36,36,36,36,36,36,36, - 244,36,36,36,36,36,105,36,36,105,36,105,36,36,105,36, - 36,105,36,36,36,36,36,105,36,105,36,36,105,36,105,36, - 207,207,207,207,207,181,207,207,207,188,207,236,181,83,181,207, - 89,89,89,181,236,181,89,236,58,161,247,207,89,207,89,89, - 181,89,236,181,236,181,240,108,58,119,89,89,89,89,89,89, - 89,89,119,236,236,236,236,89,39,207,207,89,207,89,207,89, - 89,236,236,236,89,236,119,89,119,119,119,89,236,89,236,89, - 119,119,89,236,236,119,236,89,119,89,119,89,119,119,119,119, - 119,119,119,236,181,119,89,89,236,236,89,119,119,89,236,236, - 119,236,119,236,236,119,89,236,236,89,236,236,236,89,89,236, - 89,89,236,89,236,89,89,236,236,236,236,119,236,119,58,58, - 58,236,119,58,119,236,119,119,119,153,236,236,58,236,236,119, - 89,89,89,236,89,89,89,236,236,119,236,119,89,89,119,119, - 119,89,89,119,89,236,236,119,89,119,119,119,119,119,108,29, - 26,187,183,187,166,26,111,0,26,219,26,26,26,42,42,187, - 42,219,183,26,243,150,12,211,0,17,219,219,26,219,219,183, - 187,42,219,219,26,8,150,12,211,0,26,219,219,219,183,187, - 183,187,219,219,183,26,8,150,187,211,162,26,187,219,219,187, - 42,187,219,183,26,219,219,8,150,12,211,0,26,219,187,219, - 187,42,26,42,42,26,183,219,8,150,17,211,0,26,219,219, - 219,219,42,187,187,26,26,187,219,8,150,17,211,0,219,17, - 26,183,187,42,183,187,219,26,183,26,8,150,17,211,0,219, - 26,26,26,26,42,183,219,42,219,219,26,8,150,17,211,0, - 17,219,219,26,183,42,187,183,219,219,219,219,8,150,12,211, - 0,26,219,219,26,219,219,183,219,42,187,219,26,8,150,17, - 211,0,219,219,219,219,219,26,183,187,219,26,219,219,8,132, - 17,211,0,26,219,26,183,187,42,187,183,42,42,187,26,8, - 150,12,211,0,26,17,219,219,187,26,42,187,26,219,183,26, - 8,150,12,211,0,26,219,219,26,42,187,183,187,42,219,219, - 26,8,150,17,211,0,17,219,219,219,183,42,187,219,42,26, - 26,26,8,150,12,211,0,26,17,219,26,26,219,183,187,42, - 219,219,26,8,150,12,211,0,26,219,219,219,183,187,183,219, - 42,219,187,26,8,12,12,211,162,26,219,219,219,187,42,187, - 183,26,26,219,26,182,150,26,211,111,219,166,132,132,145,114, - 244,244,144,244,244,244,244,244,244,244,244,36,244,244,244,36, - 244,36,244,36,36,36,244,36,105,244,36,36,36,36,36,36, - 36,36,36,36,36,105,36,36,36,36,36,36,105,36,36,36, - 36,36,36,36,105,105,36,36,105,105,36,36,36,105,36,105, - 207,207,181,39,207,39,207,207,181,207,207,207,207,240,83,108, - 207,181,207,236,236,119,119,181,58,83,161,83,89,89,89,89, - 119,119,236,119,58,240,83,161,89,236,119,181,89,181,89,89, - 181,236,119,240,119,119,236,89,89,89,207,89,207,89,207,236, - 89,119,119,236,181,236,236,236,119,119,58,119,119,119,119,89, - 89,236,236,119,89,119,119,236,119,119,119,119,181,236,119,89, - 236,236,119,236,89,119,236,236,89,119,236,89,119,119,119,236, - 89,89,236,236,236,236,236,119,236,89,236,89,236,236,89,207, - 236,89,236,89,236,236,236,236,119,236,236,119,236,236,236,236, - 236,236,236,236,236,236,236,236,119,58,236,236,236,236,236,236, - 236,236,89,89,236,89,89,89,89,119,89,236,236,89,89,89, - 119,119,236,119,89,89,89,119,119,89,119,119,119,119,108,29, - 26,187,183,187,111,26,187,0,211,67,99,139,67,139,139,67, - 139,139,139,139,8,150,219,243,0,8,139,67,139,139,139,139, - 182,139,139,139,139,8,132,42,243,0,211,139,139,139,139,139, - 139,139,139,139,139,139,8,150,219,243,0,211,139,139,139,67, - 139,139,139,182,139,139,139,8,150,183,243,0,211,139,139,139, - 67,67,67,67,182,139,139,139,8,150,42,109,0,211,139,139, - 139,67,139,182,67,182,139,139,139,8,150,42,243,0,8,67, - 139,139,67,139,67,139,67,139,139,139,8,150,42,243,0,139, - 67,67,67,139,139,139,67,139,139,139,139,8,150,42,243,0, - 8,139,139,139,67,139,139,139,139,139,139,139,8,150,219,8, - 0,211,101,67,139,139,139,67,67,139,139,139,67,8,12,26, - 243,0,8,101,139,139,67,139,67,139,182,139,139,139,8,150, - 42,109,0,211,67,139,139,67,139,139,67,67,139,139,139,8, - 150,219,109,0,211,139,139,139,67,139,139,67,139,139,139,139, - 8,150,219,8,0,211,101,67,67,139,139,139,67,139,139,139, - 139,8,150,42,243,0,8,139,139,139,67,139,67,67,182,139, - 139,139,8,150,219,243,0,211,139,67,67,139,139,139,67,139, - 139,139,139,8,150,219,243,0,211,139,139,139,139,139,139,67, - 139,139,139,139,139,132,219,243,0,211,139,139,139,67,139,139, - 67,67,139,139,139,139,150,219,141,254,26,187,150,132,225,114, - 144,244,244,244,244,244,244,244,244,244,120,244,36,244,36,36, - 244,36,36,244,36,244,105,244,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,105,36,105,36,36,36,105,105,36, - 105,36,36,36,36,36,36,105,36,36,105,36,36,36,36,105, - 181,207,207,181,207,181,207,207,207,207,181,89,89,181,108,252, - 240,207,119,181,119,119,240,119,240,108,161,247,108,119,236,181, - 236,236,58,119,240,83,161,247,119,236,119,236,236,236,89,119, - 58,119,240,108,108,58,236,236,89,207,89,207,89,89,89,89, - 236,236,236,236,236,119,119,89,236,236,119,236,89,236,236,236, - 236,236,119,236,119,89,89,119,89,89,119,89,236,119,89,119, - 119,236,89,119,119,236,119,236,119,236,236,119,236,236,89,236, - 236,236,89,119,89,119,119,89,236,236,236,236,236,89,89,236, - 89,89,207,89,89,89,89,119,89,236,89,236,236,236,236,119, - 58,58,58,236,119,236,236,119,89,236,236,89,236,89,89,89, - 89,127,89,119,127,89,89,89,89,89,89,89,89,89,89,89, - 89,89,119,236,119,119,119,89,89,119,119,119,119,119,108,29, - 26,111,42,111,254,162,111,0,8,211,139,139,211,211,139,187, - 211,211,139,139,211,12,122,211,0,211,139,139,211,211,211,139, - 211,211,211,139,182,211,12,122,211,0,8,139,139,211,211,139, - 211,109,211,211,139,182,211,187,122,211,0,8,139,139,139,211, - 211,211,211,211,211,139,139,211,12,122,211,0,8,139,139,139, - 109,109,109,109,139,8,139,139,211,187,122,243,0,8,139,139, - 139,109,139,211,211,211,211,139,139,211,187,122,211,0,211,139, - 139,211,211,211,109,109,8,211,139,139,211,187,122,211,122,187, - 139,139,211,139,211,139,8,109,139,139,182,211,187,122,211,0, - 211,139,139,139,109,139,211,211,109,139,139,139,211,187,122,182, - 0,8,139,139,211,211,211,109,109,8,211,211,139,211,150,122, - 211,0,8,139,139,211,211,211,211,211,211,211,139,139,211,187, - 122,243,0,8,139,139,211,211,211,211,211,187,211,139,182,211, - 187,122,243,0,8,139,139,211,211,211,139,187,211,211,139,182, - 211,187,122,182,0,8,139,139,211,211,211,139,187,211,211,139, - 182,211,187,122,211,0,211,139,139,139,211,211,109,211,8,211, - 139,182,211,12,122,211,0,8,139,139,211,211,211,211,109,211, - 211,139,182,211,187,122,109,0,8,139,139,211,211,211,139,187, - 211,211,139,182,243,12,122,211,0,8,139,139,139,211,211,211, - 109,8,211,139,211,8,187,42,211,109,187,187,132,132,145,114, - 144,244,144,244,244,244,244,244,244,120,244,244,244,36,244,36, - 36,244,36,244,36,36,36,36,36,244,36,36,36,36,36,36, - 36,36,36,36,105,36,36,36,36,36,105,36,36,36,105,36, - 105,36,105,36,36,105,36,105,36,105,105,36,36,105,36,36, - 207,207,207,89,181,188,207,181,39,207,207,89,236,89,236,240, - 176,240,207,236,119,181,119,119,181,83,161,108,83,161,236,58, - 119,236,58,240,119,161,83,161,89,236,119,119,119,119,119,58, - 58,108,83,108,240,119,181,236,119,89,89,236,236,236,236,89, - 89,119,119,236,89,89,119,89,119,89,119,236,119,89,119,119, - 119,236,236,236,119,236,89,236,236,89,236,236,236,236,89,236, - 119,119,236,236,236,89,236,236,236,236,236,236,89,119,236,119, - 236,236,236,236,236,89,236,89,236,89,89,89,236,236,89,207, - 89,89,207,89,89,89,89,89,89,236,89,89,89,119,236,236, - 89,89,119,236,236,119,89,236,89,89,89,89,236,207,236,89, - 89,89,127,119,89,89,89,89,89,89,89,89,236,236,236,236, - 236,89,119,89,236,236,89,236,119,89,119,119,119,119,108,29, - 42,111,122,187,224,183,187,0,8,139,109,109,109,109,211,8, - 8,139,211,211,243,17,42,8,0,8,211,211,211,211,109,8, - 109,8,211,211,139,243,17,42,8,0,8,211,211,211,109,109, - 8,109,8,211,211,139,8,17,42,211,0,8,139,109,109,109, - 211,8,211,8,8,211,211,243,17,42,243,0,8,211,109,211, - 109,211,211,187,211,8,211,139,243,17,26,211,0,8,139,109, - 8,109,109,187,211,8,211,211,139,243,17,26,243,0,187,139, - 254,211,109,211,8,109,211,211,211,139,243,17,42,243,0,8, - 139,109,109,109,109,187,8,109,211,8,139,8,17,42,8,0, - 8,211,109,211,109,211,8,8,187,211,211,139,243,17,42,243, - 0,8,211,211,211,109,211,8,109,8,211,211,139,211,17,42, - 211,0,8,139,109,211,109,187,8,211,8,8,211,139,243,17, - 26,211,0,8,211,211,109,109,211,8,211,8,211,8,139,8, - 17,26,211,0,8,139,109,109,109,109,139,187,8,139,211,139, - 8,17,42,8,0,8,211,109,211,109,109,211,8,211,211,211, - 139,8,17,42,8,0,8,211,109,109,109,211,109,8,211,211, - 211,139,243,17,42,8,0,8,211,109,211,211,211,8,109,8, - 8,139,211,8,17,26,8,0,8,211,211,211,211,109,211,8, - 211,211,211,67,243,17,42,243,0,8,139,109,109,109,109,211, - 109,8,139,211,182,8,17,42,211,109,219,187,132,132,225,114, - 244,244,244,244,71,244,244,244,244,244,120,120,36,244,36,244, - 36,36,244,36,244,36,244,36,36,36,36,244,36,36,105,36, - 36,36,36,36,36,36,105,36,105,36,36,36,105,36,36,36, - 36,36,36,36,36,36,105,36,105,36,36,105,36,105,36,105, - 207,207,89,89,89,89,207,89,207,181,236,181,236,236,89,119, - 161,106,236,119,119,58,119,240,108,108,176,108,108,161,83,181, - 240,119,181,108,83,176,240,161,58,58,58,58,184,181,58,58, - 240,83,83,108,58,58,236,236,236,207,236,89,207,89,236,236, - 58,236,236,119,119,119,89,119,89,119,236,119,236,119,236,236, - 236,89,119,119,236,119,236,119,89,236,119,119,236,119,236,119, - 236,236,236,89,236,236,236,236,236,119,236,89,236,236,119,89, - 236,119,236,236,89,236,236,236,89,236,236,236,89,89,89,89, - 236,89,89,89,89,89,89,207,236,89,236,236,119,236,119,89, - 236,236,236,236,119,89,236,89,236,236,236,89,89,89,207,89, - 89,89,119,89,127,89,236,89,89,89,119,119,89,119,119,89, - 89,89,236,119,119,119,89,119,119,119,119,119,119,119,108,29, - 26,111,162,109,111,78,111,162,8,139,139,139,67,139,139,211, - 211,211,182,67,211,150,122,187,0,8,139,139,67,139,139,139, - 139,211,139,211,67,211,150,122,187,0,8,67,139,67,139,139, - 139,139,211,211,139,67,211,150,122,187,0,8,139,139,139,139, - 139,139,211,211,211,182,67,211,150,122,187,0,8,139,139,139, - 139,139,139,139,139,211,211,67,211,150,162,187,0,8,139,67, - 139,139,139,139,139,211,211,211,67,211,150,0,8,0,139,139, - 139,139,139,139,139,139,211,211,211,67,211,150,0,109,0,211, - 139,139,139,139,139,139,139,211,211,139,67,211,150,122,187,0, - 8,67,139,139,139,139,139,139,139,211,139,67,211,150,122,187, - 0,8,139,139,139,139,139,139,211,139,139,211,67,243,150,122, - 187,0,8,139,67,139,139,139,139,211,211,211,211,67,211,150, - 162,12,0,8,139,67,139,139,139,139,139,211,139,139,67,211, - 150,162,12,0,8,139,67,139,67,139,139,139,211,211,139,67, - 211,150,122,187,0,8,139,139,139,139,139,139,211,211,139,139, - 67,211,150,122,187,0,8,139,139,139,139,139,139,211,211,139, - 139,67,211,150,122,187,0,8,139,139,139,139,139,139,139,211, - 211,211,67,211,150,122,187,0,8,139,67,139,139,139,139,211, - 211,211,211,139,109,150,122,187,0,8,139,139,139,139,139,139, - 139,211,211,139,139,211,150,122,187,254,187,187,150,183,199,114, - 244,244,244,244,244,244,244,120,244,120,244,244,244,244,36,244, - 36,244,36,36,244,36,36,244,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,105,105,36,105,36,105,36, - 105,36,105,105,36,36,36,105,36,105,36,105,36,105,36,36, - 89,207,207,181,236,181,218,181,207,207,236,236,236,181,236,236, - 58,252,176,89,181,240,181,119,108,108,106,108,184,240,176,108, - 119,119,108,83,176,83,240,161,108,236,58,58,184,240,240,108, - 83,161,108,108,240,240,119,236,181,207,207,89,236,89,236,236, - 236,236,236,236,236,119,89,236,89,236,89,89,236,236,89,236, - 236,236,236,236,236,119,236,119,236,89,236,119,89,119,236,119, - 89,236,236,236,236,89,236,119,236,119,58,236,89,89,236,236, - 236,236,236,236,236,236,89,236,236,89,236,236,236,236,236,89, - 236,89,207,236,236,236,89,89,236,89,89,89,119,89,236,89, - 236,89,119,89,236,89,236,89,89,89,236,236,236,89,236,89, - 89,89,89,119,89,89,236,236,236,236,89,119,236,89,119,159, - 119,119,236,236,89,119,236,89,119,119,119,119,119,119,108,29, - 42,111,122,109,111,183,111,0,187,187,187,187,187,111,187,109, - 91,26,91,12,12,150,42,8,162,187,187,187,187,187,187,187, - 187,187,12,26,12,109,150,42,8,162,26,187,187,187,187,187, - 187,187,187,91,26,12,12,150,42,8,162,187,187,187,187,187, - 109,91,187,187,91,26,12,12,150,42,8,162,187,187,187,187, - 187,187,109,91,91,12,26,12,109,150,42,8,162,26,111,187, - 187,187,211,91,187,187,12,91,12,150,150,42,8,0,26,187, - 187,187,187,111,91,12,91,12,26,12,243,187,42,8,162,187, - 187,187,187,187,211,187,187,187,91,26,12,150,150,42,8,162, - 26,187,187,187,187,187,109,91,12,187,26,12,12,187,26,8, - 162,187,187,12,187,187,109,91,187,187,187,91,26,243,150,42, - 8,162,26,111,187,187,8,111,91,187,187,12,91,12,243,150, - 42,8,162,26,187,187,187,187,111,187,187,187,91,26,12,12, - 150,42,8,162,26,111,91,187,187,187,187,187,187,91,26,12, - 12,187,42,8,162,187,187,12,187,187,109,91,12,187,26,91, - 12,150,150,42,8,162,187,187,187,187,187,109,91,187,187,26, - 91,12,12,150,42,8,162,187,187,187,187,187,187,111,91,187, - 12,91,12,12,150,42,8,162,26,187,12,187,187,109,91,12, - 187,12,12,12,12,150,42,8,162,187,187,187,187,187,109,91, - 187,187,12,187,12,150,150,42,8,254,219,187,150,187,225,114, - 244,244,71,244,244,244,244,244,244,120,120,36,244,36,244,36, - 244,36,244,36,36,244,36,36,244,36,36,36,36,36,36,36, - 36,36,36,36,105,36,105,36,36,36,36,105,36,105,36,105, - 105,36,36,36,36,36,36,36,36,105,36,36,105,36,105,105, - 207,181,236,236,207,207,236,153,181,236,236,181,236,236,181,119, - 58,108,136,176,119,119,108,108,119,83,106,161,58,240,161,106, - 108,108,83,106,161,89,240,106,108,240,181,119,108,181,240,240, - 176,161,240,240,119,58,119,236,236,89,236,236,89,236,236,89, - 119,89,119,236,236,236,119,236,236,119,236,236,89,89,236,119, - 58,236,236,119,236,236,236,236,236,236,236,89,236,236,89,89, - 236,119,236,89,89,119,236,236,119,89,236,89,236,236,236,89, - 236,236,119,58,119,236,236,236,236,236,89,236,236,236,236,236, - 236,236,119,236,119,236,119,236,236,236,236,236,89,236,119,236, - 119,119,236,236,236,236,119,236,236,236,236,89,236,119,236,236, - 236,236,89,236,236,119,89,236,119,119,143,236,119,119,236,236, - 236,236,119,119,236,236,119,119,119,119,89,119,119,119,108,29, - 26,111,78,12,224,42,224,0,0,0,122,122,122,122,0,0, - 0,0,0,0,219,187,219,187,0,0,0,0,122,122,122,0, - 0,0,0,0,0,26,187,219,187,0,0,0,0,122,122,122, - 122,0,0,0,0,0,219,187,26,187,0,0,0,122,0,0, - 0,0,122,0,0,0,0,219,187,26,187,0,0,0,122,122, - 0,0,0,0,0,0,0,0,26,132,26,187,0,0,0,122, - 0,0,0,0,0,0,0,0,0,26,187,26,187,0,0,122, - 122,122,0,0,0,0,0,0,0,0,26,132,26,187,0,0, - 0,122,0,0,0,122,0,0,0,0,0,26,187,219,187,0, - 0,0,122,122,0,0,0,0,0,0,0,0,17,132,26,187, - 0,0,0,122,0,0,0,0,0,0,0,0,0,26,17,26, - 187,0,0,0,122,0,0,0,122,0,0,0,0,0,26,132, - 26,187,0,0,0,122,122,0,122,0,0,0,0,0,0,17, - 166,26,187,0,0,0,122,0,122,122,122,0,0,0,0,0, - 219,132,219,187,0,0,0,122,0,0,0,0,0,0,0,0, - 0,26,17,219,187,0,0,122,122,0,0,0,0,0,0,0, - 0,0,219,187,219,187,0,0,0,122,0,122,122,0,0,0, - 0,0,0,219,187,219,187,0,0,0,0,0,0,0,0,0, - 0,0,0,0,219,187,26,187,0,0,0,122,0,0,0,0, - 0,0,0,0,0,26,17,219,187,111,42,187,150,219,225,89, - 244,244,244,244,244,244,120,244,120,244,120,244,36,36,244,36, - 36,36,36,244,36,36,244,36,36,36,36,36,36,36,105,244, - 36,105,36,36,36,36,105,36,105,36,36,105,36,105,36,36, - 36,105,105,36,105,36,36,36,36,105,105,36,105,105,36,36, - 236,236,236,181,236,236,207,236,236,236,236,236,184,184,184,58, - 240,108,161,147,161,207,119,108,240,161,136,176,58,240,108,161, - 136,83,106,148,240,119,83,176,247,108,119,240,108,108,83,161, - 176,240,240,108,240,119,236,236,236,89,89,89,89,89,236,89, - 119,89,119,119,119,236,119,119,89,89,119,236,236,89,236,89, - 236,119,236,119,119,119,236,119,236,236,236,236,89,236,236,89, - 89,89,236,236,236,89,89,89,119,119,119,236,89,89,236,89, - 119,236,236,236,119,58,119,119,236,236,119,236,236,58,236,58, - 58,236,58,119,119,236,236,236,236,119,236,236,119,236,119,236, - 58,119,119,119,58,236,236,236,236,236,236,236,236,236,236,236, - 236,159,236,159,236,159,119,143,236,119,159,236,143,119,119,159, - 119,159,236,159,119,236,159,119,119,119,119,159,119,159,108,29, - 42,111,78,109,224,26,109,122,26,26,26,26,42,42,26,17, - 219,219,219,26,17,219,219,12,42,26,26,26,26,42,42,26, - 17,17,219,219,219,219,17,219,12,42,17,26,26,26,42,42, - 26,17,17,219,219,26,17,132,183,12,42,26,26,26,26,26, - 42,26,17,17,219,17,26,17,132,219,12,42,26,26,26,26, - 26,42,26,219,17,219,219,219,26,132,219,12,42,26,26,26, - 26,42,42,26,17,219,219,219,219,219,219,219,12,42,26,26, - 26,26,26,42,26,17,17,219,219,219,17,219,219,12,42,26, - 26,26,26,26,42,26,17,17,219,17,219,17,219,219,12,42, - 26,26,26,26,42,42,219,17,17,219,17,26,219,132,219,12, - 42,26,26,26,26,42,42,26,17,219,219,219,219,17,132,219, - 12,42,26,26,26,26,26,42,26,17,219,219,219,219,26,132, - 219,12,42,26,26,26,26,42,42,26,17,219,17,219,26,26, - 132,219,12,42,26,26,26,26,26,42,26,17,17,219,219,26, - 17,17,219,12,42,26,26,26,26,42,42,26,17,219,219,219, - 219,17,219,219,12,42,26,26,26,26,26,42,26,12,219,219, - 219,26,17,219,219,12,42,26,26,26,26,42,42,26,17,219, - 219,219,26,17,219,219,12,42,26,26,26,26,42,42,26,17, - 17,219,17,26,17,132,183,12,42,26,26,26,26,42,42,26, - 17,219,219,219,219,17,219,219,12,111,219,219,150,17,225,181, - 244,244,244,71,244,244,244,244,244,120,120,244,36,244,36,244, - 36,244,36,36,244,36,36,36,36,36,36,244,105,36,105,36, - 36,36,36,105,105,36,105,36,105,36,105,105,36,105,36,105, - 105,105,36,105,36,36,105,36,105,36,36,36,36,36,105,105, - 236,181,58,184,181,58,181,218,181,236,184,181,58,181,240,240, - 181,119,83,161,189,161,119,240,108,83,136,147,184,108,83,83, - 136,136,76,83,184,83,83,136,161,58,108,119,108,83,161,136, - 161,83,108,240,119,58,119,236,236,236,236,236,236,58,119,58, - 236,119,89,236,236,119,236,236,236,119,89,89,89,236,89,236, - 119,236,58,236,236,236,236,236,119,236,236,89,89,89,89,89, - 89,236,89,89,89,119,119,236,119,89,89,89,236,236,89,236, - 89,236,236,58,236,58,236,236,58,58,236,58,58,236,184,58, - 236,184,58,153,236,236,58,236,236,236,236,58,236,236,236,119, - 236,58,236,58,236,119,236,58,236,236,236,58,236,58,58,159, - 58,236,159,236,159,236,236,119,159,236,236,119,159,119,159,236, - 159,236,119,143,236,159,236,236,89,159,119,119,119,108,108,29, - 26,126,42,224,224,183,187,26,243,12,150,17,219,17,12,243, - 150,150,12,150,17,17,42,12,26,243,12,150,17,219,17,12, - 243,12,150,12,17,12,219,26,187,26,243,12,150,17,219,17, - 12,243,150,150,12,150,17,219,26,187,26,243,12,150,17,219, - 17,12,243,150,150,12,12,17,219,42,12,26,243,12,150,187, - 219,17,17,8,12,150,12,12,150,219,26,187,26,243,12,150, - 17,219,17,12,243,12,150,12,12,187,17,26,187,26,243,12, - 150,17,219,17,17,243,12,150,12,12,17,17,42,12,26,243, - 12,150,17,219,17,12,243,150,150,12,12,17,17,26,12,26, - 243,12,150,187,219,17,17,243,12,150,12,17,12,219,26,187, - 26,243,12,150,17,219,17,12,8,12,150,12,17,187,219,42, - 12,26,243,12,150,17,219,17,12,243,12,150,12,17,150,219, - 42,12,26,243,12,150,17,17,17,12,243,12,150,12,150,150, - 219,42,187,26,243,12,150,17,219,17,12,243,150,150,12,12, - 12,219,26,187,26,243,12,150,17,219,17,12,8,150,150,12, - 12,187,17,42,12,26,243,12,150,17,219,17,12,243,150,150, - 12,150,17,17,42,12,26,243,12,150,17,219,17,12,243,12, - 150,12,150,17,17,26,12,26,243,12,150,17,219,17,12,243, - 12,150,12,17,17,219,26,12,26,243,12,150,17,219,17,12, - 243,12,150,12,12,17,17,26,12,150,219,187,132,219,225,89, - 244,244,244,120,248,244,36,244,120,244,36,244,36,244,36,36, - 36,244,36,36,36,244,36,36,36,36,36,36,36,36,36,36, - 36,105,36,36,36,36,105,36,105,36,105,36,105,105,36,105, - 36,105,36,105,105,36,36,36,36,105,105,36,36,105,36,36, - 236,236,153,184,184,184,240,184,58,181,236,58,184,58,240,108, - 108,240,83,83,136,157,161,184,83,161,136,189,108,108,66,83, - 176,189,136,236,108,108,161,136,106,108,108,108,83,161,136,176, - 83,247,108,240,119,119,236,181,58,236,236,58,236,236,236,58, - 236,58,119,236,236,119,236,119,236,236,236,236,119,236,119,236, - 236,236,119,58,58,58,58,236,119,236,236,236,236,89,236,236, - 89,236,236,236,236,89,236,89,119,236,89,89,89,119,119,119, - 119,119,236,119,236,58,236,236,236,236,236,153,58,58,236,184, - 58,236,58,184,184,153,236,58,236,58,236,184,58,58,58,58, - 236,184,236,58,236,184,236,236,58,58,236,58,236,153,236,58, - 58,58,58,236,159,159,159,236,159,236,153,159,236,236,119,159, - 159,159,159,159,236,159,119,159,119,119,119,119,119,119,108,172, - 26,126,78,224,111,42,187,219,150,17,17,17,17,17,26,243, - 150,150,12,17,17,17,26,243,219,150,17,17,187,17,17,26, - 243,150,150,12,17,12,219,26,150,26,150,17,17,187,17,17, - 26,243,150,150,17,17,12,17,26,243,219,150,17,12,17,17, - 17,26,243,150,150,150,17,12,219,26,243,219,150,17,17,17, - 17,17,17,243,150,150,17,17,12,219,26,243,219,150,17,12, - 17,132,17,26,8,150,150,12,17,17,17,26,243,219,150,17, - 12,187,17,17,17,243,150,150,17,12,17,17,26,243,219,150, - 17,17,187,17,17,26,243,150,150,17,12,17,219,26,243,219, - 150,17,17,17,17,17,26,243,150,150,150,219,12,219,26,243, - 219,150,17,17,187,17,17,17,243,150,150,12,17,12,17,26, - 243,219,150,17,12,17,17,17,26,8,150,150,12,17,12,219, - 26,243,219,150,17,17,17,17,17,26,243,150,150,17,17,12, - 17,26,243,219,150,17,17,187,17,17,26,243,150,150,150,219, - 12,219,26,243,219,150,17,12,17,132,17,17,150,150,150,17, - 17,17,17,26,243,219,150,17,12,17,17,17,26,243,150,150, - 17,12,17,17,26,243,219,150,17,12,17,17,17,26,8,150, - 150,17,12,17,219,26,243,219,150,17,12,17,132,17,26,243, - 12,150,150,17,12,219,26,243,219,150,17,12,187,17,17,26, - 243,12,150,12,12,17,219,26,109,187,219,219,141,219,145,181, - 244,244,71,244,120,244,244,244,244,120,244,120,36,36,36,244, - 36,36,36,244,36,36,36,36,36,36,36,36,36,36,36,36, - 244,105,36,105,36,105,105,36,105,36,36,36,105,36,105,105, - 105,36,105,105,36,105,105,36,36,36,36,105,36,36,105,36, - 181,218,181,58,181,58,181,240,108,247,240,181,236,181,119,240, - 108,108,108,83,176,147,157,83,108,161,136,77,247,83,83,176, - 136,147,148,161,108,66,161,106,76,240,108,108,161,136,148,161, - 161,108,240,58,58,58,58,236,236,58,181,236,236,58,119,236, - 58,236,236,119,58,236,119,236,89,89,119,119,89,89,236,119, - 119,119,236,119,236,236,236,236,236,236,236,236,89,89,119,89, - 119,119,119,119,89,236,181,119,236,89,119,119,236,89,89,236, - 236,236,119,236,58,236,58,58,236,58,184,58,153,236,184,58, - 236,184,236,236,58,58,58,236,58,236,236,236,236,153,236,236, - 58,58,184,236,184,58,58,58,236,236,236,236,184,58,58,153, - 236,236,58,184,236,236,236,159,153,58,159,119,159,159,236,159, - 119,159,119,159,119,143,119,159,143,119,119,119,119,108,108,29, - 26,166,78,109,224,42,126,219,12,17,132,187,150,150,17,12, - 17,17,12,132,17,187,26,109,219,12,17,132,17,150,150,219, - 150,12,17,150,132,17,187,26,109,219,12,17,132,17,150,150, - 219,12,12,17,12,132,17,187,26,109,219,12,17,132,187,150, - 150,219,12,17,17,17,132,17,187,26,109,219,12,17,132,17, - 132,150,26,150,12,17,150,17,17,187,26,109,219,12,17,132, - 17,17,150,219,150,17,17,150,132,17,187,26,109,219,12,17, - 132,17,132,150,26,150,12,17,150,17,17,187,26,109,219,12, - 17,150,219,150,150,17,12,17,17,150,132,187,187,26,109,219, - 12,17,132,187,150,12,219,150,17,17,12,17,17,187,26,109, - 219,12,12,132,17,132,150,26,150,17,150,150,132,17,187,26, - 109,219,12,17,132,187,150,150,219,150,17,17,150,17,17,187, - 26,109,219,17,12,132,187,150,150,219,150,17,17,12,17,17, - 187,26,109,219,12,17,150,219,150,150,17,12,17,17,12,17, - 17,187,26,109,219,12,12,132,219,17,150,26,12,12,17,150, - 132,17,187,26,109,219,12,17,132,187,150,150,219,12,17,12, - 17,132,17,187,26,109,219,12,17,132,187,150,150,219,150,12, - 17,17,132,187,187,26,109,219,12,17,132,17,17,150,219,150, - 150,17,12,132,17,187,26,109,219,12,17,132,17,150,150,219, - 150,150,17,150,132,187,187,219,109,111,183,187,132,183,225,89, - 120,244,120,244,244,120,120,244,120,120,120,120,244,36,36,36, - 244,36,36,36,36,36,36,36,36,36,36,36,105,36,105,36, - 36,36,105,36,36,105,36,105,105,105,105,105,105,36,105,36, - 105,36,105,105,36,36,105,36,105,105,36,105,36,36,36,36, - 236,207,236,236,236,58,58,240,181,83,161,161,247,83,119,236, - 240,108,108,240,83,176,189,189,161,176,76,157,161,83,161,136, - 157,176,106,170,252,240,161,136,232,240,66,161,176,77,176,83, - 66,240,240,58,240,240,240,58,58,236,58,236,236,236,181,58, - 119,119,236,236,119,236,119,119,119,89,89,236,119,119,89,119, - 119,119,119,119,119,119,119,119,119,119,89,236,236,89,89,89, - 89,89,89,236,119,236,236,119,119,89,89,119,236,236,119,119, - 119,236,119,119,58,58,236,58,58,236,236,119,58,236,236,58, - 58,58,184,236,236,236,236,236,236,58,236,58,119,58,58,58, - 236,119,58,236,236,236,236,236,236,58,58,236,236,236,119,58, - 58,236,58,58,184,159,236,58,236,58,236,159,119,159,236,159, - 119,159,119,159,119,159,119,119,159,119,119,119,119,119,108,172, - 26,187,0,109,95,42,187,219,12,17,132,219,17,17,219,150, - 150,150,17,17,17,132,26,243,219,12,17,132,219,17,12,219, - 150,150,17,17,17,12,132,26,211,219,12,17,132,219,17,12, - 219,150,150,132,17,219,12,132,26,243,219,12,17,132,219,17, - 12,219,150,150,150,17,17,17,150,26,109,219,12,17,132,219, - 17,150,219,150,150,17,17,17,17,132,26,243,219,12,17,132, - 219,12,12,219,150,150,17,17,132,17,132,26,243,219,12,17, - 132,219,17,150,219,150,150,17,17,132,17,132,26,109,219,12, - 17,132,219,12,17,219,150,150,17,17,17,17,150,26,109,219, - 12,17,132,219,17,12,219,150,150,150,17,17,12,132,26,243, - 219,12,17,132,219,17,150,219,150,17,17,17,17,17,132,26, - 109,219,12,17,132,219,17,12,219,150,150,17,17,17,17,150, - 26,109,219,17,17,132,219,17,12,219,150,150,150,17,17,17, - 132,26,243,219,12,17,132,219,17,17,219,150,150,150,17,17, - 12,132,26,243,219,17,17,132,17,17,150,219,150,150,17,17, - 17,17,132,26,243,219,12,17,132,219,17,12,219,150,150,132, - 17,17,17,132,26,109,219,12,17,132,219,17,12,219,150,132, - 150,17,17,17,150,26,109,219,12,17,132,219,12,12,219,12, - 132,150,17,17,17,132,26,109,219,12,17,132,219,17,12,219, - 12,150,17,17,17,17,187,26,243,150,26,219,132,219,225,181, - 120,244,120,248,244,244,120,244,244,120,244,36,36,120,36,36, - 36,36,244,36,36,36,36,36,36,36,36,105,36,105,105,36, - 36,105,36,105,105,105,105,105,105,36,105,105,36,105,105,36, - 105,36,105,36,105,105,105,105,36,36,36,105,36,105,36,105, - 236,181,236,236,181,236,236,236,58,58,58,108,161,106,136,252, - 83,58,119,108,108,83,136,157,77,252,232,53,161,176,136,189, - 148,83,252,76,170,161,176,136,77,247,161,136,77,147,161,161, - 83,108,83,108,240,58,119,119,119,236,236,181,236,58,236,119, - 58,236,119,119,236,119,89,89,89,89,89,119,119,119,58,236, - 58,119,58,58,58,58,58,119,89,89,236,119,119,119,119,89, - 236,89,236,119,236,119,119,89,89,236,89,89,119,119,236,119, - 119,119,119,119,58,58,58,119,236,119,236,236,236,119,58,236, - 236,58,236,58,58,58,58,236,119,236,119,236,236,236,236,236, - 119,236,58,58,58,58,58,58,58,236,89,119,236,236,236,58, - 236,58,236,58,236,236,58,58,159,236,58,159,119,159,119,159, - 58,58,159,119,159,159,143,159,119,159,159,119,119,108,108,29, - 42,183,122,111,111,42,111,42,150,17,17,17,132,150,219,12, - 219,132,12,17,132,132,26,109,26,150,17,17,17,150,132,219, - 12,17,150,12,17,132,150,26,243,42,150,17,17,17,150,132, - 219,12,17,150,12,17,17,132,26,211,26,150,17,219,17,150, - 132,219,12,17,12,17,17,132,132,26,211,26,150,17,17,17, - 150,17,219,12,17,150,132,17,132,150,26,211,26,150,17,17, - 17,132,132,219,12,17,150,17,17,132,150,26,109,26,150,17, - 17,17,150,17,219,12,17,150,150,17,132,132,26,211,26,150, - 17,17,17,132,132,219,12,17,150,12,17,132,132,26,211,26, - 150,17,17,17,132,150,219,12,17,17,150,17,132,150,26,211, - 42,150,17,17,17,150,219,219,12,150,150,12,17,166,150,26, - 211,42,150,17,219,17,150,132,219,12,17,150,150,17,132,132, - 219,211,26,150,17,17,17,150,132,219,12,219,132,132,17,132, - 150,26,109,42,150,17,17,17,150,132,219,12,17,17,150,17, - 132,150,26,211,26,150,17,17,17,150,17,219,12,17,150,12, - 17,132,150,26,109,26,150,17,219,17,150,132,219,12,17,150, - 12,17,166,150,26,211,26,150,17,219,17,150,132,219,12,17, - 132,12,17,132,132,219,211,26,150,17,17,17,132,132,219,150, - 17,17,12,17,187,150,26,211,26,150,17,219,17,150,132,219, - 150,219,150,12,17,132,150,219,211,187,187,26,132,219,225,89, - 244,244,244,244,120,120,120,36,244,120,120,244,36,244,36,244, - 36,36,36,36,36,36,36,36,36,36,105,36,105,36,105,105, - 36,105,36,105,105,36,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,36,105,105,105,105,36,36,105,36,36, - 236,236,58,236,236,181,236,58,236,181,240,119,119,108,161,136, - 148,76,252,83,83,159,161,27,193,232,148,189,232,148,189,85, - 83,161,252,136,147,189,176,76,189,149,136,148,189,136,176,161, - 66,108,108,240,240,119,58,236,240,240,58,240,119,58,236,236, - 58,236,236,181,236,119,119,236,119,119,89,89,236,119,119,236, - 58,119,119,119,119,119,236,58,236,119,89,89,89,89,119,119, - 119,119,236,119,89,89,236,119,119,119,236,89,119,119,236,119, - 58,58,58,119,119,119,58,119,236,119,236,89,207,236,236,119, - 236,236,236,236,119,236,58,236,89,236,236,236,89,89,236,236, - 119,119,236,236,236,236,236,236,236,236,236,236,236,89,207,236, - 236,119,236,119,236,236,236,236,58,58,236,119,236,236,236,58, - 58,159,58,159,236,119,119,159,119,119,119,119,119,119,108,29, - 42,187,0,111,111,183,111,26,150,17,17,17,17,17,219,150, - 12,132,132,17,26,150,26,109,26,150,219,17,17,17,17,219, - 150,17,132,132,219,26,132,26,211,26,150,219,17,17,17,17, - 219,150,219,150,17,132,26,132,26,109,26,150,17,17,17,17, - 17,219,150,132,150,17,17,26,132,26,109,26,150,17,17,17, - 132,17,219,150,17,12,17,17,26,132,26,109,26,150,17,150, - 17,17,17,219,150,17,150,17,219,26,150,26,109,26,150,17, - 17,17,132,17,219,150,17,132,17,17,26,150,26,109,26,150, - 17,17,17,17,17,219,150,17,132,132,219,26,150,26,109,26, - 150,17,17,17,17,17,219,150,132,132,17,219,26,132,26,109, - 42,150,17,17,17,150,17,219,12,219,150,17,219,26,150,26, - 109,26,150,17,17,17,17,17,219,150,17,17,17,17,26,187, - 26,211,26,150,219,17,17,17,17,219,150,12,12,17,219,26, - 132,26,211,26,150,17,17,17,17,17,219,150,132,132,132,219, - 26,132,26,109,26,150,17,150,219,150,17,219,150,219,150,132, - 219,26,150,26,109,26,150,17,17,17,17,17,219,150,219,150, - 132,219,26,150,26,109,26,150,17,17,17,17,17,219,150,17, - 132,132,219,26,187,26,109,26,150,17,150,17,17,17,219,150, - 132,132,17,132,26,132,26,109,26,150,17,17,17,17,17,219, - 150,17,132,132,219,26,187,219,109,111,187,219,132,219,225,114, - 244,248,244,244,244,244,244,120,244,120,36,120,36,36,36,36, - 36,36,36,36,36,36,36,105,36,36,105,105,105,36,105,36, - 105,36,105,105,105,105,105,36,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,36,105,105,105,105,36,105, - 181,236,236,236,58,236,236,58,58,236,119,108,108,240,159,181, - 161,136,77,77,148,136,136,136,185,157,27,189,27,27,157,52, - 161,86,83,66,136,189,77,147,189,51,189,157,232,161,83,83, - 83,66,83,83,247,161,83,83,83,240,240,184,181,236,236,119, - 89,236,236,236,89,236,236,119,89,236,119,119,119,236,119,119, - 119,58,58,58,119,236,119,236,119,236,119,119,119,119,236,89, - 119,89,119,119,119,119,119,89,89,89,119,119,236,119,119,236, - 119,119,119,58,58,119,236,119,119,236,119,236,119,89,119,119, - 119,119,236,119,236,119,236,236,236,236,89,89,236,236,89,89, - 119,236,89,236,236,119,58,119,89,236,89,89,119,236,119,89, - 89,119,119,236,119,119,119,119,119,236,119,236,119,159,236,159, - 119,236,119,159,119,159,159,236,119,159,119,159,119,119,108,29, - 122,183,0,150,111,26,95,26,17,17,150,17,150,132,219,12, - 132,12,17,219,17,187,17,243,42,12,17,150,17,150,17,219, - 12,132,17,12,219,17,187,17,243,42,12,17,150,17,150,150, - 219,12,132,17,132,219,17,187,17,243,42,12,219,150,17,150, - 150,219,12,17,17,150,219,17,187,219,243,42,12,17,150,17, - 17,17,219,12,132,132,150,219,17,187,17,109,42,12,219,17, - 17,150,132,219,12,132,17,12,219,17,187,17,243,42,12,219, - 150,17,17,17,219,12,132,12,17,219,17,187,219,243,26,17, - 17,150,17,150,150,219,12,132,17,12,219,17,187,219,243,42, - 12,17,150,17,150,17,219,12,219,12,150,219,17,187,17,243, - 26,17,17,150,17,17,17,219,150,132,17,150,17,17,187,219, - 243,42,12,219,150,17,150,132,219,12,132,150,132,219,17,12, - 219,243,42,12,17,150,17,150,17,219,12,132,132,132,17,17, - 187,219,243,42,17,17,150,17,150,150,219,12,219,12,17,219, - 17,187,219,109,26,17,17,17,17,219,150,219,12,132,17,17, - 17,17,187,17,243,42,12,219,150,17,150,150,219,12,132,12, - 17,17,17,187,219,243,42,12,219,150,17,132,150,219,12,132, - 17,12,219,17,12,219,109,26,17,219,17,17,150,17,42,12, - 17,17,132,219,17,187,219,243,42,12,219,150,17,150,12,26, - 12,132,17,17,219,17,187,17,109,187,183,26,187,183,199,89, - 120,244,120,248,120,120,120,120,36,244,120,120,36,36,244,36, - 244,36,36,36,36,36,36,36,36,36,105,36,105,105,105,105, - 36,105,36,105,105,105,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,36,105,105,36, - 236,236,181,153,181,184,236,181,184,58,181,58,181,108,108,108, - 108,108,161,106,148,189,157,157,198,189,170,157,189,170,232,118, - 27,193,193,170,77,198,189,170,189,198,170,147,176,176,176,76, - 148,147,148,136,161,83,108,240,119,236,119,119,119,236,89,236, - 181,89,236,236,89,89,89,236,119,119,236,119,119,119,119,119, - 119,119,119,119,119,119,119,119,119,236,236,236,119,119,119,236, - 119,119,89,119,236,89,207,236,236,89,119,119,89,119,119,119, - 119,119,119,119,58,119,119,119,119,236,89,236,236,89,89,119, - 89,119,236,119,119,119,236,119,119,236,236,89,119,236,236,236, - 119,119,119,119,236,119,236,119,89,236,119,89,89,89,119,236, - 89,119,236,89,236,236,119,236,119,119,119,119,119,119,236,58, - 119,236,236,119,119,236,119,119,119,119,119,119,159,108,108,142, - 78,42,162,150,111,42,111,42,17,17,17,12,17,17,219,17, - 132,17,17,17,17,187,26,150,26,17,219,12,17,150,219,219, - 132,132,17,17,17,17,187,42,150,26,17,219,12,17,17,219, - 219,17,132,17,17,219,17,187,26,150,26,17,219,12,17,17, - 219,219,132,132,17,17,17,17,187,26,150,42,17,219,12,150, - 150,219,219,132,219,17,17,17,17,187,26,150,26,17,17,12, - 17,12,219,219,132,132,132,17,17,17,187,26,150,42,17,219, - 12,150,150,219,219,132,219,150,17,219,17,187,26,150,42,17, - 219,12,17,17,219,219,132,132,17,17,17,17,187,26,150,42, - 17,219,150,17,150,219,219,150,219,17,17,17,17,187,26,150, - 42,17,219,12,150,150,219,219,132,132,17,17,219,17,187,26, - 150,26,17,219,12,17,12,219,219,132,219,17,12,219,17,187, - 26,150,26,17,219,12,17,150,219,219,17,17,17,17,17,17, - 187,26,150,42,17,219,12,17,17,219,219,150,17,17,17,17, - 17,187,26,150,42,17,17,12,150,17,17,219,132,132,17,17, - 219,17,187,26,150,26,17,219,12,17,17,219,219,17,132,17, - 17,17,17,187,26,150,26,17,17,12,12,17,219,219,17,150, - 17,17,17,17,187,26,150,42,12,17,12,17,150,219,219,150, - 132,17,17,219,17,12,26,150,26,17,219,12,17,150,219,219, - 150,132,12,17,17,17,17,26,150,26,183,187,187,183,199,89, - 36,244,120,120,120,120,120,244,36,244,36,120,36,36,36,105, - 36,36,36,36,36,105,105,36,105,36,105,36,105,105,36,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,105,208,105, - 208,105,105,105,105,105,105,36,105,105,36,105,105,36,105,105, - 153,153,153,181,236,153,184,58,58,58,58,240,108,108,108,83, - 108,161,108,114,83,252,136,189,6,189,157,53,157,157,170,170, - 231,195,65,65,77,170,189,189,157,157,77,77,157,157,193,189, - 148,106,106,161,161,161,83,240,240,119,236,119,236,89,89,89, - 207,236,89,89,236,89,236,119,89,89,119,236,119,236,119,58, - 119,119,119,58,119,119,119,236,236,119,119,119,236,119,119,119, - 119,89,119,236,119,236,236,89,119,119,89,119,119,236,119,119, - 58,119,119,119,119,119,236,119,236,119,119,119,119,236,119,89, - 119,89,119,236,236,89,119,89,89,89,89,236,89,119,89,119, - 89,89,89,119,119,89,89,236,119,119,89,236,236,236,236,89, - 119,89,119,89,119,119,89,119,119,236,119,119,119,58,119,119, - 159,119,119,159,236,119,119,89,159,119,119,119,119,119,108,29, - 162,187,0,224,126,183,141,219,219,26,17,12,17,17,219,132, - 17,17,219,183,17,17,26,150,219,17,26,17,17,12,17,219, - 17,17,17,219,183,12,132,26,150,219,17,26,17,17,12,17, - 219,132,12,17,219,219,17,17,26,150,219,17,26,17,17,12, - 17,219,17,17,219,132,219,17,12,26,150,219,17,26,17,17, - 12,17,219,17,17,17,132,219,17,17,26,150,219,219,26,17, - 17,12,17,219,17,17,219,132,219,17,17,26,150,219,17,26, - 17,17,17,17,219,219,12,219,132,219,17,12,26,150,219,17, - 26,17,17,12,17,219,17,17,17,132,219,17,12,26,150,219, - 17,26,26,17,12,17,219,17,17,17,132,219,17,17,26,150, - 219,17,26,17,17,12,17,26,219,12,219,132,219,17,12,26, - 150,219,17,26,17,17,17,17,219,17,12,219,132,219,17,12, - 42,150,219,17,26,17,17,12,17,219,132,12,219,132,219,17, - 12,26,150,219,17,26,17,17,12,17,219,17,12,219,132,219, - 17,12,26,150,219,219,26,17,17,17,17,219,17,12,219,132, - 219,17,17,26,150,219,17,26,17,17,12,17,219,150,17,219, - 132,219,17,12,26,150,219,219,26,17,17,12,17,219,132,17, - 17,132,219,17,12,26,150,219,219,26,17,17,12,17,219,219, - 12,17,219,219,17,187,26,150,219,17,26,17,17,17,17,219, - 17,17,219,132,219,17,187,26,109,111,221,187,166,0,199,89, - 244,120,244,120,120,120,120,120,120,36,120,120,36,36,36,36, - 36,36,36,36,36,36,105,105,36,105,105,36,105,105,105,105, - 36,105,105,105,105,105,105,105,105,105,105,208,105,105,208,105, - 105,208,105,105,105,105,105,105,105,105,36,105,105,105,36,105, - 58,181,153,184,181,236,184,181,240,58,240,181,108,108,108,108, - 83,161,202,190,133,87,86,52,170,157,157,189,157,157,157,195, - 93,249,249,41,11,189,157,170,157,170,157,170,118,30,156,252, - 252,161,161,247,108,236,140,161,108,240,236,236,236,236,236,236, - 89,89,89,89,236,89,236,236,119,119,119,89,119,236,89,119, - 119,119,119,58,58,58,119,236,236,119,119,119,89,236,181,89, - 119,119,119,119,181,89,236,236,236,119,89,119,119,236,236,89, - 58,119,119,119,119,119,58,119,236,236,89,236,119,236,89,89, - 89,89,119,119,236,89,236,236,236,89,89,236,89,89,89,119, - 89,89,89,119,119,119,119,236,89,236,89,89,89,89,236,89, - 89,89,119,89,119,119,236,119,119,236,119,236,119,119,119,119, - 119,119,236,119,119,159,119,119,119,119,119,119,119,119,108,47, - 183,187,122,224,187,94,111,122,42,122,0,0,122,42,0,122, - 122,122,122,122,42,42,42,187,0,122,122,122,0,122,42,0, - 122,42,122,122,0,42,42,42,187,0,122,122,122,0,122,42, - 0,122,122,122,122,122,42,42,42,187,0,42,122,122,0,122, - 42,122,122,122,122,0,122,42,42,42,187,0,42,122,0,0, - 122,42,122,122,122,122,0,122,42,42,42,187,0,42,122,122, - 0,122,42,122,122,42,0,0,122,42,42,42,187,0,42,122, - 122,0,122,42,122,122,42,0,122,122,42,78,42,187,122,42, - 122,122,0,122,122,122,122,122,122,0,122,42,42,42,187,0, - 42,122,122,0,122,42,122,122,122,122,0,122,42,42,42,187, - 0,122,122,122,0,122,42,122,122,122,122,0,122,42,42,42, - 187,122,42,122,122,0,122,42,122,122,122,122,0,122,183,42, - 42,187,0,122,122,122,0,122,42,0,122,122,122,0,122,42, - 42,42,187,122,42,122,122,0,122,42,0,122,122,122,0,122, - 42,42,42,187,122,42,122,122,0,122,42,0,122,122,122,122, - 122,42,42,42,187,0,42,122,122,0,122,42,0,122,122,122, - 0,122,42,42,42,187,0,42,122,122,0,122,42,0,122,122, - 122,0,122,183,42,42,187,122,42,122,122,0,122,42,122,122, - 122,122,122,122,42,42,42,187,0,42,122,122,0,122,42,0, - 122,122,122,0,122,42,42,42,187,26,122,78,183,122,192,114, - 120,120,248,120,120,120,120,120,244,120,36,36,36,36,36,36, - 36,105,36,105,36,105,36,105,105,105,36,105,105,105,105,105, - 105,105,105,36,105,105,105,105,105,208,105,105,208,208,105,105, - 105,105,105,105,105,105,105,105,36,36,36,36,36,36,105,36, - 58,236,58,240,184,240,58,240,181,108,240,108,108,108,108,108, - 83,161,173,23,185,53,165,231,189,170,53,157,53,157,189,170, - 9,11,13,195,204,157,157,157,157,170,157,189,77,146,14,91, - 59,35,59,47,214,64,139,125,161,108,58,119,119,207,207,89, - 89,207,89,236,89,236,236,119,236,89,89,119,119,119,119,119, - 119,119,236,119,119,119,119,119,119,89,89,236,119,119,236,119, - 119,119,119,89,236,236,236,89,236,236,119,89,236,119,119,119, - 119,119,119,119,58,58,119,119,89,119,236,119,236,89,119,89, - 119,119,89,89,119,119,89,89,89,89,89,89,236,236,89,89, - 119,119,89,89,89,236,236,89,236,89,89,89,89,236,89,236, - 119,119,89,119,89,89,119,89,89,119,236,119,89,89,236,119, - 159,119,119,119,89,236,119,119,119,119,119,119,119,119,108,34, - 122,162,0,219,122,0,183,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,42,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,42,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,42,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,42,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 42,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,42,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,42,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,122,162,0,0,0,0,199,119, - 120,120,120,120,120,120,120,120,36,120,36,36,36,36,36,36, - 36,36,36,105,36,105,105,105,36,105,105,36,105,105,105,36, - 105,105,105,105,105,105,105,105,36,208,208,105,105,208,105,208, - 105,105,105,105,105,105,105,36,36,36,36,36,36,36,36,36, - 240,181,58,240,181,240,58,240,240,108,108,119,108,108,161,252, - 136,189,198,195,118,9,9,118,52,198,189,170,157,157,204,90, - 170,53,6,6,65,195,77,53,170,189,194,198,189,32,198,156, - 245,235,234,152,133,245,245,8,199,108,83,58,181,89,89,207, - 89,89,89,236,236,119,236,119,119,119,236,236,119,119,236,119, - 119,119,119,236,119,119,119,89,236,119,119,236,89,119,89,89, - 89,89,119,236,236,236,236,236,119,236,119,119,119,89,119,89, - 119,119,236,119,119,236,119,58,89,119,89,119,119,236,119,89, - 89,119,236,89,236,119,236,89,236,89,89,89,89,207,236,89, - 89,119,119,236,119,89,119,89,236,89,89,89,89,89,207,89, - 89,119,89,119,119,89,236,119,89,89,119,119,119,119,119,119, - 236,119,119,119,119,236,119,119,119,119,119,119,119,119,108,47, - 42,187,162,187,187,0,183,0,42,122,42,122,122,42,42,122, - 122,122,122,42,243,219,26,12,122,42,122,42,122,122,42,122, - 122,122,122,42,78,243,219,26,12,122,42,122,42,122,42,122, - 42,122,42,122,122,42,243,219,26,17,0,42,122,42,122,122, - 42,122,42,122,122,122,42,243,219,26,17,0,42,42,122,122, - 42,122,42,122,122,122,122,42,243,219,26,12,0,42,122,42, - 122,122,42,122,122,42,122,122,42,243,219,26,17,0,42,122, - 42,122,122,42,122,122,122,122,122,42,12,219,26,17,0,42, - 122,42,122,42,122,42,122,122,122,122,42,243,219,26,12,0, - 42,42,122,122,42,122,42,122,122,122,122,42,243,219,26,12, - 122,42,122,42,122,122,42,122,42,122,122,122,42,243,219,26, - 17,0,42,122,42,122,122,42,122,42,122,122,122,42,12,219, - 26,12,122,42,122,42,122,122,42,42,122,122,42,122,122,243, - 219,26,17,0,42,122,42,122,42,122,42,122,42,122,122,42, - 243,219,26,17,0,42,122,42,122,122,42,42,122,122,122,122, - 42,243,219,26,17,0,42,122,42,122,122,42,122,42,122,122, - 122,42,243,219,26,17,0,42,122,42,122,122,42,122,42,122, - 122,122,42,12,219,26,17,0,42,122,42,122,122,42,122,42, - 122,122,122,42,243,219,26,17,0,42,122,42,122,122,42,42, - 122,42,122,122,42,243,219,26,12,42,42,26,187,42,225,89, - 120,120,120,120,120,120,36,120,120,120,36,36,36,36,36,36, - 36,105,36,36,105,36,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,105,208,105,208,105,105,105,105,105,105,105, - 105,105,105,105,105,36,36,36,36,105,36,36,36,36,36,36, - 184,181,58,58,108,181,240,58,119,108,83,161,106,136,136,76, - 136,106,106,161,228,22,206,220,118,198,170,128,157,189,185,6, - 138,23,185,185,90,195,77,157,77,157,77,85,13,250,195,170, - 204,118,228,64,67,99,224,211,7,234,210,83,240,89,236,236, - 89,89,236,89,236,89,236,236,236,236,119,119,236,236,119,236, - 236,236,119,119,119,236,236,119,119,236,89,236,119,89,119,119, - 236,236,236,236,119,236,119,119,236,89,236,89,89,119,236,119, - 236,236,119,119,119,119,236,119,119,89,119,89,236,236,236,89, - 236,89,89,236,89,89,89,236,89,89,89,89,207,89,89,119, - 119,89,89,89,89,119,89,89,207,207,89,89,89,207,89,89, - 119,89,119,89,89,119,119,89,89,119,119,119,119,119,236,89, - 119,119,236,119,119,119,119,119,119,119,119,119,119,119,108,142, - 187,111,183,111,224,122,111,42,49,139,139,8,8,211,8,139, - 8,8,139,139,101,17,26,12,42,49,139,139,8,8,211,8, - 139,8,8,139,139,101,17,26,12,42,49,139,139,8,139,8, - 8,139,8,8,139,139,101,17,26,12,42,49,139,139,8,8, - 211,8,139,8,8,139,139,101,17,26,12,42,49,139,8,8, - 139,8,8,139,8,8,139,139,101,17,26,12,42,49,139,139, - 8,8,211,8,139,8,8,139,139,101,17,26,12,42,49,139, - 139,8,8,211,8,139,8,8,139,139,49,12,26,12,42,49, - 139,139,8,139,8,8,139,8,8,139,139,101,17,26,12,42, - 49,139,8,8,139,8,8,139,8,8,139,139,101,17,26,12, - 42,49,139,8,8,139,211,8,139,8,8,139,139,101,17,26, - 12,42,49,139,139,8,8,8,139,211,8,8,139,139,49,17, - 26,12,42,49,139,139,8,8,211,8,139,8,8,139,139,101, - 17,26,12,42,49,139,139,8,139,8,8,139,8,8,139,139, - 101,17,26,12,42,49,139,139,8,8,211,8,139,8,8,139, - 139,101,17,26,12,42,49,139,139,8,8,8,139,211,8,8, - 139,139,101,17,26,12,42,49,139,139,8,8,8,139,211,8, - 8,139,139,49,17,26,12,42,49,139,139,8,139,211,8,139, - 8,8,139,139,101,17,26,12,42,49,139,139,8,139,211,8, - 139,8,8,139,139,101,17,26,12,183,26,12,141,219,199,114, - 25,120,120,120,120,36,120,120,120,36,120,36,36,36,36,36, - 36,36,36,36,105,105,105,105,105,105,36,105,105,105,105,105, - 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, - 105,105,105,105,105,36,36,36,36,36,36,36,36,36,36,36, - 240,240,240,240,108,108,108,83,161,161,176,252,161,161,83,83, - 83,83,161,252,136,161,168,41,11,231,65,90,6,195,27,193, - 23,233,87,161,19,116,170,90,128,193,116,107,128,72,83,161, - 167,216,11,11,41,14,162,0,141,235,12,234,83,119,89,207, - 236,207,89,89,236,236,89,236,119,89,236,119,58,236,119,58, - 119,119,119,236,58,119,236,89,89,236,119,236,236,236,89,89, - 89,89,89,236,119,236,236,89,119,89,119,119,236,119,236,119, - 119,236,236,236,119,58,236,236,236,236,236,236,119,236,119,119, - 89,89,89,119,119,119,89,89,236,207,89,89,89,89,207,89, - 89,89,89,236,89,236,236,89,89,236,89,89,89,89,236,89, - 89,89,89,89,89,89,236,119,89,89,89,89,119,89,119,119, - 89,119,89,236,89,89,89,89,119,89,89,119,119,119,108,142, - 187,111,183,111,224,78,132,42,101,8,211,211,8,211,8,8, - 211,8,139,8,67,150,150,243,42,101,8,211,211,8,211,8, - 8,211,8,8,211,101,150,150,243,42,101,8,211,8,211,8, - 8,8,211,8,211,139,101,150,150,211,42,101,8,211,211,8, - 211,8,8,211,8,139,8,67,150,150,211,42,101,8,139,8, - 211,8,8,211,8,8,139,8,67,150,150,243,42,101,8,211, - 211,8,211,8,8,211,8,211,139,101,150,150,211,42,101,8, - 211,211,8,211,8,8,211,8,139,8,139,150,150,211,42,101, - 8,211,8,211,8,8,211,8,8,139,8,67,150,150,243,42, - 101,8,139,8,211,8,8,211,8,8,139,8,67,150,150,243, - 42,101,8,139,8,8,211,8,8,211,8,139,8,67,150,150, - 211,42,101,8,211,211,211,8,8,211,8,8,8,211,101,150, - 150,243,42,101,8,211,211,8,211,8,8,211,8,8,139,101, - 150,150,211,42,101,8,211,8,211,8,8,8,211,8,211,139, - 101,150,150,243,42,101,8,211,211,8,211,8,8,211,8,139, - 8,67,150,150,211,42,101,8,211,211,211,8,8,211,8,8, - 139,8,67,150,150,211,42,101,8,211,211,211,8,8,211,8, - 8,8,211,101,150,150,243,42,101,8,211,8,8,8,8,211, - 8,8,139,8,67,150,150,211,42,101,8,211,8,8,8,8, - 8,211,8,211,139,101,150,150,109,183,187,219,141,42,192,114, - 120,120,120,120,120,120,36,36,120,36,120,36,36,36,105,105, - 36,105,36,105,36,105,36,105,105,105,105,36,105,105,36,105, - 105,105,105,105,105,105,105,105,208,105,208,105,105,105,105,105, - 105,36,105,36,36,36,36,36,36,36,36,36,36,36,36,36, - 184,240,108,108,83,247,83,247,83,108,240,108,108,108,83,83, - 83,161,161,252,106,136,136,23,116,11,167,116,165,90,43,9, - 193,250,167,220,23,128,19,43,116,157,11,23,231,13,221,104, - 50,50,50,92,167,216,41,113,50,219,8,8,217,108,119,236, - 236,89,207,89,236,119,58,119,236,58,119,119,119,119,58,119, - 58,236,236,58,119,236,119,236,236,89,236,236,119,89,236,119, - 236,236,236,89,89,236,236,58,236,236,236,236,119,236,119,236, - 236,119,119,119,236,236,119,119,236,89,89,119,89,89,236,89, - 236,236,119,89,89,89,89,89,207,89,207,207,207,207,89,89, - 89,89,236,89,89,119,89,89,89,207,207,207,207,207,207,207, - 89,89,89,89,89,89,89,89,89,89,119,119,89,119,89,236, - 89,89,119,119,236,236,89,119,89,119,119,119,119,119,108,34, - 219,111,162,111,224,42,111,122,49,8,211,211,8,211,8,211, - 8,211,12,139,8,150,17,109,42,101,8,211,211,8,211,211, - 8,211,211,8,8,139,150,17,109,42,101,8,211,8,211,211, - 109,8,211,8,8,8,139,150,17,243,122,49,8,211,211,8, - 211,211,8,211,8,8,8,139,150,17,243,122,49,8,211,8, - 211,211,8,211,211,8,8,211,8,150,17,211,122,49,8,211, - 211,8,211,211,8,211,8,8,8,139,150,17,243,122,49,8, - 211,211,8,211,8,211,8,211,8,8,67,150,17,243,122,49, - 8,211,8,211,211,8,211,211,8,8,211,8,150,17,211,42, - 101,8,211,211,211,8,211,211,8,211,12,139,8,150,17,211, - 42,101,211,8,211,8,211,211,8,211,8,8,211,8,150,17, - 243,122,49,8,211,8,211,8,211,211,8,211,8,139,8,150, - 17,211,42,101,8,211,8,211,8,211,8,211,211,8,8,139, - 150,17,243,122,49,8,211,8,211,211,109,8,211,8,8,8, - 139,150,17,211,122,49,8,211,211,8,211,8,211,8,211,8, - 8,139,150,17,243,42,101,211,8,211,8,211,8,211,211,8, - 8,8,139,150,17,243,122,49,8,211,8,211,8,211,8,211, - 211,8,8,8,150,17,211,122,49,8,211,8,211,211,8,211, - 211,8,8,8,139,150,17,243,122,49,8,211,8,211,211,109, - 8,211,8,8,8,139,150,17,109,187,42,166,187,78,80,114, - 120,120,120,25,120,36,120,120,36,36,217,36,36,105,36,36, - 36,36,105,36,105,105,105,105,105,105,105,36,105,105,36,105, - 105,36,105,105,105,105,105,105,105,105,105,105,105,105,36,36, - 36,36,105,36,36,36,36,36,36,36,36,36,36,36,36,36, - 240,240,240,240,240,240,240,240,240,240,240,108,83,108,83,83, - 161,161,161,161,161,161,136,189,189,31,73,138,6,128,249,138, - 157,193,148,176,27,198,237,216,30,53,87,138,232,32,43,143, - 229,15,29,0,0,50,14,31,249,14,162,26,49,58,119,236, - 236,89,119,119,89,119,119,119,119,119,236,119,58,119,119,119, - 119,58,119,236,58,236,119,236,236,89,89,236,236,119,89,119, - 89,89,236,236,236,89,119,58,119,236,119,236,119,236,119,119, - 119,236,236,119,119,236,236,119,236,236,89,236,119,89,236,236, - 119,89,236,236,236,89,207,89,89,89,89,89,89,207,207,89, - 236,119,89,236,89,119,89,89,89,89,89,89,89,89,89,89, - 89,89,89,89,89,89,89,89,89,89,89,119,89,89,119,119, - 236,89,119,119,236,236,89,119,119,119,89,119,119,119,108,142, - 187,111,122,187,224,78,111,122,101,211,211,8,211,109,187,211, - 211,211,211,139,139,243,17,243,122,101,211,211,8,211,187,211, - 8,211,8,109,211,139,150,17,243,122,101,139,211,211,8,211, - 187,211,187,211,187,139,139,150,17,8,122,139,211,211,8,211, - 187,211,187,211,187,139,8,139,243,219,211,122,139,211,211,211, - 109,8,109,109,187,8,109,139,139,243,219,8,122,139,211,211, - 8,211,187,211,187,211,187,139,8,67,12,26,211,122,139,211, - 211,8,211,211,187,211,109,187,139,187,67,12,26,211,122,139, - 139,211,211,187,211,8,109,187,211,187,139,139,243,219,211,122, - 101,211,211,211,187,211,187,211,8,211,211,139,139,243,219,243, - 122,101,211,211,211,109,187,8,109,187,211,187,139,139,243,26, - 211,122,139,211,211,211,187,211,8,109,8,109,187,139,139,243, - 219,8,122,101,211,211,211,109,187,211,211,187,8,211,211,67, - 12,26,211,122,139,139,211,211,8,211,187,211,187,8,109,211, - 67,12,26,8,122,101,211,211,8,211,109,187,211,109,187,139, - 8,139,243,219,8,122,101,211,211,211,187,211,8,109,187,211, - 109,8,139,243,219,8,122,101,211,211,211,187,211,211,187,211, - 8,109,139,139,243,26,8,122,139,139,211,211,187,211,187,211, - 187,211,109,8,139,243,26,211,122,139,139,211,211,187,211,187, - 211,187,211,187,8,67,12,17,182,187,42,187,111,42,80,39, - 120,120,244,25,25,36,25,36,25,120,36,217,36,105,217,36, - 105,36,105,36,36,105,36,105,36,105,36,105,105,36,105,105, - 105,105,105,105,105,105,105,105,105,105,208,105,36,105,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, - 240,181,240,240,240,240,240,119,108,108,108,240,108,83,83,83, - 108,83,83,83,83,161,106,189,136,106,161,86,195,6,10,129, - 189,147,189,250,195,216,137,79,216,6,220,22,237,138,6,167, - 251,226,226,200,203,0,0,0,0,22,24,129,127,240,58,89, - 236,119,236,89,119,236,236,58,236,119,119,236,119,236,236,119, - 58,119,119,58,119,58,236,119,89,119,119,89,89,89,89,89, - 89,236,89,89,119,119,236,119,58,119,236,119,236,119,236,236, - 236,119,119,236,236,58,58,236,207,89,89,236,236,236,89,119, - 89,236,89,119,89,89,89,89,207,207,207,207,89,89,89,236, - 89,89,89,89,89,89,89,207,89,89,207,207,207,207,207,207, - 89,89,89,89,89,236,89,89,89,89,119,89,119,89,89,89, - 119,236,119,236,119,119,89,119,119,119,119,89,119,119,108,29, - 219,132,221,187,224,122,59,42,101,211,8,91,211,211,8,211, - 8,187,8,8,8,12,26,211,26,101,139,91,211,211,211,211, - 187,109,8,211,8,67,12,26,211,42,101,211,211,91,8,211, - 211,8,139,8,139,8,67,12,26,182,42,101,139,91,211,211, - 211,8,139,8,109,211,211,139,12,26,211,42,101,211,211,8, - 211,91,8,211,211,8,211,8,67,12,26,182,42,101,139,91, - 211,211,211,8,139,8,211,109,8,139,150,17,8,26,101,211, - 139,91,8,211,211,8,211,8,139,8,139,150,17,8,42,101, - 211,8,211,211,211,109,8,211,8,139,8,67,12,26,243,26, - 101,211,211,211,8,211,211,211,8,187,109,8,139,12,26,211, - 42,101,139,91,211,211,211,211,8,211,8,139,8,67,12,17, - 8,42,101,211,211,211,211,211,211,187,211,8,139,8,67,12, - 26,182,42,101,139,91,211,211,211,8,211,211,8,211,8,139, - 150,17,8,42,101,211,211,91,211,211,8,211,211,211,8,8, - 139,150,17,182,42,101,211,8,91,211,211,8,211,8,109,8, - 211,139,12,26,182,26,101,211,8,211,211,91,109,8,211,8, - 211,211,139,12,26,182,42,101,211,211,211,8,211,211,8,211, - 187,211,211,67,12,17,182,42,101,211,211,211,8,211,211,8, - 211,8,211,211,139,12,17,8,42,101,211,211,211,8,211,139, - 8,139,8,139,211,139,150,26,243,187,183,187,215,162,80,114, - 25,120,120,120,244,120,120,25,120,36,36,36,36,36,36,36, - 36,217,36,36,217,36,105,105,36,36,105,36,105,36,105,36, - 36,105,36,105,105,105,105,105,105,105,105,36,36,36,36,105, - 36,36,36,36,36,36,36,36,36,36,36,36,36,217,217,105, - 240,58,240,240,181,240,240,240,119,119,108,240,240,108,108,108, - 108,83,83,161,161,161,148,136,83,252,252,136,189,193,159,134, - 136,136,147,9,138,206,73,190,249,19,62,22,10,137,249,93, - 92,22,14,14,35,42,183,133,127,83,252,106,252,83,240,119, - 236,119,236,236,119,58,236,58,236,119,119,119,119,119,119,119, - 119,236,119,236,119,58,236,119,89,236,236,119,236,89,207,236, - 89,236,236,89,236,119,89,236,236,119,236,89,236,119,119,119, - 119,236,119,119,236,236,119,119,236,236,89,89,236,236,89,236, - 89,236,89,89,236,89,89,89,89,89,89,207,89,89,89,89, - 89,119,236,89,89,119,119,89,207,89,89,89,89,89,89,207, - 89,207,89,236,119,89,89,89,89,89,119,89,119,89,119,236, - 119,89,119,89,236,119,119,89,119,119,159,119,119,119,108,29, - 122,187,0,187,111,122,109,122,101,139,211,211,8,91,8,211, - 211,211,211,139,67,150,17,8,122,101,182,139,8,211,91,8, - 211,8,211,211,91,67,150,17,8,122,101,139,211,8,211,211, - 187,8,109,187,139,91,67,150,26,8,122,101,182,139,8,211, - 91,8,109,8,109,8,8,67,150,17,8,122,101,139,211,91, - 139,8,211,109,187,211,211,91,67,150,26,8,122,101,182,139, - 8,211,91,8,109,187,211,8,8,67,150,17,243,122,101,139, - 211,8,211,91,8,109,109,187,139,8,67,150,17,243,122,101, - 139,211,211,211,91,8,211,187,139,109,91,67,150,12,243,122, - 101,139,211,211,211,91,8,211,211,211,8,8,67,150,17,8, - 122,101,182,139,8,211,91,8,211,211,187,139,91,67,150,17, - 243,122,101,139,211,91,8,91,8,211,8,109,109,91,67,150, - 26,8,122,101,182,139,8,211,91,8,109,187,211,211,8,67, - 150,17,243,122,101,139,211,8,211,91,8,187,211,8,211,8, - 67,150,26,8,162,101,139,139,211,8,91,8,211,8,109,211, - 8,67,150,26,8,122,101,139,211,211,139,8,211,187,211,211, - 211,8,67,150,26,8,122,101,139,211,91,211,211,91,8,139, - 8,211,91,67,150,26,243,122,101,139,211,91,211,211,8,109, - 109,8,211,8,67,150,17,243,122,101,139,211,91,211,8,111, - 8,211,187,139,8,139,150,26,141,187,56,17,219,162,202,114, - 120,120,244,120,25,120,244,120,120,25,120,36,36,36,36,36, - 36,105,36,36,36,36,36,105,36,105,36,36,36,105,36,105, - 36,105,36,105,36,105,105,105,105,105,105,36,36,36,36,36, - 105,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, - 58,58,181,240,108,181,240,58,240,119,240,119,108,240,108,108, - 108,83,83,83,161,136,136,83,161,161,83,252,232,157,136,106, - 106,106,148,185,176,161,38,22,233,77,179,21,143,72,21,149, - 13,120,38,38,38,143,83,136,252,161,108,108,184,240,58,58, - 58,58,119,119,236,119,119,119,58,58,58,236,119,58,58,236, - 236,58,58,58,236,236,119,236,236,236,119,89,89,207,89,89, - 207,89,89,89,119,89,236,236,119,236,119,119,236,236,89,236, - 236,119,236,236,119,119,236,236,89,89,236,236,119,89,236,236, - 236,89,236,119,119,119,89,236,89,207,89,89,89,236,89,89, - 236,207,89,236,119,89,89,89,89,236,207,89,89,119,119,89, - 89,89,89,89,89,236,119,236,89,89,89,89,89,89,236,89, - 236,119,236,119,119,236,89,89,89,119,119,89,119,119,108,29, - 26,126,221,187,224,42,224,42,101,139,8,211,211,211,109,8, - 187,109,8,211,139,150,17,211,42,101,8,211,8,211,8,211, - 211,187,211,8,8,67,150,17,243,42,139,139,8,91,211,139, - 187,211,8,211,8,8,67,150,17,211,42,101,211,8,211,8, - 139,187,211,187,211,211,211,139,150,17,243,42,101,211,8,211, - 8,211,187,211,8,211,8,8,67,150,17,211,42,101,211,8, - 211,8,211,109,8,211,211,211,211,139,187,17,211,42,101,211, - 8,211,8,139,187,211,8,139,187,211,139,187,17,211,42,101, - 109,211,8,211,8,211,8,211,8,8,211,67,150,219,211,42, - 101,8,211,211,8,211,109,8,187,211,211,211,67,132,17,8, - 42,101,211,8,211,8,211,8,109,8,211,8,243,67,132,17, - 211,42,101,8,139,211,8,139,8,211,187,211,8,8,67,150, - 17,8,42,101,8,211,8,211,211,8,211,8,187,211,211,139, - 187,17,243,42,139,211,8,8,211,139,8,211,211,187,109,211, - 139,187,17,211,42,101,211,8,211,211,139,211,187,109,8,211, - 211,139,150,17,211,42,101,211,211,8,8,211,8,211,8,109, - 8,211,139,150,17,211,42,101,8,211,8,211,8,243,211,187, - 211,8,8,67,150,17,243,42,101,8,139,8,211,211,187,211, - 211,187,109,211,139,132,17,243,42,101,8,211,8,211,139,187, - 211,8,211,8,211,67,150,12,243,166,183,17,219,0,57,39, - 244,120,120,120,244,120,120,120,25,244,36,120,36,36,120,36, - 120,36,36,36,36,36,36,36,36,36,36,105,36,36,36,105, - 36,36,105,36,105,105,105,105,105,105,36,36,36,36,36,36, - 105,36,36,36,36,36,36,36,36,36,36,105,36,105,36,105, - 58,240,58,184,240,240,240,181,240,119,240,119,240,119,108,108, - 108,108,108,83,252,232,161,83,161,161,83,161,106,189,176,161, - 106,106,136,106,148,189,144,237,206,157,136,106,252,106,106,252, - 147,148,252,106,252,252,252,83,108,108,108,119,240,240,58,240, - 119,119,236,119,236,58,119,119,236,236,119,58,119,236,119,58, - 58,236,119,58,119,236,58,119,119,236,236,236,119,89,207,89, - 207,236,89,89,236,119,119,236,119,119,58,119,119,58,119,119, - 236,236,119,236,159,119,159,159,236,119,119,236,58,236,236,89, - 207,207,89,89,89,236,89,236,89,236,119,119,89,236,89,89, - 89,207,89,89,236,89,236,236,89,89,236,236,89,89,236,236, - 236,236,89,89,119,89,119,89,119,89,89,119,119,119,119,119, - 236,119,89,89,119,119,119,119,89,119,119,89,119,119,108,29, - 42,187,0,187,163,78,224,122,101,139,139,211,211,139,109,139, - 211,8,211,8,139,150,17,243,122,101,139,211,211,211,211,211, - 211,211,211,8,8,139,150,17,109,122,101,139,211,139,8,139, - 211,211,211,211,211,8,139,150,17,243,122,101,139,211,211,211, - 139,211,139,211,8,211,8,139,150,17,109,122,101,139,139,139, - 211,211,211,211,211,211,211,8,67,132,17,243,122,101,139,211, - 211,211,139,211,211,211,109,8,8,67,132,17,109,122,101,139, - 139,211,211,139,211,211,8,211,211,8,67,150,219,109,122,101, - 139,211,211,211,211,109,211,109,211,8,8,67,132,17,109,122, - 101,139,211,211,211,139,109,211,211,211,8,8,139,150,17,243, - 122,101,139,211,211,139,211,211,211,211,211,211,8,139,150,17, - 243,122,101,139,139,8,211,211,211,211,211,211,211,8,139,150, - 17,109,122,101,139,211,211,139,211,211,211,139,211,211,8,67, - 132,12,109,122,101,139,139,211,211,139,109,211,139,211,8,8, - 67,150,17,243,122,101,139,139,211,211,139,109,211,211,109,211, - 8,67,132,17,243,122,101,139,211,211,211,211,109,211,211,211, - 211,8,139,150,17,109,122,101,139,139,211,211,139,211,139,211, - 8,211,8,139,150,17,109,122,101,139,211,211,8,211,211,211, - 139,211,8,8,139,150,12,109,122,101,139,139,211,8,139,211, - 211,211,109,211,8,139,150,26,243,166,42,219,219,0,57,114, - 248,120,120,120,120,120,120,244,120,120,120,120,120,36,120,36, - 36,36,120,36,120,36,36,36,36,36,36,36,36,36,105,36, - 36,36,105,36,36,105,36,105,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,105,36,36, - 58,119,240,184,181,58,58,240,58,181,108,119,108,108,108,108, - 108,108,83,83,106,161,83,161,83,161,83,161,176,27,161,161, - 176,136,161,161,252,148,87,11,135,189,136,161,83,161,83,83, - 161,106,161,108,83,83,108,240,108,108,108,108,108,240,119,58, - 181,119,119,119,58,119,58,58,58,119,58,119,119,119,58,119, - 119,119,58,119,58,58,119,58,236,119,119,236,236,236,89,89, - 89,89,236,89,119,89,236,119,236,236,236,58,236,236,236,236, - 119,159,236,159,236,236,236,236,236,236,236,119,236,236,119,236, - 236,89,89,236,89,119,236,89,119,89,236,89,236,89,89,207, - 89,89,207,207,89,89,119,119,236,236,236,119,236,236,119,89, - 119,236,119,236,89,89,89,119,89,89,119,89,89,89,89,89, - 89,89,236,119,89,89,119,89,89,89,89,236,119,119,108,29, - 42,163,0,26,224,78,59,78,67,211,211,8,139,8,211,109, - 211,109,211,211,67,132,219,211,122,49,211,139,211,211,211,109, - 211,211,211,211,211,67,132,219,211,122,67,139,139,8,211,211, - 211,211,211,109,211,8,67,132,219,211,122,49,211,211,211,211, - 211,211,109,211,8,211,211,67,132,219,211,78,67,211,211,8, - 211,139,91,211,211,8,211,211,8,132,219,211,122,49,211,211, - 8,139,8,61,109,211,211,211,211,8,132,26,211,78,67,211, - 211,8,139,8,91,211,211,211,211,8,139,132,26,211,42,139, - 139,211,211,211,211,211,109,211,211,211,211,139,17,26,211,78, - 49,211,211,8,139,8,91,211,211,211,211,211,67,132,219,211, - 122,49,211,211,139,8,211,91,211,187,211,211,8,67,132,26, - 211,78,49,211,211,8,139,211,61,211,211,8,211,211,67,132, - 219,211,78,49,211,211,139,8,211,91,109,8,211,211,8,139, - 132,26,211,78,67,211,211,211,211,211,91,109,8,211,211,211, - 8,132,219,211,122,67,211,211,211,8,8,211,211,211,8,211, - 211,139,132,219,211,122,49,211,211,211,211,211,91,211,109,8, - 211,211,67,132,219,211,78,49,211,211,8,211,211,109,109,211, - 211,211,211,67,132,26,211,122,49,211,139,211,211,211,91,211, - 8,211,211,211,67,132,26,211,78,49,211,211,211,211,211,211, - 109,211,8,211,211,67,150,219,211,187,183,219,183,0,57,89, - 244,248,248,244,120,244,120,120,120,120,120,120,120,120,120,36, - 244,120,36,244,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,105,244,36,36,36,36,36, - 105,36,36,36,36,36,36,36,36,105,36,105,217,36,217,105, - 58,58,240,58,58,240,58,240,240,119,240,181,58,240,108,108, - 108,108,83,176,161,108,83,83,83,83,161,83,161,148,106,161, - 176,161,161,83,161,252,250,116,137,136,106,161,161,83,161,83, - 83,161,252,161,108,108,108,108,108,240,119,108,119,108,119,184, - 58,58,58,119,236,119,58,58,58,119,58,58,240,119,119,58, - 58,58,58,119,58,58,119,119,58,58,119,236,236,236,236,119, - 119,89,236,89,236,236,89,119,58,119,119,58,58,58,159,236, - 159,159,236,159,159,159,58,159,119,58,236,58,58,236,236,119, - 236,236,89,236,89,119,236,236,236,236,89,89,236,89,89,207, - 207,89,89,89,89,89,89,89,236,236,236,119,119,236,159,89, - 236,236,119,236,119,236,89,236,119,89,119,119,89,236,236,119, - 236,119,89,119,119,89,119,119,119,119,119,89,119,119,108,172, - 26,187,221,26,111,162,224,42,101,139,139,211,139,211,139,211, - 139,211,139,211,139,12,26,211,122,101,139,139,139,139,139,211, - 211,211,139,211,139,139,12,26,211,122,101,139,139,139,139,211, - 211,211,139,211,139,211,139,12,26,211,122,101,101,139,139,211, - 139,211,211,211,211,139,211,139,12,26,211,122,101,139,139,139, - 139,139,139,211,211,211,139,139,101,12,26,211,122,101,101,139, - 139,139,139,139,211,139,211,139,139,67,150,26,211,122,101,139, - 139,211,139,139,139,211,211,139,139,139,101,150,26,109,122,49, - 139,139,139,139,139,211,211,139,211,139,139,67,150,26,109,122, - 101,101,139,139,139,139,139,211,211,211,139,211,139,150,26,211, - 122,101,139,139,211,139,139,139,139,139,211,139,211,139,150,26, - 109,122,101,139,139,211,139,139,139,139,211,211,139,211,139,150, - 26,211,122,101,139,139,211,139,139,139,211,211,139,139,139,101, - 150,26,109,42,101,139,139,139,139,139,139,211,139,139,139,139, - 67,12,26,211,122,101,101,139,211,139,139,61,139,211,139,139, - 139,139,12,26,211,122,101,139,139,139,139,139,139,211,211,211, - 139,139,139,12,26,109,122,101,101,139,139,139,139,211,211,211, - 211,139,211,139,150,26,211,122,101,139,139,139,139,139,139,211, - 139,139,139,139,139,150,26,109,122,101,139,139,139,211,139,211, - 211,211,211,139,211,139,150,219,141,187,42,187,183,122,57,89, - 244,244,244,244,244,244,244,244,244,120,244,244,120,120,244,120, - 120,36,36,244,244,36,244,36,244,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,105,36,36,36,36,36,36, - 36,36,36,36,36,36,36,36,36,217,36,36,36,36,36,36, - 58,58,181,240,184,181,58,58,181,240,240,240,119,108,119,108, - 108,83,83,161,108,108,83,83,83,83,161,83,161,106,106,161, - 176,83,161,161,161,83,250,6,55,252,106,83,161,83,83,83, - 83,83,83,161,83,240,108,240,240,108,108,240,108,240,240,58, - 58,119,58,58,58,58,119,119,58,58,119,119,119,119,58,58, - 58,119,58,58,119,58,58,58,119,119,58,119,119,236,236,236, - 236,236,236,236,119,236,236,236,119,236,236,58,58,159,236,159, - 236,159,58,58,119,119,58,119,58,58,58,58,58,236,236,236, - 236,89,236,89,236,89,89,89,119,119,236,236,89,207,207,89, - 89,207,207,89,236,89,89,119,119,119,119,236,236,119,236,236, - 236,236,236,236,89,119,119,119,89,89,89,89,119,119,89,89, - 119,89,236,236,236,119,236,89,119,89,89,89,119,119,108,29, - 42,111,162,183,111,122,59,78,8,26,91,26,91,91,26,91, - 26,91,26,91,8,132,12,12,122,8,91,26,91,91,91,26, - 91,26,91,26,91,8,132,12,243,42,187,17,91,26,91,91, - 26,91,26,91,26,91,182,132,12,12,122,8,91,26,91,26, - 91,91,26,91,91,26,91,8,132,17,243,42,8,187,26,91, - 26,91,26,91,26,91,26,91,182,150,17,243,42,8,91,26, - 91,26,187,26,91,26,91,26,91,8,132,17,243,42,8,91, - 26,91,91,187,26,91,26,91,26,91,182,132,17,243,42,91, - 26,91,91,26,91,26,91,26,91,26,91,8,132,12,187,78, - 8,91,26,91,26,187,91,91,26,91,26,91,8,17,12,12, - 122,8,91,26,91,91,187,26,91,26,91,26,91,182,132,17, - 8,78,8,17,91,91,26,17,91,26,91,91,26,91,182,17, - 12,12,122,8,91,26,91,91,187,26,91,26,91,26,91,182, - 132,12,12,122,8,91,26,91,26,187,26,91,26,91,26,91, - 8,132,12,243,42,8,26,91,91,91,91,187,91,26,91,26, - 91,8,150,17,243,42,8,91,26,91,91,26,91,91,26,91, - 26,91,182,150,17,109,42,8,26,91,26,91,26,91,91,26, - 91,26,91,182,132,17,243,42,8,26,91,91,26,187,91,26, - 91,26,26,91,8,132,17,243,42,8,26,91,91,26,91,91, - 26,91,91,26,91,182,150,26,187,166,78,219,26,0,191,89, - 244,244,71,244,71,244,244,248,244,71,120,120,244,244,36,244, - 244,244,244,36,36,244,36,244,36,244,244,244,244,36,36,36, - 244,36,36,36,36,36,36,36,36,36,36,36,36,36,105,36, - 36,36,36,36,36,36,36,36,36,36,217,36,105,105,105,105, - 58,184,58,240,58,58,58,184,58,58,181,240,119,108,108,108, - 108,83,161,108,83,83,108,83,83,83,83,83,161,161,106,161, - 161,83,83,83,83,83,176,98,138,252,106,161,83,83,83,83, - 83,83,66,83,161,83,108,108,240,108,108,119,240,119,240,58, - 58,236,119,58,119,58,58,119,58,58,58,58,58,58,119,119, - 58,58,119,58,119,58,58,58,58,119,58,236,58,119,119,119, - 119,119,236,236,181,236,236,236,58,58,58,58,58,159,58,58, - 58,58,159,236,236,58,236,58,58,159,58,58,184,58,236,119, - 236,89,89,89,236,236,89,89,89,89,89,207,89,89,207,207, - 89,89,207,89,89,236,89,89,236,119,58,119,236,236,89,119, - 236,236,119,236,236,89,236,236,119,236,119,236,89,159,236,236, - 119,119,119,119,236,119,119,236,119,119,119,236,119,119,108,20, - 183,111,162,183,187,162,224,0,219,17,187,183,26,42,187,183, - 26,219,219,17,8,187,187,8,0,26,219,26,26,219,42,187, - 183,26,219,219,219,8,12,26,8,0,26,17,219,219,183,26, - 183,26,219,219,219,26,8,187,187,211,0,219,219,219,219,219, - 42,187,183,26,219,219,17,8,12,26,211,0,26,187,219,219, - 219,42,187,183,26,219,219,26,8,187,26,211,0,219,219,219, - 219,26,26,187,183,26,219,219,219,8,12,26,211,0,219,219, - 219,219,26,26,187,183,26,219,219,26,8,12,26,8,0,26, - 17,26,219,219,26,187,183,42,219,219,219,8,12,12,8,0, - 219,219,219,219,26,42,219,183,26,219,219,17,211,187,187,211, - 0,219,219,219,219,26,187,183,187,42,219,219,26,8,12,26, - 211,0,26,219,219,219,26,42,187,183,42,219,219,26,8,12, - 187,8,0,219,219,219,219,26,26,187,183,42,219,219,26,8, - 12,187,8,0,219,219,219,219,26,187,183,26,42,219,219,219, - 8,12,26,211,0,219,219,219,219,219,219,219,183,42,219,219, - 219,8,187,26,211,0,26,219,219,219,219,42,219,219,26,219, - 219,26,8,12,26,211,0,219,17,187,183,26,42,219,219,26, - 219,219,26,8,12,26,211,0,219,17,219,219,26,42,187,183, - 42,26,219,219,8,12,26,211,0,219,17,219,26,219,42,187, - 183,26,183,219,26,8,150,12,8,111,42,187,26,122,208,89, - 244,244,71,244,244,71,244,71,244,244,244,244,244,244,120,244, - 120,120,244,244,244,244,244,36,244,36,36,36,244,36,36,244, - 36,36,244,36,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,36,217,36,36,105,36,36,217,217,105, - 58,181,240,236,181,184,181,58,58,119,240,119,108,119,108,159, - 83,83,83,119,108,108,83,83,83,83,83,83,161,161,106,161, - 83,161,161,161,83,108,118,98,23,252,106,83,161,83,83,83, - 108,108,83,83,83,83,108,108,108,108,240,108,108,108,240,58, - 119,119,58,119,236,58,119,58,119,58,119,58,119,119,119,240, - 58,119,159,58,58,119,240,58,58,58,58,184,119,58,236,236, - 236,236,119,89,236,236,119,119,89,119,236,58,58,58,58,159, - 236,119,236,159,58,236,58,236,58,58,58,58,58,119,119,89, - 89,207,89,89,89,89,236,89,119,119,236,89,89,89,89,89, - 89,89,89,89,89,89,236,119,236,236,236,236,119,89,159,236, - 119,89,236,119,119,143,236,119,143,236,236,119,159,236,159,119, - 159,143,159,119,159,143,159,119,159,159,159,236,119,108,108,20, - 78,132,221,42,111,122,59,0,139,67,139,139,67,139,139,139, - 139,139,139,139,139,150,219,211,0,139,101,182,67,139,67,139, - 139,139,139,139,139,8,132,219,211,0,139,139,139,139,139,67, - 139,67,139,139,139,101,8,150,219,243,0,139,101,139,139,139, - 182,139,139,139,139,139,139,139,150,219,243,0,139,139,139,139, - 67,139,67,139,67,139,139,139,8,150,219,243,0,211,101,139, - 139,99,67,139,139,182,139,139,139,139,150,219,243,0,8,67, - 139,139,67,139,67,139,182,139,139,139,8,150,219,211,0,139, - 139,67,139,139,67,139,139,139,139,139,139,139,132,183,211,0, - 211,101,139,139,67,67,139,139,139,139,139,139,8,150,219,243, - 0,139,139,139,139,67,139,67,139,67,139,139,139,139,150,219, - 243,0,211,67,139,139,67,139,67,139,67,139,139,139,8,132, - 219,211,0,139,139,139,139,67,139,67,139,139,139,139,139,8, - 132,219,211,0,211,49,139,139,67,139,139,67,67,139,139,139, - 139,132,219,243,0,211,139,139,139,139,139,139,139,139,139,139, - 139,139,150,219,243,0,139,101,139,139,139,67,139,139,139,139, - 139,139,8,150,219,243,0,139,139,139,139,99,67,139,139,182, - 139,101,139,8,150,219,243,0,139,139,139,139,67,67,139,139, - 139,139,139,139,139,150,219,243,0,139,139,139,67,139,67,139, - 139,139,8,139,139,139,187,219,182,166,183,219,219,0,63,89, - 144,71,244,144,244,144,244,244,244,244,244,244,244,244,244,244, - 244,244,244,244,36,36,244,36,244,244,36,244,36,244,36,244, - 36,244,36,244,36,36,244,36,36,36,36,36,36,36,36,36, - 36,36,36,120,36,36,105,36,105,105,36,217,105,36,105,105, - 236,236,58,236,184,153,58,184,240,181,240,119,108,119,108,108, - 108,108,108,108,108,108,108,108,83,83,83,83,161,161,176,83, - 83,83,83,83,83,108,9,231,23,161,252,161,83,83,83,83, - 83,159,108,83,108,83,108,108,119,108,119,240,119,119,119,58, - 58,236,58,58,58,58,119,240,119,58,119,58,58,58,119,119, - 119,119,119,58,119,119,119,58,58,119,58,58,119,58,119,119, - 236,236,236,236,89,89,236,119,89,119,119,119,58,58,58,58, - 159,58,236,58,119,119,119,119,119,58,119,119,236,236,236,236, - 236,236,89,89,119,207,207,89,89,119,119,236,89,207,207,89, - 89,119,89,236,89,119,236,119,119,119,58,236,159,236,58,236, - 58,236,236,236,119,119,236,119,159,236,159,236,119,159,159,236, - 159,119,159,159,159,159,153,134,143,159,159,159,159,108,108,20, - 122,187,221,183,187,0,224,0,187,139,139,211,211,139,211,211, - 8,211,139,211,243,12,122,243,0,8,139,8,139,109,139,211, - 211,8,211,139,182,8,150,122,243,0,8,139,139,211,211,211, - 211,211,8,8,139,67,243,12,122,243,0,8,139,139,139,211, - 211,211,211,8,211,139,211,211,132,78,243,0,8,139,139,211, - 211,211,211,109,211,8,139,67,243,150,122,243,0,8,139,211, - 139,211,139,211,211,8,8,139,139,243,150,122,243,0,8,139, - 139,109,211,109,139,211,8,211,139,67,243,150,122,243,0,8, - 139,139,211,211,211,139,211,8,211,139,211,8,12,122,243,0, - 8,139,139,211,211,211,139,211,8,211,139,182,8,12,122,243, - 0,8,139,211,211,109,109,211,187,211,8,139,139,243,150,78, - 243,0,8,139,139,109,211,211,109,8,8,211,139,67,8,12, - 122,243,0,8,139,139,211,109,211,139,211,8,211,139,182,8, - 12,122,243,0,187,139,139,211,139,211,211,109,109,8,139,139, - 243,150,78,243,0,8,139,211,211,211,211,211,139,8,211,211, - 139,243,150,122,243,0,8,139,139,211,211,139,211,211,8,211, - 139,182,8,150,122,243,0,8,139,211,211,211,139,139,211,8, - 8,139,182,211,150,78,243,0,8,139,139,211,211,211,139,211, - 211,211,139,211,8,150,78,243,0,8,139,139,109,211,211,211, - 211,8,211,139,139,8,187,122,243,132,219,219,219,221,105,89, - 144,244,71,144,244,144,244,244,244,244,244,244,244,244,244,244, - 244,36,120,244,244,244,36,244,36,244,36,244,36,36,36,244, - 36,36,244,36,244,36,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,217,36,36,36,36,105,36,36,105,36,105,105, - 58,184,181,184,181,58,181,236,58,58,58,181,119,119,119,108, - 108,108,108,108,108,108,108,108,108,83,83,83,83,83,176,83, - 83,83,83,83,83,108,9,53,19,83,176,161,108,83,108,108, - 108,83,159,108,108,108,83,108,108,108,108,240,108,119,240,119, - 119,119,236,58,119,58,119,119,119,119,240,240,58,58,58,119, - 240,119,159,119,58,58,58,58,119,240,119,58,236,119,119,236, - 119,119,119,119,236,236,89,89,119,89,236,58,119,58,119,159, - 236,119,119,236,119,236,119,236,58,119,119,119,58,119,236,119, - 89,207,89,89,89,89,89,236,89,89,89,89,236,89,236,236, - 236,236,236,236,119,89,236,236,236,119,236,153,236,159,58,58, - 236,159,159,236,159,236,159,159,236,159,236,159,159,236,159,119, - 159,159,119,236,159,236,159,159,159,159,159,159,159,159,108,15, - 122,95,162,78,126,0,111,0,8,211,109,109,109,109,211,109, - 109,8,243,67,243,132,26,211,0,187,139,139,187,109,139,187, - 211,109,8,243,67,211,187,26,211,0,8,139,109,211,109,211, - 109,109,109,211,211,139,243,132,26,211,0,8,211,139,187,211, - 139,8,187,109,8,8,182,243,187,42,211,0,8,211,109,211, - 109,109,8,211,187,211,243,139,211,187,26,211,0,8,139,211, - 211,109,109,211,211,211,211,211,182,243,187,26,211,0,8,211, - 109,211,109,109,8,109,211,8,243,139,243,187,26,211,0,8, - 211,211,187,109,211,187,109,109,8,8,182,243,132,26,211,0, - 8,139,211,109,109,109,211,109,109,8,243,67,243,132,26,211, - 0,8,211,211,211,211,211,8,211,211,211,8,182,211,187,42, - 211,0,8,211,109,211,109,109,211,109,109,8,8,182,243,132, - 42,211,0,8,211,109,211,211,211,187,109,109,8,8,139,243, - 132,26,211,0,8,211,109,109,109,109,211,187,211,211,211,182, - 211,187,42,211,0,8,139,211,8,211,211,211,187,109,8,243, - 67,243,187,26,211,0,8,139,109,211,109,109,8,109,109,8, - 243,67,243,17,26,211,0,8,211,139,8,211,111,8,109,211, - 211,211,139,243,187,42,211,0,8,211,211,187,109,139,187,109, - 109,211,8,182,109,187,42,211,0,8,211,109,8,211,109,8, - 211,211,8,8,182,182,132,26,211,187,122,187,219,0,208,119, - 144,71,144,244,71,71,144,71,244,244,244,244,244,244,120,244, - 244,244,244,36,244,244,244,36,244,36,36,244,244,36,244,36, - 244,36,36,36,36,36,36,244,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,105,105,217,36,105,105,217,105,217,105, - 58,58,184,184,184,184,58,236,58,58,58,58,240,108,119,108, - 119,119,108,119,108,108,108,108,108,108,108,83,83,83,161,83, - 83,108,108,83,108,181,185,85,116,181,252,161,83,108,83,108, - 108,83,159,108,108,108,159,83,108,119,108,119,240,119,240,119, - 58,119,119,58,119,58,58,58,119,119,119,119,119,119,119,119, - 119,119,119,119,119,119,119,58,236,58,119,58,58,236,119,236, - 89,236,236,236,89,236,236,89,236,119,236,236,119,58,119,119, - 236,119,119,236,119,236,89,236,236,119,119,119,119,119,236,89, - 89,236,207,207,207,89,207,89,89,89,119,89,236,89,236,119, - 236,119,119,236,236,119,119,58,58,58,58,184,236,184,159,159, - 236,236,159,236,159,236,236,58,159,119,159,119,159,159,159,119, - 159,236,159,159,159,159,159,119,159,159,159,159,159,108,108,20, - 122,166,78,183,187,221,224,0,211,67,139,67,139,139,139,139, - 211,139,211,139,243,150,0,187,122,8,139,67,139,139,139,139, - 139,211,139,139,139,243,132,0,187,0,8,67,139,139,139,139, - 139,139,211,211,139,139,211,187,0,187,0,211,139,67,139,139, - 139,67,139,211,139,139,139,8,187,0,187,0,211,67,139,139, - 139,139,139,139,139,139,139,139,243,187,0,187,0,8,139,139, - 139,139,139,139,211,211,211,139,139,211,187,0,187,0,211,67, - 139,139,139,139,139,211,211,139,139,139,211,132,0,187,0,211, - 67,139,139,139,139,139,139,211,139,139,67,8,187,0,187,0, - 8,139,139,139,139,139,139,139,211,139,139,139,211,187,0,187, - 0,211,67,139,139,139,139,139,139,211,139,139,139,243,187,0, - 187,0,211,67,139,139,139,139,139,211,211,139,139,67,8,150, - 0,187,0,211,67,139,182,139,139,139,139,211,139,139,67,8, - 132,0,8,0,211,67,139,139,139,139,139,139,211,211,139,139, - 8,187,0,187,122,8,67,139,139,139,139,139,139,139,139,211, - 139,211,187,0,187,0,8,139,139,139,139,139,139,139,211,139, - 139,139,211,187,0,187,0,8,139,139,139,139,139,139,211,211, - 211,139,139,8,187,0,187,0,211,67,139,139,139,139,139,139, - 211,139,139,67,243,187,0,187,0,211,67,139,139,139,139,139, - 139,211,139,139,139,8,12,0,109,132,183,219,219,0,63,89, - 244,244,144,144,144,244,244,144,244,71,244,244,244,244,244,244, - 244,244,244,244,36,244,244,36,244,36,244,244,36,36,36,244, - 36,244,36,244,36,244,36,36,36,36,36,36,36,36,120,36, - 36,36,217,36,217,36,36,36,105,217,217,36,105,105,105,105, - 236,153,181,153,181,153,181,184,236,236,181,240,119,181,108,240, - 119,108,108,119,119,119,108,108,108,108,108,108,83,83,161,83, - 108,83,108,83,108,119,9,85,195,181,161,161,83,83,108,108, - 108,108,108,108,108,159,108,159,108,108,240,119,108,119,58,119, - 119,58,58,236,58,58,58,58,58,58,119,119,240,58,58,119, - 119,119,58,119,236,58,58,119,58,119,236,58,236,58,236,236, - 236,236,236,89,236,89,89,236,89,89,119,119,58,119,159,119, - 119,236,236,119,89,236,119,89,119,119,119,119,119,119,119,236, - 89,207,89,89,89,207,89,89,89,236,89,236,119,58,119,236, - 236,236,236,236,236,236,236,236,236,58,58,58,184,58,58,184, - 184,159,58,159,58,159,159,119,159,159,159,159,58,119,159,58, - 159,159,159,159,236,236,159,159,159,159,159,159,159,159,108,15, - 42,111,162,162,187,78,59,0,26,187,187,187,12,91,109,187, - 26,91,12,12,187,187,26,211,0,26,187,187,187,187,109,187, - 12,91,91,26,12,187,12,26,211,0,26,187,187,187,91,109, - 187,187,26,91,12,12,12,150,26,211,0,26,187,187,187,187, - 91,111,187,187,91,187,12,109,150,26,211,0,26,187,187,187, - 91,109,187,187,26,91,187,12,187,150,26,211,162,26,187,187, - 187,91,111,187,12,91,26,91,12,12,150,26,211,0,26,187, - 187,187,111,111,187,12,91,91,187,12,12,12,26,211,0,26, - 187,8,187,109,111,8,187,26,91,17,91,187,150,26,211,162, - 26,187,187,187,111,187,187,187,91,91,26,12,12,150,26,211, - 0,26,187,187,187,187,111,187,187,12,91,26,12,187,150,26, - 211,0,26,187,187,187,187,91,109,187,187,91,26,91,187,187, - 42,211,0,26,187,187,187,111,211,187,187,12,91,17,91,187, - 187,42,8,0,26,187,12,91,111,109,187,187,12,91,26,12, - 109,150,26,211,0,26,187,187,187,187,109,187,187,187,91,187, - 12,12,150,26,211,0,26,187,187,187,187,111,187,187,91,91, - 26,12,12,150,26,211,162,26,187,187,187,91,109,187,12,91, - 91,187,12,109,150,26,211,0,26,187,187,187,111,8,187,187, - 187,91,12,91,187,150,26,211,0,26,187,91,109,187,111,187, - 187,12,91,26,12,187,150,42,8,187,42,219,183,0,105,181, - 144,144,144,244,244,244,144,244,244,244,244,244,244,244,120,244, - 244,244,244,244,36,244,244,36,244,36,244,36,244,244,36,244, - 36,244,36,36,36,244,36,244,36,36,36,36,36,36,36,36, - 36,105,36,105,36,36,217,36,105,36,36,63,105,105,210,210, - 58,153,184,153,236,153,236,153,181,153,236,240,240,58,240,119, - 58,119,119,108,108,108,119,108,108,108,108,108,108,83,161,83, - 108,108,108,108,108,119,9,53,116,181,161,161,83,83,83,108, - 108,108,108,119,108,108,108,119,108,159,108,119,240,119,240,58, - 119,119,58,58,58,58,58,58,58,58,240,119,119,119,236,119, - 119,119,236,58,236,236,58,119,58,58,236,119,119,119,119,119, - 119,119,119,89,119,89,89,119,89,89,119,119,119,119,58,119, - 119,119,89,119,119,89,236,89,236,236,236,58,119,236,119,236, - 89,89,207,207,89,207,207,89,89,236,119,89,236,236,119,119, - 119,236,236,119,236,58,119,58,58,119,58,119,236,58,119,58, - 119,58,58,58,58,58,159,58,58,58,58,159,58,159,119,58, - 119,159,119,240,159,159,119,159,119,159,119,159,159,159,108,172, - 42,187,94,183,187,122,224,0,0,0,0,0,0,0,0,0, - 122,0,0,0,219,150,26,12,0,0,0,122,122,0,0,0, - 0,0,0,162,0,17,132,42,12,0,0,0,122,122,0,0, - 0,122,122,0,0,0,219,132,26,12,122,0,0,0,122,122, - 0,122,0,0,0,0,0,219,132,26,12,0,0,0,0,122, - 0,0,0,122,0,0,0,0,219,150,26,12,0,0,162,122, - 122,0,122,0,0,0,122,0,0,219,132,26,12,0,0,0, - 122,122,122,122,0,0,0,0,0,0,219,132,42,12,0,0, - 0,0,162,0,0,0,162,122,0,0,0,219,132,26,12,0, - 0,162,122,122,122,122,122,0,0,0,162,0,219,132,26,12, - 0,0,0,122,122,122,122,0,0,0,0,0,122,219,150,26, - 12,0,0,0,122,122,122,0,0,0,0,0,0,0,219,150, - 26,12,122,0,0,122,122,0,0,122,0,0,0,0,0,219, - 12,42,12,162,0,0,0,0,122,0,0,122,0,0,0,0, - 219,132,42,12,0,0,0,122,122,0,0,0,122,0,0,0, - 0,219,132,26,12,0,0,0,122,122,122,122,122,0,0,0, - 0,162,219,132,26,12,0,0,162,122,122,0,0,0,0,0, - 0,0,0,219,132,42,12,122,0,0,122,122,0,0,0,122, - 0,0,0,0,219,150,42,12,0,0,0,0,0,0,122,0, - 0,0,0,0,0,219,17,42,150,187,78,26,219,122,105,89, - 244,244,144,71,144,71,144,144,71,244,244,244,244,244,244,120, - 244,120,244,244,244,244,36,244,244,244,36,244,36,36,244,36, - 244,36,244,36,36,36,36,244,36,36,36,120,36,36,36,36, - 36,36,36,217,105,36,105,36,105,105,105,210,63,63,105,63, - 236,236,236,153,184,153,153,184,236,184,181,58,181,240,58,240, - 119,108,119,119,119,119,108,119,108,108,108,108,108,108,161,83, - 108,119,108,108,108,119,9,85,195,181,83,83,83,108,108,108, - 108,108,108,108,108,119,159,108,108,108,240,108,119,240,240,119, - 58,119,119,119,119,58,119,119,236,58,119,236,236,58,58,58, - 58,119,58,119,119,119,119,58,236,236,119,58,236,58,119,236, - 236,119,236,236,236,236,236,89,119,236,236,236,58,58,119,119, - 119,236,119,89,236,119,119,236,236,119,119,236,236,119,119,119, - 89,89,89,89,207,89,89,89,89,89,89,119,119,119,58,236, - 236,119,119,236,58,236,236,58,236,58,58,58,119,236,236,119, - 58,119,119,119,58,58,58,58,159,58,119,119,119,119,58,119, - 119,119,119,119,119,236,119,119,119,119,119,119,119,58,240,15, - 78,126,122,78,126,122,59,26,26,26,26,26,42,42,26,17, - 219,219,17,26,17,219,26,187,42,91,26,26,26,26,42,26, - 17,219,219,219,26,17,219,26,187,42,91,26,26,26,42,42, - 26,17,219,219,219,26,26,17,26,187,42,12,26,26,26,42, - 42,26,17,17,219,219,26,26,219,26,187,26,26,26,26,26, - 42,42,26,17,17,219,219,26,26,219,26,187,42,91,26,26, - 26,26,42,26,17,17,219,219,26,26,219,26,187,26,26,26, - 26,26,42,42,26,17,219,219,219,26,17,219,26,187,26,26, - 26,26,26,42,42,26,17,219,219,219,26,26,17,26,187,42, - 91,26,26,26,42,42,26,17,219,219,219,26,26,219,26,187, - 26,26,26,26,26,26,42,26,17,219,219,17,26,26,219,26, - 187,26,26,26,26,26,42,42,26,17,17,219,219,26,17,219, - 26,187,42,26,26,26,26,42,42,26,17,219,219,219,26,17, - 132,26,187,26,26,26,26,26,42,42,26,219,17,219,219,26, - 26,219,26,187,26,26,26,26,26,26,42,26,219,17,219,17, - 26,26,219,26,187,42,187,26,26,26,42,42,26,17,219,219, - 17,26,26,219,26,187,42,12,26,26,26,26,42,26,17,17, - 219,17,26,26,219,26,187,42,26,26,26,26,42,42,26,17, - 219,219,219,26,26,219,26,187,26,26,26,26,26,26,42,26, - 17,219,219,17,26,26,166,26,187,166,42,183,183,0,208,89, - 244,244,144,144,244,244,244,244,244,244,71,244,244,244,244,244, - 120,244,244,36,244,36,244,244,36,244,36,244,36,244,36,36, - 244,36,244,36,244,36,36,36,36,36,36,36,36,36,36,217, - 36,105,105,36,36,105,105,217,105,105,105,105,105,105,63,105, - 184,153,181,153,181,184,236,153,236,236,153,184,58,181,58,240, - 119,181,119,240,108,240,108,119,108,108,108,108,108,108,83,83, - 108,108,108,108,108,181,9,53,116,181,108,83,108,83,108,108, - 108,119,108,108,108,108,119,119,119,108,119,108,119,240,119,119, - 58,58,236,58,58,58,58,58,119,58,58,58,236,119,119,119, - 236,119,58,58,58,58,119,119,119,58,119,58,236,236,119,119, - 236,119,119,236,119,119,89,89,89,119,119,119,119,58,58,236, - 119,119,159,119,236,236,119,119,236,236,119,119,236,119,236,119, - 89,89,89,89,89,89,89,89,89,236,236,89,236,236,119,236, - 236,236,58,119,58,58,58,58,236,236,236,236,119,58,58,119, - 236,58,236,58,236,236,236,236,236,119,119,159,119,58,236,159, - 119,119,236,236,119,119,236,119,119,119,119,119,119,119,108,15, - 162,111,162,42,126,122,224,219,243,12,12,17,219,17,12,243, - 12,150,150,12,12,17,219,12,219,150,12,12,187,219,12,12, - 243,150,150,243,17,12,17,219,12,219,150,12,17,17,219,17, - 12,243,12,150,150,150,12,219,219,187,26,243,187,12,17,219, - 17,12,243,12,243,150,150,12,17,219,12,219,243,12,17,17, - 219,17,17,243,12,150,243,150,12,17,219,12,219,150,12,17, - 17,219,12,12,150,12,150,150,150,12,17,219,187,17,243,12, - 12,17,219,17,12,243,12,150,150,12,12,17,219,187,17,243, - 187,17,17,219,17,12,243,12,150,150,150,12,17,219,12,219, - 150,12,17,17,219,17,12,243,150,150,243,150,12,17,219,187, - 17,243,12,17,17,219,12,12,243,150,150,150,150,12,17,219, - 187,17,243,12,12,17,219,12,17,243,150,150,150,17,12,17, - 219,187,17,243,12,12,17,219,17,12,243,12,150,150,17,17, - 219,219,12,219,243,12,12,17,219,12,12,243,150,150,150,150, - 12,17,219,187,17,243,12,17,187,219,12,12,243,12,150,150, - 150,12,17,219,12,26,243,12,12,17,219,17,12,243,150,150, - 150,150,12,17,219,187,26,150,12,17,17,219,12,12,150,12, - 150,150,150,12,17,219,12,219,243,12,12,17,219,12,12,150, - 12,150,150,150,12,17,219,12,219,243,12,17,187,219,12,12, - 243,12,150,150,150,12,17,26,12,111,42,42,215,122,36,89, - 144,244,244,244,144,244,71,244,71,244,244,244,120,244,244,244, - 244,36,244,120,244,36,244,244,36,244,244,36,244,36,244,36, - 244,36,36,36,36,244,36,36,36,120,36,36,36,36,36,36, - 36,36,105,217,36,36,105,36,210,210,105,63,63,105,63,63, - 153,181,153,153,153,153,184,184,181,184,181,58,184,58,58,58, - 58,240,240,119,119,159,119,108,108,108,108,108,83,159,83,108, - 108,108,108,108,119,119,9,53,19,181,108,66,83,159,108,108, - 108,108,119,119,159,119,108,108,108,119,108,119,108,119,240,58, - 119,119,58,119,119,58,58,58,58,58,58,58,58,58,58,58, - 58,58,119,119,58,58,58,58,58,119,58,119,119,119,58,119, - 119,119,58,119,89,89,89,236,119,236,119,58,58,119,236,119, - 119,236,236,119,159,119,236,236,58,119,236,236,119,236,119,236, - 236,236,207,89,89,236,236,236,89,89,236,119,119,119,58,58, - 58,236,236,236,119,236,236,119,58,119,119,58,236,119,236,236, - 58,236,58,236,119,119,119,119,119,119,119,119,119,119,159,119, - 119,236,119,119,119,236,119,119,236,119,119,119,119,119,240,15, - 42,126,221,78,166,122,224,26,150,12,132,187,17,12,26,243, - 150,12,12,219,17,219,42,243,26,150,17,132,219,17,17,17, - 243,12,12,17,17,17,219,42,150,26,150,17,132,187,17,12, - 26,243,150,12,12,219,17,17,26,12,219,150,17,150,17,219, - 12,26,243,150,17,12,219,17,219,42,109,26,150,12,150,187, - 17,12,26,243,150,17,12,219,12,219,42,150,26,150,17,150, - 17,219,17,12,243,150,12,12,17,187,219,26,109,26,150,12, - 132,187,219,12,17,243,150,12,12,219,17,17,42,243,26,150, - 12,132,187,17,12,17,243,150,150,12,17,17,219,42,150,26, - 150,17,150,17,219,12,26,243,12,12,17,17,12,219,42,243, - 26,150,12,132,187,219,12,26,243,12,12,12,219,12,219,42, - 109,26,150,12,132,187,219,12,26,243,12,150,12,17,12,219, - 26,12,26,150,12,132,187,17,12,26,243,150,150,12,17,12, - 187,42,109,26,150,17,132,187,17,12,26,243,12,12,12,17, - 17,17,42,243,26,150,12,150,219,17,12,26,243,150,12,12, - 219,12,219,42,109,219,150,12,132,187,219,12,26,243,12,12, - 12,219,12,219,26,243,219,150,12,132,187,17,17,17,243,150, - 12,12,219,17,219,26,187,26,150,12,132,187,17,12,26,243, - 150,150,12,17,12,219,42,109,26,150,12,150,17,219,12,26, - 243,150,12,12,17,17,219,26,187,166,183,183,219,0,105,89, - 244,71,244,144,71,244,244,244,244,244,120,244,120,120,120,120, - 244,244,120,244,36,244,36,36,244,36,36,244,36,244,36,244, - 36,36,244,244,36,36,120,36,36,36,36,36,36,217,36,217, - 217,36,36,36,105,105,36,63,105,105,63,105,105,63,105,105, - 153,153,181,184,181,153,153,153,184,236,184,58,181,184,58,58, - 58,119,240,240,119,108,240,119,159,108,159,159,108,108,108,83, - 108,108,108,108,108,181,9,231,116,181,108,108,108,108,108,108, - 108,108,108,108,108,119,119,119,159,119,108,240,119,119,119,119, - 58,119,236,58,58,58,240,119,58,58,58,58,58,119,119,119, - 119,58,58,58,58,58,58,240,119,119,58,58,240,181,58,58, - 236,236,119,58,58,236,236,236,236,236,236,119,58,58,58,236, - 159,119,119,236,119,159,119,236,58,119,119,119,119,119,119,58, - 236,119,236,236,236,236,236,119,236,119,236,236,236,236,236,236, - 184,58,184,58,58,58,58,119,58,236,236,119,236,119,58,119, - 119,119,119,119,119,119,119,119,236,119,119,119,236,89,89,236, - 119,119,119,119,119,119,119,119,119,89,89,119,119,119,240,15, - 78,187,162,42,187,162,99,42,150,17,219,17,150,150,26,150, - 150,150,12,17,12,17,26,109,26,150,17,12,219,150,17,26, - 150,150,132,12,12,17,17,26,109,26,150,17,17,219,150,150, - 26,150,150,150,12,17,17,17,17,109,26,150,17,17,17,150, - 150,26,150,150,150,12,17,187,17,26,109,26,150,17,219,17, - 132,150,26,243,150,150,12,219,12,17,26,211,26,150,17,219, - 17,150,17,26,150,150,150,12,17,12,219,26,243,26,150,17, - 219,17,150,17,26,150,150,150,12,132,17,17,26,109,26,150, - 17,17,17,132,12,26,150,17,150,17,17,12,17,26,109,26, - 150,17,17,17,150,150,26,150,150,132,12,219,187,17,26,109, - 26,150,17,219,17,150,150,26,150,150,150,17,12,187,17,26, - 243,26,150,219,17,17,150,150,26,150,12,150,17,17,12,17, - 17,109,26,150,219,17,219,150,150,26,150,17,150,17,17,17, - 17,26,243,26,150,17,17,17,132,150,26,150,150,150,17,17, - 17,17,26,109,26,150,219,12,17,132,150,26,150,150,150,12, - 219,187,17,26,243,26,150,219,17,17,150,150,26,150,150,150, - 12,219,187,17,26,109,26,150,17,219,17,150,17,26,150,150, - 132,12,12,12,17,17,211,26,150,17,219,17,150,150,26,243, - 17,150,17,17,12,219,26,243,26,150,219,17,17,150,150,26, - 150,150,150,17,12,187,17,17,109,187,183,42,183,122,36,114, - 144,244,244,244,71,144,244,244,71,244,244,120,244,244,120,120, - 120,244,36,244,120,244,244,36,244,244,36,36,36,36,36,244, - 244,36,36,36,36,36,36,36,36,36,36,36,36,217,36,36, - 105,105,105,36,217,105,36,105,105,105,63,63,63,63,63,105, - 236,184,153,153,240,184,181,184,184,240,58,184,184,181,240,58, - 58,119,240,119,240,240,119,108,108,159,108,108,108,159,108,108, - 108,108,108,119,108,89,107,165,19,181,108,83,108,108,108,159, - 108,108,119,159,159,108,108,119,108,108,119,119,108,240,240,58, - 119,58,58,58,119,119,58,58,58,119,240,119,119,58,58,240, - 58,119,119,240,119,119,58,119,240,58,119,119,119,58,119,58, - 58,58,58,119,236,58,236,236,119,58,119,58,58,58,119,159, - 119,159,236,119,119,236,159,119,236,119,119,236,58,236,58,236, - 119,236,236,58,119,119,119,236,119,236,58,58,58,58,58,184, - 58,58,58,236,236,236,236,236,236,119,119,58,119,236,236,236, - 119,119,119,236,89,236,119,119,119,236,119,119,119,119,119,119, - 236,236,89,89,89,89,119,119,89,119,119,89,119,119,108,15, - 162,126,221,221,212,0,224,219,12,17,132,17,17,17,219,12, - 17,17,17,132,17,187,219,243,219,12,17,132,17,17,12,219, - 150,17,17,12,132,187,187,219,243,219,12,17,132,17,17,17, - 219,12,17,17,17,132,187,187,26,243,219,12,17,132,219,17, - 12,219,12,17,17,12,132,12,187,219,211,219,150,17,132,17, - 17,12,219,17,17,17,12,132,12,187,219,243,219,12,17,132, - 17,17,12,219,12,17,17,12,132,17,187,219,109,219,12,17, - 132,17,17,12,219,12,17,17,17,17,17,187,219,243,219,17, - 17,132,17,17,12,219,12,150,17,17,132,17,187,219,243,219, - 12,17,132,17,17,12,219,150,17,17,12,132,12,187,219,243, - 219,12,17,132,17,17,17,219,150,17,17,17,132,12,187,219, - 109,219,17,17,150,219,17,12,219,150,150,17,17,132,17,187, - 26,243,219,17,17,132,17,17,17,219,12,150,17,17,17,17, - 187,219,109,219,150,17,132,219,17,12,219,150,17,17,12,132, - 187,187,219,243,219,17,17,132,17,17,17,219,12,17,17,12, - 132,12,187,219,109,219,17,17,150,219,17,12,219,150,17,17, - 12,132,12,187,219,243,219,12,17,132,17,17,12,219,12,17, - 17,17,132,17,187,26,109,219,12,17,132,219,17,12,219,17, - 150,17,12,132,17,187,219,109,219,17,17,132,17,17,17,219, - 12,17,17,17,17,12,166,26,109,183,42,183,183,0,36,119, - 244,144,71,144,244,244,71,244,244,244,244,244,120,120,244,244, - 244,244,244,36,244,36,36,244,36,120,36,36,244,36,36,36, - 36,36,244,36,36,36,36,120,36,36,36,36,105,36,36,217, - 36,36,36,105,36,36,63,63,63,63,105,105,105,105,105,63, - 58,184,240,184,240,153,184,184,181,184,181,184,240,184,240,240, - 240,181,240,240,119,108,240,119,108,108,240,108,108,108,108,108, - 108,108,108,108,108,181,118,231,11,181,181,83,108,108,108,159, - 108,108,108,108,159,240,159,240,119,108,108,119,108,119,240,58, - 119,58,236,58,58,58,58,119,240,119,240,119,58,58,119,119, - 240,119,58,58,58,240,58,58,58,240,119,58,58,58,119,58, - 119,58,119,119,119,119,119,236,236,58,58,119,119,58,119,58, - 236,119,159,119,119,119,159,119,58,58,58,119,58,236,58,153, - 184,58,119,236,236,236,58,236,236,236,236,119,119,58,119,119, - 58,236,58,58,119,58,119,119,119,119,119,58,58,119,58,236, - 236,119,119,119,119,119,119,119,119,89,236,119,236,236,89,236, - 119,119,119,119,119,89,119,119,119,119,119,89,119,119,108,15, - 78,187,162,42,183,0,111,219,150,17,132,17,150,17,219,150, - 150,150,17,132,132,187,219,211,219,150,219,150,17,150,17,26, - 150,150,150,219,132,150,187,219,211,219,150,17,132,17,150,17, - 219,150,150,150,17,132,132,150,42,211,219,150,219,150,17,150, - 17,219,150,132,150,17,132,132,187,219,243,42,150,17,132,17, - 150,17,219,150,150,150,219,132,132,187,219,243,219,150,17,132, - 17,150,17,219,150,132,150,17,132,132,187,219,243,219,150,17, - 132,17,150,17,219,150,150,150,17,132,132,187,219,211,219,150, - 17,132,17,150,17,219,12,150,150,17,132,132,187,219,243,219, - 150,219,132,17,150,17,26,150,150,150,17,132,132,187,219,109, - 219,150,17,132,17,150,17,26,150,150,150,17,132,132,187,219, - 243,219,150,17,132,17,150,17,26,12,150,150,17,132,132,150, - 219,211,219,150,17,132,17,150,17,219,12,150,150,150,132,132, - 187,219,243,26,150,17,150,17,150,17,26,150,150,132,17,132, - 132,187,219,211,219,150,17,132,17,150,17,219,150,150,150,17, - 132,132,187,26,211,219,150,17,132,17,132,17,26,150,150,150, - 219,132,132,187,26,211,219,150,17,132,17,150,17,219,150,150, - 150,17,132,132,150,219,243,219,150,17,132,17,150,17,219,12, - 150,132,17,132,132,187,219,243,219,150,17,132,17,150,17,219, - 150,150,150,132,132,17,150,42,109,122,78,42,219,122,105,89, - 244,144,244,144,244,244,244,71,244,244,248,244,120,120,120,120, - 36,120,244,120,244,36,120,36,36,244,36,120,244,36,36,120, - 244,36,36,36,120,36,36,36,36,217,36,36,217,105,36,105, - 105,105,217,105,105,36,105,105,105,63,105,105,105,105,105,105, - 184,184,184,240,184,184,184,184,184,240,184,240,58,58,181,58, - 184,184,181,240,240,240,119,108,108,159,108,240,240,108,108,108, - 108,159,108,159,108,114,118,6,13,181,108,108,108,108,108,108, - 108,108,108,108,108,108,119,240,119,240,119,240,119,240,58,58, - 58,58,58,119,240,58,58,58,119,58,119,119,240,119,58,119, - 119,240,58,119,119,58,58,119,119,119,240,58,58,119,240,58, - 58,119,58,58,58,119,236,58,119,236,119,58,58,58,58,119, - 119,119,236,159,119,119,119,58,236,58,58,236,58,184,58,58, - 119,58,58,58,58,58,236,58,58,119,119,236,236,236,236,236, - 119,119,119,119,58,236,236,236,58,236,119,119,119,58,119,119, - 89,236,119,119,119,89,89,119,119,119,119,119,119,119,119,119, - 236,89,236,119,236,119,119,119,89,119,119,119,119,119,108,15, - 162,126,122,221,126,122,166,42,12,132,219,150,132,17,219,12, - 219,132,12,219,26,150,26,12,26,12,132,219,150,132,132,219, - 12,219,150,17,219,26,150,26,12,42,12,132,17,150,132,17, - 219,12,219,132,17,17,26,187,26,12,26,12,132,219,150,132, - 132,219,12,17,132,17,219,26,150,26,211,26,12,132,17,150, - 132,150,219,12,219,150,12,219,26,150,26,8,42,12,132,17, - 150,132,132,219,12,17,132,12,219,26,150,26,8,42,12,132, - 17,150,132,132,219,12,219,132,132,17,26,150,26,187,42,12, - 132,219,150,132,17,219,150,219,132,17,17,26,150,26,8,26, - 12,132,17,150,132,132,219,12,219,150,17,219,26,150,26,8, - 42,12,132,17,150,132,150,219,12,219,132,17,219,26,150,26, - 8,42,12,132,17,150,132,132,219,150,219,150,17,219,26,187, - 26,12,42,12,132,17,150,132,150,219,150,219,132,17,219,26, - 150,26,211,42,12,132,17,150,132,17,219,12,219,150,17,219, - 26,150,26,12,42,12,132,17,150,132,17,219,12,219,132,17, - 219,26,150,26,12,42,12,132,17,150,132,150,219,12,219,150, - 17,219,26,150,26,12,42,12,132,219,150,132,132,219,12,17, - 132,12,219,26,187,26,8,42,12,132,17,150,132,17,219,150, - 219,150,17,17,26,150,26,211,26,12,132,17,132,132,150,219, - 12,219,132,17,219,17,187,26,211,122,78,183,219,122,191,89, - 144,244,144,71,244,71,244,244,71,244,244,120,244,244,244,244, - 244,244,120,36,120,244,120,36,244,120,36,36,120,36,36,36, - 36,36,244,36,36,36,36,36,36,36,105,36,36,36,105,36, - 217,36,105,105,105,105,63,63,63,36,105,105,105,63,105,63, - 240,181,184,181,240,240,240,184,184,181,184,181,184,184,58,240, - 240,240,240,240,181,240,240,240,108,119,240,240,108,108,108,108, - 108,108,108,108,108,181,65,231,13,181,108,83,108,108,119,159, - 119,108,119,108,108,108,108,108,119,108,119,108,119,240,119,240, - 119,58,58,119,119,240,119,58,240,58,240,119,240,119,240,119, - 119,119,240,119,58,58,58,240,119,58,240,119,58,58,119,58, - 58,58,58,119,236,119,236,58,58,236,236,58,58,58,58,58, - 58,119,236,119,119,58,119,119,119,119,58,58,58,58,119,58, - 58,236,119,236,119,119,236,236,58,58,58,58,119,58,58,236, - 236,119,236,119,119,58,58,236,58,236,58,58,119,58,58,240, - 119,119,119,119,159,119,236,236,119,119,236,119,119,119,119,119, - 119,119,89,119,119,89,89,119,89,119,119,119,119,119,108,15, - 50,187,162,162,111,0,95,219,17,17,17,17,150,17,219,150, - 17,150,17,132,26,187,12,109,219,17,17,17,17,17,132,219, - 150,219,150,17,132,26,187,12,211,219,17,17,17,17,150,17, - 219,150,17,150,17,132,17,150,17,109,219,12,219,17,17,17, - 17,219,150,17,150,17,132,26,187,26,109,219,17,17,17,17, - 17,17,219,150,219,150,17,132,26,187,26,211,219,17,17,17, - 17,17,17,219,150,219,150,17,132,26,187,26,211,219,17,17, - 17,17,17,17,219,150,17,12,17,132,26,187,12,211,219,17, - 17,17,17,150,17,26,150,17,150,17,132,26,187,26,211,219, - 17,219,17,17,17,150,219,150,219,150,17,132,26,187,26,211, - 219,17,219,17,17,17,132,219,150,17,150,17,132,26,187,26, - 211,219,17,17,17,17,17,132,42,150,219,150,17,132,17,187, - 17,211,219,17,17,17,17,17,17,26,150,219,12,12,132,26, - 187,26,211,219,17,219,17,17,150,132,219,150,17,150,17,132, - 26,187,17,211,219,17,219,17,17,150,17,219,150,17,150,17, - 132,26,150,17,211,219,17,17,17,17,17,132,219,150,219,150, - 17,132,26,150,17,211,219,17,17,17,17,17,17,219,150,219, - 150,17,132,17,187,26,211,219,17,17,17,17,150,17,26,150, - 219,150,17,132,26,187,26,109,219,17,17,17,17,17,17,219, - 150,17,12,17,219,17,132,26,187,42,42,26,187,183,105,244, - 144,244,244,144,244,144,244,244,244,244,244,248,120,120,120,244, - 36,244,244,120,120,244,36,120,36,244,36,120,36,244,36,120, - 120,36,36,36,120,36,36,36,36,36,217,36,105,36,105,36, - 105,105,217,105,210,105,105,105,63,105,63,210,105,210,105,105, - 184,184,240,240,184,184,184,240,184,184,240,184,240,58,240,58, - 58,58,58,240,240,240,119,108,240,108,159,240,240,159,108,108, - 108,108,108,119,108,89,118,231,93,181,108,108,108,108,108,108, - 108,108,108,108,119,108,159,119,108,240,108,240,108,119,240,119, - 240,119,119,58,58,58,58,58,58,119,119,58,119,119,119,58, - 58,119,58,58,58,119,58,58,58,58,58,58,58,119,58,119, - 58,119,119,236,119,236,119,236,119,58,58,119,58,58,58,58, - 58,58,119,58,236,119,119,58,236,58,58,58,119,58,58,236, - 236,58,58,119,236,236,119,119,236,236,119,119,119,119,119,58, - 58,236,119,119,119,119,119,240,119,58,119,119,240,119,119,119, - 119,119,119,119,236,236,119,119,236,119,119,119,119,236,89,119, - 119,89,119,89,236,119,119,89,119,89,89,89,119,119,108,151, - 42,227,122,0,95,162,224,42,12,219,12,17,150,132,219,17, - 132,17,17,219,17,132,42,12,26,17,17,17,150,150,219,219, - 150,150,17,12,219,17,132,26,187,42,12,219,12,17,150,132, - 219,17,150,17,17,219,219,187,26,12,42,12,219,12,12,150, - 132,219,17,132,17,17,219,17,187,219,12,42,12,219,12,17, - 150,132,219,150,132,17,17,219,17,150,219,187,26,17,17,17, - 150,150,132,219,150,132,17,17,219,17,150,219,187,42,12,219, - 17,150,150,132,219,150,132,17,17,219,17,150,42,12,42,12, - 219,12,150,132,132,219,17,150,17,17,219,17,150,219,187,42, - 12,17,17,12,150,219,219,17,150,17,17,219,17,150,219,187, - 42,12,17,12,17,150,219,219,17,150,17,17,219,17,150,219, - 187,42,12,219,12,17,150,17,219,17,150,17,17,219,219,150, - 26,187,42,12,219,12,17,150,132,219,17,132,150,17,219,17, - 187,219,187,42,12,17,12,17,150,219,219,17,132,17,17,219, - 17,150,26,187,42,12,219,12,17,150,132,183,150,150,17,17, - 219,219,187,26,187,26,17,17,17,12,150,219,219,150,132,12, - 17,219,17,187,26,187,26,17,17,17,150,150,132,219,17,132, - 17,17,219,219,150,219,187,26,17,17,17,17,150,132,219,17, - 150,17,17,219,17,150,219,12,42,12,219,12,17,150,132,219, - 150,132,150,17,17,219,187,17,187,122,221,183,187,162,244,244, - 71,144,144,244,71,244,244,71,244,244,120,244,120,120,244,120, - 244,36,120,36,120,36,244,120,36,120,36,120,36,36,36,120, - 36,120,36,36,36,36,217,36,217,105,36,217,36,105,36,105, - 217,105,63,105,105,105,63,105,105,105,105,105,105,105,63,63, - 240,184,240,240,181,240,240,184,240,181,240,181,240,181,240,240, - 240,240,240,181,240,240,119,108,240,108,108,240,108,159,108,108, - 159,108,108,159,108,181,65,6,93,181,108,108,108,108,108,119, - 108,159,119,108,108,108,108,159,108,119,240,119,240,119,240,240, - 119,240,119,119,119,58,58,58,240,58,58,240,240,58,58,58, - 240,119,58,119,240,240,119,240,119,119,58,58,236,58,58,119, - 236,58,58,236,58,236,119,236,119,119,58,119,119,119,58,58, - 119,119,236,58,236,119,119,58,119,119,119,58,236,58,119,119, - 119,236,58,58,119,236,236,119,119,236,236,236,119,119,119,119, - 58,58,236,58,240,119,119,119,119,58,240,119,119,119,58,240, - 119,119,119,119,119,236,236,119,236,119,89,236,119,119,119,119, - 119,119,119,119,119,89,119,89,119,119,119,119,159,108,108,186, - 0,126,187,94,254,78,95,219,26,219,17,219,26,17,219,17, - 17,17,219,219,26,150,26,150,219,26,219,26,17,12,17,26, - 219,17,17,219,219,26,150,26,150,219,26,219,17,219,26,17, - 219,219,12,17,219,219,12,132,26,150,219,26,219,17,219,26, - 17,219,17,17,17,219,219,17,12,219,150,219,26,219,17,219, - 26,12,26,219,12,17,219,219,26,187,26,150,219,26,219,26, - 17,26,17,26,219,12,17,219,219,26,187,26,150,219,26,219, - 26,17,26,17,26,219,12,17,219,219,26,150,26,150,219,26, - 219,26,17,26,17,219,219,17,17,17,219,26,187,26,150,219, - 26,219,17,17,17,17,219,17,17,17,17,219,26,187,26,150, - 219,26,219,17,17,12,17,219,219,17,17,17,219,26,187,26, - 150,219,26,219,17,17,17,17,219,17,17,17,17,219,26,150, - 26,150,219,26,219,17,219,26,12,219,17,17,17,219,219,17, - 12,219,150,219,26,219,17,219,12,17,219,17,17,17,17,219, - 26,150,26,150,219,26,219,17,219,26,26,26,219,17,17,17, - 219,12,132,26,150,219,26,219,17,17,17,17,26,17,17,17, - 219,219,12,132,26,150,219,26,219,26,17,26,17,219,17,17, - 17,219,219,26,187,26,150,219,26,219,17,17,26,17,219,17, - 17,17,219,219,26,12,26,150,219,26,219,17,17,26,17,26, - 219,17,17,219,219,12,12,219,243,122,0,0,122,162,144,244, - 244,71,144,144,244,71,244,244,248,244,120,244,120,120,120,120, - 244,244,244,36,120,120,36,244,36,120,36,36,36,120,36,36, - 36,120,36,36,36,36,36,36,36,105,36,105,105,105,105,105, - 105,105,210,105,210,105,210,105,63,105,63,210,63,105,105,63, - 240,240,240,240,240,240,240,240,184,184,184,184,184,240,240,181, - 240,240,58,240,108,119,108,240,108,240,159,240,108,108,240,108, - 108,240,108,108,119,89,118,165,93,181,108,108,108,108,159,108, - 159,108,108,108,119,108,119,108,119,108,240,108,240,240,119,119, - 240,119,119,159,58,119,58,119,119,159,119,119,119,240,119,119, - 58,119,119,119,119,119,119,119,240,58,58,58,58,119,236,58, - 58,236,236,119,119,119,119,119,58,58,119,58,236,236,119,119, - 58,58,119,119,119,58,119,119,236,58,58,119,119,119,236,236, - 236,119,119,236,236,119,119,119,236,119,119,58,58,236,58,119, - 240,119,58,119,119,119,119,119,240,119,119,119,240,119,119,119, - 119,119,159,119,119,159,119,159,119,119,159,119,119,119,236,236, - 119,236,236,89,119,119,89,119,119,119,119,119,89,89,119,186, - 162,183,78,215,122,162,78,0,42,122,122,122,122,42,122,122, - 42,122,122,78,219,42,183,187,122,42,122,122,0,122,42,122, - 122,42,122,122,162,219,42,183,187,0,42,122,122,122,122,42, - 122,122,122,122,122,122,42,42,183,187,0,42,122,122,122,122, - 42,122,122,42,122,122,122,42,42,42,187,0,42,122,122,122, - 122,42,122,122,42,122,122,162,183,42,183,187,0,42,122,122, - 122,122,42,122,122,122,122,122,78,183,42,183,187,0,42,122, - 122,122,122,42,122,122,122,122,122,162,219,42,183,187,0,42, - 122,122,122,122,42,122,122,122,122,122,162,183,42,183,187,0, - 42,122,122,0,122,42,122,122,122,122,122,122,183,42,219,187, - 0,42,122,122,0,122,42,122,122,122,122,122,122,183,42,183, - 187,0,42,122,122,0,122,42,122,122,122,122,122,162,183,42, - 183,187,0,42,122,122,122,0,42,122,122,122,122,122,122,42, - 42,42,187,0,42,122,122,0,122,42,122,122,122,122,122,122, - 183,42,183,187,122,42,122,122,122,122,42,122,122,122,122,122, - 122,42,42,183,187,0,42,122,122,0,122,42,122,122,42,122, - 122,162,42,42,183,187,122,42,122,122,122,122,42,122,122,42, - 122,122,122,183,42,183,187,0,42,122,122,0,122,42,122,122, - 42,122,122,122,183,42,183,187,0,42,122,122,0,122,42,122, - 122,122,122,122,122,42,78,42,187,0,0,0,0,0,151,120, - 244,244,114,244,244,244,244,244,244,244,244,120,244,120,244,244, - 36,36,120,36,120,36,244,36,120,36,120,36,120,36,36,36, - 36,36,36,36,36,36,217,105,36,36,105,105,36,210,210,105, - 105,105,105,63,105,105,105,105,105,210,105,105,105,63,63,105, - 240,184,240,240,240,240,240,240,240,240,240,181,184,58,240,184, - 240,240,240,119,108,119,240,119,240,108,240,240,159,108,240,108, - 108,108,108,108,108,181,23,6,138,181,108,108,108,108,108,108, - 108,108,119,108,108,108,108,108,119,240,119,240,119,240,240,119, - 240,119,119,240,119,119,58,58,240,159,119,58,58,159,119,119, - 58,58,58,58,58,240,58,119,58,240,119,58,58,58,236,119, - 119,119,58,236,181,58,58,236,119,58,119,58,58,236,58,119, - 236,119,119,58,236,119,119,58,119,119,58,58,119,58,119,58, - 58,236,119,119,119,119,58,58,58,58,119,236,58,119,119,119, - 119,119,58,58,240,240,119,119,119,58,119,119,159,119,159,58, - 58,119,159,159,119,119,119,119,119,119,119,119,159,119,119,159, - 119,119,119,119,119,119,119,119,119,119,119,108,120,0,212,75, - 0,0,122,0,46,47,24,44,200,187,166,141,46,219,0,0, - 166,183,183,0,50,50,187,183,50,22,122,42,162,162,94,162, - 111,183,162,162,78,162,187,183,111,224,166,111,166,187,94,187, - 187,183,42,42,162,122,122,122,0,187,183,78,122,78,183,183, - 0,0,0,0,0,0,221,0,162,162,0,0,0,162,162,0, - 0,0,0,0,0,122,183,50,212,162,42,183,122,132,95,187, - 227,224,122,42,78,42,42,162,122,122,122,42,42,111,42,42, - 183,183,183,78,183,183,183,42,183,0,0,0,0,122,183,0, - 122,0,0,0,0,0,0,162,162,162,162,162,162,162,162,162, - 163,200,111,50,163,111,111,224,75,224,163,111,75,97,35,35, - 200,42,0,122,0,122,0,122,122,122,42,162,162,122,183,166, - 59,0,0,122,122,0,0,122,122,0,122,111,187,183,0,0, - 42,183,122,122,0,122,122,0,0,122,122,78,183,183,0,221, - 42,0,122,0,122,78,122,122,122,42,0,0,0,122,78,0, - 162,162,162,162,162,162,162,162,122,221,162,122,122,122,0,0, - 122,0,0,0,122,122,122,122,122,122,122,42,122,42,42,0, - 0,0,0,0,94,50,0,0,122,0,0,122,0,162,162,0, - 42,122,42,0,221,50,50,183,122,0,94,78,42,0,42,219, - 187,26,42,122,78,162,162,122,0,0,122,0,0,0,0,42, - 219,122,42,122,0,0,162,162,0,0,122,122,0,0,0,0, - 0,63,39,144,244,244,244,71,120,120,244,120,244,36,120,244, - 244,36,244,244,36,120,36,36,120,36,36,36,120,36,36,120, - 120,36,36,217,36,36,36,217,105,36,36,105,36,105,105,105, - 210,63,105,63,63,105,210,105,105,63,105,63,105,105,63,63, - 240,240,108,108,240,240,240,240,240,240,184,240,58,240,240,240, - 58,240,240,240,240,108,240,240,240,240,240,240,108,240,108,240, - 240,119,108,119,119,181,19,6,93,181,83,108,108,108,108,108, - 108,159,108,108,159,108,240,159,108,108,108,108,119,240,119,240, - 58,119,159,119,58,159,58,119,119,240,58,58,119,240,58,58, - 58,58,58,119,236,119,58,119,240,58,58,58,58,119,58,58, - 236,119,119,58,58,236,119,240,58,119,58,119,58,58,236,58, - 119,58,58,119,119,58,58,119,236,58,119,119,58,119,58,119, - 119,119,119,58,236,58,236,119,119,119,58,119,58,58,58,58, - 119,240,119,119,119,119,119,58,58,58,119,240,119,159,119,159, - 58,58,119,159,119,159,119,159,119,159,119,108,119,108,108,119, - 108,119,119,159,119,119,119,119,119,119,119,108,133,50,29,135, - 223,0,78,0,29,187,254,135,47,94,95,0,37,0,183,59, - 44,59,111,50,162,50,47,187,95,212,42,163,162,162,187,215, - 183,50,162,187,50,162,59,224,59,59,59,44,64,64,224,75, - 183,78,221,122,42,42,122,122,0,59,200,111,111,163,59,163, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 122,162,162,162,162,0,183,22,22,122,42,95,132,254,99,99, - 59,225,219,126,126,187,95,219,122,221,122,0,122,64,75,97, - 111,75,111,224,224,111,26,0,0,187,64,64,214,44,99,64, - 99,64,224,166,0,0,0,183,162,50,22,162,50,162,162,162, - 126,35,200,47,47,35,200,200,111,95,35,47,34,64,64,29, - 35,221,42,26,42,0,0,0,0,246,42,219,219,243,64,214, - 235,44,122,78,42,42,187,78,78,122,122,34,64,64,44,34, - 224,44,64,0,254,26,42,224,64,224,35,44,34,224,0,187, - 187,26,122,0,64,75,42,122,42,187,122,0,0,187,187,0, - 162,162,0,0,0,0,50,163,50,162,94,50,162,78,42,42, - 42,42,42,122,42,219,122,122,219,17,17,132,12,26,17,122, - 0,162,162,0,0,0,0,0,162,0,0,42,0,42,126,0, - 219,162,183,163,241,50,187,183,162,162,183,78,183,42,183,0, - 183,183,187,183,94,187,111,183,42,122,122,122,122,122,0,111, - 182,243,109,187,162,0,162,0,122,0,0,42,122,0,0,0, - 12,244,89,244,244,248,244,120,244,244,120,244,36,244,244,36, - 36,244,36,36,120,36,120,36,120,36,36,120,36,36,36,36, - 36,36,36,36,36,105,105,36,36,105,105,105,105,105,105,105, - 105,105,105,105,105,63,105,105,105,105,63,105,63,63,63,105, - 240,240,240,240,240,240,240,240,240,240,240,240,181,240,240,240, - 240,240,240,240,240,240,240,240,240,108,240,240,240,240,240,108, - 108,240,108,108,108,181,23,6,138,169,83,108,108,240,159,108, - 108,108,119,108,159,108,108,119,240,119,108,108,119,108,240,119, - 240,119,58,119,119,119,58,58,58,159,159,119,58,119,58,240, - 119,119,58,58,58,58,58,58,119,240,119,119,58,181,58,58, - 58,58,119,236,58,119,119,119,58,119,58,119,119,119,119,58, - 58,236,58,58,119,119,58,240,119,58,58,58,119,119,58,58, - 58,58,119,58,119,119,240,119,240,119,240,119,58,58,119,119, - 119,240,119,240,119,240,240,119,240,240,119,240,119,159,119,119, - 58,58,58,159,119,159,119,159,108,119,119,108,119,119,119,119, - 119,108,119,119,119,119,119,119,119,159,119,108,151,37,229,229, - 186,162,122,0,223,162,0,95,224,221,122,37,22,183,183,78, - 183,50,50,50,162,37,111,215,183,122,0,187,162,163,163,183, - 183,162,122,187,0,162,64,35,64,64,47,35,224,126,183,42, - 162,122,42,122,122,122,42,122,0,59,59,224,224,75,64,111, - 0,0,0,0,0,0,122,183,78,0,0,0,126,42,0,162, - 94,50,163,163,78,0,166,40,163,42,26,183,166,59,200,37, - 163,75,78,162,162,162,162,42,0,0,47,35,59,64,64,59, - 35,44,44,29,95,162,0,95,64,44,59,59,97,163,163,95, - 254,95,95,99,99,99,162,0,0,78,50,162,162,50,239,122, - 122,162,50,50,126,46,75,40,50,122,78,187,163,44,47,44, - 59,42,42,26,42,50,209,24,209,221,227,187,183,212,50,94, - 246,111,214,94,183,166,111,166,187,183,122,59,47,59,44,34, - 187,187,44,122,44,0,99,44,219,141,59,64,224,0,111,187, - 126,42,183,44,20,75,42,0,0,78,26,162,78,111,219,42, - 75,200,224,75,59,59,94,50,183,162,163,50,78,219,187,94, - 162,0,162,221,122,187,0,162,162,122,122,162,78,162,78,0, - 162,162,162,42,166,187,0,26,42,183,0,42,162,0,42,162, - 163,92,162,104,166,150,50,162,187,50,162,42,183,111,111,42, - 139,0,187,166,162,0,0,42,162,0,0,0,0,0,0,42, - 254,187,183,0,0,0,42,122,0,0,0,42,42,0,0,42, - 139,36,114,244,244,244,244,244,120,244,120,244,36,36,244,36, - 120,120,36,120,36,120,36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,105,105,105,217,105,105,105,210,210,105, - 105,210,63,105,105,210,210,105,105,105,105,105,105,105,63,63, - 247,240,108,247,240,240,108,108,240,240,240,240,240,240,240,240, - 240,240,240,240,240,108,108,108,240,240,240,240,108,108,108,108, - 108,108,108,108,108,89,23,6,216,39,83,108,108,108,108,159, - 108,108,108,108,108,108,159,108,108,108,240,240,108,119,240,159, - 119,240,159,119,240,58,119,58,119,119,240,58,119,240,119,58, - 119,240,119,119,119,240,58,119,240,119,240,58,58,240,184,181, - 119,119,58,58,119,58,58,119,119,58,119,58,58,58,58,58, - 119,58,58,119,58,58,119,119,58,58,58,119,58,58,119,119, - 119,119,58,119,58,58,119,119,119,119,119,119,119,240,119,240, - 119,119,240,119,159,119,119,240,119,119,119,159,119,119,240,159, - 119,159,119,119,119,119,119,119,119,119,119,119,119,108,119,119, - 119,119,119,159,119,119,119,119,119,119,119,108,151,109,135,229, - 229,46,0,122,24,44,122,162,203,95,166,22,22,163,227,212, - 162,162,162,42,187,162,162,162,187,166,187,95,166,203,241,162, - 187,227,215,163,163,187,224,64,64,59,109,95,183,0,122,122, - 122,42,122,122,183,0,122,122,0,47,59,46,59,47,64,59, - 0,0,122,219,122,42,162,0,122,183,0,111,133,126,162,162, - 183,163,227,97,162,0,111,37,94,122,219,0,0,0,187,241, - 22,241,50,162,162,162,50,162,122,42,171,34,223,44,44,99, - 44,34,192,224,0,219,44,59,166,122,0,163,37,37,203,224, - 59,111,224,37,212,99,225,95,0,0,162,163,163,75,162,162, - 50,78,215,42,239,47,59,200,59,75,162,126,142,44,35,46, - 59,122,122,42,42,50,35,241,75,162,42,221,164,14,50,104, - 37,212,166,44,162,187,95,126,187,187,187,0,183,44,64,64, - 44,254,150,59,64,183,59,111,111,111,254,109,162,111,111,187, - 221,95,29,253,29,95,150,47,152,35,254,162,26,254,224,111, - 34,34,29,29,20,44,0,0,162,94,122,221,162,254,111,42, - 162,42,162,162,162,111,162,122,122,37,162,162,162,162,162,0, - 162,162,162,166,182,224,42,219,122,75,241,94,162,162,166,12, - 59,59,212,241,17,78,56,111,42,122,162,26,166,109,42,162, - 162,132,224,109,132,0,78,0,0,42,183,219,42,0,122,162, - 78,122,0,0,78,122,42,122,0,122,78,0,0,0,0,219, - 67,105,89,71,244,248,248,120,120,120,120,120,120,36,120,120, - 244,36,244,36,120,36,120,36,36,120,120,36,36,36,36,36, - 36,36,36,217,36,36,36,105,36,36,105,217,105,105,105,63, - 210,105,105,63,105,105,105,155,105,105,63,105,63,210,105,36, - 108,240,240,108,247,240,240,240,240,108,108,240,240,108,240,240, - 240,108,240,240,240,240,240,108,108,240,108,240,240,108,108,108, - 108,108,108,108,108,181,250,6,216,39,83,108,108,108,108,159, - 108,108,108,108,159,108,240,240,108,108,108,240,108,240,108,108, - 119,108,159,119,119,58,119,240,119,58,159,119,58,58,119,240, - 119,58,240,119,119,240,119,58,240,119,58,119,119,119,240,58, - 58,119,119,240,119,58,240,119,119,240,119,119,58,58,119,58, - 119,119,240,119,119,119,58,119,58,119,240,119,119,58,58,58, - 58,119,240,119,119,58,58,58,119,58,240,119,119,240,119,58, - 119,58,119,119,240,119,58,58,240,119,240,119,240,119,159,119, - 119,159,119,159,119,119,119,159,119,119,119,119,119,119,119,159, - 119,119,119,119,119,89,119,119,119,119,119,83,15,75,171,135, - 135,15,122,223,34,75,162,50,50,203,163,122,215,22,94,183, - 42,162,162,227,212,162,162,95,166,215,162,0,219,50,164,50, - 50,75,162,212,50,95,94,111,183,42,0,59,44,0,122,42, - 122,122,42,183,111,183,122,0,0,35,59,59,47,35,34,64, - 0,0,42,0,183,183,0,0,0,183,0,187,0,187,0,0, - 162,50,78,75,78,0,227,183,122,42,78,0,0,162,0,95, - 22,37,22,162,0,162,50,162,42,29,223,44,24,64,34,47, - 44,34,111,0,99,225,95,42,111,187,183,75,164,37,203,95, - 95,75,200,22,22,37,212,99,34,166,215,50,212,187,212,183, - 50,50,126,50,22,75,34,142,59,163,183,44,44,46,29,35, - 64,187,0,122,42,163,42,42,163,50,17,56,73,212,50,212, - 241,50,22,254,126,187,224,95,95,166,111,187,122,95,227,59, - 44,64,183,47,171,44,94,64,47,59,126,0,166,182,183,42, - 35,44,59,109,35,95,192,152,125,229,109,162,187,224,224,109, - 223,44,29,178,171,224,0,162,50,162,122,122,122,150,166,162, - 162,50,42,162,42,187,162,162,0,241,162,0,0,162,0,0, - 162,0,0,99,214,44,126,26,122,163,142,59,59,243,182,224, - 187,187,224,50,42,219,187,162,56,187,122,26,17,227,0,94, - 0,67,99,182,109,227,183,122,42,17,183,166,187,187,0,162, - 0,0,0,162,187,183,42,0,0,0,0,0,0,122,0,111, - 182,63,114,244,244,244,244,244,120,120,120,120,120,244,36,120, - 244,36,36,36,120,36,36,36,36,36,36,217,36,36,217,36, - 36,217,36,36,217,36,217,105,105,105,105,105,217,105,36,105, - 105,105,105,105,105,105,36,105,105,36,210,105,105,105,105,105, - 240,108,108,240,184,247,108,108,108,240,240,108,240,240,108,240, - 240,240,108,108,108,108,108,240,240,108,240,108,108,108,108,108, - 108,108,159,108,108,119,250,6,41,181,83,108,108,108,108,108, - 159,108,240,240,108,108,108,108,240,240,159,108,240,159,58,58, - 240,119,119,240,58,58,58,119,240,240,119,240,58,119,58,119, - 240,58,119,58,58,58,119,240,58,58,119,240,58,58,58,58, - 58,119,240,119,240,119,119,119,240,58,119,240,119,58,58,58, - 119,240,58,119,240,119,119,240,119,240,119,240,58,240,58,58, - 119,119,58,119,240,119,240,119,240,119,119,119,240,119,240,119, - 240,119,240,119,159,119,159,58,119,240,119,159,119,119,240,119, - 240,119,159,119,159,119,159,119,119,159,119,159,159,119,119,119, - 159,119,159,119,236,119,119,119,119,119,108,108,245,35,151,245, - 229,151,111,223,142,162,0,0,183,75,162,162,122,40,162,162, - 183,78,166,163,94,162,212,183,221,0,122,94,0,215,187,75, - 50,203,75,183,132,50,95,111,37,164,122,99,29,183,0,122, - 42,122,122,239,239,224,95,0,0,95,224,64,64,44,178,171, - 0,0,183,122,183,122,219,183,0,122,0,166,59,166,122,0, - 241,26,22,241,162,0,163,42,122,166,219,187,0,0,0,183, - 164,50,50,59,59,122,162,187,50,171,59,44,35,64,44,35, - 64,183,0,64,44,50,22,59,183,183,183,183,183,215,187,111, - 219,17,95,241,164,164,224,187,47,59,183,0,40,50,94,163, - 94,78,212,224,163,50,187,34,187,163,35,223,59,35,35,47, - 64,111,26,26,42,24,22,183,178,122,26,162,212,162,56,22, - 183,221,14,122,44,122,95,109,59,224,224,111,183,64,29,122, - 47,215,183,24,171,224,44,254,59,126,0,122,42,187,200,34, - 29,139,64,44,44,97,171,245,63,171,111,0,187,254,109,59, - 158,253,224,254,35,163,0,42,37,78,94,0,42,224,111,162, - 162,78,162,162,221,91,122,162,0,164,111,187,254,254,109,122, - 0,0,0,214,64,225,166,42,0,241,73,24,59,183,246,50, - 0,0,26,42,221,183,0,227,254,111,122,42,0,0,122,163, - 0,99,254,0,183,50,78,122,78,162,42,0,162,111,187,0, - 0,0,0,0,162,0,0,162,0,0,0,0,122,122,0,99, - 109,36,114,248,248,248,248,120,244,244,120,120,36,120,244,120, - 36,120,36,120,36,120,36,120,36,36,36,36,217,36,36,217, - 36,36,36,36,36,105,36,210,217,105,217,36,105,105,105,105, - 105,105,105,105,105,36,105,217,105,105,105,105,105,210,105,105, - 240,240,247,108,240,240,240,240,240,108,240,240,240,240,240,108, - 108,240,240,240,240,240,108,108,240,108,108,108,108,240,66,108, - 108,83,108,108,108,181,250,6,62,39,83,83,108,108,108,108, - 108,108,108,108,159,108,159,240,108,108,240,108,108,108,159,108, - 159,240,119,119,119,58,58,240,119,240,119,119,159,119,119,58, - 119,58,240,119,240,119,58,119,240,240,119,240,119,58,58,240, - 119,119,119,119,119,240,119,58,119,58,58,240,119,240,119,240, - 119,119,58,119,240,119,119,119,58,119,119,240,119,240,119,58, - 240,119,119,58,119,119,119,119,240,119,240,119,119,119,240,119, - 58,58,240,119,240,119,119,58,58,240,119,240,159,119,119,58, - 119,119,119,119,119,119,119,119,119,119,119,119,119,159,119,119, - 119,119,159,119,119,236,119,119,119,119,119,83,15,162,253,253, - 253,245,142,122,223,35,166,163,50,50,212,162,122,42,42,50, - 227,162,183,163,163,183,111,162,162,0,24,178,46,162,166,94, - 162,94,50,95,42,94,221,183,164,50,224,44,20,29,122,122, - 122,122,0,221,50,224,111,224,50,183,50,50,122,166,35,171, - 162,0,162,126,219,183,183,183,187,0,0,95,20,183,0,0, - 163,163,209,61,0,0,163,0,122,166,17,183,0,0,0,183, - 22,212,22,163,171,162,162,183,0,224,227,64,46,187,59,59, - 187,0,99,44,94,164,14,104,183,187,0,0,0,0,132,224, - 42,26,219,26,12,59,59,163,212,187,225,94,94,50,50,212, - 94,78,163,111,162,200,35,111,122,20,20,178,34,44,200,111, - 59,126,122,42,26,163,37,97,241,26,183,221,94,163,163,78, - 200,75,212,42,111,0,122,42,183,227,95,126,183,59,64,64, - 47,111,192,171,163,0,42,221,221,0,0,187,142,29,20,229, - 44,61,59,109,142,95,225,171,245,20,26,162,183,187,187,111, - 47,224,42,42,42,94,162,162,50,162,50,0,187,99,111,162, - 162,162,0,0,0,0,0,162,0,164,214,64,192,225,158,183, - 0,0,0,126,187,111,183,0,162,183,163,163,187,162,50,37, - 162,162,0,166,26,187,187,109,163,163,212,0,122,0,42,61, - 0,254,109,0,183,162,122,122,0,162,78,122,0,42,187,122, - 0,78,42,122,162,162,122,122,122,0,0,0,122,0,0,99, - 8,120,114,244,120,244,120,248,120,120,120,244,36,120,120,120, - 36,120,36,120,36,36,36,36,36,36,36,36,36,36,36,36, - 36,36,217,36,36,105,36,105,105,105,105,105,105,217,36,217, - 105,217,210,105,105,105,105,36,105,105,105,105,105,105,105,105, - 240,108,240,247,240,240,240,240,247,240,240,108,240,240,240,184, - 240,240,108,240,240,240,240,240,108,240,240,240,240,108,240,108, - 108,108,108,108,159,108,43,6,62,71,161,240,108,108,108,108, - 159,108,159,240,108,240,108,159,58,159,159,240,159,240,108,119, - 108,119,240,159,240,240,119,119,159,58,119,240,119,240,240,58, - 119,240,119,58,58,240,119,159,119,119,240,58,119,240,119,119, - 240,58,58,119,240,119,240,119,240,119,119,119,119,119,119,119, - 119,240,119,159,119,240,58,240,119,240,119,119,119,119,240,240, - 58,119,240,119,240,240,119,240,119,240,58,58,119,159,58,119, - 240,58,119,240,58,119,159,58,119,236,119,119,159,119,159,58, - 58,58,159,236,159,119,159,119,159,119,159,119,159,119,119,119, - 159,119,119,119,119,119,119,119,119,119,119,83,15,78,47,44, - 34,253,171,0,126,59,122,212,50,37,224,50,183,50,94,239, - 203,22,163,183,183,163,215,162,162,163,75,163,126,221,162,163, - 50,221,162,163,94,227,126,162,162,163,163,64,29,34,183,0, - 122,122,42,122,0,187,166,224,59,224,187,56,122,187,183,111, - 122,0,122,224,221,183,78,122,187,0,0,0,0,162,0,0, - 50,75,50,183,0,0,94,162,122,0,0,0,0,0,0,126, - 164,22,22,75,229,42,122,122,0,162,0,44,29,187,59,224, - 0,64,99,99,241,241,97,122,111,166,111,122,0,0,187,227, - 0,26,42,42,42,243,227,78,183,50,163,64,183,183,221,162, - 162,40,126,40,64,64,183,183,183,111,59,95,35,34,111,187, - 166,219,42,122,26,183,241,200,50,162,203,239,22,37,22,78, - 209,50,0,64,166,0,122,42,17,42,42,26,0,29,225,35, - 152,47,227,0,0,0,0,122,122,42,35,253,171,178,42,200, - 111,214,59,235,24,163,64,0,40,111,95,0,78,162,0,0, - 162,0,122,0,0,187,78,42,50,50,221,0,56,111,187,162, - 162,78,0,0,0,0,78,162,0,37,64,64,192,225,171,187, - 0,162,0,0,0,0,0,0,0,0,126,241,111,50,162,40, - 162,162,42,224,97,212,50,162,183,111,94,0,42,162,162,163, - 162,182,182,187,50,183,42,162,162,162,183,50,162,162,162,0, - 0,122,122,122,162,0,42,0,122,122,122,0,122,0,0,145, - 17,36,114,248,244,248,120,244,120,120,120,120,120,36,120,36, - 244,120,36,120,36,120,36,25,36,36,36,36,217,36,36,36, - 217,36,36,36,105,36,105,105,105,105,105,105,217,105,105,105, - 105,105,105,105,217,217,105,105,217,105,210,210,217,217,217,105, - 240,240,240,108,240,240,247,184,240,240,240,108,240,240,240,240, - 240,240,240,240,108,108,108,240,66,108,108,240,240,108,240,108, - 108,108,108,108,108,181,43,6,62,74,247,108,108,240,108,108, - 240,108,108,159,240,159,108,108,108,159,240,119,240,240,159,58, - 240,159,119,240,119,159,119,240,119,58,58,159,240,119,119,240, - 119,240,119,58,58,159,240,58,240,58,58,240,119,240,119,58, - 58,58,58,58,240,119,240,119,240,159,58,240,58,240,58,58, - 58,119,119,240,119,119,58,119,119,240,119,58,58,58,119,119, - 58,58,58,58,119,119,119,119,58,119,240,119,240,119,58,58, - 119,58,58,119,159,119,58,58,184,184,236,58,58,58,119,58, - 58,58,159,236,236,236,119,236,159,236,119,119,119,119,159,119, - 159,236,119,119,119,236,119,119,119,119,119,83,229,97,135,229, - 229,135,133,162,163,163,183,162,163,200,94,162,94,187,162,94, - 239,94,163,163,183,183,162,0,163,84,163,42,209,162,94,126, - 163,163,50,239,126,212,163,126,94,162,183,44,29,44,35,122, - 0,0,122,122,122,0,162,95,221,224,183,0,126,126,221,78, - 26,166,215,42,0,162,0,0,183,183,219,0,42,0,122,224, - 64,22,22,187,111,0,162,163,0,0,162,50,162,162,183,95, - 50,221,162,183,29,44,224,75,183,29,35,44,223,44,29,183, - 99,95,212,59,47,183,0,0,187,166,99,44,35,50,163,171, - 171,182,97,162,75,183,219,8,243,59,22,163,59,50,212,203, - 163,163,163,203,212,162,78,59,47,187,227,215,0,94,162,122, - 187,0,122,122,17,50,22,61,22,111,164,241,14,221,50,50, - 163,162,50,64,183,0,122,42,26,17,12,42,0,0,47,59, - 95,64,42,219,26,26,26,26,26,226,84,59,141,94,0,221, - 37,183,75,111,224,183,99,64,99,183,162,78,42,26,26,42, - 42,122,42,0,162,162,162,78,122,42,122,0,0,50,162,78, - 162,162,111,75,187,163,50,78,162,164,64,99,34,44,225,183, - 0,0,0,0,0,0,0,0,0,50,200,212,227,182,97,187, - 42,183,109,221,78,111,99,224,227,162,0,162,0,0,162,162, - 221,235,95,0,162,50,221,219,162,162,42,22,187,122,122,162, - 0,219,122,0,122,0,122,122,0,122,42,0,0,0,219,214, - 26,36,114,244,120,244,248,120,248,120,120,120,120,36,120,36, - 36,36,36,120,36,36,36,36,36,217,36,36,36,217,217,36, - 36,36,217,36,105,105,217,105,105,210,105,105,36,105,105,217, - 105,105,210,63,105,105,217,105,105,36,36,105,105,36,105,105, - 108,108,240,247,240,240,240,240,240,108,108,240,240,240,247,240, - 240,240,240,108,240,240,240,240,240,240,240,240,240,240,108,108, - 240,240,240,108,159,108,87,6,167,248,161,108,108,108,159,159, - 108,240,240,108,108,108,159,240,159,108,240,108,159,240,108,159, - 240,119,240,58,58,159,58,58,159,159,240,119,58,119,159,58, - 58,58,159,159,119,240,58,58,58,119,159,58,58,58,184,58, - 58,58,58,119,58,119,119,119,119,119,159,119,159,58,58,58, - 58,119,240,119,240,58,119,240,240,58,240,58,184,58,58,184, - 58,58,58,58,58,240,159,240,119,240,58,119,240,159,58,58, - 240,58,119,240,119,240,58,236,58,58,184,58,236,236,236,184, - 236,236,236,159,119,119,236,119,236,119,119,119,119,159,119,119, - 119,119,159,119,89,119,119,119,119,119,119,83,133,109,135,171, - 135,229,38,229,183,135,94,0,203,37,50,162,50,50,94,94, - 94,94,183,75,37,42,221,122,56,24,241,50,200,162,94,46, - 50,24,221,183,42,50,163,78,254,162,78,64,29,35,44,47, - 0,122,122,0,0,227,20,34,122,212,183,42,254,221,162,183, - 162,183,183,42,0,0,0,0,122,0,0,0,0,111,59,225, - 64,50,163,162,64,166,224,162,183,0,162,0,0,162,97,42, - 241,162,0,0,111,20,47,47,126,20,253,44,34,34,64,183, - 214,212,111,227,122,0,0,0,95,50,245,155,152,162,94,183, - 44,203,37,183,34,162,42,17,219,94,40,212,241,212,212,162, - 221,0,44,241,50,163,212,122,166,64,99,111,162,95,64,239, - 111,0,99,187,99,35,14,22,22,219,99,95,50,0,163,183, - 37,212,212,224,122,0,122,42,42,219,122,215,163,59,78,221, - 0,0,111,212,187,12,12,26,111,92,203,0,0,183,0,42, - 164,162,95,35,227,212,64,171,0,42,26,26,26,26,0,42, - 42,0,0,0,0,0,0,0,0,122,0,122,221,163,163,50, - 50,50,163,163,212,95,162,0,122,162,182,224,182,224,99,42, - 0,122,122,122,122,162,78,0,0,94,0,50,164,37,187,183, - 163,183,164,0,162,221,126,235,187,0,122,0,0,122,0,0, - 78,182,109,227,0,221,162,0,162,162,183,94,0,0,0,0, - 0,187,42,0,162,0,0,122,0,42,122,0,0,0,182,214, - 150,63,114,248,244,120,120,244,120,120,120,120,120,120,120,120, - 244,36,36,120,36,120,36,217,36,36,105,36,217,36,36,36, - 105,105,36,105,36,36,105,105,210,105,105,217,105,36,105,105, - 105,105,105,105,105,105,105,105,36,105,105,36,36,105,217,105, - 240,247,240,66,240,240,247,240,240,240,247,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,108,240,240,240,240,66, - 108,108,108,108,240,181,87,60,123,25,161,240,108,108,108,240, - 240,159,240,159,108,108,240,108,240,240,240,108,240,240,108,159, - 240,119,240,240,240,58,58,240,119,58,240,119,240,240,119,58, - 58,240,240,240,119,58,240,159,184,240,119,184,58,58,58,240, - 58,58,58,58,240,58,58,58,240,119,58,58,58,58,58,58, - 240,119,119,119,159,119,58,58,119,58,240,119,58,184,58,184, - 184,58,236,58,236,240,119,58,58,240,119,58,119,119,58,236, - 119,58,236,58,236,236,184,58,58,58,153,184,58,58,236,184, - 236,236,236,236,143,119,236,119,159,236,159,159,236,143,159,159, - 119,119,143,159,119,236,143,119,119,159,119,108,151,126,20,135, - 20,171,229,38,126,223,59,212,241,59,50,183,166,183,162,162, - 162,163,162,162,94,183,0,0,162,42,22,75,162,122,0,163, - 163,50,162,221,162,212,183,0,95,166,42,224,34,34,44,171, - 42,0,0,162,44,171,133,59,111,183,40,122,122,0,59,78, - 50,162,0,122,42,183,219,183,0,0,0,122,64,99,166,59, - 95,0,162,50,99,78,64,111,94,50,42,162,163,163,75,0, - 61,241,42,162,166,245,187,95,221,44,34,24,34,34,221,99, - 239,241,166,0,166,42,227,44,50,50,35,171,95,0,221,0, - 0,221,162,35,15,152,162,0,0,122,122,224,224,26,50,50, - 162,162,111,59,111,183,75,50,162,183,254,59,187,162,109,59, - 42,227,95,166,99,64,64,59,200,150,59,166,99,163,50,50, - 241,162,0,254,122,122,0,122,42,0,162,24,24,35,187,111, - 0,42,224,224,50,50,183,126,22,22,14,164,35,64,162,50, - 163,162,221,187,44,163,214,171,122,42,26,26,183,26,42,0, - 42,42,26,26,42,0,162,162,162,122,0,26,122,50,50,50, - 162,162,212,50,94,162,0,122,162,0,122,166,187,166,111,162, - 162,162,162,0,162,163,162,162,221,122,78,22,50,0,0,0, - 37,219,226,37,162,111,162,162,122,122,122,122,122,122,122,0, - 0,162,109,214,122,122,0,12,187,162,162,50,122,78,187,162, - 0,78,78,122,0,0,42,162,162,42,122,0,0,0,64,214, - 187,217,114,248,120,248,120,120,120,120,120,120,120,120,36,36, - 36,36,36,36,36,36,120,36,36,36,217,36,105,105,105,36, - 36,105,217,105,105,217,105,36,105,105,105,105,217,105,36,105, - 217,105,105,105,36,217,217,105,217,105,105,63,105,105,105,105, - 240,240,240,240,240,240,240,247,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,108,108,240,240,108, - 108,108,108,108,240,108,87,116,123,25,161,108,108,240,108,108, - 108,108,108,108,108,108,108,108,240,108,108,108,108,240,240,108, - 159,159,58,58,240,159,240,58,240,159,58,58,58,58,159,58, - 58,119,58,58,159,240,58,119,159,58,240,58,240,58,184,58, - 58,58,58,119,58,159,184,58,58,184,58,58,58,159,159,58, - 58,58,240,58,58,240,58,58,58,119,58,58,58,58,58,58, - 236,184,184,236,58,58,58,58,236,58,184,236,58,58,58,58, - 153,236,184,184,184,184,236,153,236,236,58,58,153,236,58,58, - 159,236,159,159,119,159,119,143,236,159,236,159,119,119,119,236, - 159,159,119,119,236,119,119,119,119,119,119,83,151,91,171,135, - 229,135,135,38,47,35,135,203,59,183,122,0,40,50,162,0, - 166,166,59,50,0,50,0,122,0,163,241,22,37,0,122,97, - 163,163,26,221,162,162,0,183,42,126,50,111,59,44,44,135, - 46,0,64,229,151,186,186,162,219,162,64,44,239,44,133,20, - 162,0,0,162,162,0,0,122,0,0,0,126,44,59,95,166, - 254,0,122,50,95,42,59,166,183,164,111,42,241,141,254,163, - 56,241,209,0,162,75,0,42,122,122,59,29,34,200,0,64, - 203,75,183,122,122,64,133,20,47,37,50,47,183,78,187,122, - 122,215,61,15,245,34,0,0,221,42,26,187,64,183,215,111, - 221,94,162,64,40,162,35,212,94,59,221,0,50,50,162,221, - 0,64,56,187,126,59,254,182,224,254,95,162,214,34,162,22, - 24,50,0,122,122,0,122,0,0,122,75,59,59,35,75,94, - 122,166,59,59,224,50,50,214,29,59,50,22,75,59,50,50, - 50,0,200,75,59,239,225,152,122,42,122,0,0,122,122,0, - 122,122,42,26,122,0,0,162,162,122,0,26,26,162,37,50, - 50,50,166,227,227,42,122,0,122,0,0,122,162,78,162,0, - 0,122,162,0,239,111,162,122,162,0,50,122,122,162,162,162, - 94,111,212,46,221,12,166,42,26,42,122,122,0,122,0,0, - 0,0,122,254,162,0,182,99,183,126,50,50,42,122,50,183, - 0,0,0,0,187,0,94,0,42,162,42,0,0,0,235,64, - 12,105,114,244,120,244,120,120,120,25,36,36,36,36,244,36, - 120,36,36,36,36,36,105,36,105,105,36,105,36,36,105,105, - 105,105,105,36,217,105,105,105,210,210,210,105,210,36,105,105, - 105,105,217,36,105,36,105,36,36,105,210,105,105,105,105,210, - 240,240,66,240,240,134,240,240,240,240,240,240,240,240,240,240, - 240,240,240,108,240,108,240,108,108,240,66,240,108,108,240,108, - 240,108,240,108,108,108,87,116,123,25,247,83,108,240,240,108, - 108,108,108,159,108,108,159,108,159,108,240,240,108,240,240,108, - 108,159,240,159,240,58,240,58,240,159,240,58,184,58,240,159, - 240,58,184,58,58,58,240,240,58,58,240,58,184,58,184,58, - 58,58,184,236,58,58,58,58,58,58,58,58,58,236,153,236, - 153,236,159,58,58,58,58,58,184,236,58,58,236,58,58,184, - 236,184,159,184,153,58,58,159,236,58,184,184,184,236,184,58, - 184,58,236,236,58,184,58,184,184,236,236,58,184,153,236,236, - 184,236,119,159,236,159,119,159,119,119,236,159,159,159,159,236, - 236,159,159,159,159,159,159,159,159,108,119,83,151,0,34,135, - 171,229,229,245,29,142,126,50,37,168,14,42,212,212,221,183, - 227,221,211,75,78,212,187,0,122,37,24,22,91,95,241,75, - 22,75,37,224,0,0,162,111,163,50,37,163,37,61,224,29, - 35,29,133,229,152,29,95,0,183,183,35,15,15,229,245,152, - 162,0,162,50,50,162,122,122,0,0,0,224,64,187,166,78, - 59,0,0,37,95,26,187,59,95,37,75,219,22,162,183,209, - 78,178,154,42,0,0,162,26,0,122,122,59,29,26,141,35, - 40,219,141,26,95,47,29,50,35,59,162,37,150,95,12,142, - 187,254,29,155,35,50,50,75,47,224,150,221,254,40,40,42, - 59,183,94,34,35,95,59,59,224,46,59,64,122,219,239,183, - 162,221,59,183,183,64,47,59,99,59,111,183,99,214,59,75, - 61,162,162,162,0,122,26,42,122,187,35,187,187,50,239,122, - 42,224,59,99,99,94,111,192,29,171,44,64,75,200,44,142, - 34,221,47,200,75,163,44,171,183,122,26,42,0,122,0,0, - 122,0,122,183,0,75,163,122,0,122,0,26,26,122,50,163, - 50,50,42,162,94,183,50,0,0,0,0,219,99,99,111,122, - 122,42,0,94,227,122,0,162,162,122,0,0,94,42,109,221, - 162,111,14,37,22,0,0,122,42,122,0,122,122,122,0,0, - 122,42,0,0,183,162,187,122,219,99,211,224,150,26,122,0, - 0,0,219,150,182,183,162,0,122,0,42,0,122,0,235,99, - 26,105,144,244,25,120,120,120,244,120,120,25,120,36,36,36, - 36,120,36,36,36,36,36,36,36,105,36,105,105,36,217,36, - 36,36,105,36,36,105,105,36,105,105,105,36,105,105,217,105, - 217,105,105,217,105,105,63,105,105,105,105,210,105,210,105,105, - 240,240,240,240,247,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,108,240,108,240,240,108,240,66,240,240,108,240, - 108,108,108,108,108,108,87,116,123,155,252,108,108,108,108,108, - 108,240,240,108,240,240,108,108,108,159,240,108,240,159,240,159, - 58,240,108,159,240,240,58,159,240,159,58,58,240,184,58,159, - 58,240,58,240,184,159,58,184,58,159,58,184,58,184,58,184, - 153,236,236,184,58,58,184,236,58,58,58,236,153,159,58,159, - 58,159,58,58,236,58,58,58,58,184,58,184,184,153,153,159, - 184,236,153,236,58,153,58,58,184,184,58,58,58,159,236,58, - 58,236,184,159,184,58,58,236,236,58,184,58,236,58,184,184, - 236,159,236,236,159,236,159,159,236,159,159,159,119,159,119,159, - 159,159,236,159,236,236,119,119,119,119,119,108,133,0,163,44, - 20,135,229,129,29,24,37,163,221,104,206,164,163,40,0,122, - 94,183,219,212,94,203,95,122,47,187,163,162,56,254,34,61, - 61,22,37,241,187,122,162,92,200,162,162,50,50,164,111,59, - 0,64,186,29,229,94,26,56,0,0,225,135,152,29,15,229, - 162,0,122,122,162,162,162,0,0,0,0,224,59,95,183,109, - 44,162,42,22,64,26,166,29,64,50,104,141,209,37,37,46, - 91,44,46,0,0,122,0,42,122,122,122,183,200,122,64,59, - 183,0,219,166,37,37,37,50,171,15,59,162,226,203,95,177, - 75,150,34,44,0,163,203,200,59,59,254,26,17,59,200,122, - 47,64,0,35,34,34,163,59,200,75,34,57,20,95,78,42, - 0,162,166,224,0,99,29,192,64,44,59,162,183,42,64,162, - 0,50,162,78,122,122,122,0,0,75,75,122,42,42,219,42, - 26,99,35,59,224,183,75,34,44,34,192,29,44,126,224,34, - 229,183,162,162,64,239,235,192,224,26,26,122,42,192,122,0, - 0,132,20,29,187,171,171,42,0,42,122,0,26,26,162,50, - 50,42,209,50,0,42,59,50,162,78,78,0,162,42,122,0, - 162,162,162,126,187,0,0,162,162,0,42,122,162,59,24,122, - 94,183,22,164,235,0,0,0,42,42,122,0,0,122,0,122, - 26,26,0,0,50,162,0,26,219,254,254,182,150,26,182,42, - 0,0,187,162,162,162,26,0,0,0,122,122,0,78,122,162, - 0,221,64,47,163,105,114,244,120,120,36,120,36,36,36,120, - 36,36,36,36,36,36,217,36,105,36,105,105,36,105,105,105, - 105,105,105,105,210,36,105,105,105,105,217,105,217,217,36,210, - 105,36,105,105,105,105,105,105,105,105,105,105,105,105,105,210, - 240,240,240,134,240,134,240,240,247,240,240,240,240,240,240,240, - 247,240,240,240,240,240,240,247,240,240,240,240,240,240,66,108, - 240,108,108,108,108,108,18,116,173,245,161,108,108,108,240,159, - 108,108,159,108,108,108,159,108,108,108,159,240,108,240,240,159, - 240,58,240,159,159,159,240,58,240,58,184,58,159,58,58,58, - 58,159,58,58,58,58,58,184,58,184,58,184,240,184,58,184, - 159,184,58,58,236,58,159,58,153,153,159,58,153,159,153,159, - 153,153,58,159,236,153,159,236,184,153,236,184,58,58,236,153, - 159,159,184,159,58,153,236,236,236,159,236,153,153,159,153,153, - 159,184,236,236,58,58,159,236,153,236,236,184,236,236,58,159, - 236,58,159,236,119,159,236,159,236,119,119,159,236,159,119,119, - 236,119,159,119,159,159,119,159,108,119,108,108,133,50,223,135, - 253,29,253,135,34,203,142,46,22,42,0,221,50,42,22,10, - 22,42,162,50,42,142,0,34,44,47,95,95,47,187,64,227, - 163,109,224,22,35,164,0,212,50,0,0,162,0,50,50,166, - 0,122,229,171,15,35,122,29,183,162,200,245,135,171,171,229, - 26,42,0,50,209,241,37,26,12,12,12,214,47,224,0,64, - 64,0,162,35,192,224,224,34,34,94,239,219,111,200,42,183, - 203,241,162,122,122,122,0,42,0,122,78,122,0,78,29,187, - 0,162,224,47,162,37,22,22,46,20,152,24,164,241,46,22, - 22,35,241,50,59,99,75,50,12,111,50,219,219,12,75,166, - 254,192,97,0,200,35,75,163,75,44,171,171,229,152,29,64, - 183,162,162,187,59,219,166,95,64,47,254,162,0,162,111,183, - 162,50,50,0,97,75,162,0,163,209,163,26,26,64,192,187, - 187,95,99,254,163,142,35,99,44,44,34,34,192,44,0,122, - 187,162,122,162,20,75,99,192,64,122,42,122,0,152,183,42, - 122,29,171,75,95,50,50,0,122,26,42,0,26,12,78,50, - 183,183,35,42,162,162,183,122,162,162,162,150,183,26,26,0, - 162,162,162,64,152,122,0,162,162,0,0,0,187,14,14,219, - 162,183,122,14,109,0,42,0,42,42,122,122,122,122,0,42, - 26,42,0,42,22,163,42,122,12,187,166,109,111,56,99,243, - 162,0,221,26,187,162,219,221,42,0,17,122,0,0,26,0, - 0,132,214,64,211,105,144,120,120,120,120,36,120,36,120,36, - 36,36,36,217,36,36,217,36,105,36,217,105,217,105,105,36, - 217,210,210,36,105,36,105,217,105,105,36,36,36,105,105,105, - 217,36,36,217,217,36,210,210,105,210,105,210,105,105,105,105, - 240,134,247,240,134,247,240,240,240,240,240,134,240,240,134,240, - 240,240,240,247,240,240,240,240,240,108,240,108,108,108,240,108, - 108,108,240,108,181,83,18,116,137,54,161,108,108,240,240,108, - 240,159,108,159,159,159,108,159,159,240,108,240,159,240,119,240, - 240,119,240,240,240,240,58,240,58,184,159,240,240,184,240,184, - 184,58,184,184,184,184,184,184,184,184,159,240,236,159,184,58, - 58,58,58,159,184,58,58,159,58,58,58,184,58,236,58,236, - 58,58,153,153,159,58,153,159,58,58,159,236,159,184,159,184, - 159,236,153,236,153,236,159,159,159,236,159,58,58,184,159,58, - 58,184,184,153,159,153,236,184,58,184,159,58,58,58,236,236, - 58,236,236,119,143,236,119,236,119,134,236,236,119,236,159,143, - 159,159,236,159,159,119,159,119,159,119,108,83,133,24,135,151, - 229,229,229,151,38,162,135,129,151,135,75,162,50,50,14,22, - 50,37,162,37,203,132,59,34,59,64,34,64,59,59,42,122, - 22,241,37,61,47,221,50,162,122,0,221,162,162,42,46,187, - 122,122,34,229,135,171,15,151,221,163,50,171,229,171,29,15, - 42,219,221,203,91,75,94,219,243,26,162,203,141,99,219,254, - 34,0,0,126,99,47,166,182,224,183,122,26,183,163,94,183, - 109,24,59,0,0,42,0,26,122,122,122,0,0,183,64,0, - 0,162,152,151,171,34,0,95,59,50,34,142,37,22,73,168, - 22,37,92,48,64,44,0,183,241,241,212,221,17,26,50,183, - 166,34,171,162,200,97,59,122,47,245,29,15,171,15,171,229, - 171,42,221,162,221,99,166,0,0,0,0,0,162,187,94,59, - 162,0,162,0,75,35,163,0,187,35,26,26,26,44,47,224, - 59,183,183,78,99,135,47,47,99,225,44,239,64,192,162,0, - 162,0,0,56,34,97,141,59,59,0,122,254,246,64,122,42, - 26,29,44,183,162,162,126,0,42,26,122,0,42,26,78,162, - 122,37,162,212,212,0,50,187,22,162,0,166,224,0,0,0, - 0,42,0,150,245,64,0,162,162,0,0,224,239,164,164,150, - 162,183,182,22,94,0,122,0,42,42,122,0,122,42,0,122, - 26,42,42,50,163,42,141,219,126,219,111,111,254,183,132,99, - 150,0,0,0,0,42,0,221,162,122,111,122,162,162,219,0, - 0,99,214,64,111,105,144,120,120,120,120,25,120,120,36,120, - 36,25,36,36,25,36,36,36,36,105,36,36,105,36,217,217, - 105,36,36,105,217,217,217,105,36,36,105,105,105,105,105,217, - 105,105,105,105,105,210,105,105,210,105,105,105,105,105,105,63, - 240,240,240,240,240,134,240,240,240,240,247,134,240,247,134,240, - 240,240,134,240,240,240,240,240,240,240,240,240,240,108,240,108, - 240,108,240,108,108,108,18,116,137,96,161,108,108,108,159,240, - 240,240,108,108,108,240,108,108,159,159,240,159,240,240,240,159, - 240,159,240,159,119,240,58,240,240,58,58,58,58,58,159,58, - 184,58,184,240,240,58,58,240,58,58,58,159,58,159,58,159, - 58,184,58,184,159,153,236,159,58,153,236,159,159,153,159,159, - 159,58,58,236,153,58,58,236,159,153,159,236,153,184,236,153, - 184,58,159,58,159,153,153,184,184,153,159,236,236,58,159,153, - 58,159,159,236,58,159,58,236,58,58,58,153,236,153,236,236, - 153,236,159,119,159,236,159,236,119,159,119,159,159,236,119,119, - 236,119,159,236,159,119,119,159,119,159,119,108,173,226,20,229, - 229,135,55,229,197,47,229,44,111,254,239,162,50,163,0,0, - 0,163,50,46,50,221,64,59,162,35,44,200,183,47,224,75, - 22,59,22,75,215,0,162,50,50,0,122,94,162,162,59,122, - 122,0,26,34,15,171,229,245,162,47,162,224,171,171,135,245, - 122,111,183,75,14,200,37,26,219,221,22,14,22,212,141,219, - 34,162,0,224,99,34,111,44,44,111,42,26,46,50,37,22, - 47,235,44,166,0,0,0,42,0,122,122,0,0,227,59,0, - 0,34,229,171,15,111,0,187,99,187,50,37,37,209,226,48, - 177,61,92,44,17,59,0,0,212,203,0,50,75,150,183,163, - 219,44,192,44,221,162,0,59,245,192,44,171,20,171,29,192, - 245,183,42,78,94,162,162,187,163,187,122,0,0,94,42,111, - 224,0,162,78,162,50,162,162,22,95,42,42,64,44,163,163, - 158,162,42,14,241,187,122,223,200,44,227,0,44,171,78,0, - 214,0,183,64,221,0,162,0,42,78,219,111,162,42,162,26, - 122,78,50,50,241,162,162,0,42,26,0,0,0,42,26,162, - 162,241,122,212,26,0,162,50,97,162,0,183,182,99,132,162, - 162,162,162,0,182,152,187,162,0,122,99,234,111,164,241,141, - 78,162,214,239,0,122,0,0,122,42,122,0,0,42,0,122, - 26,26,42,0,122,219,254,150,224,182,254,182,182,42,122,111, - 42,0,42,225,215,162,221,42,0,122,122,122,162,122,42,0, - 122,158,235,64,109,210,144,120,120,120,120,36,120,36,36,36, - 36,25,36,36,36,36,36,217,36,105,105,36,105,36,105,105, - 105,105,36,36,36,36,105,105,217,36,105,105,217,36,36,36, - 36,36,105,105,105,105,105,105,105,210,105,105,105,105,105,105, - 240,134,240,240,240,247,134,247,240,153,240,247,134,240,240,240, - 240,240,240,240,240,184,240,240,240,240,240,240,240,240,240,240, - 108,240,240,240,108,181,173,116,31,234,252,240,159,240,108,240, - 240,159,159,159,240,159,159,58,108,119,240,240,58,159,58,240, - 58,240,58,240,240,58,240,58,58,184,184,184,184,184,58,240, - 58,159,58,58,58,159,240,58,184,184,58,58,58,58,184,236, - 159,58,58,58,58,58,184,236,153,58,184,153,159,58,153,159, - 236,153,153,159,58,159,153,159,236,58,184,184,159,236,159,58, - 159,159,153,153,153,58,58,153,159,159,236,153,159,153,236,159, - 236,58,58,184,159,184,153,159,159,236,236,58,159,58,159,153, - 119,159,236,159,236,159,236,159,236,119,143,119,143,119,159,143, - 236,159,236,119,236,159,119,159,119,119,108,83,133,92,171,135, - 103,229,151,151,229,35,26,26,219,99,163,221,50,212,75,42, - 162,50,26,163,212,122,35,95,227,29,34,47,0,17,163,59, - 241,91,50,200,122,162,0,241,164,162,0,0,94,37,0,95, - 0,122,224,163,59,171,15,151,122,111,163,37,34,178,29,171, - 0,150,26,50,24,22,37,12,162,14,22,22,50,132,59,56, - 225,162,162,59,224,34,111,34,111,99,0,241,35,0,42,241, - 95,64,59,64,109,0,122,219,42,42,42,122,122,26,47,0, - 26,64,59,59,111,162,0,187,254,212,22,22,50,241,50,50, - 73,22,37,203,219,99,0,0,0,162,0,37,164,150,187,64, - 162,44,64,34,59,162,42,20,171,35,59,29,171,29,29,34, - 245,239,221,78,221,126,126,163,0,94,0,0,95,94,162,64, - 64,183,0,59,224,94,162,50,44,42,26,122,99,192,34,44, - 224,50,20,22,14,187,44,253,29,224,42,122,59,171,162,50, - 225,0,225,152,183,162,50,50,0,42,26,135,29,215,122,26, - 42,0,26,22,209,209,75,162,26,26,42,0,0,26,26,122, - 42,97,132,122,150,219,0,91,37,0,0,187,183,99,99,99, - 187,162,50,26,162,64,126,0,0,150,171,192,59,164,132,99, - 187,78,64,141,122,122,0,0,42,122,122,0,122,122,0,122, - 42,26,122,122,26,42,111,78,187,122,254,187,122,0,0,94, - 221,0,214,25,99,0,0,0,111,0,42,122,183,162,42,0, - 99,192,99,64,111,105,71,120,120,120,120,120,36,120,25,25, - 36,36,36,36,217,36,105,36,105,36,105,105,105,105,105,217, - 36,36,105,36,105,105,36,105,36,105,217,105,105,105,105,105, - 105,105,217,105,105,36,105,105,105,105,105,105,210,105,105,63, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,247, - 134,240,240,240,247,134,240,134,240,134,240,240,134,108,240,134, - 108,240,240,240,240,108,173,19,137,171,161,240,184,134,240,159, - 240,159,184,184,159,240,159,58,240,159,58,184,240,58,184,159, - 58,184,58,58,159,58,159,184,240,58,240,159,58,184,58,240, - 58,58,159,159,58,58,159,58,58,153,184,58,184,58,184,236, - 184,153,58,159,184,159,184,159,184,159,58,236,184,58,236,184, - 58,159,236,159,153,58,153,159,236,153,159,236,159,184,184,236, - 153,58,58,58,159,153,58,236,236,159,159,153,184,159,58,159, - 153,153,159,236,236,159,153,236,184,159,58,236,58,236,58,153, - 236,236,236,119,236,159,236,159,236,119,159,119,159,236,159,119, - 236,119,159,159,236,159,119,159,119,119,119,108,133,14,15,229, - 38,55,229,75,162,164,12,219,132,132,104,109,75,50,59,221, - 126,50,162,50,162,122,44,34,42,44,59,219,221,22,22,22, - 22,162,50,224,122,94,219,241,75,22,22,37,37,164,162,42, - 122,141,22,50,50,75,171,135,122,47,187,209,126,64,35,29, - 162,150,12,163,187,22,187,219,50,22,22,50,246,215,254,0, - 44,50,0,111,224,44,187,254,95,59,50,46,17,183,78,24, - 219,47,64,59,64,187,0,183,122,122,122,78,162,219,59,0, - 224,40,22,164,203,0,0,187,95,215,164,164,50,177,164,163, - 24,37,37,22,166,44,0,0,0,97,47,59,35,111,42,47, - 162,64,44,34,15,59,152,151,245,34,64,15,245,245,15,171, - 133,97,254,0,95,99,192,59,141,64,0,0,166,171,0,111, - 224,224,221,59,17,64,224,163,111,42,26,26,42,122,99,64, - 122,44,151,22,14,192,47,200,35,254,0,94,22,192,35,212, - 59,95,192,171,0,162,162,50,162,0,162,171,59,224,95,42, - 122,162,221,187,61,22,91,162,12,26,42,0,0,42,26,42, - 187,64,219,219,42,17,215,162,162,0,0,64,0,166,111,99, - 64,122,162,42,0,59,42,0,0,182,44,192,166,126,12,225, - 224,0,44,187,122,122,0,0,42,42,122,122,122,42,0,122, - 26,42,122,0,42,221,122,17,219,150,99,182,166,42,162,163, - 42,0,214,155,225,42,221,183,17,0,26,219,122,183,122,0, - 158,192,64,64,109,105,71,120,120,120,25,36,36,36,36,25, - 36,133,36,25,36,25,105,36,217,36,217,105,105,36,105,210, - 105,105,105,105,105,210,105,63,210,105,105,105,105,36,217,217, - 217,105,105,36,105,36,105,210,36,105,217,36,105,105,105,105, - 240,240,134,247,240,134,240,134,247,240,240,134,240,240,134,240, - 240,240,240,134,240,240,240,240,240,240,240,240,240,184,240,240, - 184,240,184,119,108,108,79,11,137,234,161,240,240,240,240,184, - 184,184,58,58,240,58,184,184,184,184,58,240,184,184,240,240, - 184,159,240,184,184,184,184,184,58,240,58,159,240,58,159,58, - 184,240,58,58,184,58,58,159,184,58,58,184,58,184,184,184, - 236,58,184,236,58,58,184,58,159,236,58,184,159,153,159,159, - 159,58,159,58,58,153,58,153,159,58,236,184,159,236,58,159, - 58,159,236,159,236,159,159,159,184,153,236,58,184,236,153,236, - 58,184,236,184,159,58,58,159,58,58,153,159,58,159,58,58, - 58,159,159,236,159,119,159,119,159,159,236,159,236,159,119,159, - 159,143,236,119,159,236,119,119,159,159,108,108,38,14,178,228, - 20,163,50,37,14,14,150,150,219,132,183,26,59,24,223,94, - 126,37,50,50,162,0,59,44,183,0,166,163,22,22,50,163, - 163,94,61,209,122,56,221,78,26,22,164,37,50,75,75,163, - 26,241,162,0,61,162,133,59,215,126,142,50,222,227,254,59, - 42,17,183,209,24,22,243,26,162,14,14,162,37,50,44,224, - 239,183,162,95,224,95,0,254,59,59,47,141,111,183,162,46, - 0,44,111,95,64,59,0,162,122,0,0,0,0,183,34,0, - 243,203,37,37,50,0,0,254,224,26,59,200,50,164,162,37, - 99,166,50,132,99,64,0,0,111,34,64,254,75,111,132,35, - 162,59,44,214,64,94,192,245,245,34,64,20,152,15,152,15, - 133,40,224,50,0,95,122,47,171,78,0,0,0,171,64,0, - 59,224,59,224,0,122,111,224,56,26,26,122,42,122,166,187, - 203,26,26,183,75,142,73,162,122,171,50,73,14,192,171,59, - 221,183,126,122,0,0,50,162,0,42,122,122,166,224,47,0, - 0,91,22,37,35,209,163,0,12,26,0,0,0,0,26,42, - 0,254,42,17,150,42,99,122,0,0,42,225,0,122,141,64, - 214,183,0,0,212,99,0,162,0,254,225,64,94,132,182,44, - 44,42,182,183,42,26,42,0,42,42,122,122,122,122,122,122, - 26,26,26,0,0,162,0,99,99,214,182,224,99,42,0,61, - 163,162,182,96,152,187,78,17,183,219,122,78,42,183,78,42, - 158,192,214,214,150,105,144,120,25,36,120,120,25,36,36,36, - 36,120,36,36,25,105,36,105,105,105,36,217,105,105,105,105, - 155,105,210,105,105,105,210,105,105,63,63,63,210,210,105,105, - 63,105,105,63,105,105,210,105,210,105,105,105,210,210,36,105, - 240,240,247,134,247,240,247,134,240,134,247,240,240,247,134,240, - 240,240,247,240,240,134,247,240,240,240,184,240,240,240,240,240, - 240,240,240,184,240,181,173,23,137,192,161,240,240,184,240,184, - 240,240,184,184,184,240,58,184,184,184,58,184,240,184,184,240, - 240,184,240,240,184,184,240,184,184,184,240,58,240,58,159,184, - 58,159,184,159,236,153,153,184,184,153,58,184,58,58,184,159, - 184,159,184,153,236,58,153,58,159,153,159,236,184,153,236,153, - 153,153,153,159,58,153,58,153,58,184,159,58,184,153,159,153, - 236,159,153,159,236,236,153,153,159,159,159,236,159,159,153,153, - 58,159,159,58,153,184,159,153,153,58,58,153,58,58,58,159, - 236,58,159,119,236,159,236,236,236,159,119,159,119,159,236,119, - 119,159,236,159,119,159,159,159,119,159,119,108,38,162,187,163, - 50,22,14,14,164,14,183,141,141,141,219,132,219,59,29,0, - 162,200,50,162,183,0,239,44,163,59,22,14,209,111,163,78, - 94,162,50,59,221,0,78,75,46,241,162,0,162,221,200,104, - 50,203,162,162,50,162,133,47,40,42,20,163,233,92,122,227, - 50,241,20,178,84,223,192,8,150,162,162,162,22,50,214,34, - 34,192,35,50,215,0,0,26,59,224,44,166,224,0,0,163, - 42,95,122,75,34,219,0,0,0,0,0,0,0,183,44,187, - 219,132,203,75,223,171,0,215,64,64,47,212,50,50,162,164, - 163,40,75,50,224,192,0,221,214,64,109,183,59,0,99,59, - 0,183,126,200,94,94,50,245,133,15,44,15,35,111,95,111, - 186,95,219,239,0,44,59,152,95,0,0,0,162,0,64,111, - 150,64,59,59,0,0,0,0,42,219,219,219,42,132,75,226, - 73,241,187,219,224,73,14,183,132,152,203,164,59,57,171,152, - 163,0,0,162,212,0,162,162,0,132,219,183,219,0,0,0, - 221,22,24,61,221,75,59,0,12,42,0,0,162,162,0,42, - 0,254,64,183,182,122,17,99,0,0,224,183,42,0,99,44, - 225,221,0,212,47,187,0,162,0,182,225,182,22,99,59,99, - 44,150,224,162,26,26,42,0,42,26,122,122,122,42,122,0, - 26,26,26,0,0,75,162,150,111,219,78,0,0,0,0,50, - 61,50,42,158,96,44,0,0,183,42,187,183,162,0,0,162, - 17,182,109,224,122,36,71,244,25,36,25,120,36,25,36,217, - 36,217,36,36,36,217,36,36,217,105,36,36,105,105,36,105, - 210,105,210,210,105,105,105,63,105,105,105,105,63,105,63,105, - 63,63,105,210,210,105,63,105,63,63,63,105,63,63,105,105, - 153,134,240,240,153,134,153,247,134,240,240,134,134,240,240,247, - 240,184,134,247,240,240,240,134,240,184,240,240,240,240,240,240, - 240,108,240,108,108,83,173,11,137,158,161,240,184,240,240,240, - 184,184,240,184,240,184,184,58,240,240,184,240,184,240,240,184, - 159,240,184,184,58,240,58,240,58,240,184,184,58,240,184,159, - 58,58,58,58,184,58,58,58,184,159,153,184,184,184,184,153, - 184,236,153,159,159,58,58,184,159,184,236,159,58,184,184,58, - 58,58,159,236,159,58,153,58,184,159,236,153,159,184,236,58, - 159,153,58,159,159,184,159,58,58,153,58,159,153,236,159,58, - 153,159,236,153,58,184,236,58,58,159,153,159,236,159,58,236, - 159,236,159,236,159,236,159,119,159,119,143,119,143,236,159,236, - 159,119,159,236,159,119,159,159,119,159,108,108,71,0,183,94, - 164,164,104,14,14,164,219,42,42,42,219,219,26,111,104,200, - 135,50,203,212,122,122,183,29,29,44,241,35,241,163,50,37, - 37,162,50,64,0,187,73,73,73,177,47,50,241,239,40,239, - 92,209,35,241,203,166,253,29,0,95,171,15,37,241,209,29, - 241,177,46,34,151,226,73,64,8,219,61,24,183,47,171,44, - 44,47,104,14,37,0,132,162,183,59,224,132,122,0,42,44, - 47,0,99,34,99,0,0,0,221,162,212,50,0,42,15,150, - 17,26,34,248,133,102,133,15,75,50,162,35,163,50,200,162, - 50,50,34,29,203,75,50,22,164,22,46,40,219,0,59,94, - 203,37,50,212,162,162,50,46,245,171,34,171,95,95,59,42, - 245,95,111,64,141,166,57,166,95,224,122,122,0,50,50,59, - 95,141,44,171,224,0,0,26,26,56,26,26,26,150,50,37, - 162,59,47,109,183,203,254,24,75,254,0,0,95,34,97,171, - 44,0,22,14,50,0,162,0,0,78,162,0,122,0,0,187, - 254,162,50,221,0,162,162,42,26,42,0,122,50,50,0,42, - 162,141,96,219,219,122,0,225,192,56,224,0,254,0,64,64, - 254,42,0,241,187,42,0,162,0,224,225,224,40,99,64,64, - 99,224,99,122,26,26,122,0,42,122,122,122,122,122,42,0, - 122,26,26,0,26,22,0,26,164,162,0,122,162,0,122,162, - 163,163,0,42,234,152,0,122,0,42,42,162,0,0,42,219, - 0,162,0,122,26,63,244,120,120,25,36,36,25,36,36,36, - 217,36,217,105,217,217,105,105,36,36,105,105,105,36,105,105, - 105,105,105,105,63,105,210,105,63,63,63,63,105,63,105,63, - 105,105,63,105,105,63,63,63,105,105,63,63,105,63,210,63, - 153,153,240,134,240,153,153,153,153,153,153,240,153,153,134,134, - 153,240,184,153,240,240,240,240,240,240,240,240,240,240,240,240, - 134,108,184,240,240,108,173,30,137,214,252,240,240,240,240,240, - 240,159,240,159,240,240,240,58,240,240,184,159,240,58,159,240, - 58,240,240,240,58,58,184,240,58,58,184,184,58,58,58,236, - 153,58,184,184,184,184,153,236,159,184,58,153,153,153,58,153, - 184,159,236,153,153,58,236,58,58,184,159,184,58,159,184,159, - 236,236,184,236,159,58,58,236,236,184,58,236,184,159,184,159, - 184,159,236,184,159,236,184,153,58,153,153,184,159,236,153,58, - 236,159,184,236,236,159,159,159,58,159,58,159,236,58,159,58, - 58,58,159,236,159,236,159,236,236,159,159,119,159,236,159,236, - 143,119,159,159,159,159,159,159,159,159,119,108,38,0,132,17, - 12,150,141,141,132,215,46,226,47,46,75,111,95,97,75,141, - 47,203,22,50,0,162,183,59,59,254,111,59,37,209,163,163, - 200,95,187,215,22,187,14,22,163,212,223,212,203,241,183,24, - 104,241,132,34,47,111,24,64,183,95,142,171,47,162,61,215, - 246,40,104,95,164,241,203,164,64,150,241,223,47,64,59,111, - 224,224,215,241,209,37,166,215,150,166,50,75,0,56,254,99, - 44,56,44,34,183,0,0,50,50,50,94,22,163,0,34,99, - 17,219,42,34,20,171,192,59,50,50,44,15,95,59,64,163, - 183,183,241,29,15,59,75,37,22,22,164,163,0,227,99,0, - 59,94,212,40,37,50,50,37,164,34,35,171,200,34,29,59, - 171,95,95,59,47,224,47,239,224,126,64,64,0,162,162,50, - 163,126,166,64,99,0,162,183,122,42,42,219,141,92,164,14, - 164,14,73,22,0,97,75,35,187,162,122,141,227,59,166,224, - 64,0,14,164,162,111,224,254,64,64,42,0,162,162,0,0, - 64,99,44,183,0,162,162,122,17,42,0,0,162,37,0,50, - 50,254,192,162,0,212,162,183,225,219,183,166,99,0,150,224, - 64,78,221,221,0,0,0,162,0,254,99,241,59,99,59,59, - 224,224,235,122,42,26,26,0,42,122,122,122,122,0,0,0, - 0,122,122,0,75,75,162,111,22,50,50,78,183,78,0,0, - 42,50,162,0,214,171,182,0,42,42,0,42,163,162,42,122, - 0,0,0,111,99,105,244,120,120,25,36,36,36,133,36,36, - 217,36,36,36,217,217,217,105,105,105,105,217,105,105,105,105, - 105,105,105,105,63,105,105,105,105,105,105,63,63,105,105,63, - 63,63,63,63,63,105,105,63,63,63,105,63,105,105,105,63, - 153,153,153,153,153,153,153,153,240,153,153,153,153,153,153,153, - 153,153,153,184,153,153,184,134,184,184,134,184,184,134,184,240, - 240,184,240,240,240,108,173,93,168,235,252,108,240,240,240,240, - 184,240,159,240,240,240,184,58,240,240,159,240,58,184,159,58, - 159,58,58,58,159,58,240,58,159,184,58,58,184,58,58,184, - 58,236,58,58,58,58,184,184,153,236,153,159,58,184,159,184, - 184,153,159,184,184,159,184,153,58,159,153,58,159,58,58,58, - 184,184,153,159,236,236,58,159,159,58,236,159,236,153,236,236, - 58,153,184,153,236,159,236,58,159,159,58,58,153,159,159,184, - 159,153,236,159,159,184,236,236,153,58,153,159,159,236,58,236, - 159,153,236,159,236,159,236,159,159,159,119,159,159,159,159,159, - 119,159,119,159,119,119,108,159,108,159,108,83,102,0,17,132, - 75,104,132,183,141,26,190,222,135,129,135,190,135,135,226,46, - 223,40,50,50,94,22,162,0,0,50,162,50,42,24,203,0, - 44,44,0,97,92,164,46,215,22,22,24,166,122,94,95,209, - 200,35,34,42,47,44,44,75,0,212,40,35,29,46,29,142, - 42,162,50,50,164,64,221,92,104,162,50,162,183,0,214,47, - 44,162,182,26,22,75,50,187,64,221,78,84,50,221,99,227, - 64,225,47,141,94,50,50,22,22,50,221,212,92,187,219,35, - 44,26,17,26,122,37,22,37,203,34,171,104,42,56,219,40, - 78,187,37,37,64,34,171,29,104,75,94,0,212,164,111,183, - 99,95,254,254,0,162,50,162,162,22,59,171,44,20,29,35, - 15,47,0,187,254,44,96,15,29,192,152,47,0,162,50,50, - 162,162,122,166,162,162,162,50,0,42,26,182,73,73,92,92, - 73,92,206,168,50,35,209,241,200,50,166,44,44,64,224,59, - 212,0,221,0,0,215,111,95,95,221,162,162,50,162,162,0, - 0,221,166,0,0,162,122,0,0,162,162,0,0,122,111,183, - 22,22,0,0,122,78,162,0,0,0,187,132,132,64,34,254, - 214,221,99,95,225,47,0,97,162,111,254,75,99,59,182,224, - 224,224,99,122,26,26,122,0,42,26,0,0,0,0,0,0, - 0,0,26,183,91,35,50,221,162,162,227,162,50,187,78,162, - 162,111,162,162,141,225,192,162,163,75,46,29,129,94,0,0, - 162,183,0,202,59,63,244,25,36,36,25,25,36,36,36,36, - 36,105,217,217,36,105,105,217,217,105,105,105,63,210,105,105, - 210,63,63,210,105,63,63,63,63,63,63,63,105,63,63,105, - 210,105,105,63,105,63,63,63,63,63,63,63,63,63,63,63, - 153,240,240,153,153,240,153,153,240,153,153,153,153,153,153,153, - 153,184,153,153,153,153,153,153,153,184,134,184,184,240,184,240, - 240,184,184,240,240,83,15,138,137,64,161,240,134,184,159,184, - 184,58,58,58,58,159,240,58,58,159,58,184,58,58,236,184, - 58,58,159,159,184,236,184,184,58,58,184,236,184,184,58,184, - 184,184,236,153,236,58,184,184,159,184,236,153,58,153,184,134, - 58,184,184,159,153,184,184,153,58,58,58,58,184,159,153,184, - 159,58,184,184,159,153,58,58,184,159,159,184,159,184,159,184, - 58,159,58,184,159,159,184,58,58,184,159,58,236,58,58,159, - 184,159,236,153,153,184,159,58,236,159,236,184,159,159,159,153, - 58,159,159,159,153,159,159,58,58,159,159,119,159,159,119,159, - 159,159,159,159,119,159,159,119,159,159,119,83,38,0,219,183, - 14,164,47,47,150,12,223,135,223,253,177,253,253,172,223,35, - 135,142,162,37,50,162,223,126,162,50,50,162,0,24,212,37, - 183,171,0,94,22,14,223,209,84,14,209,183,0,221,177,75, - 122,200,59,162,135,47,246,163,94,75,59,34,142,171,151,15, - 42,46,241,164,200,40,50,92,162,50,22,50,50,162,132,254, - 34,227,12,183,183,183,50,0,141,187,187,163,200,0,166,78, - 59,47,42,59,94,92,162,22,22,78,163,164,164,35,0,59, - 99,132,219,12,219,224,164,241,44,44,61,164,221,122,0,122, - 0,221,64,22,37,35,44,171,141,0,0,122,203,111,126,122, - 219,122,221,183,183,0,56,50,212,50,22,192,44,29,29,187, - 171,47,0,0,0,0,0,42,221,221,0,0,162,162,162,50, - 162,162,162,0,162,50,162,50,162,0,219,206,168,168,206,73, - 73,73,73,233,37,92,178,209,26,42,50,162,59,64,0,162, - 183,0,0,0,0,99,224,225,225,0,0,0,162,162,162,0, - 0,0,0,0,0,0,0,0,0,162,0,78,99,192,192,215, - 187,75,163,0,94,97,37,162,50,75,50,166,225,225,192,44, - 214,0,214,59,155,34,122,187,162,42,64,150,187,187,111,111, - 187,111,109,183,26,26,0,0,122,42,0,0,0,0,122,122, - 42,0,26,183,0,61,50,0,0,42,122,162,94,183,183,162, - 162,187,0,0,183,183,219,37,92,14,14,24,24,0,0,0, - 78,0,224,152,224,63,244,120,25,36,36,133,36,217,217,36, - 217,217,217,105,217,217,105,105,217,105,105,36,105,105,105,105, - 105,105,105,63,105,105,105,105,63,63,105,63,105,105,63,105, - 63,63,105,63,105,105,105,105,105,105,105,63,63,105,63,63, - 153,153,153,153,153,153,153,153,153,240,153,153,153,240,153,153, - 184,153,184,184,184,153,184,153,184,184,184,184,184,184,240,184, - 240,240,184,240,240,83,173,93,177,35,252,108,184,240,184,58, - 58,184,159,236,58,159,58,236,240,240,184,58,184,184,184,236, - 236,153,236,236,58,58,58,58,184,184,236,184,236,236,184,58, - 58,153,184,159,184,153,153,184,184,184,184,159,153,184,58,184, - 159,184,184,153,159,236,58,58,153,58,153,184,236,58,159,58, - 58,184,58,184,236,58,153,153,153,236,153,236,236,159,153,236, - 159,153,184,184,236,153,159,153,153,58,236,159,159,153,153,236, - 236,153,159,58,159,58,153,153,159,58,184,153,153,159,159,58, - 159,159,236,236,159,159,58,58,159,159,119,159,159,159,159,159, - 119,159,119,108,159,159,119,108,119,108,108,83,38,0,122,162, - 164,164,29,104,254,12,172,135,48,48,177,48,177,223,142,223, - 135,223,50,22,221,122,135,94,50,0,162,162,0,154,37,178, - 162,95,215,122,50,203,50,224,209,46,75,94,203,0,209,209, - 0,221,215,200,20,47,246,162,212,172,59,24,44,34,20,34, - 162,142,164,48,22,183,92,164,50,22,22,22,50,50,162,132, - 99,95,122,122,26,91,215,94,111,0,183,122,50,162,183,56, - 221,166,56,56,122,241,162,162,50,0,164,50,163,224,0,95, - 111,40,219,26,26,17,254,35,163,50,164,164,162,0,122,0, - 0,200,152,164,22,14,75,221,0,183,0,163,50,254,0,0, - 42,42,219,0,126,219,0,122,162,40,94,164,59,224,224,111, - 171,44,0,122,122,122,122,122,42,122,42,0,162,162,162,162, - 162,162,0,0,122,42,162,0,162,0,92,73,73,168,168,206, - 168,137,168,177,22,26,75,37,162,50,42,50,254,94,50,44, - 187,0,0,0,0,56,95,95,0,162,0,0,162,162,162,162, - 0,0,0,0,0,0,0,0,0,0,224,192,214,122,183,0, - 162,162,97,0,91,75,22,37,162,50,50,0,225,99,99,64, - 64,122,225,221,155,34,42,59,78,162,99,183,163,183,183,183, - 94,183,132,183,122,122,0,122,122,42,122,0,0,0,0,122, - 122,0,221,0,0,50,200,122,0,0,0,162,0,122,94,78, - 162,162,0,162,12,109,187,162,50,94,0,221,0,122,0,162, - 122,0,192,192,162,63,244,25,120,217,36,36,217,25,36,217, - 36,217,105,217,217,105,217,217,105,105,105,63,105,210,210,105, - 210,210,63,105,63,63,63,63,105,105,63,105,63,63,105,63, - 63,63,63,105,63,63,63,63,63,63,63,105,105,63,105,105, - 184,240,240,240,240,240,240,134,240,153,240,153,153,240,153,153, - 240,153,153,153,184,184,240,153,240,184,184,240,184,184,240,134, - 184,240,240,240,240,247,172,138,137,139,247,240,134,184,184,153, - 236,236,184,236,58,236,159,236,58,58,58,58,236,236,153,153, - 58,184,184,153,153,236,184,58,58,184,153,153,184,236,153,153, - 58,153,153,184,184,58,236,153,153,153,153,184,153,153,58,184, - 184,159,184,153,184,153,159,184,184,159,236,159,236,159,184,184, - 58,153,58,184,153,58,58,58,184,58,184,159,236,58,159,236, - 184,153,58,159,58,159,159,159,153,159,58,159,58,184,159,159, - 58,236,159,236,153,58,58,236,153,159,58,58,236,153,236,153, - 236,184,159,236,236,159,159,159,58,159,159,159,119,159,159,159, - 159,159,159,119,159,119,159,159,159,159,159,108,71,0,219,254, - 150,94,22,14,241,12,253,129,177,253,253,253,48,24,35,29, - 129,151,50,22,162,122,95,162,50,0,50,50,24,209,50,35, - 0,162,186,186,178,187,14,241,37,22,64,104,40,42,154,123, - 0,0,142,226,183,40,221,42,221,142,29,44,24,44,29,59, - 142,104,209,251,14,200,22,203,162,50,50,50,50,22,50,187, - 95,95,224,42,219,17,166,50,224,56,42,50,50,42,99,47, - 26,34,47,254,183,37,221,183,209,94,50,162,35,132,0,122, - 224,94,163,132,26,56,26,243,141,163,22,37,44,44,0,0, - 40,29,192,47,40,215,219,183,162,122,44,15,224,42,0,162, - 78,78,78,122,0,183,0,0,0,162,94,50,14,224,64,47, - 171,46,122,26,122,122,42,0,42,26,122,0,162,50,0,0, - 50,162,162,162,0,26,122,0,0,92,177,168,73,92,73,164, - 22,212,221,0,162,50,162,37,0,162,0,42,166,183,44,34, - 162,50,37,0,0,183,111,254,162,162,162,0,0,162,162,0, - 0,94,162,0,0,0,0,0,162,162,183,64,78,0,0,162, - 61,163,42,224,163,183,42,42,162,0,0,219,221,221,132,254, - 219,182,44,122,192,224,162,187,162,0,254,99,99,59,99,224, - 111,111,99,132,162,162,162,0,122,122,0,0,0,0,0,0, - 0,0,219,122,0,50,61,187,0,164,94,0,162,122,183,183, - 162,162,42,182,224,254,254,0,0,42,122,0,0,0,0,122, - 122,0,182,109,0,210,244,36,36,25,25,36,36,217,36,133, - 36,105,105,105,217,105,210,217,217,217,105,105,105,105,63,105, - 105,105,63,63,63,105,63,63,63,63,63,105,105,63,63,105, - 105,105,63,105,63,63,63,105,105,105,63,63,63,63,63,63, - 240,134,240,240,134,240,134,240,134,240,153,240,240,153,240,240, - 153,240,153,240,153,240,134,240,240,240,240,240,240,240,240,240, - 240,184,184,240,184,83,48,138,168,49,161,184,184,184,236,236, - 153,153,236,159,236,159,236,236,184,58,153,184,184,153,58,58, - 153,236,236,58,153,184,184,236,184,184,58,184,236,184,58,184, - 184,153,184,153,153,153,184,184,159,184,153,159,58,184,153,153, - 159,153,184,159,184,184,153,236,153,153,184,153,184,58,236,58, - 159,58,159,184,58,236,184,159,58,236,153,153,153,153,153,159, - 236,184,153,236,159,236,236,236,184,159,153,236,153,58,159,153, - 159,184,184,159,159,153,153,153,159,236,159,184,184,159,184,159, - 184,159,153,159,159,153,159,58,159,58,58,159,159,119,159,159, - 159,119,159,159,108,159,159,119,108,119,108,83,33,0,141,150, - 122,164,206,50,47,150,177,129,135,177,48,29,177,129,142,177, - 151,55,50,14,50,0,0,162,162,162,50,22,209,221,78,37, - 0,0,15,229,133,47,177,34,84,24,203,50,22,123,168,168, - 246,212,203,94,162,190,92,246,0,24,177,64,47,142,34,50, - 40,104,14,92,14,95,35,50,50,50,50,50,162,50,50,141, - 166,59,166,26,219,17,26,219,224,26,243,227,94,111,99,64, - 26,34,59,99,99,162,42,37,241,163,162,37,24,219,162,122, - 166,64,50,203,219,26,17,42,187,183,111,95,59,20,47,163, - 163,224,94,42,122,0,78,187,0,64,100,35,111,0,42,221, - 187,163,42,183,162,122,42,122,0,0,50,215,223,22,139,224, - 29,95,42,26,26,0,0,0,42,12,26,0,162,50,0,0, - 162,50,50,50,0,122,122,162,92,73,14,22,212,162,0,0, - 0,162,22,37,50,50,22,37,0,171,224,187,44,109,171,104, - 14,203,37,94,50,162,64,183,162,162,50,162,0,0,0,0, - 111,22,209,37,50,75,162,162,162,162,162,141,111,0,0,183, - 94,0,78,99,243,183,162,162,0,0,0,219,99,221,0,166, - 183,225,64,78,187,94,183,50,162,0,59,214,64,214,64,64, - 235,99,64,150,22,50,163,162,0,0,0,0,0,0,0,0, - 0,162,150,166,122,97,50,162,162,164,50,122,162,0,162,183, - 122,0,26,99,0,187,187,42,166,200,111,150,162,162,122,122, - 122,0,0,78,122,217,244,36,133,217,36,217,217,36,105,36, - 210,105,186,217,105,186,105,105,63,210,105,210,210,210,105,63, - 63,63,105,105,105,63,63,63,63,105,63,63,63,63,105,63, - 208,63,105,63,105,105,105,63,63,63,105,63,105,63,105,105, - 240,247,134,240,240,247,134,240,240,134,153,134,153,134,153,153, - 153,240,134,240,153,240,153,153,134,134,240,134,240,134,184,134, - 184,184,153,184,184,83,172,220,137,187,161,184,153,153,184,58, - 236,153,153,184,153,184,153,236,184,58,236,153,184,153,236,236, - 184,184,236,58,153,236,184,236,236,153,236,153,153,153,153,153, - 58,236,159,184,159,153,153,153,236,184,153,184,184,159,184,153, - 184,58,159,184,184,159,184,159,58,184,159,153,184,184,153,236, - 159,236,184,184,159,236,236,153,184,58,58,159,184,58,159,159, - 184,159,184,153,159,159,184,58,236,159,184,159,153,236,184,159, - 153,236,159,236,159,58,159,58,159,236,236,236,236,159,153,184, - 236,159,159,159,184,236,159,58,159,58,159,159,159,159,159,119, - 159,159,119,119,159,119,159,159,119,159,159,108,33,0,122,164, - 162,164,162,29,150,219,223,129,129,135,129,135,222,229,135,223, - 229,135,50,22,50,0,162,162,162,162,50,122,0,162,0,0, - 0,0,20,135,186,34,200,203,154,209,73,73,22,62,130,177, - 37,94,104,164,94,92,14,104,246,129,40,24,35,64,223,187, - 219,47,190,226,40,50,24,162,50,50,50,50,50,162,22,183, - 187,162,20,219,122,122,122,122,95,150,183,0,56,99,59,34, - 150,44,64,111,95,221,219,50,203,50,221,94,163,183,187,0, - 0,64,59,162,29,224,17,42,150,141,132,141,219,0,122,78, - 162,224,166,42,0,0,221,219,212,47,44,95,59,95,224,59, - 183,183,224,187,94,183,183,187,183,166,183,22,142,209,14,50, - 182,183,42,219,26,42,0,47,122,26,12,26,162,50,0,0, - 50,61,162,162,162,122,42,50,50,162,0,0,0,0,0,0, - 0,0,50,50,50,162,122,0,14,44,64,59,75,162,99,95, - 73,37,50,24,37,162,29,42,162,162,162,162,162,0,0,162, - 75,61,22,61,22,209,50,162,50,162,0,141,192,225,99,221, - 26,50,42,64,0,162,162,50,162,50,162,56,152,166,0,132, - 95,99,44,224,0,0,0,0,0,0,0,0,162,183,183,126, - 59,166,0,50,37,122,50,50,162,50,0,0,162,162,50,37, - 162,162,187,46,162,42,50,122,162,0,122,162,162,0,0,122, - 183,0,183,163,183,162,162,254,111,14,22,17,109,162,219,0, - 162,0,122,225,182,155,244,36,36,217,133,36,217,36,105,36, - 105,36,105,105,105,105,155,105,105,210,105,105,105,210,105,105, - 105,63,63,208,63,105,63,63,208,63,63,105,63,63,208,63, - 63,63,105,63,63,63,63,105,105,63,105,63,105,63,63,63, - 134,134,247,134,134,240,134,134,240,240,240,240,153,240,134,153, - 153,153,153,153,153,134,240,240,153,240,134,184,153,153,240,184, - 184,153,184,58,153,108,48,237,177,8,247,184,236,184,153,153, - 153,236,58,236,58,153,153,153,236,58,184,58,236,236,153,184, - 153,153,153,153,236,153,153,153,153,184,184,184,153,153,58,58, - 153,159,153,236,236,184,159,184,159,236,58,153,153,153,153,159, - 184,153,153,153,153,159,184,153,184,153,184,159,153,184,184,159, - 236,240,58,58,159,184,184,159,236,236,159,236,58,184,184,159, - 58,58,184,58,159,159,58,153,159,236,184,184,159,184,58,58, - 58,184,236,159,58,58,58,153,153,159,184,159,159,236,58,153, - 184,58,236,236,159,159,159,159,58,159,58,159,159,119,159,159, - 159,119,159,159,159,159,119,159,119,108,119,108,102,0,122,92, - 164,0,14,164,150,219,177,222,129,135,46,177,142,162,177,135, - 223,97,37,22,162,0,162,162,50,50,50,164,50,162,0,0, - 50,0,44,186,29,50,50,50,22,37,162,142,46,209,177,104, - 164,221,162,40,246,59,171,151,246,177,111,59,47,59,200,111, - 183,241,203,212,37,130,79,162,50,22,50,50,50,162,50,183, - 215,0,215,44,95,187,219,141,182,215,0,0,166,64,44,34, - 59,47,44,221,0,95,183,0,162,0,162,50,50,162,37,183, - 0,0,44,59,34,223,224,219,42,17,254,132,187,122,0,0, - 183,219,126,0,0,122,163,37,50,162,64,166,224,122,163,47, - 78,162,239,221,122,126,126,221,183,183,183,246,215,253,92,14, - 37,0,42,219,26,0,0,245,122,12,12,17,0,50,162,162, - 162,50,50,50,162,0,94,50,0,0,215,0,0,0,0,0, - 0,0,0,162,162,162,40,162,206,132,225,47,50,22,0,187, - 164,164,94,163,0,26,64,162,162,50,50,162,50,162,0,0, - 50,163,239,162,162,162,162,162,0,0,50,212,163,64,192,17, - 132,214,166,50,50,22,50,61,22,22,162,0,111,132,99,182, - 166,187,192,235,0,0,122,78,183,26,183,183,111,183,0,0, - 0,0,0,78,50,42,50,50,50,37,0,162,162,162,50,50, - 0,162,50,164,0,0,42,162,162,0,122,0,122,162,162,0, - 0,0,111,111,182,183,94,183,111,50,78,122,26,126,162,162, - 162,162,64,192,111,63,120,25,217,36,36,105,217,217,217,105, - 105,105,105,210,217,105,105,217,105,105,210,63,186,105,63,63, - 63,63,63,63,63,208,105,63,63,105,208,63,63,63,63,105, - 63,63,208,63,208,63,63,63,63,63,63,63,208,105,105,105, - 153,134,153,240,134,240,134,134,134,134,134,153,134,240,153,240, - 240,240,240,240,134,240,134,240,153,153,153,240,153,134,153,153, - 240,153,184,236,153,108,20,237,190,111,247,240,153,153,236,153, - 184,153,153,153,236,153,58,153,236,153,153,184,184,184,153,153, - 153,184,236,153,184,58,184,184,153,153,153,184,184,153,153,184, - 153,184,153,184,153,153,236,153,184,153,184,159,184,184,153,184, - 159,184,153,184,153,153,58,153,184,153,159,153,184,184,153,159, - 236,159,159,58,184,184,58,184,184,236,159,153,159,159,58,159, - 184,159,184,159,184,159,159,159,184,58,236,236,159,236,153,159, - 153,184,159,153,153,153,159,184,153,153,236,153,159,153,159,184, - 153,184,159,236,153,236,153,159,236,58,58,159,159,58,159,159, - 159,119,119,119,119,159,159,159,119,159,108,108,33,73,94,0, - 50,37,216,37,104,141,104,253,103,223,162,50,162,50,163,226, - 37,75,22,14,162,122,162,162,50,50,50,37,50,0,0,0, - 22,50,200,20,122,162,50,50,50,50,50,47,0,183,190,226, - 162,94,221,164,40,200,135,151,215,190,183,50,183,200,142,254, - 47,203,22,209,24,84,73,37,162,37,50,50,50,162,50,50, - 122,0,0,56,47,59,221,254,162,162,162,0,99,44,34,44, - 99,183,0,0,0,183,183,122,0,0,50,37,50,162,50,50, - 183,0,122,47,64,163,95,241,164,215,150,183,0,0,0,0, - 183,122,183,183,44,29,50,50,162,254,183,183,122,183,42,126, - 221,227,187,150,126,95,42,162,42,95,183,122,0,29,95,164, - 73,94,26,219,26,122,42,245,42,122,26,26,122,50,50,162, - 162,162,22,22,162,0,183,246,64,50,35,182,0,122,122,0, - 122,122,0,0,162,162,164,14,94,37,59,166,64,162,0,254, - 166,221,22,0,221,183,64,162,162,162,50,162,162,0,0,221, - 0,0,0,162,162,162,162,162,50,35,209,241,50,254,254,59, - 99,221,0,162,50,97,50,162,50,162,0,0,132,214,171,192, - 225,214,192,44,0,187,245,171,192,158,64,64,35,50,50,50, - 50,50,162,0,0,162,78,0,0,162,162,0,0,0,50,187, - 0,94,212,0,0,162,162,162,78,162,122,0,122,162,162,0, - 0,122,132,182,182,224,162,0,221,162,42,122,122,150,162,162, - 122,78,234,225,59,210,120,36,36,105,217,105,217,105,105,105, - 105,105,36,63,105,210,63,186,105,105,105,105,63,105,63,105, - 63,105,63,105,63,208,63,208,208,63,208,105,208,105,208,63, - 208,63,63,63,105,208,63,63,105,208,105,63,208,63,63,105, - 153,134,240,134,134,153,134,240,240,134,240,153,240,153,153,134, - 153,134,134,153,240,153,153,153,153,153,153,153,240,153,240,153, - 153,153,153,153,184,240,190,237,92,8,247,184,153,236,153,58, - 153,153,153,236,153,236,153,184,153,153,153,153,153,153,153,184, - 153,236,153,184,236,153,153,153,153,184,184,236,236,153,153,236, - 184,153,184,153,153,153,153,159,153,184,153,153,153,153,184,153, - 153,153,184,184,184,159,184,159,153,184,153,159,153,58,184,153, - 153,184,236,159,58,58,184,184,184,159,184,159,236,236,184,153, - 159,58,184,159,184,159,58,184,159,159,159,184,153,184,159,236, - 159,184,236,58,58,159,58,58,58,159,159,184,184,159,153,159, - 58,58,153,159,159,159,58,153,159,159,58,159,119,159,159,159, - 143,159,159,159,119,159,119,159,119,159,119,108,33,31,129,203, - 14,164,31,50,47,12,162,164,142,212,50,104,226,253,50,22, - 50,50,22,241,162,0,221,162,162,50,50,0,0,221,162,50, - 50,0,111,163,37,50,164,50,22,162,47,95,126,166,168,129, - 0,221,0,203,203,95,151,151,94,59,50,35,29,172,47,164, - 200,206,84,14,37,162,122,162,50,22,22,22,22,162,50,50, - 162,37,50,164,50,0,0,241,164,164,22,221,183,187,221,0, - 221,0,221,42,187,163,122,0,0,162,61,91,162,42,50,162, - 224,0,0,0,99,34,239,50,212,37,162,64,29,34,111,94, - 203,212,35,29,20,171,183,111,224,183,183,94,183,183,78,95, - 122,122,95,132,95,183,56,95,166,59,183,94,162,20,241,22, - 73,0,219,26,219,122,111,171,227,122,26,26,122,162,50,162, - 0,0,50,50,50,141,192,224,126,111,50,35,162,221,0,0, - 0,0,0,0,50,50,50,164,0,50,183,42,34,0,162,183, - 150,163,73,14,162,183,59,0,162,162,0,0,0,0,122,26, - 42,0,0,162,162,162,162,162,75,209,209,209,61,221,192,64, - 0,0,0,0,0,152,59,0,0,0,132,64,214,47,47,141, - 64,47,64,99,0,183,44,59,224,75,111,111,162,50,162,162, - 162,162,162,0,122,0,0,0,0,94,50,162,162,94,94,50, - 50,162,162,0,162,0,0,162,0,0,162,162,0,162,0,0, - 162,0,122,64,254,99,183,0,0,0,221,221,0,78,78,162, - 0,183,192,192,75,191,120,36,217,105,133,217,105,217,217,105, - 186,105,63,36,63,105,105,105,63,63,63,208,63,208,105,63, - 208,63,208,63,63,63,105,63,63,63,208,63,63,208,63,208, - 105,63,105,63,63,105,208,63,63,63,63,63,63,63,208,57, - 153,153,240,134,153,134,153,134,153,153,153,153,134,153,153,153, - 153,153,153,153,134,153,153,134,153,153,153,153,153,153,153,240, - 153,184,184,153,240,240,29,167,92,166,247,240,153,153,153,153, - 236,153,153,153,184,153,236,184,184,184,184,184,184,58,236,58, - 153,184,153,153,184,184,153,58,153,153,184,184,58,159,184,236, - 159,153,184,58,159,184,153,184,184,159,184,184,159,153,184,159, - 184,153,153,153,153,153,153,159,184,184,153,184,153,153,159,184, - 236,184,236,184,58,58,58,159,184,236,58,184,159,236,159,153, - 184,159,184,184,159,240,240,159,159,184,184,58,58,236,159,153, - 153,184,159,159,58,159,153,159,236,153,58,159,58,58,159,184, - 159,184,159,58,159,184,58,159,236,159,58,159,159,159,119,159, - 159,159,159,159,159,159,159,159,119,159,119,108,33,137,129,55, - 22,37,0,142,235,212,14,233,162,37,177,48,177,212,48,22, - 209,50,37,22,42,0,162,162,162,50,50,162,162,162,50,50, - 50,162,166,46,209,178,50,22,22,50,34,92,94,0,14,241, - 221,0,73,104,164,215,151,229,221,46,212,177,111,50,14,14, - 37,29,47,132,42,56,150,42,50,22,50,50,22,162,162,50, - 50,50,22,212,162,0,0,94,22,37,163,163,44,20,75,0, - 0,0,0,0,0,94,122,162,50,50,50,162,162,162,50,162, - 75,95,0,0,0,95,99,59,50,212,50,29,171,171,46,50, - 22,212,163,224,59,35,47,99,0,78,227,111,215,162,0,183, - 0,122,0,183,183,227,183,162,219,78,183,162,50,224,200,14, - 14,0,26,42,42,0,104,75,0,0,219,26,42,0,50,162, - 50,0,0,162,50,0,183,246,0,163,200,22,42,96,47,0, - 0,50,0,50,14,94,150,221,78,150,141,141,0,162,254,254, - 221,254,164,92,162,122,254,12,26,122,0,0,26,12,8,8, - 8,26,0,0,0,0,0,0,0,122,22,241,37,0,254,221, - 0,0,0,0,162,152,50,0,0,42,64,44,192,64,44,192, - 192,99,254,42,0,0,0,0,0,0,221,0,0,0,0,0, - 0,162,162,162,0,0,0,0,162,37,162,0,122,183,162,50, - 212,0,0,0,0,0,162,162,0,0,0,0,162,0,0,162, - 162,0,122,67,111,99,99,183,0,0,0,162,163,162,0,0, - 0,183,225,225,59,191,120,36,133,105,105,210,63,105,105,105, - 63,105,63,105,105,105,63,105,105,63,105,63,63,208,63,105, - 208,105,208,208,208,63,208,105,208,63,208,63,208,63,63,208, - 63,208,208,208,63,63,105,191,208,208,63,96,171,145,99,235, - 134,153,134,240,153,240,134,153,153,153,153,153,153,153,153,153, - 153,153,153,153,153,153,240,153,240,153,153,153,153,153,153,153, - 184,153,153,153,240,108,190,167,226,243,247,184,184,184,153,153, - 184,184,153,184,153,153,153,153,153,236,153,153,236,153,159,153, - 184,153,153,153,153,153,236,153,153,58,153,153,153,236,153,153, - 153,159,153,153,153,153,153,159,153,153,184,184,159,184,153,153, - 153,184,159,184,159,184,184,153,153,184,159,153,153,184,159,184, - 159,153,159,153,153,159,184,58,184,159,184,184,184,159,58,58, - 159,184,184,159,159,159,58,159,58,159,58,159,236,184,153,58, - 58,159,236,153,153,236,58,236,159,58,184,184,159,184,159,184, - 184,159,153,159,58,159,240,159,159,159,159,159,159,159,159,159, - 159,159,159,159,119,159,159,159,159,108,119,108,197,206,253,79, - 222,122,122,50,246,164,162,233,162,50,226,246,50,162,20,241, - 151,50,37,22,94,162,162,50,50,50,22,0,162,50,50,50, - 50,162,50,84,209,22,50,50,50,50,221,113,37,123,84,233, - 246,221,251,104,50,163,33,55,162,200,162,251,0,212,123,142, - 46,142,26,26,26,42,26,0,162,22,50,50,162,162,0,227, - 162,162,37,37,50,0,0,162,50,22,75,183,47,64,59,0, - 163,209,209,212,75,50,162,50,50,50,221,0,0,162,50,50, - 162,34,0,0,0,0,0,95,64,224,95,47,200,59,221,221, - 94,162,95,47,64,99,215,122,183,162,0,97,59,224,187,163, - 0,0,0,183,42,42,122,95,166,221,42,0,0,166,94,22, - 92,0,219,42,219,162,212,162,162,122,42,26,122,0,162,0, - 162,162,0,162,162,162,162,162,0,122,162,95,64,34,64,209, - 0,92,212,37,14,0,243,150,219,141,26,183,162,243,47,111, - 0,141,187,162,183,183,187,150,42,122,26,26,12,12,150,12, - 26,26,122,26,26,26,122,26,12,26,26,26,162,34,192,245, - 166,0,0,0,56,245,215,0,215,145,44,254,99,225,192,192, - 64,141,183,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,183,187,0,0,0,0,0,162,221,162,0,0,0,50,94, - 0,0,0,0,162,162,0,162,162,162,0,0,162,162,0,0, - 162,0,0,187,225,99,141,14,14,164,162,183,126,50,0,162, - 0,0,221,162,162,63,36,105,105,36,105,105,105,105,105,105, - 105,105,105,105,63,63,105,63,63,105,208,105,63,63,105,63, - 105,63,63,105,105,208,63,208,63,208,63,208,63,105,63,63, - 105,105,105,105,208,105,208,171,214,64,214,67,214,139,158,139, - 153,153,153,134,134,153,153,134,153,153,153,153,153,153,218,153, - 218,153,153,153,153,153,153,153,134,153,153,153,153,240,153,153, - 153,153,153,153,240,240,223,79,73,215,247,240,236,153,236,153, - 236,153,218,153,236,153,153,236,153,236,184,184,58,153,184,153, - 153,153,153,153,236,184,153,58,153,184,153,153,153,184,184,153, - 153,184,184,184,184,159,153,184,184,153,153,153,236,159,184,159, - 153,153,159,153,184,159,184,184,159,159,184,184,153,153,153,153, - 184,153,58,58,236,184,159,236,159,184,184,153,159,159,184,236, - 58,236,159,184,184,159,159,184,159,153,236,159,184,58,58,159, - 236,159,58,58,159,184,159,159,153,159,58,153,58,58,184,159, - 153,240,159,159,159,159,159,159,58,159,58,159,159,159,159,159, - 159,159,159,159,159,159,159,159,159,159,159,108,33,22,223,38, - 201,241,132,95,94,37,94,226,203,46,129,183,129,24,50,212, - 222,50,22,22,56,162,162,22,50,50,50,0,162,50,50,162, - 50,50,122,223,209,50,50,22,162,162,162,94,94,167,73,241, - 78,162,0,162,0,94,88,55,221,47,122,92,203,122,42,215, - 219,42,215,40,221,203,94,0,0,0,162,162,221,162,42,20, - 34,40,61,50,162,0,0,0,50,50,50,162,0,0,0,162, - 200,209,209,209,22,0,162,162,162,0,0,183,183,162,162,50, - 50,35,183,0,0,0,0,0,0,78,111,47,59,59,224,224, - 224,224,224,224,215,56,0,78,122,122,215,95,59,59,126,99, - 0,0,0,162,183,162,0,78,42,0,56,59,94,254,104,14, - 14,0,17,17,122,162,50,162,50,162,0,26,26,0,0,162, - 50,162,162,162,0,162,0,78,122,0,0,225,225,187,163,214, - 254,75,162,221,187,0,150,141,183,183,162,162,122,243,221,50, - 50,44,64,50,224,221,187,122,122,12,12,17,17,26,12,17, - 42,0,26,219,26,26,122,26,26,42,12,26,122,248,192,245, - 245,47,0,0,183,245,183,141,192,225,34,214,34,47,95,56, - 215,0,0,0,162,0,0,162,162,162,162,0,0,0,0,0, - 187,64,126,0,122,0,0,0,78,42,94,0,0,162,50,162, - 0,122,0,122,162,162,0,162,162,162,0,0,162,162,0,0, - 162,0,0,0,64,235,212,22,22,22,50,97,215,122,162,162, - 162,0,0,0,0,105,36,36,105,105,105,105,63,105,63,105, - 63,105,63,105,105,105,105,63,63,63,63,105,208,63,105,208, - 63,105,208,208,63,208,63,208,63,208,63,208,208,63,105,208, - 105,208,208,152,225,214,235,99,99,235,235,67,234,67,192,64, - 153,134,153,153,153,153,134,153,153,153,153,218,153,218,134,218, - 153,153,218,153,153,153,153,153,153,153,218,153,153,153,153,153, - 153,184,184,184,134,108,226,167,226,187,247,240,153,236,153,153, - 153,236,153,143,153,153,153,153,153,153,153,153,153,153,153,153, - 153,236,153,153,184,153,58,153,153,153,184,153,184,153,153,184, - 153,153,159,153,153,184,159,153,153,159,159,184,184,153,153,153, - 159,184,153,184,134,153,153,153,159,153,159,159,184,184,159,184, - 159,184,159,153,159,58,236,184,236,58,58,184,159,236,153,184, - 153,184,153,159,153,184,58,58,236,58,159,58,236,153,153,236, - 159,236,184,159,153,236,159,236,58,153,153,58,159,153,58,159, - 184,159,159,240,240,240,159,240,159,159,240,159,159,159,159,159, - 159,159,159,159,159,108,159,159,108,119,108,108,197,50,253,167, - 55,251,162,92,14,164,14,203,203,201,92,46,201,190,22,94, - 177,162,22,37,0,0,50,22,50,50,50,162,162,162,0,50, - 50,50,0,223,209,162,50,50,50,95,50,94,0,26,22,84, - 221,0,221,212,162,246,38,38,122,223,122,92,50,17,246,40, - 56,40,163,203,212,92,226,50,50,122,26,42,42,26,12,135, - 229,133,241,24,223,142,223,223,223,223,223,162,162,162,162,162, - 162,162,0,183,15,15,20,172,47,47,46,47,47,0,162,162, - 162,187,95,0,0,0,0,0,0,0,0,122,221,122,187,15, - 20,29,200,37,132,59,122,94,122,183,219,221,59,224,215,95, - 122,122,122,126,187,0,122,183,126,166,95,192,50,46,137,73, - 73,122,26,26,0,162,162,162,50,50,122,26,26,122,0,162, - 162,162,162,162,162,162,162,162,0,0,50,227,64,209,50,78, - 224,50,59,183,94,162,219,166,162,162,0,26,56,122,0,162, - 94,183,224,224,59,0,183,17,219,17,132,17,26,17,219,122, - 122,0,17,26,122,219,0,0,122,26,26,42,0,155,47,171, - 29,245,192,122,219,186,0,111,152,99,254,254,183,221,0,132, - 214,59,0,162,162,111,122,0,162,78,162,162,162,0,0,126, - 64,99,40,0,122,42,162,122,162,50,162,0,162,42,94,162, - 122,64,183,0,162,162,0,162,162,162,0,0,50,162,0,0, - 0,162,0,0,187,50,162,212,42,183,221,163,122,183,50,162, - 0,219,64,111,0,208,36,105,63,105,105,105,36,63,105,63, - 105,208,105,105,105,63,63,105,63,105,208,208,105,105,208,105, - 208,63,208,208,105,208,105,105,105,105,105,105,105,105,208,57, - 192,225,235,64,99,145,99,145,214,158,214,44,158,158,158,214, - 153,153,134,153,153,218,134,153,218,218,218,218,218,218,218,218, - 218,153,153,218,218,218,153,218,153,153,153,153,218,218,153,153, - 153,153,153,184,240,247,142,167,92,215,247,240,218,153,218,218, - 218,153,153,153,153,236,184,153,184,184,153,153,153,153,184,58, - 153,184,159,134,184,153,184,184,153,153,184,153,184,159,153,184, - 153,153,159,184,134,184,159,184,153,153,184,159,159,184,184,153, - 153,184,134,58,184,184,184,153,184,153,153,159,184,159,153,184, - 184,153,159,153,153,184,159,159,153,159,58,58,184,159,184,159, - 184,159,153,184,153,159,159,159,58,58,153,159,58,159,153,153, - 159,236,153,184,159,153,184,159,58,159,159,159,159,153,153,184, - 184,159,134,159,159,159,159,159,159,240,159,159,159,159,159,159, - 159,159,159,108,119,159,108,119,159,159,108,108,38,37,129,79, - 103,201,226,164,14,164,22,50,0,75,47,172,37,0,14,177, - 223,22,14,164,94,162,10,50,50,37,50,162,162,0,162,0, - 162,162,50,24,46,50,50,50,50,46,84,177,46,215,24,249, - 42,123,163,203,137,40,229,229,40,223,183,92,212,17,17,40, - 221,203,24,46,241,241,46,142,75,78,122,26,219,26,150,29, - 135,29,47,29,171,229,245,133,186,229,171,221,0,162,162,50, - 162,162,162,95,38,244,102,102,151,186,133,229,42,162,162,162, - 162,94,59,0,162,162,42,26,42,42,42,42,42,122,42,186, - 135,171,59,37,183,166,141,166,42,221,183,254,227,224,187,59, - 0,183,183,111,166,227,126,95,99,59,126,215,0,24,168,73, - 73,0,17,42,0,64,59,59,59,163,94,26,219,122,0,0, - 162,50,162,0,162,162,162,0,111,40,92,50,162,75,50,59, - 47,224,224,215,17,162,162,0,219,243,141,67,141,243,141,221, - 162,0,47,47,109,0,122,26,219,26,219,219,219,42,122,122, - 0,0,17,26,42,42,0,122,26,12,219,122,122,158,50,224, - 224,224,64,187,183,171,221,122,254,64,44,254,254,99,47,192, - 254,152,162,162,122,171,225,224,162,0,122,78,122,122,254,99, - 224,111,162,0,122,78,78,162,162,50,50,0,162,162,0,162, - 0,111,254,187,162,162,0,162,162,0,0,0,162,0,26,224, - 109,99,42,0,0,0,187,254,150,243,132,122,0,94,94,0, - 42,234,192,158,111,63,36,36,105,105,105,63,105,105,105,105, - 105,63,63,208,105,105,63,105,63,63,105,63,208,63,208,63, - 208,63,63,208,208,105,208,191,57,191,208,57,192,225,64,235, - 99,214,99,145,235,158,214,214,158,158,158,158,158,158,158,214, - 218,153,134,153,134,218,153,134,218,134,218,218,134,218,218,153, - 218,218,153,153,153,218,153,153,153,153,218,218,153,153,218,153, - 218,218,153,153,153,240,104,123,226,26,247,184,153,153,153,184, - 184,153,153,153,153,184,153,184,153,153,184,153,153,153,153,153, - 184,153,153,184,153,159,153,153,184,153,153,153,153,184,159,184, - 159,184,153,153,153,153,159,184,184,159,184,153,134,159,184,159, - 184,153,184,153,159,159,153,159,159,159,184,153,153,153,159,159, - 159,184,184,159,184,184,159,184,159,58,184,159,184,58,159,58, - 58,58,184,159,58,58,153,153,153,159,184,236,159,236,159,58, - 153,153,58,153,153,58,159,236,159,236,153,236,159,58,58,184, - 184,184,240,159,159,159,240,240,159,159,159,159,108,159,159,159, - 159,108,159,159,119,159,159,159,108,119,119,83,38,14,129,18, - 55,18,201,0,163,37,14,22,40,103,103,242,241,0,92,249, - 212,164,164,22,0,50,22,22,22,22,22,162,50,37,50,50, - 162,162,14,22,229,50,50,37,162,92,130,14,22,226,104,249, - 237,30,129,162,137,190,209,111,173,129,0,42,94,17,219,104, - 162,126,241,200,75,75,200,24,203,26,26,26,26,122,150,34, - 135,0,0,227,34,183,0,0,0,34,142,162,0,0,0,0, - 122,0,0,122,95,162,0,0,0,0,0,0,162,50,162,50, - 50,212,47,162,50,162,42,12,150,219,42,132,150,150,42,29, - 20,34,29,212,203,162,183,126,95,109,239,95,141,95,183,47, - 59,162,95,183,59,166,34,254,142,95,132,50,94,73,14,14, - 92,0,219,42,0,59,59,44,192,171,171,122,8,26,0,162, - 162,0,162,0,162,162,122,163,225,35,14,63,171,95,183,166, - 132,95,0,42,141,0,50,0,17,150,132,183,183,132,243,94, - 164,246,0,94,163,162,162,162,162,0,0,0,0,162,162,78, - 42,122,12,12,219,26,0,122,12,8,122,0,0,64,109,132, - 111,75,64,192,171,171,0,122,0,42,47,192,29,192,171,192, - 192,224,0,162,0,192,171,192,34,187,0,0,162,162,94,183, - 50,162,162,78,0,0,162,0,162,37,50,0,0,0,162,50, - 162,183,150,171,224,183,109,50,42,162,0,182,224,111,166,95, - 221,0,0,0,163,0,99,0,0,162,215,109,219,122,162,0, - 56,17,183,224,95,208,120,105,105,105,63,105,105,105,63,63, - 63,105,208,105,63,208,105,208,105,63,208,105,208,105,63,208, - 105,105,105,105,105,63,208,171,214,214,64,49,64,67,214,214, - 214,158,158,158,158,234,158,158,158,158,214,158,214,158,214,158, - 153,218,134,153,218,218,218,218,134,218,218,134,218,218,134,218, - 218,218,218,218,153,218,153,218,153,153,153,153,153,153,218,153, - 153,218,218,153,240,247,46,123,92,246,247,240,153,153,153,153, - 153,153,153,153,153,184,184,184,153,153,153,153,153,236,153,184, - 184,159,153,184,153,153,153,153,159,153,153,184,153,159,153,153, - 159,184,184,184,184,159,153,159,153,184,159,184,153,153,159,184, - 184,184,159,153,153,184,159,153,184,159,184,159,184,159,153,58, - 184,58,159,159,184,159,184,159,184,159,153,184,159,58,159,153, - 153,159,58,159,159,58,58,58,58,58,159,236,184,236,153,159, - 159,184,58,159,184,58,184,236,159,58,159,153,159,159,58,159, - 159,184,159,159,240,159,159,159,159,159,159,159,159,159,159,159, - 159,159,159,159,159,159,159,119,159,108,159,108,38,50,222,228, - 197,33,242,241,26,94,22,162,73,249,249,138,50,164,50,50, - 22,14,37,162,0,162,50,22,50,22,50,0,50,162,0,162, - 162,162,22,50,154,241,50,22,50,162,22,35,84,206,241,48, - 92,190,246,104,0,50,0,226,226,40,164,0,183,12,42,40, - 200,50,75,241,241,35,46,241,212,219,219,219,26,42,99,29, - 229,122,0,133,133,133,229,187,0,133,133,94,0,0,0,0, - 0,0,0,78,34,50,0,0,162,162,162,162,50,61,50,50, - 50,50,224,0,162,162,162,0,26,17,42,26,26,26,26,17, - 34,223,34,224,164,227,141,227,227,95,59,187,166,47,215,183, - 34,59,64,47,171,47,95,215,221,219,187,37,104,222,233,73, - 162,0,219,26,221,141,141,42,26,141,183,0,26,26,122,182, - 44,64,206,14,0,0,219,152,64,50,64,34,64,0,162,162, - 254,34,64,59,44,126,162,99,50,132,95,141,183,221,122,162, - 92,0,221,0,183,0,162,162,162,162,0,162,162,162,162,0, - 0,0,122,26,12,12,0,122,17,219,0,0,0,152,171,29, - 29,225,34,34,192,171,0,219,219,0,0,67,44,225,47,95, - 246,0,0,0,162,34,34,64,64,99,64,42,162,162,50,162, - 50,50,26,42,0,162,0,162,50,221,0,0,0,162,162,162, - 0,171,44,99,254,95,192,44,109,42,162,183,224,182,0,0, - 0,0,42,104,35,42,235,162,183,26,183,219,64,0,162,0, - 0,0,0,0,221,63,36,105,105,36,105,105,63,105,105,105, - 208,105,63,105,105,105,105,63,105,105,208,63,63,208,105,105, - 63,208,208,152,192,214,235,99,99,235,214,235,158,214,158,158, - 192,158,158,158,214,158,214,158,214,158,158,158,158,158,214,214, - 218,218,218,134,218,134,218,218,153,218,218,218,218,218,218,218, - 153,218,218,153,218,218,153,218,218,218,153,218,218,218,153,153, - 153,153,153,218,153,108,104,137,92,187,247,184,153,153,218,153, - 236,153,153,184,159,153,153,184,153,153,153,153,153,153,159,153, - 153,153,159,153,184,153,184,184,153,184,159,153,159,236,153,184, - 153,159,184,159,153,153,184,134,159,153,153,236,153,159,153,153, - 159,184,153,159,159,159,153,159,153,153,184,159,184,159,240,159, - 184,159,159,58,58,58,184,236,159,58,240,184,159,159,159,240, - 159,58,184,159,159,159,159,159,184,159,184,159,159,159,159,236, - 159,159,184,159,236,159,184,159,159,159,153,58,159,236,153,159, - 159,184,159,159,153,134,159,159,159,159,159,159,159,159,159,159, - 119,159,159,159,159,159,159,159,159,119,108,83,38,162,73,168, - 251,55,33,79,42,94,50,0,233,233,31,216,73,50,162,221, - 92,22,162,0,0,162,94,29,0,0,40,0,94,183,212,40, - 162,162,50,162,253,24,37,37,22,163,104,223,253,209,113,177, - 215,164,251,73,73,104,50,135,251,224,226,226,0,219,0,34, - 153,35,22,163,46,163,212,75,163,42,26,219,26,122,64,64, - 229,0,29,100,38,133,74,143,0,151,229,183,0,0,0,0, - 0,0,0,42,44,0,162,0,50,50,50,162,162,94,162,162, - 0,40,95,0,0,162,162,122,183,219,42,219,26,26,163,73, - 44,44,223,44,37,162,162,183,122,122,183,215,166,111,132,166, - 64,64,183,224,95,219,95,219,219,94,212,212,73,73,206,35, - 122,42,12,26,219,141,219,254,34,15,94,162,42,122,26,59, - 44,99,203,92,0,0,0,0,75,162,163,221,215,47,59,94, - 0,224,35,47,44,212,0,225,241,254,29,171,254,186,0,0, - 42,95,111,215,126,126,111,166,47,59,59,47,59,95,59,59, - 47,59,183,26,17,219,0,26,12,26,0,0,0,20,192,192, - 171,29,34,29,29,171,0,0,122,0,0,183,141,0,0,0, - 42,42,122,0,0,64,64,59,224,224,59,50,162,162,162,50, - 42,219,183,183,122,0,0,94,37,50,50,0,0,0,162,162, - 0,225,192,192,192,0,61,50,50,162,162,162,0,0,0,0, - 42,0,187,219,224,221,150,254,150,42,0,42,183,42,94,162, - 162,0,99,64,183,105,36,105,105,105,105,63,105,105,63,63, - 105,208,63,208,63,63,208,105,208,63,105,105,105,105,208,57, - 202,192,214,235,64,214,99,214,214,158,214,158,158,158,214,158, - 145,158,214,214,214,214,158,214,158,214,158,214,64,214,214,158, - 218,134,218,134,88,218,218,218,218,88,218,218,134,218,218,218, - 218,218,218,218,218,218,218,218,218,218,218,153,153,153,218,153, - 153,218,153,153,134,247,47,251,92,221,247,134,153,153,218,153, - 153,153,153,134,184,159,153,184,184,184,184,184,153,153,153,58, - 153,153,58,159,159,153,153,159,153,153,153,153,153,159,153,153, - 153,153,159,159,134,153,58,153,153,153,153,236,236,153,153,153, - 236,159,153,153,153,153,236,153,159,236,153,153,134,153,159,159, - 184,58,159,153,153,236,159,159,153,159,159,159,240,159,184,159, - 159,159,153,58,184,159,184,184,159,184,159,184,159,58,159,184, - 58,240,159,184,159,153,184,159,159,58,159,159,240,159,159,159, - 153,159,134,159,159,153,159,159,159,159,159,159,159,159,159,159, - 159,159,159,159,159,119,159,159,159,159,159,83,38,251,33,228, - 222,251,228,197,95,50,50,0,249,73,233,62,167,0,56,50, - 221,95,0,0,122,221,162,223,162,0,0,20,72,88,72,33, - 35,0,162,0,64,34,163,95,132,59,104,0,203,40,226,92, - 22,14,84,203,92,221,173,35,126,129,48,55,221,219,42,15, - 218,241,46,200,241,50,50,46,95,26,219,42,26,26,64,47, - 133,50,20,15,151,186,38,74,0,171,135,122,0,0,0,0, - 200,29,29,40,99,0,50,0,0,162,50,162,162,162,224,29, - 44,47,29,20,15,229,20,20,229,20,111,26,219,92,168,233, - 92,182,44,34,200,50,0,0,0,122,0,0,183,0,183,0, - 56,0,215,0,0,183,0,162,122,0,37,162,206,14,26,243, - 219,122,26,0,219,64,192,15,29,158,126,50,42,122,8,187, - 64,75,177,42,183,0,0,162,164,50,47,152,171,34,64,59, - 162,0,42,166,224,122,0,64,34,0,187,64,64,34,91,215, - 254,171,44,59,44,34,64,44,15,171,171,171,29,29,171,171, - 245,245,95,0,26,26,122,12,17,122,0,0,0,171,171,44, - 34,34,214,34,192,171,0,0,122,0,0,0,0,0,0,183, - 219,42,122,0,0,122,122,221,183,162,122,0,166,214,95,122, - 42,183,183,126,12,183,162,0,162,162,0,0,0,0,0,122, - 56,183,95,44,214,162,22,22,50,0,162,162,0,0,0,254, - 224,0,0,0,0,0,183,187,183,0,162,78,0,122,94,0, - 0,187,234,171,59,63,36,105,63,105,105,105,63,105,208,63, - 105,105,63,105,105,105,105,36,105,105,63,57,192,214,99,64, - 214,192,192,234,145,158,145,214,35,214,214,158,214,214,145,214, - 214,214,158,235,158,214,158,214,214,64,214,214,158,139,158,158, - 218,218,218,134,134,88,218,218,218,134,88,218,88,218,218,218, - 218,218,218,218,218,218,218,218,218,218,218,218,218,218,153,218, - 218,153,153,218,153,240,241,137,226,26,247,184,153,153,153,153, - 153,153,184,184,184,153,184,153,153,153,153,153,153,153,153,153, - 58,58,153,153,153,153,153,153,153,159,159,153,153,236,153,153, - 236,159,153,153,184,153,153,153,153,236,134,153,153,236,153,153, - 153,153,153,153,153,236,153,153,236,143,153,153,236,58,134,236, - 153,153,153,159,159,159,153,153,184,159,184,159,159,240,159,159, - 159,159,58,159,184,159,184,159,159,240,240,240,240,240,159,159, - 159,58,184,184,159,184,184,159,159,159,240,159,159,159,153,159, - 184,184,184,159,159,159,134,153,159,159,159,159,159,159,159,159, - 159,159,159,159,159,159,159,159,159,119,108,108,38,222,55,228, - 228,55,228,197,226,50,50,37,175,73,14,206,233,50,40,187, - 162,50,162,0,14,37,0,142,22,50,0,229,33,38,38,151, - 133,46,0,162,111,223,44,29,223,142,142,34,142,64,47,34, - 14,241,142,162,40,200,79,84,166,222,190,47,212,42,78,29, - 229,241,223,24,24,46,209,44,26,17,190,219,12,26,15,50, - 151,221,0,162,0,0,0,221,0,29,44,183,0,212,95,95, - 40,203,75,50,187,0,162,162,50,162,162,162,37,50,215,151, - 229,135,15,229,229,20,20,29,20,151,15,239,168,31,206,73, - 206,46,64,35,29,212,162,0,0,122,227,0,0,166,221,42, - 219,122,111,0,166,126,0,42,122,94,212,168,104,150,219,150, - 221,219,26,0,133,133,20,44,35,44,95,162,50,26,26,0, - 95,37,92,183,34,0,0,46,164,50,171,44,59,187,221,183, - 46,162,162,122,183,0,50,183,34,0,0,0,162,0,50,162, - 64,29,44,34,64,64,59,64,29,44,44,34,44,34,44,34, - 20,171,40,0,150,12,122,122,0,0,0,0,122,171,20,192, - 29,34,225,34,29,245,0,0,0,0,0,0,122,0,0,0, - 122,183,122,0,122,162,162,162,162,162,0,187,99,171,225,95, - 183,94,183,183,166,111,78,162,162,0,0,0,0,162,0,26, - 215,219,162,42,163,162,22,61,0,162,162,0,0,0,166,214, - 224,0,0,187,150,132,214,183,162,0,78,111,219,42,221,0, - 182,44,44,225,40,63,105,105,105,105,105,63,105,105,105,105, - 63,63,36,105,105,63,191,125,171,214,64,67,44,139,234,214, - 96,205,158,214,214,214,214,145,214,214,235,158,214,214,158,49, - 158,214,158,214,158,214,214,64,158,101,158,214,234,64,158,214, - 218,218,218,218,218,218,134,88,218,88,88,218,218,218,88,218, - 218,218,218,218,218,218,134,88,218,218,218,134,218,218,218,153, - 218,218,218,153,153,247,35,137,92,183,247,240,218,153,143,236, - 153,153,153,153,159,134,58,184,153,184,184,159,153,58,153,153, - 153,153,159,159,159,159,153,159,153,153,159,153,153,236,153,153, - 153,153,153,236,159,153,236,153,134,236,236,143,143,236,143,153, - 236,153,153,153,153,143,236,143,153,143,236,153,153,236,153,153, - 153,153,153,236,134,236,159,153,153,159,159,184,159,240,240,159, - 153,159,153,159,236,153,134,184,159,159,159,159,159,159,159,159, - 153,58,159,153,184,159,184,184,240,159,159,240,240,159,159,240, - 159,159,153,153,159,184,159,153,153,159,159,159,119,159,143,159, - 159,159,119,159,143,159,159,119,159,159,159,83,173,228,55,55, - 79,38,79,21,190,50,22,22,249,113,14,10,92,200,14,221, - 0,183,163,50,14,50,0,183,209,50,122,133,102,55,151,135, - 129,103,163,50,46,223,200,44,46,142,29,229,229,15,229,15, - 171,47,0,190,162,221,221,104,221,215,246,104,50,50,50,163, - 50,164,46,22,163,104,226,34,12,26,47,122,12,26,245,162, - 135,20,15,229,151,151,229,133,133,229,151,212,183,15,29,227, - 0,0,0,183,227,78,122,0,162,0,0,0,50,50,0,59, - 229,20,20,223,20,34,223,29,253,47,221,0,162,92,206,73, - 73,168,46,64,29,29,50,0,0,0,122,187,0,0,221,215, - 132,215,122,0,99,0,42,56,37,50,226,226,141,219,219,219, - 221,0,122,47,38,171,34,35,47,35,47,0,50,42,42,0, - 59,59,67,132,0,162,0,22,254,192,40,163,50,84,50,47, - 133,200,162,162,0,162,50,0,122,132,47,254,162,0,163,224, - 44,171,44,34,47,224,224,59,44,44,44,44,44,44,44,44, - 29,171,94,42,8,12,0,122,94,122,0,0,122,214,29,192, - 15,171,192,29,171,15,78,0,0,224,254,0,0,42,122,0, - 0,122,122,0,183,0,0,0,0,224,64,44,59,75,224,59, - 99,166,0,122,219,166,162,212,162,0,122,0,162,162,0,219, - 183,132,166,183,17,221,209,162,187,162,162,0,122,224,64,99, - 99,0,0,99,234,166,64,215,122,0,99,224,166,122,94,122, - 171,214,64,44,59,105,217,105,63,63,105,36,105,105,36,36, - 36,63,96,152,192,44,99,99,139,67,214,49,158,67,171,145, - 64,67,64,214,235,214,235,158,214,214,214,214,214,235,192,35, - 158,214,158,35,158,49,158,214,158,35,234,214,158,158,158,158, - 218,218,88,134,88,88,218,88,134,218,218,88,218,88,218,88, - 218,88,218,88,218,218,218,218,134,88,218,218,218,218,218,153, - 218,218,153,218,218,247,75,137,92,42,247,184,153,218,153,143, - 153,153,153,153,153,184,184,184,184,153,153,153,236,153,143,236, - 153,153,153,153,153,153,159,153,153,236,153,236,143,134,236,143, - 143,236,159,134,236,153,153,236,143,236,143,143,153,143,236,236, - 134,236,159,143,236,236,153,143,143,143,153,143,143,153,153,236, - 159,134,236,153,236,153,236,236,159,153,134,159,159,159,153,159, - 159,153,159,153,159,184,58,153,159,159,159,159,159,159,153,159, - 159,153,153,58,184,134,159,159,240,240,159,159,159,240,153,159, - 153,159,159,159,153,159,153,159,159,236,159,159,159,143,159,159, - 159,159,159,159,159,143,143,159,159,119,119,83,173,55,129,251, - 55,103,55,197,177,50,14,0,206,14,14,226,164,223,164,221, - 40,162,162,0,22,37,0,0,226,50,142,135,38,197,38,129, - 135,135,20,50,162,46,59,104,47,253,172,229,229,229,229,129, - 151,229,0,50,0,0,221,0,122,162,221,212,0,50,37,0, - 0,0,0,221,0,0,0,150,26,12,162,78,26,26,171,0, - 20,135,186,151,186,133,151,38,38,133,102,227,0,0,0,0, - 0,0,0,78,162,183,0,111,47,47,44,64,78,0,0,221, - 29,253,29,35,223,223,34,200,162,0,0,0,0,0,164,73, - 73,31,206,241,64,171,20,212,0,0,0,0,141,183,166,219, - 224,95,150,40,0,0,162,104,164,215,166,26,150,64,44,245, - 95,42,0,34,151,29,29,44,64,44,20,0,162,0,0,0, - 200,35,47,59,111,34,227,163,47,245,37,14,126,178,241,95, - 245,171,163,50,50,22,37,162,64,59,152,152,163,50,50,166, - 64,20,44,34,224,111,224,59,64,59,200,47,35,47,47,64, - 64,171,221,0,162,162,0,0,163,162,122,0,0,171,95,239, - 95,95,47,59,99,35,0,0,42,186,186,171,221,0,0,0, - 0,162,50,163,163,162,0,0,0,64,47,64,99,59,64,64, - 64,64,111,122,183,166,0,50,162,0,219,0,50,0,0,132, - 17,166,17,150,132,162,22,162,254,162,162,42,99,35,224,99, - 35,132,0,162,99,64,95,0,0,0,219,17,122,42,221,122, - 225,44,44,44,94,105,120,105,105,36,105,63,225,192,57,152, - 192,225,214,99,67,145,101,192,139,158,158,44,158,214,49,49, - 214,235,158,158,214,214,214,214,214,214,214,214,214,158,158,214, - 158,235,158,235,154,64,158,158,158,145,178,214,214,64,235,214, - 88,88,134,88,88,218,88,218,88,88,218,88,218,88,218,88, - 218,88,134,88,218,88,218,88,218,218,88,218,88,218,218,218, - 218,218,153,218,218,247,200,190,104,162,247,240,153,153,153,218, - 153,236,134,153,153,153,153,153,159,159,153,159,153,159,143,153, - 236,143,153,153,236,153,153,153,153,143,153,134,143,236,153,153, - 143,236,236,153,159,236,134,236,143,153,236,143,143,143,236,143, - 236,143,159,153,143,143,153,236,236,143,236,236,143,236,153,143, - 236,153,236,153,153,143,143,143,236,236,153,153,236,159,153,159, - 159,153,159,153,159,159,159,134,184,159,184,159,184,159,184,153, - 159,159,159,159,184,184,159,159,159,159,159,159,159,159,236,159, - 236,159,236,159,153,159,159,153,159,236,159,159,159,159,143,159, - 143,159,143,159,159,159,143,159,159,159,159,108,229,223,29,251, - 55,55,103,197,190,37,22,0,37,200,142,14,10,221,46,215, - 162,162,104,48,50,22,162,0,104,0,151,212,0,200,223,135, - 48,226,223,35,0,59,75,46,200,223,20,229,229,229,135,151, - 151,151,34,0,212,164,50,137,162,162,137,167,0,221,50,215, - 0,162,162,94,0,0,0,254,12,12,37,94,17,17,171,0, - 142,223,15,229,15,15,15,151,15,135,38,212,0,122,122,122, - 122,42,56,42,50,0,95,59,99,59,59,47,44,200,0,0, - 94,223,223,241,44,241,94,0,0,0,0,162,162,0,0,0, - 94,92,73,206,84,47,245,186,75,162,162,59,141,95,221,183, - 254,224,99,99,166,50,37,221,42,254,44,15,15,229,186,102, - 0,26,183,44,29,20,29,34,44,34,20,78,162,26,42,42, - 166,142,47,29,15,245,44,94,47,133,29,75,97,209,37,0, - 200,171,20,0,50,37,50,162,44,47,59,29,44,111,163,227, - 99,29,44,64,75,163,59,59,47,59,224,44,44,99,35,59, - 95,75,59,40,162,50,162,162,162,122,50,78,0,155,47,0, - 162,0,162,162,132,44,0,0,221,192,15,245,171,183,0,0, - 94,241,241,22,162,122,0,0,0,64,99,95,47,59,47,59, - 59,64,59,59,224,219,0,162,162,0,219,0,162,122,122,141, - 150,95,132,132,122,61,14,122,122,162,162,78,99,99,224,111, - 109,64,17,42,0,122,26,0,0,0,183,219,122,183,50,183, - 235,64,99,99,187,244,244,120,105,105,245,192,44,64,64,67, - 225,211,225,214,214,214,67,234,44,158,158,158,214,158,139,158, - 214,35,214,214,214,214,214,214,235,214,235,214,214,214,214,235, - 158,35,158,158,158,158,158,214,214,235,235,214,158,214,158,158, - 218,218,88,134,88,218,88,218,88,88,218,88,88,88,218,88, - 88,88,218,88,218,88,134,88,218,218,88,134,218,218,88,134, - 218,218,134,218,153,247,75,168,92,50,247,184,153,218,153,153, - 143,153,153,236,236,134,236,159,153,153,236,134,153,236,153,143, - 153,153,236,153,159,236,159,153,153,236,236,236,236,143,143,143, - 153,143,153,153,236,236,143,143,153,143,143,143,143,236,143,236, - 143,236,143,143,153,236,143,143,143,143,143,143,236,143,143,236, - 153,143,143,143,143,153,153,236,153,153,153,236,134,236,159,236, - 153,58,153,153,236,153,153,58,153,134,153,153,153,159,153,159, - 159,153,153,153,58,184,134,159,159,240,159,159,153,159,159,159, - 159,153,159,236,159,153,153,159,153,134,159,143,159,143,159,143, - 159,143,159,159,159,143,159,119,143,236,58,83,103,48,31,55, - 18,38,79,72,226,22,209,241,24,92,14,22,37,0,183,212, - 29,228,55,55,190,50,162,163,241,162,15,37,0,0,0,0, - 50,163,163,227,75,47,97,46,35,226,29,229,229,228,151,103, - 151,229,229,126,162,50,0,137,221,0,37,162,0,122,162,94, - 0,162,37,94,162,221,0,95,26,122,50,162,26,26,34,0, - 163,241,20,20,135,151,229,133,229,151,133,40,26,12,17,12, - 26,78,0,162,0,122,219,0,0,42,42,122,59,15,0,122, - 122,95,35,163,94,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,50,206,73,178,151,100,133,241,212,221,0,0,78, - 166,42,0,0,162,40,29,15,245,186,229,20,245,15,15,47, - 0,122,0,171,20,44,29,20,29,142,200,0,122,224,219,42, - 0,126,59,44,44,171,47,122,26,171,29,35,224,200,50,0, - 162,29,171,162,163,37,78,0,224,227,0,132,126,0,187,122, - 64,29,34,44,47,126,224,200,224,111,75,200,97,111,212,50, - 37,203,226,104,0,162,50,50,162,162,0,0,0,219,122,162, - 162,162,162,0,0,227,0,0,192,171,34,34,34,44,187,78, - 22,241,22,221,0,0,0,0,0,224,47,47,99,224,99,64, - 47,59,99,64,224,183,0,0,162,122,141,0,162,0,0,0, - 162,183,132,122,163,209,50,0,0,0,162,0,0,187,95,224, - 95,224,59,111,26,12,26,42,0,109,99,225,26,50,221,0, - 192,192,44,44,246,210,96,171,225,214,235,214,235,158,158,99, - 192,235,171,158,158,158,214,158,214,214,158,214,64,214,214,214, - 7,235,49,49,49,235,214,214,235,49,214,214,214,214,158,158, - 158,158,214,145,214,235,235,214,158,158,158,158,158,158,158,158, - 88,88,218,88,88,88,218,88,88,218,88,88,218,88,88,88, - 218,88,88,88,88,218,88,218,88,134,218,88,218,88,134,88, - 218,218,218,218,218,247,75,73,104,78,247,134,153,218,143,143, - 218,153,143,134,236,159,153,153,153,159,236,236,143,153,143,236, - 153,143,143,153,153,236,159,236,134,143,143,143,143,236,143,143, - 153,236,143,153,153,236,236,143,143,143,218,236,143,143,143,153, - 236,236,236,236,143,143,236,236,236,236,143,143,236,236,236,143, - 143,153,236,236,143,236,153,143,236,153,153,236,153,153,153,153, - 153,236,153,153,236,236,153,159,58,159,159,159,236,159,153,153, - 58,159,236,153,153,58,134,159,153,153,153,159,153,134,153,153, - 159,153,153,153,159,159,134,159,236,236,159,159,159,159,159,159, - 159,159,143,143,159,236,134,159,159,143,58,108,151,37,222,137, - 228,55,220,242,223,129,222,92,22,10,14,50,50,203,222,55, - 103,229,129,229,55,75,46,142,209,40,29,50,221,162,221,122, - 212,246,162,0,44,142,166,59,75,75,142,142,172,129,229,151, - 129,151,38,229,183,162,122,0,94,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,122,162,162,0,0,0,122,221, - 75,241,20,29,34,20,171,133,229,186,38,166,42,26,219,219, - 122,122,122,122,122,42,219,26,42,132,219,42,183,59,0,183, - 50,183,183,0,122,0,0,122,122,0,122,122,56,0,122,122, - 0,0,0,0,221,212,37,22,223,151,133,20,46,95,50,163, - 95,126,59,44,171,25,102,186,245,171,171,229,34,183,122,0, - 0,0,78,15,171,34,34,34,126,219,224,224,59,95,42,0, - 122,0,221,126,59,34,111,254,166,42,224,64,59,64,109,183, - 59,24,44,224,183,162,122,0,0,0,0,0,0,0,0,0, - 59,44,64,35,47,183,183,50,163,212,163,37,203,37,40,164, - 37,241,46,104,162,0,0,162,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,34,64,64,44,34,44,59, - 162,183,0,0,0,122,122,0,0,182,64,59,59,95,59,99, - 47,59,47,227,0,0,162,0,0,122,187,0,0,0,0,162, - 0,221,122,50,22,50,42,42,162,122,162,183,162,162,0,122, - 122,183,183,221,225,158,44,17,0,64,34,192,254,162,162,162, - 192,34,99,95,0,145,214,182,225,99,64,214,235,171,234,158, - 152,158,234,158,171,158,158,158,234,214,49,235,235,235,7,235, - 49,7,49,49,235,49,214,49,235,49,235,214,214,214,49,214, - 214,235,235,214,158,158,158,158,158,158,158,214,158,158,158,214, - 88,88,218,218,88,88,88,88,88,88,88,88,88,218,88,88, - 88,88,218,88,88,88,88,218,88,218,88,218,88,218,88,218, - 88,218,218,218,134,240,241,190,104,42,247,153,143,218,218,153, - 153,143,153,236,153,143,153,236,159,153,153,153,153,143,153,143, - 143,143,134,153,236,134,236,153,236,236,153,143,143,143,236,207, - 143,143,236,143,134,153,143,143,218,143,236,143,143,236,143,143, - 143,134,153,153,153,236,143,143,143,143,236,143,143,143,143,159, - 236,236,153,153,236,143,236,236,134,143,143,153,143,236,143,236, - 143,159,143,236,153,153,153,236,153,153,153,153,153,236,236,236, - 153,236,153,159,236,153,58,153,236,58,159,236,159,58,159,159, - 236,153,159,143,236,236,159,143,159,134,236,143,236,159,143,143, - 159,143,159,159,236,159,143,159,143,159,236,108,33,162,50,50, - 164,223,104,142,29,123,177,222,37,104,164,203,142,177,172,104, - 200,200,200,59,104,47,104,200,95,122,163,0,166,212,183,183, - 40,50,227,0,122,122,122,215,40,221,122,42,111,126,40,95, - 40,47,95,95,219,26,122,183,221,221,183,42,122,122,26,40, - 183,221,56,56,42,56,42,183,42,221,42,183,183,183,183,42, - 166,50,95,224,97,200,200,59,99,47,29,150,150,150,12,219, - 219,219,17,12,150,150,17,150,166,26,183,183,162,183,166,182, - 47,221,122,183,166,243,254,254,254,254,254,99,254,64,254,141, - 132,132,183,219,166,132,132,132,183,219,166,95,59,59,99,29, - 44,34,44,34,142,47,47,59,47,47,47,99,219,187,150,132, - 219,187,150,59,47,59,111,183,227,224,224,59,95,183,122,122, - 219,187,219,122,187,187,183,187,219,224,187,183,187,111,59,59, - 224,109,59,75,162,42,183,221,122,122,42,42,42,122,187,219, - 150,109,187,132,219,26,111,17,95,111,111,200,200,47,200,47, - 47,224,163,239,187,183,183,187,183,42,42,42,183,183,219,219, - 219,166,254,166,132,219,42,219,44,44,99,35,44,47,47,44, - 47,219,183,42,42,42,42,42,42,111,224,111,111,111,224,59, - 224,109,111,111,187,162,122,187,42,219,219,122,122,122,122,42, - 42,219,42,163,111,219,183,183,183,219,219,42,183,219,183,122, - 122,0,122,42,239,111,187,162,42,162,187,99,111,183,221,0, - 187,183,0,0,0,234,235,214,68,158,171,171,158,234,154,158, - 158,35,139,91,35,35,235,35,64,35,64,59,26,91,67,99, - 214,29,158,158,158,158,158,214,158,214,214,214,235,49,235,49, - 214,158,158,214,158,158,158,158,158,158,214,214,235,214,214,158, - 88,88,218,88,88,88,88,88,88,88,88,88,88,88,88,88, - 88,88,88,88,88,218,88,88,218,88,218,218,218,218,88,218, - 134,88,218,218,153,247,200,92,164,221,247,153,218,218,218,218, - 218,143,143,143,153,236,153,153,153,134,236,143,236,143,143,143, - 236,143,143,236,143,236,236,143,143,143,236,236,143,143,143,143, - 143,143,143,236,236,236,236,236,143,143,236,236,143,236,143,143, - 143,236,143,143,143,143,143,153,236,143,236,153,153,153,143,153, - 134,143,143,143,236,143,236,143,236,236,143,236,143,236,143,236, - 143,236,134,236,143,236,134,236,236,236,143,159,134,153,134,236, - 134,159,236,153,143,159,153,159,153,134,236,153,153,236,153,153, - 236,134,159,159,143,236,159,236,159,153,159,143,236,159,159,143, - 159,159,236,159,143,159,236,159,143,159,159,119,108,119,38,95, - 94,162,162,162,0,162,221,0,50,212,37,37,212,50,50,50, - 50,50,94,50,37,221,0,0,0,190,118,86,22,164,164,37, - 203,22,241,14,177,164,50,0,0,0,48,137,37,0,50,164, - 22,14,14,73,206,138,249,0,0,162,0,212,73,92,22,22, - 22,164,164,164,203,37,164,22,212,0,0,0,94,50,239,50, - 183,50,183,50,183,221,183,162,221,50,162,221,162,212,246,183, - 50,183,183,94,183,183,50,94,162,162,94,212,162,0,162,94, - 78,78,50,50,50,94,94,212,183,239,215,227,40,221,0,0, - 94,162,94,221,94,162,221,162,246,183,50,94,78,0,221,0, - 0,0,0,0,0,0,0,0,0,0,0,162,94,94,162,221, - 0,162,0,0,0,162,162,162,162,0,0,0,162,162,122,162, - 221,162,0,162,246,221,183,50,94,94,162,162,162,94,162,187, - 183,94,219,0,0,0,162,162,162,94,162,221,162,221,122,162, - 162,0,0,0,0,0,0,0,0,221,0,221,0,162,162,183, - 221,78,122,122,0,221,122,162,94,221,183,78,42,42,183,42, - 42,183,183,183,183,221,42,162,183,94,122,122,122,162,42,42, - 162,42,183,78,122,221,183,162,183,162,122,0,162,122,122,122, - 162,122,0,0,221,122,0,221,78,183,42,122,42,122,221,56, - 122,122,122,78,183,183,42,78,221,78,78,122,122,78,42,122, - 122,122,122,122,0,0,0,122,183,78,78,162,78,78,42,122, - 0,0,0,122,182,152,158,24,44,139,61,111,163,42,42,162, - 162,42,42,42,26,26,26,12,26,12,26,12,26,122,122,162, - 78,122,162,50,91,163,61,59,64,35,139,49,158,158,158,158, - 158,158,158,158,158,158,214,214,49,214,214,214,101,235,214,158, - 88,88,88,88,88,218,88,88,88,88,88,88,88,88,88,88, - 218,88,88,88,88,218,88,88,88,88,88,88,218,88,218,88, - 88,134,88,88,218,240,59,73,104,91,240,153,153,153,218,143, - 153,218,143,153,153,153,153,236,236,236,143,236,143,143,143,143, - 127,143,236,143,153,143,153,153,143,143,143,143,218,218,143,207, - 207,143,236,143,143,143,143,207,207,143,143,143,143,143,236,236, - 143,143,236,207,143,236,218,143,143,153,143,143,236,143,143,236, - 236,236,236,236,143,236,143,236,143,143,236,153,143,143,236,143, - 127,143,143,143,143,236,143,236,134,153,236,143,143,236,143,153, - 236,236,134,236,159,236,236,143,236,236,134,236,153,153,143,153, - 236,159,143,236,159,153,143,159,143,159,143,159,159,143,143,119, - 159,143,143,143,159,143,143,143,119,134,236,159,119,240,83,133, - 241,226,241,226,221,162,94,0,14,73,84,84,84,84,84,84, - 73,84,92,84,73,40,0,221,0,250,250,55,14,168,222,168, - 206,31,31,123,237,130,47,0,162,50,18,237,206,92,22,249, - 249,249,249,249,249,11,11,42,0,212,221,212,249,233,113,73, - 10,113,206,73,209,84,73,168,177,0,162,221,241,200,241,200, - 200,35,22,200,241,200,75,59,37,223,212,94,94,40,75,22, - 224,75,59,35,22,75,224,75,59,224,24,48,0,246,50,40, - 187,126,166,166,126,111,126,187,126,163,109,97,142,221,95,122, - 47,50,126,163,163,75,200,97,163,163,239,50,50,212,212,162, - 162,203,40,212,79,164,162,162,50,50,50,50,162,162,94,241, - 0,162,183,50,162,163,163,187,111,163,187,50,187,183,111,111, - 104,94,183,221,212,91,163,111,163,187,163,111,163,94,50,163, - 50,40,162,0,162,183,163,187,187,187,163,187,126,187,187,187, - 187,111,50,104,162,183,94,163,111,187,42,183,187,187,126,187, - 187,187,187,42,203,0,0,183,203,42,26,50,187,163,111,163, - 187,187,91,26,50,183,162,0,0,239,42,50,26,42,42,94, - 162,162,162,183,162,78,162,0,0,0,221,183,183,219,50,42, - 187,50,42,26,26,42,219,122,0,0,0,94,221,26,42,42, - 187,42,91,42,42,162,78,42,162,0,0,0,162,162,78,42, - 42,42,42,42,78,78,42,162,78,162,162,0,0,0,0,0, - 221,162,26,234,245,245,224,26,26,26,26,26,12,8,8,8, - 7,8,7,235,7,235,7,7,7,7,7,7,235,7,7,7, - 8,101,101,8,8,8,12,8,8,91,111,61,50,162,50,187, - 61,35,139,35,35,214,214,214,49,214,214,158,49,49,49,145, - 88,88,218,88,88,88,88,88,88,218,88,88,88,88,88,88, - 88,88,88,88,88,88,88,218,218,88,218,88,134,88,218,218, - 88,134,88,218,218,240,35,92,164,162,153,153,218,218,218,218, - 218,218,218,143,236,153,143,134,236,134,236,236,143,207,218,218, - 127,127,143,153,153,236,236,236,236,143,218,207,143,207,143,143, - 236,143,236,236,236,143,143,236,143,143,218,207,143,143,143,143, - 207,143,236,143,207,236,143,236,143,236,236,143,236,236,143,143, - 143,153,134,236,143,153,143,236,236,143,143,236,143,143,236,236, - 236,143,143,89,143,236,143,143,127,236,143,236,236,143,236,143, - 236,143,236,143,143,153,143,153,134,236,134,236,143,159,159,236, - 143,159,236,143,236,159,143,159,143,159,236,143,159,119,143,143, - 159,159,119,143,119,159,236,143,143,236,236,143,236,58,240,151, - 50,142,75,223,50,183,50,221,24,168,168,73,130,130,130,233, - 233,233,130,206,222,50,0,162,0,43,73,73,123,31,249,31, - 31,228,123,31,62,130,212,94,40,163,14,233,62,237,249,237, - 167,62,237,237,31,93,11,42,0,212,162,94,62,175,233,249, - 249,31,233,249,233,233,249,233,168,0,50,0,203,241,22,59, - 22,59,209,59,209,200,59,200,22,177,40,94,162,40,241,35, - 59,75,59,241,200,241,200,75,59,59,104,177,0,239,50,223, - 224,224,111,224,224,224,200,224,224,95,111,61,177,221,183,0, - 239,212,163,163,163,22,22,37,22,163,40,50,50,241,104,221, - 162,163,22,23,98,137,162,50,50,50,162,94,50,162,94,177, - 0,0,221,203,111,111,163,126,183,163,187,163,224,75,111,111, - 226,94,162,122,104,50,163,187,163,97,111,111,111,97,187,111, - 61,46,212,162,162,166,75,163,163,126,163,187,163,163,163,111, - 111,111,75,48,162,163,40,163,111,97,111,163,163,187,37,111, - 111,111,111,187,104,122,78,227,142,50,187,111,187,187,111,111, - 163,187,126,187,111,163,183,0,0,200,42,163,163,50,187,163, - 50,163,42,50,26,50,212,162,122,0,163,50,91,187,163,187, - 163,187,37,163,111,91,187,50,162,0,0,95,94,187,50,187, - 163,126,50,187,163,26,187,187,50,162,0,0,239,50,187,50, - 187,187,187,187,163,187,42,50,26,162,183,0,0,0,0,187, - 95,50,99,158,139,139,91,8,67,7,67,7,49,235,7,7, - 235,7,7,235,7,49,67,49,49,67,7,49,235,7,49,7, - 7,7,7,7,67,7,67,101,67,67,8,67,101,101,8,8, - 8,8,8,8,211,139,49,139,187,91,109,49,49,49,49,49, - 88,88,88,88,88,88,88,88,88,88,88,88,88,88,100,88, - 88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88, - 218,88,218,88,218,240,75,92,104,91,240,153,218,88,218,127, - 218,218,127,143,143,236,236,143,153,236,143,143,207,143,143,143, - 143,218,143,143,143,143,153,143,127,207,143,143,207,143,143,236, - 143,143,143,143,143,143,236,143,207,143,236,143,207,143,207,143, - 143,143,143,143,127,127,143,207,143,143,143,143,143,143,236,236, - 236,143,143,153,236,143,236,143,143,236,143,143,236,143,143,143, - 143,207,143,143,143,143,143,236,236,143,236,143,143,236,134,236, - 143,236,153,236,236,143,236,89,143,143,143,143,236,143,143,153, - 236,143,153,143,236,143,236,143,236,236,143,236,143,236,143,236, - 143,143,143,143,143,236,143,143,236,143,143,143,143,236,108,151, - 190,46,59,29,215,162,183,0,84,31,233,222,31,31,233,222, - 31,233,31,113,65,215,162,162,0,92,249,31,31,123,31,233, - 130,130,168,73,31,31,95,183,50,42,22,41,237,237,220,216, - 220,216,220,216,220,93,11,42,0,183,0,50,216,62,62,62, - 41,41,41,167,167,167,62,41,135,0,183,122,46,24,24,35, - 46,35,241,209,241,209,35,35,35,226,50,183,26,75,241,35, - 75,75,22,35,209,75,35,59,35,241,24,48,0,227,183,223, - 200,200,35,224,200,35,200,200,35,224,200,111,79,50,94,0, - 104,37,37,37,50,163,163,163,203,22,163,75,203,104,40,78, - 0,40,203,137,104,122,50,163,50,183,50,163,50,50,246,129, - 0,78,94,46,200,75,111,97,97,75,224,75,109,111,200,37, - 226,246,215,0,172,91,75,75,75,75,75,241,224,75,163,75, - 75,142,163,183,78,111,241,97,163,61,97,97,97,97,224,111, - 97,97,95,48,122,215,246,200,61,97,61,187,111,97,111,111, - 163,126,163,163,46,0,94,183,47,91,111,111,61,111,61,163, - 187,163,187,50,163,95,0,162,0,47,50,163,42,163,187,50, - 187,61,91,163,187,42,200,183,0,122,104,42,50,187,91,163, - 187,91,187,26,50,183,91,126,221,122,0,142,42,163,187,187, - 187,187,187,50,91,50,187,50,183,78,122,0,95,111,50,187, - 163,163,163,91,91,163,111,50,187,163,162,0,0,42,78,166, - 224,166,101,8,8,67,7,67,67,49,67,49,7,49,67,67, - 67,235,235,235,67,7,49,67,235,67,7,67,7,235,235,235, - 235,67,67,67,49,49,49,49,7,67,67,7,67,7,49,7, - 49,49,101,101,139,139,67,67,139,67,8,182,8,182,7,182, - 88,88,88,88,88,88,88,100,88,100,100,88,100,88,88,88, - 88,88,88,88,88,88,88,88,88,88,88,88,218,88,218,88, - 218,88,218,88,218,240,59,92,104,122,153,153,218,218,88,218, - 218,127,127,218,143,153,236,143,153,143,143,236,143,207,207,218, - 127,207,143,236,236,143,236,143,143,127,207,143,207,143,127,143, - 143,143,143,218,236,143,218,236,236,143,236,143,207,143,207,207, - 143,207,143,207,143,207,143,207,143,207,143,207,236,143,143,143, - 143,143,143,143,236,143,236,236,143,143,143,143,236,143,143,143, - 236,236,143,207,143,236,143,143,143,143,236,143,143,143,143,143, - 143,143,143,143,236,143,143,143,236,143,236,153,236,236,143,236, - 143,236,236,134,236,236,236,143,143,143,153,143,236,143,236,236, - 236,143,119,236,143,236,236,143,236,236,236,236,143,143,159,151, - 73,48,46,44,94,0,162,162,73,233,222,130,31,31,233,222, - 222,130,31,113,65,50,162,50,183,168,249,249,249,31,31,233, - 206,206,233,233,249,206,183,162,0,122,73,216,216,216,220,93, - 138,138,216,216,220,93,11,219,0,94,0,50,216,41,62,167, - 62,237,62,167,103,31,167,62,222,0,78,122,104,253,177,24, - 223,24,35,209,35,241,241,241,22,35,94,94,183,50,61,22, - 59,35,35,35,209,75,209,59,35,35,24,190,0,227,227,226, - 59,200,59,200,59,35,35,35,47,59,59,224,38,212,183,0, - 104,183,126,75,163,163,203,163,95,163,75,22,22,209,203,183, - 0,95,92,0,122,42,50,212,50,37,22,22,163,37,246,129, - 0,162,94,24,97,35,97,24,178,177,20,223,111,200,111,97, - 226,94,183,122,172,91,75,75,75,61,59,61,200,200,224,75, - 75,172,203,162,221,95,241,200,111,163,61,97,75,75,75,111, - 75,61,59,129,122,187,215,200,163,95,111,97,97,61,97,111, - 111,111,111,163,142,122,94,212,47,50,163,111,163,111,97,61, - 163,111,111,187,163,59,0,0,0,47,50,163,91,37,37,61, - 50,50,50,187,50,42,142,94,122,0,47,187,163,111,187,163, - 111,200,241,187,163,111,50,95,94,122,0,142,187,50,163,163, - 163,163,91,183,50,187,50,91,50,78,0,0,97,126,91,187, - 91,91,187,50,187,187,187,50,187,212,0,0,0,187,94,166, - 59,95,7,67,235,49,141,7,141,7,141,235,49,49,7,141, - 67,67,7,7,141,235,67,7,141,7,99,141,7,235,235,141, - 67,141,67,49,235,235,235,235,7,67,141,67,49,67,67,141, - 67,7,49,49,67,67,139,7,67,7,67,49,7,67,141,67, - 88,88,88,88,88,100,88,100,88,100,169,100,100,100,88,100, - 88,100,88,88,88,88,88,88,88,88,88,88,88,88,88,88, - 88,88,88,88,218,153,47,104,241,91,153,218,218,88,218,88, - 218,127,218,127,143,143,134,236,236,236,218,143,127,218,127,127, - 143,127,127,143,143,143,143,143,218,143,127,143,143,207,143,207, - 207,207,207,143,143,143,236,143,143,207,143,207,143,207,143,143, - 207,143,207,143,207,127,127,143,143,143,236,236,143,143,143,143, - 143,89,143,143,143,143,143,143,143,236,236,143,143,207,143,143, - 207,143,143,207,143,207,143,143,143,143,143,143,207,143,207,143, - 143,143,143,143,143,143,143,89,143,143,143,143,143,143,143,143, - 236,143,143,143,143,143,143,236,236,236,236,236,143,236,236,236, - 143,236,143,143,236,236,143,236,143,143,143,127,143,236,159,133, - 222,135,190,226,183,0,162,227,84,130,84,84,154,84,222,233, - 154,168,177,206,220,94,162,94,122,222,62,31,168,206,206,233, - 62,62,62,167,41,249,227,0,221,0,168,216,62,237,167,62, - 62,62,62,167,167,216,11,187,0,50,0,50,216,237,237,62, - 237,62,167,41,62,167,167,62,222,0,94,0,97,168,168,253, - 177,177,177,253,84,178,84,24,24,226,215,78,0,40,46,24, - 24,24,35,24,24,209,24,59,24,46,24,177,0,183,219,223, - 209,64,35,35,35,35,47,35,35,35,142,59,79,212,183,0, - 104,241,203,203,203,203,163,75,22,75,241,75,203,226,163,122, - 0,95,104,162,50,94,75,22,209,22,209,203,203,37,94,222, - 0,122,215,104,200,200,111,34,135,35,24,135,24,200,59,37, - 226,246,183,122,48,91,75,75,200,200,200,241,75,75,200,224, - 75,48,241,122,122,111,200,75,200,111,200,75,75,109,61,59, - 111,163,59,48,0,183,212,95,97,37,224,61,97,97,97,97, - 224,61,97,50,223,0,219,215,226,187,111,111,224,75,97,200, - 111,37,111,50,183,241,0,0,0,35,50,163,187,37,61,37, - 75,61,37,50,163,162,142,239,122,0,47,50,187,163,187,91, - 35,35,35,163,187,126,187,163,94,122,0,47,61,163,91,187, - 26,187,187,163,187,91,50,183,95,162,0,0,95,239,50,183, - 166,126,111,126,187,187,187,187,50,187,122,0,0,126,141,111, - 47,40,7,7,67,67,67,67,235,49,7,235,67,49,141,67, - 7,141,235,7,141,7,141,7,141,7,235,141,67,49,7,7, - 7,235,7,141,8,67,141,67,235,235,49,7,141,235,7,67, - 67,67,235,235,7,67,141,7,141,7,141,67,49,49,7,67, - 88,100,88,100,88,88,100,100,88,100,88,100,88,100,100,88, - 100,88,100,100,100,100,100,88,169,88,169,88,188,88,169,169, - 88,169,218,88,218,153,59,92,203,162,153,153,218,88,218,88, - 88,127,127,127,207,143,143,143,143,143,127,218,127,143,143,218, - 127,127,127,127,207,207,207,127,127,207,207,143,143,218,143,143, - 143,143,207,127,207,143,207,143,143,143,143,207,143,143,207,127, - 127,143,207,143,143,143,207,207,236,143,143,143,143,207,143,207, - 143,143,89,143,207,143,143,236,143,143,236,143,207,143,207,143, - 143,207,143,207,143,143,143,207,207,143,89,143,207,143,143,207, - 143,207,143,143,236,143,143,143,89,143,207,143,207,236,143,143, - 143,236,143,143,143,143,143,143,143,143,143,236,143,143,143,236, - 143,236,236,143,143,236,143,143,89,143,236,143,143,236,159,38, - 251,129,48,135,212,162,42,200,14,84,168,84,209,14,24,84, - 24,84,168,222,84,50,122,212,94,168,233,233,168,206,14,233, - 31,31,233,233,249,249,215,0,0,122,168,216,62,62,62,249, - 123,62,167,167,249,138,216,42,0,183,221,227,216,216,216,237, - 237,216,237,237,167,62,31,62,168,122,42,221,40,222,222,177, - 222,168,222,222,168,177,177,177,84,168,37,78,0,203,226,177, - 223,226,24,226,24,226,223,35,226,24,142,48,0,50,219,190, - 35,47,47,64,47,35,35,44,142,35,24,46,38,212,94,0, - 46,14,209,209,241,241,164,75,203,163,200,203,37,226,40,162, - 162,75,226,183,164,73,164,14,14,241,22,22,163,212,94,129, - 0,162,227,226,241,209,111,223,253,50,200,135,34,200,35,61, - 226,50,183,122,48,91,75,22,139,22,75,75,75,139,241,200, - 75,135,104,122,0,95,241,22,200,97,75,61,241,200,111,200, - 224,163,46,223,0,215,239,200,111,97,224,97,97,111,75,97, - 224,97,97,163,190,122,42,227,142,61,163,97,111,75,61,75, - 111,61,111,163,187,203,0,0,0,47,163,37,111,37,61,61, - 22,37,61,187,61,162,142,94,78,162,46,187,163,187,126,97, - 35,111,35,187,50,111,187,203,183,122,0,47,94,183,91,239, - 163,91,50,91,183,183,61,50,75,78,0,0,95,126,163,91, - 187,187,111,91,163,91,183,187,50,187,162,0,0,111,224,224, - 64,200,235,141,7,141,7,141,7,99,141,7,49,141,7,141, - 145,7,235,235,67,7,141,7,141,7,67,7,49,7,235,141, - 235,235,67,7,8,141,7,7,141,7,141,235,7,67,99,141, - 7,141,7,141,67,49,49,67,67,7,99,7,141,235,7,67, - 88,88,88,100,88,100,88,100,88,100,100,88,100,88,100,100, - 88,100,100,88,100,169,169,169,169,169,169,88,100,169,88,169, - 218,169,100,188,88,240,200,104,241,26,218,218,88,188,88,127, - 218,218,127,127,143,207,143,207,143,207,218,143,127,127,88,127, - 127,127,218,127,127,127,127,143,143,127,127,207,207,207,143,207, - 143,207,143,143,143,207,143,207,127,207,143,143,143,207,143,143, - 143,127,143,143,207,218,127,143,143,207,143,207,143,143,207,143, - 207,143,207,143,143,143,218,143,143,143,207,143,143,207,143,207, - 143,143,143,127,143,207,143,207,143,143,143,143,143,207,143,207, - 143,143,207,207,143,143,207,143,143,143,207,143,143,143,207,143, - 143,143,236,143,207,143,143,143,127,143,236,143,236,236,236,143, - 236,143,143,143,143,143,89,143,143,143,236,127,143,143,159,133, - 228,228,129,129,22,122,162,104,206,130,73,84,130,84,24,73, - 84,24,84,130,222,40,0,162,183,92,206,168,233,206,164,130, - 73,22,14,137,31,62,166,122,221,221,190,249,233,249,249,62, - 233,249,62,249,249,93,175,59,0,50,0,164,216,62,41,62, - 41,237,237,62,123,31,222,249,222,0,94,122,95,31,222,168, - 253,177,168,222,177,177,84,226,84,222,203,42,122,104,226,84, - 178,142,142,24,223,209,223,35,226,24,226,48,0,166,26,223, - 35,47,35,46,35,47,47,24,47,44,226,35,79,212,183,0, - 47,22,241,209,209,209,84,209,92,209,241,46,14,226,203,56, - 0,97,226,50,137,48,22,22,164,22,203,97,22,50,50,129, - 0,122,183,226,163,35,97,223,222,223,253,135,24,200,59,200, - 223,94,187,122,48,111,241,35,241,35,139,22,209,241,59,75, - 75,48,104,0,56,111,35,241,75,75,241,200,22,200,200,75, - 241,75,46,172,122,183,40,200,37,97,111,61,75,97,61,75, - 111,111,61,111,190,162,78,215,223,187,75,75,75,111,75,111, - 97,163,163,163,163,104,0,221,0,212,50,187,163,111,22,163, - 163,61,163,50,187,162,142,212,0,0,47,187,163,111,187,35, - 111,111,35,187,227,187,163,95,212,162,0,34,50,50,183,91, - 163,187,187,183,91,50,187,26,163,162,0,0,95,50,183,187, - 183,91,163,187,183,187,42,91,26,163,122,0,0,254,224,47, - 47,254,141,7,99,7,99,7,49,67,235,7,141,235,7,7, - 145,7,141,67,67,99,7,99,7,141,7,141,235,141,49,141, - 7,145,67,7,7,235,49,141,7,235,7,67,141,49,7,235, - 7,141,7,141,49,67,235,235,141,67,141,67,7,141,235,49, - 88,100,88,100,100,100,88,100,88,100,100,88,100,100,100,88, - 100,88,100,169,88,88,100,88,100,88,169,169,88,88,100,100, - 88,188,88,88,169,153,59,92,241,221,218,240,88,188,88,169, - 88,88,88,127,127,143,127,143,143,143,127,127,218,127,218,88, - 127,88,127,127,127,127,127,127,127,218,143,143,143,127,207,143, - 207,207,207,143,143,207,127,143,218,207,218,207,143,207,207,207, - 207,127,127,127,143,207,143,127,143,143,207,143,143,143,143,207, - 143,143,207,143,207,143,207,143,207,143,143,207,143,143,127,127, - 207,207,143,207,143,143,143,207,143,207,143,207,143,143,143,207, - 143,143,143,207,143,143,143,207,143,143,143,207,143,143,143,207, - 143,207,143,143,143,207,236,236,143,143,236,143,143,143,236,143, - 143,236,236,236,143,143,89,143,89,143,143,89,143,236,159,55, - 129,129,129,129,212,162,50,166,84,84,84,14,130,130,84,130, - 84,84,84,84,233,40,0,162,94,73,14,168,14,206,37,73, - 14,50,22,209,31,233,227,0,0,78,137,249,206,14,73,206, - 31,233,206,31,123,93,233,104,0,227,0,40,216,62,31,167, - 249,167,237,233,154,168,84,249,222,0,183,162,163,168,48,253, - 177,226,178,177,84,177,226,142,46,177,212,94,122,200,226,178, - 24,24,24,24,223,24,24,35,226,209,223,177,0,212,187,223, - 46,35,35,47,35,35,35,35,59,47,46,47,201,212,122,162, - 104,164,241,203,203,241,92,209,92,84,24,241,209,226,40,183, - 0,95,92,162,22,50,50,97,241,163,75,163,163,163,22,129, - 0,0,183,223,37,24,75,223,135,253,135,223,200,200,46,75, - 223,50,187,221,253,91,200,241,200,241,241,241,35,200,35,61, - 46,135,104,122,221,224,35,241,75,75,75,59,22,75,75,224, - 200,22,35,48,122,183,40,200,75,75,111,97,61,224,75,111, - 224,75,75,37,20,162,42,183,223,163,61,111,111,75,75,75, - 111,111,111,111,163,46,0,122,0,47,50,187,163,37,61,37, - 61,37,61,163,163,50,142,50,122,221,104,26,163,187,224,209, - 111,97,35,163,187,187,50,95,94,78,0,142,91,187,187,183, - 163,111,163,187,187,163,187,50,111,122,0,0,95,163,187,163, - 26,111,91,163,163,187,183,187,50,95,162,0,0,224,224,64, - 47,47,7,67,141,7,235,141,7,141,145,7,141,235,7,141, - 235,235,141,7,141,7,49,235,7,141,7,99,7,141,67,7, - 145,7,141,235,49,235,7,141,7,145,235,141,7,141,67,7, - 99,7,67,7,67,141,67,235,67,141,7,141,49,67,141,67, - 88,88,88,88,88,100,88,100,100,100,100,100,88,100,100,100, - 100,100,100,100,100,100,100,100,169,100,88,169,100,169,88,88, - 169,100,88,188,88,184,200,241,241,26,218,218,127,88,127,127, - 88,127,127,88,127,127,127,207,127,127,127,88,88,127,127,127, - 88,127,127,88,88,88,218,127,127,127,218,127,207,143,143,143, - 143,143,127,127,127,127,143,143,127,143,143,207,143,143,143,127, - 127,127,127,143,127,127,127,218,143,207,143,207,143,207,207,143, - 207,143,143,207,143,207,143,207,143,207,143,207,143,207,143,143, - 127,207,143,127,207,143,207,143,127,207,143,127,143,207,143,143, - 207,143,207,143,143,207,143,143,207,143,143,207,143,207,143,143, - 127,207,143,207,143,143,143,127,143,143,143,236,89,143,143,236, - 236,143,143,143,127,143,143,89,143,127,143,143,236,143,236,133, - 228,129,48,129,203,122,40,56,10,14,73,84,14,14,84,84, - 73,73,84,84,233,203,0,183,183,73,130,168,168,130,22,22, - 14,22,209,209,249,233,97,162,122,183,73,249,233,73,73,79, - 90,249,249,233,62,93,233,104,0,50,0,212,62,62,249,233, - 31,31,31,168,168,84,84,31,222,0,162,0,200,222,84,223, - 223,223,226,178,223,223,35,24,209,48,163,94,0,104,177,226, - 35,46,46,24,209,223,226,64,24,35,223,48,0,227,183,142, - 35,59,47,64,59,35,47,35,44,35,44,241,38,50,183,0, - 142,164,37,37,200,203,14,14,241,14,92,241,241,24,212,162, - 0,97,75,37,50,75,22,14,22,209,14,92,22,22,22,173, - 0,162,94,142,37,46,109,223,222,163,241,200,59,35,200,241, - 223,94,227,122,190,61,22,241,59,22,59,22,59,241,224,200, - 111,135,104,0,0,95,35,75,22,75,75,75,209,139,22,75, - 75,75,200,135,0,78,126,241,61,75,97,97,75,61,75,111, - 111,111,111,163,172,221,221,227,104,111,97,224,61,75,111,61, - 97,111,97,111,111,142,0,0,0,142,163,50,91,111,37,61, - 22,61,111,187,187,26,46,215,42,0,47,50,187,187,35,35, - 209,35,59,35,50,163,187,75,215,122,221,47,94,91,163,91, - 91,91,163,163,163,187,163,126,163,0,0,0,59,50,163,187, - 163,187,26,91,187,187,163,187,187,163,183,0,0,141,59,99, - 47,254,235,7,235,235,235,141,7,235,150,235,49,235,67,49, - 7,235,8,141,235,141,235,49,235,235,141,141,7,141,141,235, - 235,141,7,67,141,49,235,235,235,8,141,235,49,235,7,141, - 235,235,235,150,7,7,141,8,7,243,7,141,7,67,7,8, - 88,100,100,197,100,102,100,100,100,100,100,100,100,100,100,100, - 100,100,100,100,100,100,100,100,169,100,100,169,100,169,169,100, - 88,169,100,88,88,153,59,104,164,56,218,218,188,169,88,188, - 88,88,127,88,218,127,127,127,127,127,207,207,127,88,127,127, - 127,88,127,143,207,127,127,218,127,127,143,127,207,127,127,127, - 218,143,143,143,218,127,127,218,207,143,207,143,127,127,143,143, - 218,207,127,127,127,127,127,127,127,127,127,143,207,143,127,143, - 127,127,143,207,143,143,207,143,143,143,143,207,143,143,207,143, - 127,127,143,127,143,207,143,143,143,143,207,143,207,143,127,143, - 143,143,127,207,127,143,207,143,127,143,207,143,143,207,143,143, - 127,143,143,143,143,207,236,143,143,207,143,143,143,143,143,143, - 143,143,127,236,143,127,143,143,89,143,127,143,143,143,58,55, - 173,129,253,129,212,162,40,227,209,14,233,31,130,206,168,14, - 73,14,73,168,222,241,0,50,227,92,233,130,233,84,73,84, - 206,168,209,92,233,123,241,0,0,227,14,206,73,73,206,113, - 168,233,233,233,220,216,62,241,0,227,0,203,41,62,249,249, - 249,233,233,168,168,84,130,249,222,122,78,221,203,253,84,24, - 178,226,24,177,223,223,44,24,35,222,40,183,122,95,84,226, - 24,46,24,35,24,24,223,35,24,209,223,48,0,126,212,223, - 35,59,200,59,59,200,59,35,47,35,46,46,38,50,227,0, - 104,46,40,37,14,46,75,22,111,163,203,203,241,92,97,221, - 221,95,137,79,78,14,22,241,22,14,22,164,75,37,22,228, - 122,221,183,142,164,24,97,253,129,59,24,64,35,35,46,46, - 190,94,166,122,172,97,241,75,59,22,59,209,75,200,200,200, - 75,172,200,0,0,224,35,22,139,61,224,75,22,209,224,139, - 75,22,47,172,162,183,126,59,22,75,61,224,97,50,163,22, - 111,75,109,75,46,122,78,227,142,61,111,224,111,224,75,224, - 61,97,61,111,111,46,122,122,0,35,126,187,163,37,61,97, - 61,22,61,163,111,50,35,215,42,162,46,187,163,26,109,187, - 91,109,24,111,187,111,163,163,94,122,0,47,50,26,187,187, - 187,187,91,91,50,187,187,126,163,78,0,0,224,187,91,187, - 187,111,187,187,187,187,187,50,26,163,42,0,0,254,99,59, - 47,47,141,49,141,141,7,235,141,235,12,7,235,141,150,7, - 141,235,8,7,141,67,235,141,7,141,141,7,141,8,7,141, - 7,141,141,8,141,8,8,67,67,141,8,141,141,7,141,145, - 67,141,141,8,141,7,235,67,141,141,7,141,235,141,235,141, - 88,100,100,100,100,100,100,100,100,100,102,74,100,100,100,100, - 100,100,100,100,100,169,100,100,100,100,100,100,169,100,169,169, - 169,100,169,169,188,153,95,241,203,219,188,153,169,88,169,169, - 188,188,127,127,169,88,88,127,127,88,127,169,88,207,127,127, - 127,127,127,169,169,88,169,88,127,127,127,127,127,143,127,143, - 127,127,127,127,127,127,143,127,127,127,127,127,207,143,207,127, - 143,127,127,127,127,127,127,127,127,143,143,207,143,143,127,127, - 143,127,143,143,207,127,143,127,127,207,143,207,127,127,127,143, - 127,143,127,207,127,143,127,127,127,127,127,127,127,127,127,127, - 127,127,127,143,143,127,127,127,143,127,143,127,127,127,143,207, - 143,207,143,207,143,143,143,143,143,143,143,143,89,143,143,127, - 143,143,236,143,143,143,127,143,127,236,127,127,127,143,236,38, - 228,228,48,168,203,0,163,94,14,233,222,73,73,14,92,84, - 92,73,14,14,177,104,0,246,126,22,223,92,92,177,73,73, - 73,104,92,92,73,14,47,122,42,163,22,137,137,137,177,190, - 177,73,190,190,137,73,14,47,0,183,162,203,190,92,104,92, - 92,226,190,73,92,226,226,14,190,0,94,78,212,212,241,203, - 203,37,203,203,164,164,164,203,37,223,75,94,0,47,164,104, - 104,104,92,104,164,241,241,241,241,164,24,177,0,239,95,226, - 223,177,177,190,48,190,177,190,190,190,226,92,55,212,187,0, - 104,22,241,200,241,241,241,46,104,95,126,163,203,24,40,78, - 0,95,92,226,59,24,226,24,104,104,104,241,104,241,37,129, - 0,0,94,104,241,241,241,241,46,203,241,241,241,46,75,163, - 177,50,227,42,190,61,241,241,46,241,241,75,241,241,241,75, - 203,172,241,122,221,111,75,203,241,241,97,75,75,200,22,75, - 200,163,241,135,122,42,40,200,59,59,47,75,163,75,75,40, - 163,50,162,162,0,0,162,183,241,50,163,163,163,97,22,75, - 75,163,95,239,163,46,0,0,0,142,50,50,187,50,212,163, - 163,50,212,187,50,162,46,50,183,0,47,162,183,50,162,183, - 183,187,97,50,183,94,42,163,183,122,122,142,78,50,50,50, - 50,50,227,183,187,50,187,50,163,78,0,0,47,50,94,42, - 50,26,50,50,162,91,50,42,183,163,183,0,0,99,64,47, - 99,47,7,49,7,235,141,49,141,67,7,141,235,141,150,7, - 141,235,141,141,7,141,235,141,7,67,8,7,8,7,141,7, - 141,67,8,243,7,141,7,141,7,8,8,8,141,141,141,7, - 67,7,8,141,243,7,8,235,7,141,49,8,235,141,49,49, - 100,100,88,100,100,197,100,102,100,100,102,100,102,100,102,100, - 100,74,100,74,100,100,100,100,100,100,100,100,100,100,100,100, - 169,169,169,169,88,153,99,164,203,122,169,153,169,169,169,169, - 169,169,169,88,127,127,127,218,207,127,127,143,127,88,127,127, - 127,88,127,127,169,127,127,88,127,127,127,127,127,143,127,218, - 127,218,127,127,127,127,127,127,127,127,143,127,127,143,127,127, - 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, - 127,127,127,127,127,127,207,127,127,127,127,127,127,127,127,127, - 127,143,127,127,127,127,143,127,127,143,127,127,127,127,127,127, - 127,218,127,127,207,127,127,127,127,127,127,127,143,127,127,127, - 207,143,207,143,207,143,143,127,207,143,127,143,143,127,127,143, - 127,127,143,127,127,127,143,127,127,143,127,143,127,143,236,133, - 251,229,151,129,37,162,203,215,92,249,31,249,31,73,233,206, - 168,233,233,233,31,241,0,221,227,92,233,206,168,130,168,233, - 233,206,233,249,62,73,104,162,227,239,37,233,233,249,233,233, - 233,233,249,220,237,216,137,40,162,212,221,203,62,237,62,62, - 167,249,167,249,123,123,249,123,222,122,162,183,94,222,31,222, - 222,168,168,168,168,168,177,84,177,177,241,221,162,40,164,24, - 209,209,14,24,92,24,24,226,35,24,177,190,122,187,203,226, - 241,241,46,209,24,226,24,209,24,226,24,241,173,246,221,0, - 104,164,241,203,241,14,14,241,14,167,31,173,37,142,203,183, - 0,95,92,138,142,164,95,200,200,35,24,46,24,209,37,129, - 0,122,227,241,44,24,47,35,46,35,226,226,22,46,46,163, - 223,50,183,122,190,35,223,24,142,46,75,200,75,200,46,200, - 241,190,40,122,221,111,46,35,75,75,75,200,22,200,200,200, - 200,203,200,135,221,94,94,246,94,221,221,221,0,0,0,0, - 162,162,162,162,215,162,162,221,40,183,163,163,163,95,163,95, - 75,163,95,239,163,241,0,122,0,47,212,163,97,239,183,126, - 40,126,163,126,111,50,47,50,183,221,104,162,166,187,50,50, - 50,50,183,50,50,183,94,40,183,0,122,142,94,166,166,166, - 187,183,50,183,227,50,187,183,163,78,0,0,59,94,94,42, - 50,183,42,183,94,78,94,50,94,163,183,0,0,47,64,47, - 47,47,141,235,141,235,7,141,145,141,7,49,141,7,243,235, - 8,7,8,7,141,7,235,7,7,141,67,67,8,7,150,7, - 8,7,8,8,8,8,7,243,235,67,7,8,8,8,7,141, - 7,8,8,8,8,141,141,7,8,49,141,141,235,145,145,145, - 100,102,100,100,102,100,102,100,102,100,100,102,100,100,100,100, - 102,100,102,100,100,100,100,74,100,100,100,100,169,100,169,169, - 100,100,100,100,39,153,95,104,241,42,100,207,88,88,100,100, - 169,88,88,39,169,169,169,169,100,88,127,88,127,127,218,127, - 127,39,127,169,169,169,169,39,169,88,127,127,127,188,127,169, - 127,127,88,127,127,127,127,218,127,143,127,143,127,127,127,218, - 127,127,127,127,127,127,169,127,127,127,127,127,127,127,127,127, - 127,127,127,127,127,127,127,127,127,127,88,127,88,127,88,88, - 127,169,127,127,127,127,127,143,127,127,88,127,127,127,127,127, - 127,127,207,143,127,127,127,127,127,127,127,127,127,127,127,127, - 127,127,127,127,127,127,127,127,127,127,127,127,127,143,127,143, - 127,143,143,143,127,143,127,127,127,236,127,127,143,127,143,133, - 251,228,228,228,203,0,163,42,14,73,233,249,233,113,233,233, - 31,130,222,130,222,104,0,162,126,164,206,31,84,168,168,130, - 73,137,168,168,137,73,241,0,162,95,203,206,14,206,206,206, - 206,206,206,31,123,62,249,95,162,183,221,104,206,233,233,24, - 168,253,154,84,84,84,168,31,253,0,122,94,94,226,84,209, - 209,223,24,24,209,209,209,209,209,48,203,183,78,95,46,24, - 35,46,46,209,209,46,24,209,46,24,177,223,0,227,40,223, - 241,75,111,75,200,22,241,22,200,241,200,200,55,212,94,0, - 241,209,164,212,212,24,164,14,22,216,73,138,206,226,203,162, - 0,40,203,246,166,75,46,241,75,75,95,59,59,163,241,129, - 0,122,221,241,29,44,24,142,24,24,24,24,46,200,35,46, - 226,212,187,122,226,35,24,44,223,44,163,163,40,163,224,200, - 35,226,203,0,0,95,142,24,163,75,75,75,75,200,75,75, - 200,200,104,172,0,246,221,162,0,0,162,183,162,162,162,162, - 221,162,162,50,223,162,122,183,203,126,111,224,109,111,111,111, - 109,109,109,109,97,200,162,94,0,104,111,61,163,187,187,163, - 187,254,111,109,111,239,46,239,122,0,47,61,187,109,187,109, - 126,187,187,187,187,111,187,163,50,122,122,46,126,187,187,187, - 187,187,227,91,26,183,187,50,203,162,122,0,47,163,111,187, - 187,187,50,91,183,91,187,187,187,212,26,122,0,99,47,64, - 64,47,8,235,141,141,235,7,235,141,235,7,141,67,7,235, - 141,235,141,67,7,141,235,67,235,150,7,8,141,7,141,235, - 235,7,8,8,8,141,7,141,7,67,7,8,67,8,49,243, - 7,141,7,8,7,8,7,141,7,8,8,8,67,145,214,158, - 100,102,100,102,100,102,100,100,102,102,100,100,102,102,102,100, - 100,100,100,102,100,102,100,74,100,33,71,100,100,100,100,88, - 100,100,169,100,169,153,224,203,203,221,169,236,169,169,169,100, - 169,169,100,88,127,127,100,88,169,88,207,127,127,127,127,127, - 143,39,127,127,140,169,169,169,127,169,169,88,169,88,127,127, - 169,39,88,127,88,127,88,127,127,127,127,127,88,127,88,88, - 88,88,88,88,169,88,169,169,169,88,39,127,169,169,88,169, - 88,127,88,127,127,169,88,169,88,127,88,127,169,127,39,169, - 88,169,169,169,127,127,127,127,127,39,169,169,127,88,127,127, - 169,127,127,127,127,127,127,127,88,127,127,127,127,127,127,127, - 127,143,207,143,127,143,207,127,127,143,127,127,127,127,127,127, - 127,127,127,127,143,127,89,127,127,143,127,127,127,143,236,133, - 251,151,129,38,164,221,203,42,14,62,233,62,222,206,233,130, - 130,130,233,130,222,164,0,50,183,209,31,31,84,233,233,73, - 73,249,14,73,233,73,200,221,162,97,203,73,164,14,14,73, - 14,206,233,137,233,62,62,212,0,78,162,104,73,73,14,22, - 253,177,168,84,177,24,84,222,177,0,162,227,94,226,24,35, - 200,46,35,209,46,46,241,46,22,48,203,0,162,40,241,35, - 241,241,22,241,209,209,46,35,35,46,177,223,0,166,95,226, - 241,224,59,200,59,35,59,209,75,209,200,200,228,227,42,0, - 241,14,37,183,164,14,46,14,22,31,164,50,22,223,203,122, - 0,219,251,55,47,203,24,24,24,46,241,95,95,212,37,251, - 0,221,215,203,223,35,47,47,35,47,35,35,75,241,35,104, - 104,212,78,0,241,200,200,59,163,97,221,0,0,162,212,97, - 200,104,163,0,162,163,142,35,111,75,61,75,163,75,75,109, - 75,200,203,104,0,221,221,221,0,0,162,162,0,221,221,0, - 94,94,126,97,104,122,183,183,104,111,111,111,97,109,111,75, - 111,163,162,50,183,162,162,162,0,40,239,126,163,163,187,37, - 111,111,111,111,111,50,200,212,122,0,104,126,111,111,111,187, - 187,50,183,183,91,126,126,40,187,122,221,47,50,187,187,187, - 91,183,227,50,187,50,187,187,163,162,0,0,59,50,187,187, - 187,187,183,50,183,50,50,26,50,212,183,0,0,99,47,64, - 47,44,7,141,7,141,235,235,141,7,141,49,243,235,67,7, - 141,7,141,67,141,67,235,67,7,141,235,8,235,8,7,141, - 235,141,7,141,8,7,141,235,141,235,141,7,141,8,7,141, - 235,141,7,8,141,8,7,141,7,49,7,141,67,67,235,235, - 102,100,102,100,102,100,102,102,100,100,102,102,100,100,100,102, - 102,102,102,100,74,100,102,74,74,100,100,102,140,102,74,100, - 140,169,74,169,169,218,104,104,241,122,140,143,169,169,169,140, - 74,74,140,140,74,100,140,140,140,140,74,74,100,100,74,100, - 74,74,140,140,169,140,140,140,74,140,140,39,39,127,169,140, - 88,169,127,169,39,169,127,88,169,88,169,88,127,169,127,127, - 127,169,140,169,140,169,140,169,140,127,169,169,169,88,140,169, - 169,169,140,100,169,169,127,39,127,169,127,140,127,169,127,140, - 127,169,169,127,39,39,169,39,88,127,127,127,88,39,88,169, - 127,127,39,39,127,127,127,169,127,127,88,88,127,88,127,127, - 127,127,127,127,39,127,127,127,127,127,127,127,143,127,127,127, - 143,127,127,127,127,127,127,127,127,127,127,127,127,127,143,133, - 228,129,173,33,241,162,203,215,73,249,168,249,233,206,168,73, - 73,84,233,233,123,241,0,212,212,226,113,130,209,73,168,14, - 84,206,209,73,130,168,46,122,212,40,241,206,14,14,10,14, - 14,14,206,206,62,249,249,95,0,94,183,104,206,206,14,209, - 168,84,168,84,84,84,130,222,222,0,183,50,212,84,84,24, - 84,24,84,84,24,209,209,209,24,177,104,221,42,40,24,209, - 35,35,241,209,209,241,35,35,209,209,177,48,0,94,95,223, - 22,75,75,59,75,59,75,59,59,59,241,241,129,212,183,0, - 104,226,162,50,200,22,14,14,212,212,22,212,246,177,203,78, - 0,40,190,138,26,46,24,209,209,24,84,75,200,241,104,129, - 0,78,183,241,34,64,35,35,35,35,35,24,61,75,200,35, - 24,212,78,0,104,40,163,94,162,0,0,221,162,221,212,212, - 94,212,246,162,162,111,241,59,111,97,163,97,97,61,75,109, - 75,97,212,212,0,0,221,162,221,0,0,0,0,94,212,162, - 221,221,183,94,94,122,162,94,97,111,111,111,111,109,75,111, - 224,166,50,0,0,221,221,0,0,212,126,111,187,187,163,187, - 163,141,111,109,111,166,241,227,122,122,104,111,187,109,187,163, - 187,187,187,50,187,111,187,50,40,42,122,104,126,187,187,187, - 187,163,187,187,187,166,187,183,163,183,0,0,47,126,187,111, - 187,50,91,42,91,42,91,187,42,163,42,122,0,47,47,64, - 64,47,235,141,235,235,7,235,12,235,17,7,141,235,7,67, - 67,235,8,141,7,141,235,67,7,141,49,141,49,150,235,8, - 7,8,7,8,141,49,8,7,141,7,8,235,8,141,49,8, - 235,141,235,8,49,243,67,8,235,141,235,8,67,243,49,8, - 100,102,100,102,102,100,100,102,102,33,102,102,102,102,100,100, - 100,100,102,102,74,33,71,74,102,74,33,74,100,74,74,100, - 74,100,100,100,100,218,59,104,203,162,140,207,140,140,33,74, - 74,33,74,169,140,169,140,33,74,169,140,140,140,169,140,140, - 169,74,74,74,140,33,74,169,33,140,140,140,140,140,169,127, - 140,140,169,169,127,74,140,127,39,127,127,127,127,140,169,140, - 39,169,169,33,114,88,39,127,133,74,140,33,140,169,140,127, - 140,133,102,140,143,143,127,127,143,143,140,102,140,127,133,102, - 74,127,140,127,88,127,127,127,127,127,169,127,140,127,127,127, - 169,88,169,88,169,127,127,169,169,127,39,169,127,169,127,39, - 127,169,127,127,127,127,127,127,127,127,127,127,127,127,127,127, - 127,127,127,127,127,127,127,127,127,127,127,127,127,127,143,133, - 228,229,129,38,104,0,203,183,22,233,233,233,130,31,233,233, - 233,130,233,31,222,241,0,163,212,164,73,130,73,168,31,206, - 233,130,130,130,31,73,241,122,50,40,50,233,233,137,233,233, - 233,233,123,62,237,41,31,40,0,212,94,200,233,31,31,31, - 123,31,123,31,233,222,31,123,177,0,94,183,212,222,31,222, - 222,168,222,233,168,130,168,168,222,177,226,227,94,95,241,178, - 209,209,209,209,24,24,84,223,84,84,226,223,0,50,95,226, - 209,209,35,209,24,24,24,209,209,209,209,24,135,212,97,0, - 241,14,241,241,209,241,209,209,164,203,241,241,241,223,241,94, - 221,97,203,104,75,24,24,226,24,24,226,35,35,24,241,48, - 0,162,183,241,29,24,64,35,44,24,24,64,241,59,35,142, - 241,212,183,162,203,94,94,221,162,94,50,183,50,221,212,40, - 162,246,94,221,221,126,46,35,61,75,97,22,59,75,224,75, - 224,37,94,215,0,221,94,162,221,0,0,94,221,94,164,40, - 212,221,221,0,94,162,183,227,95,111,224,109,111,75,139,109, - 75,182,187,94,215,0,0,0,0,0,0,78,187,187,163,111, - 111,111,111,111,111,126,46,50,219,221,200,111,187,111,111,111, - 163,163,26,187,187,163,111,126,166,42,122,47,50,111,111,187, - 26,111,187,61,183,50,187,183,163,162,122,0,47,163,91,91, - 187,187,187,50,50,187,50,187,50,163,187,0,0,64,44,47, - 142,47,141,7,141,145,141,235,8,235,8,67,67,235,235,141, - 7,49,8,67,141,7,235,141,7,141,8,141,7,141,7,254, - 49,141,7,141,67,141,141,7,182,7,243,7,141,141,7,243, - 7,141,7,141,7,141,67,8,7,141,7,8,67,8,49,182, - 102,100,100,102,100,102,102,102,74,102,100,102,100,102,102,102, - 102,74,102,74,74,102,100,102,74,74,71,33,74,102,74,33, - 169,102,74,100,188,153,95,212,40,0,74,127,169,74,140,140, - 140,71,33,74,140,74,140,140,140,140,169,140,140,140,140,33, - 140,140,169,140,74,140,140,140,140,74,127,38,140,33,74,74, - 140,33,169,140,133,133,151,25,127,140,127,127,127,169,71,33, - 74,169,140,114,33,39,39,38,15,71,133,244,33,140,140,38, - 151,15,133,159,127,102,71,119,186,34,172,15,38,74,15,245, - 25,133,169,140,127,127,88,140,71,169,127,100,127,140,169,140, - 39,127,127,39,127,207,143,143,127,169,169,169,127,127,169,127, - 140,127,140,127,39,39,39,127,39,39,127,39,127,39,39,127, - 127,127,127,127,127,127,127,127,127,127,127,127,127,127,207,38, - 129,228,173,197,241,0,22,94,215,122,215,221,221,0,215,215, - 215,221,221,162,162,212,162,163,94,183,221,246,215,221,221,221, - 221,94,221,221,0,162,40,122,126,94,122,40,104,40,40,104, - 203,203,203,40,212,246,162,212,0,166,221,221,246,94,215,227, - 50,163,239,227,215,212,94,162,94,162,227,50,0,221,56,122, - 183,94,183,221,215,215,221,221,0,94,75,40,94,221,246,215, - 246,94,212,163,40,212,94,162,221,221,94,241,0,95,239,212, - 183,94,42,94,42,50,212,212,227,215,215,221,241,212,97,0, - 221,221,221,94,221,221,221,215,50,94,50,94,246,221,40,183, - 94,94,0,246,0,221,221,162,221,221,162,162,221,221,162,37, - 162,94,162,78,162,0,183,162,78,78,183,221,162,162,221,162, - 246,50,94,56,221,0,162,0,221,221,221,162,0,0,0,162, - 0,0,221,122,0,221,122,221,183,78,42,162,42,42,162,42, - 162,0,0,162,0,0,0,0,0,0,0,212,162,246,164,164, - 212,94,0,162,215,221,162,162,221,162,162,162,42,162,162,50, - 50,94,221,221,221,246,221,0,0,221,221,0,162,162,78,162, - 162,122,122,122,162,0,94,183,183,0,215,162,162,78,78,42, - 162,162,162,162,162,122,0,162,94,183,162,94,0,122,122,78, - 162,162,221,0,162,122,162,162,221,183,187,0,227,0,0,0, - 162,162,162,122,0,0,0,162,0,221,50,183,0,64,44,44, - 64,44,67,235,7,141,235,67,7,235,7,141,235,7,235,141, - 235,7,141,8,67,141,67,49,182,7,67,49,67,67,243,235, - 141,49,67,235,12,8,141,150,49,150,7,8,235,26,243,67, - 12,235,150,7,8,235,12,243,67,150,7,150,7,141,235,243, - 102,102,33,102,102,197,102,102,102,102,102,102,102,102,74,102, - 102,102,102,102,102,102,74,102,102,74,102,71,100,102,74,74, - 140,102,74,88,127,218,59,203,40,0,102,207,169,100,74,74, - 140,140,140,74,140,74,140,140,74,74,33,74,74,169,39,140, - 140,33,140,140,169,140,33,140,169,74,74,38,144,71,74,33, - 144,140,38,133,151,15,248,127,140,74,127,127,140,127,127,140, - 39,169,33,39,140,169,127,140,151,15,133,127,143,236,143,127, - 71,15,95,96,235,67,7,235,56,95,166,141,44,192,192,122, - 171,141,15,74,127,127,169,102,38,244,236,169,88,169,127,127, - 140,169,127,127,74,133,217,188,207,169,127,140,169,127,140,127, - 169,127,39,127,39,127,140,127,39,127,140,127,39,39,169,169, - 39,39,39,127,127,127,127,127,127,127,88,127,88,127,143,133, - 173,151,129,33,104,0,212,183,20,172,172,172,142,104,219,172, - 172,29,142,29,226,246,183,163,183,29,172,142,142,29,142,162, - 20,172,172,172,15,129,212,94,126,40,87,142,172,29,172,172, - 162,18,173,15,172,172,229,212,0,239,162,47,15,15,172,172, - 29,40,47,15,172,29,142,172,47,0,40,162,166,172,34,29, - 172,29,142,227,20,172,29,142,29,47,162,40,183,0,29,29, - 172,142,47,47,183,172,142,34,29,142,142,0,0,163,50,47, - 15,20,15,15,15,95,95,29,142,142,142,142,56,221,200,162, - 95,142,142,44,142,34,47,215,34,142,142,142,142,47,162,227, - 212,162,20,159,173,192,172,15,183,47,47,47,47,47,142,166, - 122,183,94,95,142,47,47,47,47,40,95,142,47,142,142,142, - 95,221,215,221,78,212,50,221,221,221,221,221,0,0,0,0, - 0,0,0,0,221,0,227,227,95,40,95,47,162,59,200,47, - 95,227,221,0,162,0,0,0,0,0,0,40,212,246,164,164, - 104,212,221,162,162,221,221,221,221,95,95,95,40,239,78,40, - 40,221,0,0,0,221,221,0,0,162,212,94,0,0,122,78, - 122,95,95,166,166,227,221,0,183,0,122,183,183,183,221,183, - 56,162,183,183,183,183,215,183,162,183,183,0,42,183,162,183, - 183,162,122,183,56,183,183,56,162,162,183,0,0,122,56,221, - 56,183,0,0,78,183,122,122,183,0,78,183,0,47,64,47, - 44,47,235,141,235,8,199,141,235,141,235,141,7,141,235,141, - 235,141,7,141,8,7,67,49,243,141,141,67,141,7,17,7, - 141,7,141,7,243,8,7,132,235,141,49,141,235,8,8,67, - 12,7,141,49,141,7,150,141,67,150,235,141,49,8,7,150, - 100,102,102,100,102,102,102,102,102,102,102,102,102,102,102,102, - 100,102,102,100,102,102,102,100,102,102,102,74,74,33,71,100, - 74,74,100,100,100,207,95,37,203,0,102,207,33,140,74,33, - 71,33,74,74,74,33,74,33,140,140,140,169,127,169,127,88, - 169,39,74,74,74,74,144,33,140,140,144,133,102,74,140,169, - 169,169,244,133,15,47,44,248,33,140,102,127,127,169,169,127, - 169,39,127,236,143,143,236,143,140,245,102,159,127,71,71,184, - 186,44,239,122,122,8,141,56,221,95,95,254,142,47,111,254, - 132,59,203,133,217,133,140,140,140,88,127,127,39,127,140,140, - 88,127,236,74,234,44,224,152,240,127,140,88,39,169,127,169, - 140,169,140,127,127,127,127,169,140,127,39,39,169,39,39,127, - 169,127,140,140,127,169,169,169,127,140,127,169,127,39,207,38, - 129,228,129,197,241,0,22,221,15,135,172,48,48,48,42,172, - 48,48,15,172,135,50,162,203,221,142,172,172,172,172,48,221, - 172,15,172,190,172,129,37,221,40,40,65,47,172,172,172,173, - 104,34,47,172,172,15,173,212,0,212,221,47,129,15,172,172, - 172,104,95,172,172,29,172,172,142,0,166,212,215,29,29,172, - 172,29,172,215,15,29,172,29,172,142,0,97,50,0,192,34, - 44,172,29,172,215,171,172,172,29,29,29,56,221,95,78,172, - 208,57,15,15,36,142,95,29,34,34,172,29,47,0,200,0, - 141,15,142,192,142,172,142,40,80,172,172,192,172,15,94,183, - 246,0,191,161,83,192,57,105,40,254,29,47,34,142,171,95, - 94,212,0,47,15,20,172,172,15,172,47,192,192,172,192,34, - 40,0,221,122,215,200,40,227,94,162,0,0,0,183,221,0, - 0,0,0,0,0,0,166,47,254,47,47,34,215,34,29,34, - 29,40,246,0,0,0,0,0,0,0,246,164,164,246,104,104, - 142,104,221,221,221,162,162,0,141,142,34,29,47,40,246,162, - 0,0,0,0,183,0,0,0,0,0,162,212,162,0,0,0, - 221,47,34,44,47,34,224,122,239,0,166,64,47,47,64,47, - 254,215,47,47,64,99,99,59,183,183,122,221,34,254,47,47, - 47,95,183,254,47,254,254,47,254,221,187,0,183,254,47,254, - 47,99,111,162,47,254,59,99,254,95,78,42,0,64,44,142, - 59,254,7,8,235,141,235,7,235,141,235,150,235,141,7,67, - 235,141,67,67,67,141,67,235,8,7,8,49,150,235,150,235, - 67,67,141,67,49,150,67,150,67,49,7,141,67,49,243,67, - 150,235,49,49,141,67,7,12,67,150,67,67,49,182,182,49, - 102,102,100,102,102,100,102,102,102,102,102,102,102,102,100,102, - 102,102,102,102,102,100,102,102,33,71,102,102,71,74,102,100, - 100,100,169,74,100,188,95,37,203,0,120,236,74,140,74,74, - 74,74,140,74,140,74,74,74,74,33,140,169,169,169,127,127, - 39,127,127,140,140,169,169,74,74,33,244,133,127,140,33,140, - 127,127,140,133,142,95,192,71,140,133,74,71,33,127,127,143, - 143,127,143,74,102,236,186,34,192,95,17,152,235,8,7,235, - 122,221,122,78,0,182,145,17,26,122,215,215,219,215,215,122, - 0,221,40,64,47,99,245,143,127,140,140,169,127,88,169,127, - 39,240,47,104,56,187,102,58,127,127,127,140,169,169,169,127, - 127,127,127,127,127,39,39,127,169,39,140,127,39,127,39,39, - 140,127,127,169,127,39,169,169,127,127,39,127,169,127,127,38, - 129,229,129,33,104,0,203,162,29,173,48,172,190,48,221,172, - 172,190,172,172,48,212,0,163,183,142,172,172,172,172,15,212, - 47,172,172,172,190,172,166,162,40,162,47,34,172,34,190,15, - 246,83,173,142,190,172,15,212,0,50,221,47,15,172,172,34, - 142,47,95,172,29,172,29,29,104,0,187,212,215,172,34,142, - 142,142,172,215,34,172,142,142,142,142,0,95,94,0,142,47, - 47,47,47,172,40,29,142,142,47,142,142,221,221,200,212,29, - 15,15,15,172,186,104,95,190,142,34,142,142,47,162,200,0, - 40,29,47,47,47,47,142,141,142,190,47,142,47,172,221,183, - 246,221,15,142,47,180,192,161,40,95,47,47,47,142,192,40, - 0,227,162,47,29,142,192,47,29,47,47,190,47,192,47,47, - 215,0,50,94,215,227,221,0,246,94,162,221,94,40,227,0, - 162,221,122,0,0,0,221,166,95,95,254,47,215,47,142,47, - 44,47,95,162,94,221,221,162,221,221,40,104,40,246,40,246, - 246,212,221,122,0,0,0,0,95,47,47,47,141,40,246,221, - 221,0,0,0,0,0,0,0,0,0,221,40,162,0,0,0, - 0,215,95,47,47,145,47,0,187,0,95,47,254,99,254,47, - 254,227,254,254,47,95,47,254,94,239,0,219,44,254,254,254, - 47,95,239,141,95,254,254,254,254,162,183,0,183,254,254,254, - 99,95,95,0,254,254,254,95,254,126,162,166,0,64,44,44, - 47,47,235,7,235,7,67,235,235,141,235,141,7,150,235,141, - 145,141,7,141,49,49,141,235,141,49,150,49,150,49,141,67, - 67,67,49,141,235,150,67,141,67,67,67,67,141,235,150,141, - 8,182,67,67,49,141,235,150,67,141,67,67,67,67,141,235, - 100,100,100,100,100,102,102,102,102,102,102,102,102,102,102,102, - 102,102,102,102,102,102,102,74,71,102,33,71,102,102,66,134, - 108,159,169,74,188,247,142,241,241,0,102,127,74,74,74,74, - 140,71,33,140,74,140,140,127,39,127,127,127,39,127,140,127, - 169,169,169,169,88,140,140,140,71,25,133,71,140,127,127,39, - 33,140,169,74,15,95,64,38,74,15,245,25,245,248,159,127, - 74,71,236,192,7,235,56,0,219,47,0,122,42,8,67,122, - 0,111,26,0,0,219,243,219,122,166,183,183,0,122,42,78, - 0,0,122,94,126,25,143,127,143,143,143,127,143,236,127,127, - 133,171,99,215,0,183,26,74,236,127,127,169,127,39,127,127, - 127,119,34,127,236,127,127,140,127,140,140,127,140,169,140,127, - 127,169,140,127,127,39,33,169,169,169,169,169,169,169,207,133, - 228,173,129,21,226,0,241,246,142,48,251,142,190,48,122,172, - 190,190,190,190,190,94,162,22,227,142,172,142,190,190,48,162, - 142,172,142,142,142,43,226,122,163,221,142,142,190,142,142,172, - 221,180,173,47,142,142,15,40,0,227,221,40,172,172,172,142, - 190,104,141,29,190,29,142,172,104,122,163,221,215,192,142,142, - 142,142,172,215,47,29,142,142,34,104,0,183,94,0,172,47, - 142,47,47,34,215,142,142,142,142,142,142,94,0,95,246,199, - 15,172,15,180,208,142,141,47,47,142,47,142,142,162,200,0, - 47,172,142,47,47,47,142,40,47,142,142,47,142,29,50,183, - 221,221,191,15,114,34,172,120,40,47,47,47,47,47,29,200, - 0,183,0,47,34,180,142,47,172,47,47,142,47,142,47,47, - 47,0,227,162,221,212,183,78,40,203,246,162,246,200,40,221, - 221,94,162,0,0,0,122,40,141,47,47,34,215,47,142,192, - 34,29,171,94,94,162,94,47,203,246,246,94,0,0,162,94, - 40,95,215,162,0,0,221,221,215,215,221,221,221,221,94,246, - 246,246,221,0,0,0,0,0,0,0,0,162,221,162,0,221, - 221,0,246,141,47,47,47,162,227,0,215,95,254,47,254,47, - 47,95,254,47,254,254,254,47,162,166,0,183,47,95,47,254, - 47,126,227,95,95,95,254,59,95,162,126,0,183,47,95,95, - 47,99,183,122,95,95,254,95,254,95,162,183,0,64,64,47, - 47,47,12,145,67,145,99,7,235,67,235,67,235,150,7,141, - 235,141,7,141,141,7,67,235,150,235,243,235,141,235,67,141, - 7,141,235,8,235,8,141,8,141,67,141,7,8,235,8,141, - 141,141,67,141,235,243,235,8,141,8,141,49,141,235,8,235, - 38,133,186,186,100,102,102,102,102,102,102,102,102,102,102,102, - 102,102,102,102,102,71,102,102,71,102,102,102,88,88,176,198, - 198,86,247,247,240,38,47,40,212,0,245,236,100,33,74,33, - 140,100,169,169,88,169,74,25,133,127,39,169,140,127,169,39, - 39,127,140,127,88,169,140,33,248,133,133,38,74,143,127,89, - 143,127,143,143,151,95,141,34,29,225,42,234,219,17,96,49, - 67,7,235,219,67,122,0,126,42,122,0,0,0,141,145,219, - 219,122,122,0,0,0,122,183,122,183,212,40,78,0,162,0, - 0,0,122,221,183,182,248,240,127,74,71,58,186,142,171,127, - 15,95,111,183,0,122,67,207,83,245,25,127,140,127,140,127, - 236,133,183,71,245,127,127,127,169,127,140,127,39,127,140,140, - 127,127,140,140,140,127,39,127,169,33,39,127,127,127,127,38, - 129,129,135,33,104,0,241,227,29,190,48,142,190,172,0,15, - 190,190,29,190,172,94,56,203,227,142,172,142,190,142,15,50, - 142,190,142,190,48,98,22,221,75,215,172,142,34,190,142,172, - 40,224,142,190,172,190,172,40,0,50,183,166,172,29,142,47, - 190,47,40,172,142,172,142,142,104,56,163,40,215,47,47,190, - 47,142,172,183,172,142,142,47,142,142,0,239,94,0,34,47, - 142,47,142,142,40,192,47,142,142,47,142,183,162,75,212,190, - 80,172,202,15,15,142,40,142,142,47,142,47,142,0,200,0, - 95,29,47,142,47,47,142,141,142,47,47,142,47,142,246,183, - 94,221,144,173,161,47,15,114,142,254,142,47,180,225,172,95, - 162,227,0,99,47,44,142,47,225,142,141,142,47,47,47,47, - 47,0,227,122,215,215,94,50,40,212,203,162,221,163,75,166, - 183,215,162,0,0,0,95,95,95,47,47,192,40,47,254,40, - 40,215,47,221,162,162,221,215,221,221,94,162,162,221,97,104, - 40,0,221,221,246,0,221,246,246,221,221,246,221,0,0,0, - 0,0,94,212,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,246,221,221,221,221,162,221,221,221,215,221,215, - 215,95,254,95,47,47,141,95,42,166,0,215,47,254,254,95, - 95,95,166,141,95,254,95,141,126,78,187,0,183,95,254,95, - 254,95,215,183,141,95,95,59,141,166,78,187,0,64,64,44, - 47,47,67,199,141,145,141,235,141,7,235,141,235,243,145,141, - 145,67,49,141,67,67,141,7,150,7,150,67,8,67,235,150, - 49,12,235,141,7,8,150,141,141,49,141,49,141,7,182,8, - 141,141,7,150,49,141,7,243,150,141,141,7,150,49,141,49, - 91,61,91,61,102,88,88,100,102,102,102,102,38,102,38,102, - 102,102,102,102,102,102,102,102,102,102,102,102,74,159,170,32, - 32,93,135,245,74,122,212,241,203,42,43,184,71,74,71,100, - 33,127,169,127,143,140,171,64,141,245,108,169,88,169,140,127, - 169,140,127,102,102,140,169,71,38,133,245,133,245,248,159,143, - 71,71,236,186,47,40,254,34,47,141,59,166,59,0,0,122, - 12,67,221,132,145,219,219,56,0,0,0,0,0,183,243,26, - 56,122,221,78,0,0,0,0,0,122,183,94,183,122,0,0, - 0,0,0,122,122,109,187,152,235,8,7,235,56,221,183,133, - 15,95,166,166,17,122,158,247,252,227,171,127,127,127,143,71, - 96,225,0,67,26,58,127,169,127,140,127,169,140,169,169,127, - 140,140,33,169,127,169,169,140,39,127,169,169,169,169,207,133, - 103,228,129,72,223,0,241,94,142,190,190,190,223,48,0,172, - 172,29,190,142,177,212,122,241,215,47,172,172,142,190,15,221, - 47,172,142,190,251,195,50,162,95,215,173,142,142,142,190,15, - 40,254,142,192,173,15,129,187,122,227,246,40,15,15,142,142, - 142,104,141,142,142,190,29,172,200,221,95,215,246,142,47,142, - 142,142,15,215,47,172,172,47,142,142,162,126,215,221,142,47, - 142,47,142,142,40,142,142,47,29,47,142,94,221,47,246,142, - 191,172,15,15,191,47,40,47,47,142,47,142,142,162,47,0, - 141,180,47,142,47,47,142,254,142,47,142,47,47,172,94,183, - 246,0,15,192,180,172,15,191,40,47,47,235,47,142,29,47, - 221,50,221,47,142,47,180,47,47,172,47,47,142,47,47,142, - 47,162,94,162,212,40,215,246,40,40,203,50,221,215,95,95, - 95,47,94,122,183,221,47,142,47,47,47,172,40,141,40,183, - 166,215,0,0,0,0,0,221,212,183,221,94,246,215,40,246, - 203,164,40,221,221,221,0,0,221,0,0,0,183,0,162,0, - 0,221,221,212,203,50,0,0,0,122,221,0,0,0,0,0, - 0,0,0,0,0,221,0,0,221,221,221,215,221,0,0,0, - 0,215,95,141,254,254,254,47,221,126,0,215,47,95,95,47, - 95,40,227,95,95,95,254,59,95,94,227,0,183,95,95,95, - 254,47,183,162,95,95,141,95,95,166,94,166,0,44,44,64, - 142,47,7,235,141,145,141,145,150,235,141,67,7,141,7,8, - 145,150,7,67,141,235,141,235,150,67,243,235,67,141,235,150, - 235,150,49,67,67,235,12,67,12,67,12,235,182,99,49,12, - 67,17,67,12,235,67,67,235,12,182,17,67,12,67,8,99, - 0,0,42,26,139,154,152,245,133,102,102,102,102,102,102,102, - 102,102,102,102,38,102,102,102,102,102,71,102,143,66,136,157, - 32,52,201,133,100,234,47,37,40,221,66,247,140,140,74,143, - 169,39,127,108,47,47,221,187,248,218,207,127,127,127,140,39, - 169,169,127,15,158,133,127,71,133,186,20,152,26,17,152,145, - 8,7,235,219,183,56,221,219,183,183,0,0,162,122,0,0, - 141,145,219,56,150,26,122,122,0,122,0,0,0,0,56,221, - 122,17,183,0,0,0,0,122,183,94,162,0,0,0,0,0, - 0,122,183,187,0,64,0,0,122,8,67,122,0,166,17,64, - 47,95,227,132,183,0,122,187,158,78,0,245,58,143,127,64, - 126,162,219,183,8,71,74,127,88,140,127,127,140,127,140,169, - 127,39,39,140,127,127,169,33,140,169,140,33,39,127,127,38, - 173,229,135,21,226,0,92,227,142,172,190,190,190,48,122,172, - 172,190,190,142,190,50,162,241,212,47,172,142,190,190,48,246, - 142,172,142,190,190,92,50,94,200,94,15,172,172,142,142,15, - 104,47,190,47,173,18,18,0,0,163,94,215,190,18,40,142, - 190,47,215,29,142,142,47,142,104,162,75,163,215,142,47,172, - 142,142,172,215,142,142,47,142,47,142,0,75,212,0,29,47, - 142,142,47,172,40,142,142,142,47,142,47,221,0,47,50,29, - 180,20,15,180,15,142,40,142,142,47,142,47,104,0,104,162, - 95,44,47,47,142,142,47,40,180,47,47,47,47,172,221,239, - 212,221,57,29,80,15,180,15,215,47,142,47,47,47,192,40, - 221,227,221,47,142,47,44,47,199,47,47,47,47,47,225,47, - 47,0,227,221,183,95,40,200,104,227,40,212,221,246,95,95, - 47,47,94,122,183,183,47,192,47,142,192,172,132,215,40,95, - 40,47,246,221,221,0,0,246,241,104,40,221,221,221,40,47, - 142,104,215,221,221,221,94,94,246,94,221,227,95,221,0,215, - 215,215,221,0,221,246,221,0,0,0,0,0,0,0,0,0, - 0,183,0,0,0,0,162,0,221,0,122,95,40,56,183,215, - 221,215,254,47,254,47,141,95,56,227,122,215,254,254,95,47, - 141,95,166,95,95,254,95,254,126,183,187,0,183,95,141,95, - 95,95,56,78,95,95,141,95,95,227,42,187,0,44,47,44, - 142,47,235,49,7,235,7,235,150,235,141,235,141,67,145,8, - 235,141,49,141,7,49,141,145,8,49,141,141,235,141,7,141, - 67,141,67,235,17,145,150,141,8,182,8,182,7,150,145,150, - 141,8,182,8,141,235,12,145,150,67,141,141,67,141,182,243, - 0,122,187,26,26,26,91,26,139,49,102,102,25,102,102,248, - 38,102,102,102,102,102,102,102,71,102,100,74,140,127,66,161, - 106,106,247,236,181,142,142,241,22,162,133,240,169,74,74,184, - 127,127,133,192,224,221,0,122,12,140,236,39,127,169,33,169, - 39,127,207,245,38,240,66,66,144,15,34,141,254,0,0,42, - 8,67,122,0,132,215,215,0,162,78,42,0,0,0,0,0, - 183,243,42,0,122,183,122,219,0,0,0,0,0,0,0,0, - 0,0,187,0,0,0,0,122,94,183,122,122,0,0,0,0, - 0,183,183,56,162,0,0,0,122,141,145,17,26,122,0,42, - 95,95,166,166,254,183,227,0,0,162,0,171,247,83,171,162, - 0,56,219,0,132,192,74,159,89,169,140,140,127,169,127,39, - 33,169,140,169,140,140,127,39,33,140,169,127,169,169,39,38, - 129,129,129,21,226,0,241,183,142,48,172,172,190,129,122,172, - 190,190,142,142,177,212,183,241,40,47,172,190,142,190,15,94, - 142,172,190,142,142,172,163,221,104,40,142,142,142,190,190,15, - 40,254,172,40,38,195,23,162,0,95,246,132,15,250,172,47, - 190,142,215,172,142,172,142,172,46,94,95,40,215,47,142,142, - 47,142,172,40,142,142,142,142,142,47,162,75,212,0,172,47, - 47,47,47,172,40,47,47,142,47,142,142,94,162,47,221,34, - 202,172,171,172,191,142,254,47,142,47,47,142,142,0,47,162, - 95,142,142,47,142,47,47,95,47,47,142,47,47,142,212,227, - 246,0,15,38,120,192,15,208,40,47,47,142,47,47,142,95, - 0,239,0,47,47,47,142,47,47,142,47,47,47,47,47,142, - 47,0,75,162,239,142,47,97,221,221,221,0,0,94,40,40, - 126,95,94,122,162,246,47,47,47,47,142,29,215,215,246,246, - 221,0,221,94,212,50,162,0,221,0,0,0,0,0,0,221, - 215,221,215,162,0,0,246,246,94,246,0,40,97,215,0,215, - 166,183,221,221,0,162,94,221,0,0,0,0,0,0,246,94, - 0,227,183,0,0,221,246,94,227,0,0,183,215,215,221,122, - 221,221,40,95,47,254,254,59,221,187,0,56,47,254,254,95, - 95,126,215,95,141,95,95,95,95,227,239,0,221,95,40,95, - 254,47,215,42,95,95,224,95,141,183,94,166,0,44,34,47, - 47,47,145,141,235,141,235,235,8,235,17,7,141,49,235,141, - 145,141,67,141,67,235,8,235,141,49,67,141,235,8,235,182, - 8,67,141,235,12,235,49,243,67,150,67,150,235,12,235,49, - 8,182,150,67,150,235,17,49,235,8,182,150,67,12,67,17, - 0,0,0,0,0,12,109,187,12,235,102,102,38,102,133,102, - 102,102,102,102,102,102,102,102,33,71,100,33,140,143,159,66, - 161,66,161,59,102,19,59,40,241,0,133,240,88,88,74,133, - 15,39,151,95,254,183,122,122,139,188,83,15,248,127,39,39, - 127,127,102,43,77,194,194,170,86,173,50,221,221,122,0,0, - 141,145,219,183,183,227,95,221,122,162,0,0,0,0,0,0, - 0,122,0,0,0,0,0,42,243,122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,183,219,162,122,122,0,0,122, - 162,94,215,132,183,221,0,0,0,42,150,219,42,122,0,0, - 215,95,40,166,111,126,224,0,0,0,0,133,207,25,171,0, - 0,78,0,0,122,12,211,245,74,143,143,127,39,127,39,127, - 39,127,127,33,169,127,127,127,127,127,74,140,33,39,39,38, - 129,228,229,72,223,0,241,215,142,190,190,190,172,172,122,29, - 190,190,190,142,48,50,221,241,215,47,172,142,190,190,129,221, - 172,172,172,172,172,15,164,162,203,40,190,142,190,142,190,15, - 104,104,172,95,38,250,23,78,0,239,94,215,86,161,250,142, - 190,47,40,29,142,172,47,172,47,246,95,40,215,142,142,180, - 34,29,172,141,142,172,142,142,142,142,0,95,212,0,142,47, - 142,142,142,192,40,172,142,142,47,142,172,183,162,75,50,29, - 15,172,202,15,15,142,40,47,47,142,142,29,142,0,46,162, - 95,172,47,142,47,172,47,95,142,142,47,47,47,142,212,227, - 40,221,191,18,124,20,15,15,40,47,47,47,47,47,142,47, - 221,239,221,47,142,142,47,47,180,142,141,142,47,180,64,47, - 47,0,75,221,95,172,47,215,0,0,0,162,215,122,183,40, - 95,95,94,221,162,56,142,47,47,47,141,40,221,221,0,0, - 0,0,0,0,221,94,94,221,0,0,0,0,0,0,221,183, - 166,221,0,0,0,0,0,221,0,0,0,221,215,40,215,47, - 95,40,221,0,162,0,0,0,0,183,227,78,215,187,95,221, - 0,94,95,95,122,94,239,162,183,0,221,122,0,221,0,0, - 0,221,221,246,215,40,254,47,183,183,221,183,47,95,95,99, - 47,215,166,95,95,141,95,141,212,215,183,0,183,254,141,95, - 95,254,246,183,141,95,95,59,95,227,78,219,0,44,44,44, - 142,44,145,141,235,243,49,141,67,235,17,235,150,7,254,67, - 235,141,7,141,67,49,150,235,141,67,67,150,235,243,235,67, - 141,49,141,145,150,67,235,141,182,219,67,141,235,150,67,145, - 141,182,219,49,243,235,141,141,145,150,182,219,67,150,67,182, - 0,0,122,122,122,132,158,205,235,235,102,102,102,102,102,102, - 102,102,102,102,102,102,74,100,102,100,74,100,127,127,127,159, - 66,247,88,0,251,70,59,212,40,42,38,240,127,169,127,15, - 215,25,15,95,187,183,187,122,158,247,252,126,171,89,127,127, - 169,245,222,242,128,32,117,165,13,79,73,22,162,0,0,0, - 183,243,26,122,221,50,94,78,0,0,0,0,0,0,0,0, - 0,122,122,0,0,0,0,0,122,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,221,94,183,0,0,0,0,122, - 183,183,183,183,94,183,0,0,0,0,122,56,122,219,0,0, - 212,95,95,126,215,221,162,122,122,122,122,34,171,122,95,0, - 0,0,122,0,122,183,0,59,186,39,140,38,140,102,74,127, - 127,127,143,89,143,143,143,127,127,33,169,169,127,140,39,38, - 129,229,129,72,223,0,241,94,47,177,223,48,190,48,0,29, - 190,142,104,190,177,203,78,209,40,59,142,190,142,226,15,94, - 47,172,172,172,172,48,22,221,163,215,47,142,190,142,142,172, - 40,47,172,142,142,15,173,50,0,97,40,246,47,104,15,190, - 142,104,132,172,142,172,142,172,104,50,75,40,215,47,47,142, - 142,190,15,215,47,142,142,142,142,142,0,163,40,42,180,47, - 47,47,47,172,40,47,47,47,142,47,142,50,221,40,246,142, - 191,172,15,180,191,190,40,47,142,47,47,142,142,0,95,246, - 254,47,47,47,47,47,29,40,47,47,47,47,47,142,212,183, - 212,0,208,15,171,15,180,208,40,47,47,47,47,47,142,200, - 0,40,215,47,142,142,47,47,47,142,141,47,47,47,47,142, - 47,0,95,78,40,47,40,221,221,122,221,183,227,183,0,0, - 215,95,0,42,221,215,47,47,47,40,246,246,246,94,246,0, - 0,0,0,0,0,246,246,221,0,0,0,0,0,0,0,183, - 183,122,0,0,0,0,0,0,0,0,221,221,246,215,246,95, - 47,95,221,0,0,0,0,0,0,122,254,95,59,47,47,95, - 0,215,95,59,95,227,40,0,0,221,162,221,0,0,0,0, - 0,0,0,221,246,221,221,95,50,126,122,215,95,95,95,40, - 99,227,141,40,95,95,95,59,126,183,183,0,183,40,95,95, - 254,47,221,78,95,95,254,254,59,126,183,227,0,64,47,47, - 44,44,235,8,235,12,145,141,235,235,12,49,150,235,67,141, - 235,243,235,141,67,235,150,235,141,67,67,150,235,150,235,49, - 150,235,8,49,99,254,145,150,67,150,182,182,49,99,141,145, - 243,67,150,182,182,49,99,182,235,243,67,150,182,182,243,49, - 0,0,0,0,0,0,122,67,234,145,102,102,102,102,102,133, - 102,102,102,102,102,38,102,100,102,33,100,88,88,88,88,143, - 83,161,135,0,173,98,40,163,40,122,25,66,88,169,127,186, - 59,99,47,40,239,132,56,162,122,187,158,78,122,245,71,173, - 15,50,162,0,223,66,106,242,168,22,219,94,94,162,0,0, - 0,0,0,0,122,122,0,0,0,0,0,0,0,122,122,42, - 122,122,0,0,0,0,0,0,122,122,0,0,0,0,0,0, - 0,0,122,0,0,0,0,122,56,122,122,122,0,122,0,0, - 0,0,162,221,122,0,0,0,0,0,0,0,0,122,42,0, - 246,40,239,227,215,183,122,122,0,0,0,0,17,0,0,0, - 0,0,0,0,0,183,0,0,12,102,186,25,245,38,245,248, - 240,127,102,71,236,186,34,171,207,240,143,140,169,127,39,133, - 251,129,135,72,226,0,203,221,183,203,164,241,104,92,0,203, - 104,104,104,241,104,212,0,241,246,215,75,241,203,241,104,162, - 95,47,95,47,104,172,50,183,50,40,141,40,47,104,104,142, - 40,246,40,104,40,40,142,239,221,40,227,221,221,221,221,215, - 95,40,221,141,40,47,95,142,95,212,163,95,56,141,40,95, - 95,95,47,221,95,47,40,40,40,200,221,163,163,0,59,95, - 47,47,47,47,40,47,47,47,47,47,47,94,122,227,94,192, - 15,15,15,15,191,47,40,95,47,47,47,47,47,0,200,50, - 40,47,40,254,40,47,47,215,40,47,40,40,95,47,212,212, - 163,221,105,133,15,191,151,244,40,40,141,40,141,47,47,95, - 162,183,221,141,47,47,40,47,47,47,47,47,141,47,47,47, - 95,0,212,221,183,246,94,94,221,221,0,0,0,0,0,0, - 221,215,221,122,221,56,47,47,215,221,221,94,94,221,0,221, - 0,0,0,162,221,221,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,221,94,40,95,95,163,47, - 95,40,94,0,0,0,0,0,0,0,215,95,95,95,95,95, - 227,227,40,40,215,221,221,221,0,162,221,221,0,221,122,221, - 221,221,221,221,246,212,221,221,221,183,122,219,95,254,141,40, - 95,215,95,95,166,141,40,141,246,187,50,0,183,95,95,95, - 95,141,94,166,95,95,95,95,95,239,42,183,0,64,44,34, - 142,142,67,141,235,141,235,243,235,235,141,235,150,235,243,67, - 235,17,67,141,67,235,26,7,254,67,67,132,235,150,99,67, - 150,99,243,49,235,243,235,254,182,141,182,67,182,235,243,235, - 254,182,141,182,67,182,235,141,182,254,67,182,235,182,235,254, - 0,0,0,0,0,0,0,0,12,101,102,102,102,102,102,102, - 38,102,102,102,102,74,197,102,100,100,100,33,88,88,88,88, - 66,223,172,0,40,137,166,203,203,42,133,134,127,127,127,102, - 95,183,95,95,95,166,254,183,227,0,0,162,0,47,142,95, - 0,0,0,122,50,47,20,29,64,40,94,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,0,0,0,0,0,0,0,122,122,122,0,0,0,0,0, - 0,0,0,122,122,122,0,122,0,122,122,0,0,0,0,0, - 122,122,221,122,0,0,0,0,0,0,0,0,0,0,0,0, - 78,166,95,227,183,183,122,122,122,0,0,122,0,0,0,0, - 0,0,0,0,0,0,0,0,0,150,59,234,26,205,26,187, - 152,235,67,7,235,56,221,0,186,102,144,33,140,140,140,133, - 24,226,46,173,104,0,50,0,50,246,183,221,94,215,215,78, - 0,162,0,221,162,50,221,50,221,122,246,215,215,215,221,221, - 0,0,0,0,122,122,203,0,212,221,246,221,246,215,221,215, - 215,215,215,221,221,122,0,215,0,183,221,215,221,227,40,215, - 40,40,40,215,221,0,0,0,221,212,227,50,221,246,221,40, - 246,246,246,246,246,215,215,215,215,221,183,221,183,221,215,246, - 40,40,40,215,141,40,246,141,215,40,227,163,122,40,221,246, - 215,215,215,221,221,221,215,141,40,215,40,47,47,0,40,221, - 141,254,40,40,141,40,95,40,141,47,95,95,95,95,221,78, - 50,0,47,47,47,47,47,142,40,141,47,47,141,141,59,94, - 183,40,221,215,40,141,141,215,132,221,215,132,141,141,141,141, - 95,162,212,162,122,215,183,122,221,221,221,0,0,0,0,0, - 0,78,221,122,122,221,215,40,246,221,212,212,94,94,215,212, - 221,162,221,94,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,0,221,227,227,95,239,95, - 59,212,212,221,221,162,122,0,0,94,111,166,126,95,95,75, - 187,183,122,0,0,221,0,0,0,0,0,0,0,0,0,221, - 215,56,183,246,221,246,212,0,221,50,0,246,215,215,246,183, - 221,0,78,221,221,0,0,183,162,183,183,0,221,56,221,221, - 162,162,122,162,215,56,56,0,0,122,162,94,0,64,47,59, - 47,99,141,49,67,7,235,243,145,141,141,49,150,235,17,67, - 235,141,235,141,67,235,17,145,141,182,49,12,235,141,182,67, - 141,141,141,67,145,150,235,99,243,182,150,235,141,235,150,235, - 99,243,182,150,235,141,235,12,182,150,235,141,235,187,235,182, - 0,0,0,0,0,122,0,0,162,42,101,245,102,102,102,102, - 102,38,102,102,102,102,102,102,102,33,100,88,88,88,88,218, - 66,0,40,97,172,164,47,203,75,0,245,153,102,236,89,39, - 40,0,227,95,40,166,166,126,224,0,0,0,0,183,221,122, - 0,162,162,221,0,0,0,0,0,162,162,50,221,162,0,0, - 122,122,162,0,0,0,0,0,0,0,122,122,0,0,0,0, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,122,0,122,122,122,122,122,122,122,122,0, - 122,122,0,122,122,0,0,0,0,0,0,0,0,0,0,0, - 221,227,95,95,94,183,0,122,122,0,0,0,0,0,0,0, - 122,0,0,0,0,0,0,0,0,0,0,166,59,219,254,221, - 0,122,8,67,122,0,166,17,219,0,171,169,74,33,140,33, - 55,18,55,66,48,0,163,94,249,249,249,31,233,233,206,233, - 168,206,233,31,206,241,0,163,227,14,73,73,14,73,233,92, - 206,73,206,168,233,206,48,0,94,40,37,62,206,137,206,137, - 206,206,73,130,206,206,233,177,0,162,183,226,237,31,206,206, - 137,168,137,73,73,73,73,206,222,104,122,221,203,223,226,223, - 226,226,226,190,104,104,92,164,164,164,223,0,162,215,212,164, - 164,104,104,104,104,92,104,92,164,164,14,172,0,227,215,164, - 14,73,10,113,62,41,237,62,73,14,14,50,48,40,183,221, - 104,212,40,104,104,104,40,104,104,104,203,40,203,37,241,221, - 0,40,203,212,40,246,40,40,104,104,104,40,104,203,221,190, - 0,215,215,40,40,212,40,203,203,104,104,104,104,164,164,92, - 212,94,122,0,203,164,203,212,246,221,0,0,221,0,0,0, - 162,0,0,0,221,221,221,221,246,50,212,50,50,212,246,0, - 221,94,246,162,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,0,221,56,221,50,221,227, - 183,162,0,0,122,200,162,78,122,95,40,40,122,215,183,94, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 246,0,221,162,221,221,221,183,183,183,162,162,246,0,221,56, - 122,183,215,122,215,183,246,221,162,94,122,0,221,0,0,0, - 122,0,221,122,221,0,122,0,162,162,122,122,0,141,95,126, - 95,219,243,235,141,235,235,150,235,8,67,49,141,235,132,67, - 235,150,235,141,141,235,17,235,235,141,235,150,49,141,141,99, - 243,8,141,182,145,150,99,99,12,182,219,235,254,49,254,99, - 99,12,99,219,99,99,235,243,99,219,235,254,235,254,99,64, - 0,0,0,12,94,42,122,0,0,26,91,61,49,54,133,102, - 102,102,102,102,102,102,102,102,102,102,102,74,102,74,74,134, - 23,104,226,0,48,50,163,75,203,42,245,240,133,108,83,192, - 0,0,227,40,95,126,227,215,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,162,221,162,0,122,221, - 0,0,0,0,0,122,0,122,122,122,0,0,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,162,162,0,0,0,0,0,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,215,227,227,227,221,78,122,0,122,0,0,122,0,0,0, - 0,0,122,0,0,0,0,0,0,0,122,0,122,0,221,0, - 0,122,141,145,17,42,78,0,0,0,246,127,39,140,114,102, - 18,38,55,66,177,0,212,40,206,73,73,73,206,14,92,206, - 73,73,206,130,167,48,0,183,104,206,249,206,73,31,41,206, - 249,249,31,249,62,41,228,0,219,94,92,41,249,249,249,233, - 206,233,233,249,62,249,41,228,162,183,221,173,216,93,62,62, - 249,62,249,62,249,167,62,237,220,162,56,0,190,31,168,137, - 168,168,137,73,177,84,84,73,168,222,173,122,215,142,92,73, - 14,14,14,14,14,14,73,14,73,73,168,173,0,239,0,177, - 10,73,206,206,137,206,137,206,113,73,14,73,18,40,56,221, - 173,22,177,137,168,206,73,92,137,137,137,123,137,137,142,221, - 0,142,92,251,73,216,216,190,92,92,73,137,31,62,206,55, - 0,215,219,251,233,31,220,79,79,220,79,18,220,18,21,43, - 177,221,183,221,226,92,37,37,212,162,0,0,0,0,0,0, - 50,14,246,50,162,0,113,22,246,246,94,212,164,50,162,0, - 0,221,0,221,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,50,92,94,14,209,162,209, - 50,221,0,0,162,40,162,183,0,104,47,40,164,50,50,221, - 0,0,0,0,0,221,0,0,0,0,221,47,246,180,180,162, - 112,180,0,162,221,246,0,94,212,42,122,40,2,0,112,47, - 124,124,1,0,124,40,180,1,47,187,122,0,224,162,50,94, - 94,78,94,122,50,162,50,0,50,75,187,122,0,34,192,29, - 20,47,8,67,150,235,182,150,49,150,67,141,150,235,219,141, - 235,17,67,150,141,49,219,49,99,150,235,150,99,182,26,182, - 12,224,243,219,235,141,219,235,150,182,132,150,64,166,254,17, - 235,150,182,150,243,99,219,254,182,166,150,64,219,182,150,99, - 0,0,219,235,145,42,12,26,162,26,205,26,91,145,245,102, - 133,102,133,102,133,102,102,102,71,102,102,102,74,140,169,176, - 137,104,251,246,0,40,104,163,203,0,104,102,248,153,102,171, - 0,0,78,183,215,183,183,183,0,0,0,0,0,0,0,122, - 0,0,0,0,0,0,0,221,221,122,0,0,221,0,0,0, - 0,0,0,122,0,122,0,0,0,0,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,0, - 122,227,126,227,183,221,122,78,122,0,0,0,122,122,122,122, - 122,0,0,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,183,150,219,122,122,0,183,150,221,186,39,140,71,135, - 18,38,79,43,190,0,212,40,14,14,22,73,73,73,73,206, - 206,14,73,92,31,48,0,162,104,92,73,206,73,206,73,206, - 206,233,206,137,233,31,173,162,183,212,73,249,233,249,249,249, - 31,233,206,206,233,73,206,123,0,221,183,173,216,175,249,62, - 62,249,123,167,233,123,233,31,18,50,122,0,190,137,24,177, - 73,177,177,24,92,24,226,24,209,222,173,122,56,142,14,22, - 14,14,92,22,14,22,14,14,14,14,73,38,0,239,183,177, - 14,212,14,14,164,22,164,22,164,22,14,14,242,40,221,221, - 251,22,177,222,73,137,92,92,177,137,137,222,73,190,104,221, - 162,47,137,198,123,93,216,92,226,142,104,206,233,233,175,38, - 0,183,227,173,177,48,21,173,173,129,123,79,79,173,79,87, - 137,162,221,215,40,246,246,221,221,0,0,0,0,0,0,0, - 162,37,246,221,0,0,131,5,22,162,50,40,212,221,221,221, - 221,94,162,246,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,221,162,164,183,164,22,0,50, - 162,162,94,162,50,0,0,0,0,172,40,0,226,212,37,22, - 0,0,0,221,0,221,215,0,183,0,40,2,124,1,124,162, - 81,2,0,50,162,246,246,0,221,183,78,46,246,0,81,180, - 124,81,2,0,112,40,40,47,104,215,0,0,142,50,42,50, - 162,78,50,0,61,0,37,122,50,40,187,162,0,34,34,29, - 29,34,150,141,150,67,150,8,235,132,67,243,243,141,219,49, - 235,17,49,219,67,49,219,67,235,150,235,141,182,49,17,49, - 182,150,49,141,99,49,17,67,99,132,67,17,67,182,150,67, - 182,182,150,99,12,67,182,12,150,67,17,67,182,150,49,182, - 0,0,0,219,141,235,145,199,67,235,100,67,26,139,245,155, - 102,102,133,102,102,38,102,102,102,102,71,102,74,248,18,127, - 246,246,251,92,190,203,200,97,75,0,122,97,13,250,200,166, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,122,0,0,0,0,0,0,0,0, - 0,122,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,0,122,0,0,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,227,227,227,94,78,0,122,0,0,0,0,0,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,183,122,219,0,0,99,47,144,127,169,140,15, - 79,38,55,72,190,0,163,40,14,10,65,10,22,14,22,92, - 14,168,206,14,31,129,0,162,104,73,14,92,206,168,233,249, - 31,31,233,233,73,233,55,0,42,40,14,206,206,164,73,206, - 206,62,249,249,233,14,14,55,162,162,0,251,93,249,233,249, - 233,249,233,31,222,168,137,233,197,162,122,42,190,73,46,226, - 226,84,73,24,241,104,209,46,14,222,173,0,221,223,14,37, - 22,22,14,22,50,203,22,22,37,22,92,18,0,212,221,190, - 94,164,22,164,22,14,209,37,22,37,164,22,18,203,183,221, - 228,50,164,177,223,73,164,203,164,24,241,92,164,48,226,221, - 0,47,137,31,164,160,175,246,14,14,164,113,164,212,50,38, - 0,50,50,173,92,177,21,48,173,104,15,135,251,173,123,55, - 203,0,162,50,212,94,0,0,0,0,0,0,0,0,0,0, - 0,246,162,0,162,162,5,230,160,5,221,162,0,221,0,0, - 221,221,94,221,162,50,0,0,0,0,0,0,0,0,0,0, - 50,203,164,48,200,0,0,95,203,14,50,50,162,162,0,0, - 0,162,162,0,221,0,0,0,0,190,22,0,164,162,212,164, - 0,162,0,0,0,221,104,50,183,0,162,180,112,1,2,40, - 81,180,0,212,0,104,124,162,162,221,0,142,47,0,81,180, - 124,196,1,40,124,180,40,2,190,42,122,0,44,162,0,50, - 122,162,162,0,50,122,163,162,50,200,166,122,0,192,44,29, - 29,44,7,67,8,145,8,49,235,12,145,67,67,235,12,145, - 145,8,235,150,235,235,17,235,235,182,235,49,67,145,243,235, - 235,12,235,49,67,214,235,67,235,182,67,211,150,49,182,99, - 49,99,49,49,243,49,49,67,49,49,12,49,49,8,145,235, - 0,0,0,219,49,235,192,145,192,145,25,234,91,213,102,133, - 102,155,102,25,133,25,102,102,102,102,102,102,33,108,18,40, - 246,40,246,246,173,92,111,203,75,0,162,0,216,73,92,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,221, - 221,221,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,122,0,0,122,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,183,183,227,94,162,0,78,0,0,0,0,0,122,0,122, - 122,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,42,145,150,0,215,207,39,169,88,172, - 38,38,55,72,223,0,40,163,62,73,220,50,50,22,37,50, - 50,14,73,22,167,48,0,162,104,14,249,31,73,233,206,233, - 22,14,73,233,206,113,173,0,162,40,92,233,233,206,206,233, - 206,31,206,249,113,14,10,173,162,221,219,222,116,11,206,233, - 233,249,233,168,73,84,24,73,220,162,122,162,172,209,22,241, - 46,24,24,46,241,75,75,97,61,222,55,0,94,190,164,50, - 37,50,22,37,37,37,37,50,50,22,73,33,0,183,219,249, - 131,50,162,50,37,14,84,22,162,162,22,14,18,22,183,221, - 251,50,50,241,24,14,22,0,162,14,37,14,50,177,226,221, - 0,104,48,212,92,11,13,162,164,40,22,164,94,162,22,79, - 0,215,97,228,14,92,251,24,223,46,190,177,222,48,129,104, - 40,221,0,162,212,50,162,162,0,0,0,0,0,0,0,162, - 0,221,0,0,0,0,10,11,110,82,221,0,0,0,0,0, - 0,0,0,162,246,94,0,0,0,0,0,0,0,0,0,0, - 162,246,94,190,251,183,221,239,50,37,212,94,0,162,162,162, - 0,162,0,0,0,0,0,0,0,162,162,0,162,221,162,162, - 0,0,0,0,162,162,229,163,183,162,241,246,1,1,1,221, - 81,2,0,50,0,124,112,22,95,183,94,104,124,40,180,196, - 196,180,81,81,112,47,124,124,227,219,0,0,142,0,0,50, - 162,187,50,183,162,162,50,75,50,200,126,0,0,34,34,34, - 172,47,12,150,12,141,17,12,150,26,12,26,17,12,42,12, - 17,42,219,42,219,219,0,219,219,42,183,42,0,42,122,122, - 42,122,42,122,122,122,42,122,219,183,122,42,0,122,42,0, - 42,221,42,122,122,183,122,122,42,122,42,42,183,122,42,42, - 243,145,235,141,235,141,145,182,158,145,25,155,213,102,102,155, - 25,133,25,25,102,133,25,133,102,248,71,244,18,250,79,164, - 0,92,40,190,104,40,59,40,40,0,162,0,137,0,138,0, - 0,0,0,0,0,0,0,0,0,0,0,0,221,221,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,122,122,122, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,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,221,56,221,0,162,0,0,0,0,0,0,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,182,132,0,0,71,119,127,248,151, - 79,38,55,72,190,0,163,212,237,233,233,206,206,73,206,168, - 73,168,206,73,31,48,0,162,104,14,206,10,73,137,206,31, - 73,226,73,73,73,73,55,0,183,40,164,137,73,73,168,168, - 73,73,206,137,168,73,206,173,0,78,0,48,216,138,237,206, - 206,137,73,168,73,168,168,14,79,50,122,162,190,73,177,177, - 177,73,177,24,226,226,24,24,14,222,173,122,219,190,14,92, - 73,92,73,73,92,92,73,92,73,73,73,18,0,50,183,206, - 131,131,164,164,162,50,61,162,162,50,14,14,103,40,183,246, - 251,37,164,164,226,92,92,104,164,73,73,92,92,73,142,221, - 162,104,48,221,142,92,31,212,104,37,50,14,14,37,22,55, - 0,50,246,190,94,212,203,203,104,104,190,48,190,190,142,104, - 241,221,221,94,203,164,162,94,94,0,0,0,0,0,94,104, - 37,203,221,0,162,50,10,5,175,14,42,0,0,0,0,162, - 162,50,164,190,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,40,190,183,221,0,0,0,0,162,0,162,0,162, - 0,0,0,0,0,0,0,0,0,0,0,162,162,50,0,221, - 0,162,162,0,0,0,190,95,50,183,104,0,180,112,1,47, - 81,124,0,50,50,81,142,35,95,42,215,47,40,112,40,112, - 180,81,1,1,180,180,124,0,104,187,0,0,34,162,0,50, - 50,37,50,50,227,162,78,50,0,104,126,0,0,44,34,29, - 192,47,183,183,215,183,94,94,221,215,78,221,183,94,221,183, - 94,94,221,221,221,162,94,221,162,221,0,221,122,221,122,162, - 221,78,221,183,162,183,221,94,162,162,162,162,221,122,162,162, - 0,162,0,183,42,221,94,221,221,221,183,221,94,162,221,246, - 219,235,145,145,235,235,145,235,225,235,155,102,155,25,155,133, - 102,155,102,155,102,25,25,25,102,133,248,248,142,40,92,92, - 173,246,40,92,40,40,95,163,126,0,40,137,0,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,221,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,122,221,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,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,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,122,0,0,0,171,108,127,15,142, - 18,18,55,87,177,0,163,241,14,167,11,237,249,206,168,233, - 206,14,10,92,137,222,0,183,104,206,70,110,233,206,92,233, - 233,249,62,249,233,233,251,0,78,40,14,62,31,73,73,206, - 206,137,206,249,233,233,175,251,0,94,183,173,175,73,41,93, - 249,233,31,233,206,206,206,206,79,162,78,42,226,73,14,14, - 92,14,73,14,14,14,14,92,14,137,103,122,42,190,14,73, - 209,73,92,168,206,168,137,168,73,73,168,33,0,50,126,190, - 14,164,215,113,160,11,93,93,93,41,73,73,103,203,94,221, - 251,22,92,92,177,177,73,73,137,190,222,48,137,168,104,221, - 221,47,137,43,137,226,92,137,123,251,31,168,137,137,14,173, - 0,94,0,0,0,212,203,164,104,177,137,137,48,190,104,92, - 92,212,212,212,40,40,203,246,164,212,162,246,37,212,94,246, - 50,212,246,162,162,40,104,22,22,73,22,212,37,22,37,50, - 212,246,37,190,0,162,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,104,183,162,162,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,162,221,0,221,162,221, - 0,50,50,94,221,0,0,0,183,183,142,162,162,40,40,180, - 124,47,221,50,50,246,0,104,200,221,215,142,221,180,215,47, - 246,124,142,180,246,40,40,0,46,183,0,0,29,162,122,78, - 183,162,42,0,162,78,50,122,0,104,187,0,0,44,44,44, - 142,59,151,151,151,133,133,55,151,151,55,133,55,38,55,38, - 38,55,38,38,38,38,38,38,197,38,55,38,38,38,197,38, - 197,197,197,197,197,33,33,33,33,33,33,33,33,33,197,33, - 33,33,197,33,197,38,197,197,33,197,33,38,33,197,197,33, - 0,0,122,17,141,235,199,192,145,158,155,102,25,133,155,155, - 155,133,155,133,25,133,248,133,25,120,25,89,172,190,104,173, - 79,0,190,79,173,73,200,40,203,0,190,11,212,0,246,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,0,0,0,0,0,0, - 0,0,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,215,152,71,171,104, - 197,38,55,87,48,0,203,203,22,0,41,14,22,14,50,14, - 22,123,14,37,168,48,0,162,104,92,195,11,10,14,22,233, - 14,212,14,206,233,249,251,0,42,203,14,73,206,73,73,73, - 73,73,14,249,162,164,131,129,0,56,0,251,175,175,22,206, - 216,22,14,14,22,164,14,50,55,50,162,212,104,22,14,164, - 22,14,22,14,22,22,22,22,162,168,173,0,183,190,22,22, - 22,22,50,50,14,50,22,22,37,50,92,28,0,227,239,73, - 22,203,113,82,160,116,11,116,160,131,37,22,173,37,227,221, - 228,50,50,37,37,104,14,212,50,50,40,164,92,251,142,221, - 221,104,137,79,92,241,92,92,73,14,164,212,22,22,14,203, - 221,94,221,0,221,50,212,104,92,190,223,190,104,104,190,92, - 164,246,94,94,221,221,246,221,104,37,94,40,92,164,50,50, - 221,94,0,0,0,246,212,22,14,73,22,164,14,14,37,37, - 22,37,0,162,0,221,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,183,221,221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,221,0,0,0,0,0,162, - 162,203,212,94,221,0,0,0,0,162,142,162,246,40,40,1, - 180,162,40,221,212,162,162,142,95,122,215,142,0,50,0,50, - 0,162,0,162,221,0,246,162,46,50,0,0,29,162,162,162, - 162,50,162,162,94,162,50,42,162,104,111,0,0,44,34,34, - 34,59,151,151,129,151,151,151,133,151,133,151,133,186,151,186, - 186,38,133,55,133,38,38,151,102,38,38,33,38,38,38,33, - 71,33,38,102,33,38,33,38,33,33,33,33,72,33,72,33, - 33,21,72,33,33,38,102,33,72,38,33,38,33,102,33,33, - 0,92,173,94,235,254,145,64,225,235,155,25,155,155,155,133, - 155,102,155,155,248,25,133,25,133,25,155,83,18,40,190,18, - 172,40,87,40,251,173,164,40,97,0,40,104,246,0,0,94, - 94,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,221,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,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,40,181,59,190, - 33,38,103,134,190,0,203,40,73,37,93,206,206,206,14,233, - 206,167,206,206,249,190,0,78,241,14,237,123,233,249,233,62, - 233,22,22,14,14,206,251,0,94,104,164,22,22,14,73,233, - 175,249,175,233,50,233,41,137,0,162,215,79,50,233,206,50, - 249,22,14,14,14,164,14,22,79,50,122,183,223,22,14,164, - 22,14,14,22,164,50,37,22,50,222,129,0,42,172,22,22, - 22,37,22,22,22,93,11,22,22,50,92,242,0,212,95,226, - 50,212,10,131,5,82,160,160,82,82,113,212,173,75,183,221, - 173,162,37,212,37,46,14,203,37,14,92,92,14,137,142,0, - 221,142,190,0,0,0,212,37,94,0,221,221,221,0,0,162, - 221,94,221,246,246,94,50,50,212,164,164,164,203,104,190,92, - 212,221,221,221,0,246,221,0,246,0,0,221,246,212,221,162, - 0,0,0,0,0,162,221,162,0,94,162,0,0,0,162,162, - 50,50,0,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 94,162,40,50,221,162,246,221,0,0,212,162,0,221,221,0, - 50,162,22,42,37,50,162,190,75,122,215,104,0,50,162,94, - 0,37,162,37,162,22,183,50,47,183,122,0,190,162,50,0, - 50,163,0,212,162,122,162,50,94,104,187,0,0,34,34,44, - 47,99,229,229,229,229,151,229,229,229,151,151,151,151,103,151, - 151,151,151,55,151,133,38,173,133,55,151,38,133,38,38,55, - 38,48,133,173,38,38,38,38,38,38,38,197,38,38,197,33, - 38,33,33,38,48,38,173,38,21,38,135,151,103,38,38,38, - 0,116,128,212,26,12,235,99,225,214,186,186,155,102,155,133, - 155,155,133,25,133,25,25,25,25,25,244,250,138,221,221,251, - 18,40,251,221,18,168,111,40,40,0,94,164,0,0,0,212, - 94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,122,0,0,42,0,223, - 18,38,173,43,177,0,163,203,10,50,216,249,233,233,233,249, - 233,249,233,249,167,177,0,221,241,92,11,233,128,216,10,249, - 249,249,233,14,22,10,129,0,42,203,14,249,206,14,22,37, - 14,14,14,206,50,10,175,251,0,183,221,173,14,14,206,113, - 233,22,14,164,14,14,14,22,103,50,0,212,226,14,14,22, - 22,22,22,22,22,37,37,22,162,73,129,122,94,190,14,22, - 37,22,50,22,10,110,70,113,50,50,73,21,0,227,215,168, - 175,162,162,221,246,246,94,50,37,22,22,162,173,203,183,221, - 228,162,203,37,246,212,92,14,212,241,164,203,104,251,226,221, - 0,104,137,43,250,162,164,164,203,37,22,22,162,50,5,142, - 0,162,221,104,22,246,246,94,0,0,212,104,241,22,37,104, - 221,0,221,221,0,0,0,0,0,0,0,0,0,0,0,162, - 0,162,0,0,0,0,0,0,0,94,221,0,94,246,221,37, - 37,221,0,0,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,203,92,50,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,94,94,50,94,246,94,221,0,0,0,221,0,94,37, - 50,50,37,50,50,246,162,223,200,122,215,142,162,50,122,50, - 0,22,50,37,162,212,162,50,104,239,0,0,29,162,50,0, - 37,50,0,162,37,0,78,50,163,104,111,0,0,34,34,34, - 34,254,229,229,15,229,15,151,229,151,151,151,173,133,133,55, - 55,151,151,151,173,151,55,151,55,38,38,24,173,38,133,229, - 135,173,229,229,38,18,38,38,38,55,38,18,38,133,18,38, - 18,33,33,172,133,229,229,38,38,38,38,38,55,38,18,38, - 92,95,163,34,99,17,225,199,225,225,235,91,235,248,102,155, - 133,102,155,25,25,133,248,102,248,173,83,18,92,168,48,190, - 190,40,0,0,0,0,95,97,40,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,183,0,0,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,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223, - 197,55,55,72,190,0,75,40,73,22,233,31,249,233,137,62, - 31,14,31,206,233,223,0,0,203,14,230,233,31,206,14,206, - 233,249,249,233,249,206,222,0,183,104,14,206,249,14,206,14, - 14,22,22,206,37,37,113,251,0,162,215,123,14,14,10,137, - 249,22,14,22,14,22,14,22,167,162,122,246,104,164,14,164, - 22,14,14,164,22,50,164,22,37,168,129,0,78,172,14,22, - 22,22,22,14,22,41,93,14,22,22,73,33,0,183,227,137, - 216,11,175,216,233,50,162,0,221,221,164,50,129,164,221,246, - 173,162,94,37,94,162,37,164,104,37,92,104,137,167,104,221, - 0,47,168,87,43,22,37,40,37,50,22,10,22,37,82,10, - 221,162,221,73,82,82,0,50,73,168,237,251,31,123,92,0, - 0,221,94,94,221,0,0,0,0,0,162,0,0,0,221,162, - 0,162,0,0,0,0,0,0,0,221,0,221,50,10,10,10, - 0,22,50,0,0,0,0,0,0,0,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,212,164,50,94,162,0,0,0, - 0,0,0,0,0,221,0,0,221,0,0,0,0,0,0,0, - 0,162,94,94,94,162,246,0,221,183,104,162,162,0,0,162, - 162,50,50,50,50,162,162,190,95,122,215,104,162,37,94,22, - 122,50,162,162,162,122,50,0,46,183,0,0,172,162,162,78, - 37,42,162,0,50,50,50,122,50,104,187,0,0,34,44,34, - 44,64,133,38,38,38,38,38,102,38,38,38,102,197,38,38, - 33,33,102,33,102,38,229,33,186,33,33,38,127,33,21,38, - 102,33,33,88,72,33,72,21,33,38,72,134,87,33,72,134, - 72,72,134,38,33,33,88,87,72,72,33,33,33,127,72,134, - 13,183,215,254,47,44,171,192,192,192,49,7,8,152,155,54, - 155,155,186,133,155,155,152,217,114,190,220,0,0,142,251,18, - 0,162,162,0,0,0,95,40,163,0,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 18,38,55,72,177,0,95,40,10,50,206,14,73,206,14,31, - 233,22,233,249,123,48,0,94,40,92,11,206,168,206,73,73, - 206,206,233,249,233,249,251,0,162,200,92,14,233,14,233,233, - 206,73,22,233,50,50,10,103,0,215,56,79,14,164,164,10, - 233,73,22,22,14,164,22,22,103,50,183,50,190,22,22,22, - 22,22,14,22,164,50,22,22,22,168,135,227,50,142,14,22, - 22,22,22,22,73,22,233,73,22,50,14,18,162,183,26,233, - 82,6,116,60,116,93,216,233,209,14,94,50,228,163,122,50, - 123,0,0,162,0,0,0,162,22,73,10,137,79,220,40,162, - 221,104,137,18,18,50,221,212,40,162,162,50,10,5,5,104, - 221,0,246,113,5,10,246,18,32,32,32,198,85,32,85,104, - 251,0,94,246,162,0,0,0,0,0,0,0,0,221,162,50, - 0,162,162,0,0,0,0,0,0,0,0,0,10,5,10,22, - 0,50,162,0,0,0,162,0,0,0,0,221,221,0,0,0, - 0,0,0,0,0,0,0,0,0,221,0,94,162,0,162,50, - 50,162,0,0,0,122,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,221,162,104,94,221,94,223,162,50,221,0,0, - 162,0,0,50,162,94,162,190,75,122,215,142,50,22,163,37, - 162,50,22,0,0,0,50,0,46,50,0,0,172,162,162,162, - 50,162,183,162,162,163,50,0,162,104,111,0,0,34,34,44, - 29,47,20,253,20,20,48,15,173,104,40,241,241,142,104,75, - 142,129,228,129,228,151,229,55,253,151,103,55,38,24,226,177, - 201,38,79,38,38,79,38,55,197,201,33,197,197,197,33,197, - 197,197,242,201,38,79,38,201,55,38,79,38,201,18,197,197, - 118,56,141,141,95,47,80,34,171,202,99,235,8,26,139,139, - 8,101,101,7,8,34,64,7,199,40,92,0,0,40,0,0, - 221,221,212,162,246,162,75,97,163,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,0,162,94,94,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 21,38,55,87,177,0,203,40,14,162,249,206,206,14,14,73, - 73,14,14,10,31,190,0,94,40,73,30,10,233,233,73,206, - 206,206,206,73,73,233,48,0,122,203,14,73,14,22,164,14, - 233,249,233,249,50,50,22,251,0,215,183,173,14,206,22,22, - 14,14,22,22,14,22,14,22,167,162,183,50,223,22,22,164, - 164,22,22,22,22,37,22,37,50,177,129,215,246,190,14,50, - 22,22,37,22,14,22,233,73,22,162,216,79,0,183,166,177, - 131,11,11,11,11,116,11,60,160,82,0,37,173,163,0,215, - 251,104,0,48,51,250,28,50,13,128,23,220,18,138,164,162, - 0,164,23,198,170,118,14,40,40,246,0,162,22,22,22,92, - 162,0,215,249,82,5,5,93,115,117,117,9,117,117,32,79, - 43,221,0,0,0,0,0,0,162,50,246,162,0,0,0,221, - 221,164,0,0,0,0,0,0,0,0,0,0,50,162,162,0, - 0,0,0,0,0,0,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,94, - 162,0,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,221,0,0,162,0,15,40,122,221,164,0,0,0,0,0, - 0,0,0,162,122,162,0,48,200,122,183,104,50,37,94,22, - 122,22,37,122,0,162,50,162,46,187,162,122,142,162,37,50, - 162,50,163,163,0,50,61,0,50,104,166,0,0,34,34,47, - 29,44,0,0,162,0,162,0,0,0,0,0,0,0,0,0, - 0,0,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,0,122,0,0,0,0,0,0,0,0,0,162, - 0,0,0,0,0,0,0,122,0,0,0,0,0,0,0,0, - 9,7,225,145,64,145,47,99,141,227,8,235,67,26,8,7, - 101,7,8,67,7,171,18,43,137,0,40,203,164,104,104,0, - 221,0,246,164,190,164,95,40,97,122,122,0,0,0,0,50, - 221,221,162,162,162,0,0,221,221,0,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223, - 21,18,55,72,177,0,75,203,14,50,62,206,206,73,14,233, - 206,22,14,92,249,177,0,221,40,168,93,233,206,233,73,73, - 206,206,73,14,10,206,222,0,183,203,14,22,37,22,14,50, - 14,14,73,233,22,37,10,251,0,0,246,251,14,113,73,22, - 14,22,22,212,14,22,22,22,123,50,0,162,190,22,22,22, - 37,164,14,22,22,37,164,22,162,73,48,122,42,190,14,50, - 22,37,50,22,14,22,206,73,22,0,216,18,0,163,183,129, - 131,216,60,60,11,11,160,116,160,160,0,37,228,40,42,215, - 137,18,173,79,115,32,117,79,115,117,32,9,118,204,14,221, - 0,73,32,157,32,51,50,73,73,10,37,162,162,50,131,177, - 122,162,183,175,5,10,22,233,23,65,65,123,55,43,87,18, - 18,0,162,0,0,0,0,190,40,246,212,221,94,94,162,0, - 123,137,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,0,0,0,0,221,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,40,0,0,0,0,0,0, - 162,162,162,0,0,0,129,75,122,0,212,0,122,122,162,0, - 162,162,0,122,0,162,0,48,241,122,215,241,50,241,162,241, - 122,22,50,162,162,122,50,162,104,183,122,0,142,162,50,22, - 50,22,22,22,162,162,22,162,37,104,187,0,0,192,34,34, - 20,44,0,0,0,0,59,0,0,0,0,0,0,0,0,0, - 0,0,0,42,122,200,0,0,0,0,0,0,0,0,0,0, - 0,122,0,0,99,212,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,122,0,59,227,0,0,0,0,0,0,0, - 19,141,254,246,141,141,0,0,0,0,42,182,150,8,243,235, - 235,235,235,7,235,8,173,11,190,221,203,92,40,104,40,50, - 104,0,221,0,92,164,203,97,40,162,221,0,221,0,0,37, - 50,162,0,0,0,0,0,162,221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 21,38,55,87,190,0,75,40,14,50,206,206,73,22,50,206, - 73,41,73,14,206,190,0,221,40,251,41,73,206,206,10,73, - 84,10,14,14,14,73,177,0,163,40,164,14,73,10,233,73, - 14,14,22,14,22,50,113,251,162,162,183,251,14,14,206,14, - 92,14,22,22,22,37,164,50,103,162,183,94,142,164,37,22, - 22,22,164,22,37,22,22,22,50,168,48,221,78,29,14,22, - 22,50,22,50,14,164,164,73,22,50,14,33,0,40,42,48, - 249,130,13,30,250,118,30,11,10,131,162,22,251,212,183,221, - 251,0,190,19,53,189,98,79,53,85,193,189,77,117,177,94, - 162,206,117,189,32,250,162,82,82,5,10,0,10,10,82,175, - 0,212,94,104,0,0,0,0,0,162,162,0,0,0,0,0, - 0,162,221,0,0,0,0,190,221,0,94,246,212,50,162,0, - 167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,37,162,0,0,221,221, - 0,0,0,0,0,0,0,0,0,221,0,0,0,0,0,0, - 0,0,0,0,162,0,173,200,0,0,0,0,0,0,0,0, - 0,0,0,0,162,0,0,221,221,42,215,241,22,92,50,14, - 0,22,42,50,0,162,50,0,24,183,0,0,35,162,0,50, - 61,162,50,22,50,162,37,162,50,104,111,162,0,44,44,47, - 192,142,0,0,122,0,59,0,0,0,0,0,0,0,0,0, - 0,0,0,42,0,64,0,0,0,0,0,0,0,0,0,0, - 0,78,0,0,44,212,0,0,0,0,0,0,0,0,0,0, - 122,78,0,42,0,122,0,0,0,0,0,0,0,122,122,239, - 43,166,0,221,221,0,0,0,122,0,0,0,122,56,122,7, - 145,235,235,235,145,141,215,92,246,221,0,221,0,162,50,40, - 221,221,0,0,221,162,94,215,40,122,122,0,0,0,0,162, - 50,50,162,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223, - 21,38,38,72,177,162,203,241,14,212,249,249,206,73,73,31, - 206,237,233,233,31,177,0,50,212,167,113,73,206,73,14,233, - 73,206,14,14,22,113,48,0,126,212,50,93,93,50,206,73, - 206,113,73,73,206,0,73,251,0,94,212,48,14,22,22,73, - 73,22,37,37,37,37,22,22,123,162,162,94,92,22,50,37, - 37,37,22,37,37,50,22,50,162,177,177,0,162,190,22,22, - 22,50,22,37,22,37,92,73,50,37,92,197,0,40,183,168, - 233,31,130,113,5,5,113,10,50,37,162,50,228,212,221,221, - 137,173,48,18,251,73,22,50,37,22,23,189,107,204,22,221, - 0,10,117,32,118,168,50,10,5,50,164,0,50,10,10,173, - 0,164,94,162,0,221,0,0,40,0,0,0,221,221,162,94, - 221,221,0,0,0,162,0,162,162,162,0,162,0,221,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,246,0,0,0,0,221,190,221,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,162,162,0,162,0,0, - 162,0,162,162,221,0,203,221,122,122,212,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,162,215,104,37,37,241,22, - 50,50,50,0,162,122,50,122,104,183,162,0,200,50,162,50, - 94,162,162,78,50,50,42,50,50,241,95,183,0,34,34,44, - 29,47,0,122,75,0,44,0,0,0,0,122,0,0,0,0, - 0,0,0,227,122,35,0,0,0,0,0,0,0,0,0,0, - 0,122,203,50,214,239,0,0,0,0,0,122,0,0,0,0, - 122,183,122,221,0,0,0,0,122,0,0,0,0,122,183,122, - 43,246,183,56,0,0,0,0,0,122,122,122,56,42,221,235, - 246,221,95,215,200,104,221,50,0,221,221,239,0,0,0,0, - 0,0,0,0,221,221,221,0,0,162,122,221,0,0,162,0, - 162,50,162,0,0,50,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 33,173,55,21,177,0,203,40,14,168,233,73,206,73,73,206, - 73,14,92,73,233,226,0,246,40,168,14,22,73,22,14,249, - 206,206,73,73,164,73,190,0,50,227,50,110,230,0,233,14, - 40,164,22,73,233,14,14,130,122,94,163,48,14,73,14,14, - 14,22,14,164,14,22,14,22,123,42,183,94,104,14,164,164, - 37,212,22,164,22,164,73,22,37,168,223,0,78,29,164,22, - 10,37,37,22,14,22,137,73,37,22,73,79,0,40,219,177, - 249,233,233,123,168,73,10,113,22,50,22,22,129,50,42,183, - 190,246,137,104,79,48,162,22,0,190,70,18,23,19,162,162, - 221,37,65,19,18,162,50,22,50,14,104,94,94,221,164,129, - 0,0,0,0,0,0,0,0,246,0,0,0,162,221,0,162, - 162,162,0,162,50,50,162,50,203,50,94,162,162,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,162,226,221,0,0,0,104,173,221,0,162,0,0,221, - 0,0,0,162,162,0,0,0,0,221,221,162,162,37,162,50, - 37,22,50,0,0,0,0,0,0,122,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,122,42,212,50,50,209,37, - 22,162,22,0,50,162,50,162,35,94,78,0,200,162,50,50, - 37,50,162,162,42,162,0,212,94,40,126,162,0,34,34,34, - 29,47,0,122,46,0,64,0,0,0,0,0,122,0,0,0, - 0,0,162,47,0,64,0,0,0,0,122,0,0,0,0,0, - 0,122,92,212,29,50,0,122,0,0,0,162,162,0,0,0, - 50,200,183,162,122,122,0,0,162,162,122,0,0,50,200,94, - 79,246,122,221,0,0,0,0,0,0,0,42,183,221,221,40, - 0,0,162,0,246,0,0,0,0,162,94,221,0,0,0,0, - 0,0,0,0,212,0,0,221,0,221,0,215,0,0,0,162, - 162,50,50,162,246,40,215,0,0,162,50,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104, - 33,55,55,21,177,162,203,203,37,164,92,137,241,14,164,14, - 92,168,14,73,226,190,0,50,212,212,73,92,14,73,164,164, - 92,104,14,14,14,22,177,0,40,163,0,216,10,164,73,92, - 73,14,73,73,14,92,22,48,0,94,212,92,73,73,73,73, - 73,137,73,73,73,73,73,14,251,162,162,183,104,73,73,104, - 14,22,14,73,190,73,177,177,73,177,142,0,94,104,164,226, - 73,92,92,92,104,73,14,92,226,92,104,103,0,163,246,241, - 22,24,241,14,92,92,92,73,73,73,92,92,222,40,50,0, - 226,203,104,92,190,137,123,92,190,251,137,104,251,190,203,221, - 94,164,22,14,251,14,73,223,73,48,226,190,177,92,14,203, - 0,0,221,0,0,0,0,0,0,0,162,162,0,0,221,162, - 221,0,0,0,162,50,50,50,37,246,162,162,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 0,0,0,0,0,0,0,221,246,221,0,0,0,162,0,221, - 162,0,0,0,0,0,0,0,0,0,0,162,94,50,50,50, - 37,22,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,0,0,0,50,212,50, - 42,50,162,122,183,162,212,162,75,183,162,122,75,162,162,94, - 42,50,42,162,50,183,162,183,162,40,187,183,0,34,34,44, - 29,47,0,122,142,0,64,0,0,122,0,0,0,122,122,0, - 0,0,221,47,0,44,0,0,0,0,0,122,0,0,0,0, - 122,122,226,37,192,40,0,0,122,122,78,162,162,122,0,0, - 200,142,212,0,0,0,122,78,162,162,122,0,0,200,142,40, - 104,221,122,0,0,0,0,0,0,0,0,0,0,221,246,40, - 94,0,0,221,221,0,0,0,94,221,0,221,0,0,0,0, - 0,0,0,0,162,0,0,215,0,0,0,0,162,0,0,221, - 50,50,50,162,94,50,94,0,0,162,50,50,50,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104, - 33,103,55,72,190,162,75,203,50,14,73,62,14,14,50,206, - 233,216,14,31,62,226,0,50,163,14,216,233,73,206,14,14, - 233,73,73,206,41,206,226,0,50,239,122,216,206,10,233,22, - 73,233,41,249,206,249,233,48,0,94,95,104,206,206,233,206, - 14,14,14,14,14,73,73,10,123,162,183,50,46,212,50,113, - 249,60,160,61,14,37,14,14,92,137,104,122,215,46,164,14, - 164,50,216,5,164,14,206,14,73,73,73,129,0,163,227,164, - 73,73,212,212,50,50,203,50,164,164,14,14,177,215,94,221, - 190,164,164,164,212,190,173,162,190,190,164,92,137,164,164,56, - 94,97,104,31,73,73,73,92,73,14,14,14,92,164,221,221, - 0,0,0,162,162,0,162,162,162,162,162,162,162,0,0,0, - 0,0,0,0,0,0,0,0,162,0,0,162,0,0,162,221, - 162,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,40,0,0,0,0,0,0,0,122,221,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,122, - 78,50,78,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,0,122,221,0,0,0,162, - 183,162,50,162,94,183,94,162,97,221,42,122,95,162,78,162, - 50,122,94,50,162,183,162,162,162,40,187,78,0,34,44,44, - 29,47,0,122,46,0,64,0,0,0,0,122,0,0,0,0, - 0,0,94,46,0,64,0,0,122,122,0,0,122,0,0,122, - 122,0,142,212,171,183,0,0,0,0,162,122,122,122,0,0, - 75,29,166,0,0,0,0,162,122,0,122,0,0,203,34,239, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,162,215,212,162,0,0,0,0,162,0,94,162,0,0,0, - 0,162,0,162,0,221,0,0,221,122,162,94,221,0,0,0, - 0,0,0,0,0,221,122,0,0,0,162,50,50,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 33,38,103,72,177,0,241,40,37,73,14,14,92,14,14,73, - 206,73,10,22,137,190,0,50,203,164,249,233,206,73,206,10, - 206,233,206,206,249,206,24,0,227,37,162,73,14,206,22,73, - 113,233,113,14,22,206,62,177,162,122,239,92,73,206,73,73, - 14,37,22,22,22,164,22,22,103,162,162,239,212,73,216,30, - 138,117,160,0,50,37,22,14,22,222,46,122,162,142,164,22, - 37,50,62,31,37,14,164,164,22,50,92,129,0,40,212,241, - 50,0,50,50,50,212,50,246,212,50,162,50,48,40,183,162, - 190,164,212,50,162,162,162,162,212,37,203,40,104,226,200,221, - 94,40,92,164,92,212,22,37,37,37,50,40,94,162,0,221, - 0,0,0,94,162,162,162,0,162,0,0,162,162,162,162,0, - 0,0,0,0,0,0,0,0,0,162,0,221,0,0,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,50,162,0, - 0,0,0,104,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,162,162,0, - 162,0,37,22,0,50,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,47,94,0,0,183,0,0,0,0, - 162,162,94,162,162,162,162,94,75,78,221,122,200,221,0,94, - 37,162,162,50,162,50,50,122,162,40,126,183,0,44,34,44, - 29,47,0,42,142,0,64,0,0,122,0,0,0,0,122,0, - 0,0,183,142,122,44,0,122,0,0,122,0,0,122,122,0, - 0,0,226,37,171,50,0,122,0,122,122,122,122,122,0,0, - 203,171,94,0,122,122,122,122,122,122,122,0,0,203,171,215, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,221,221,0,0,0, - 0,221,162,0,0,0,0,221,221,0,221,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,162,162,162,162,162, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,0,0,0,0,0,0,226, - 33,55,129,72,177,0,75,40,37,206,206,206,233,233,175,233, - 233,73,206,50,130,223,0,50,203,203,206,233,233,249,249,14, - 62,206,31,233,249,206,104,0,227,40,50,10,14,237,233,249, - 73,37,22,14,14,14,206,177,0,0,126,104,14,73,113,14, - 14,37,22,164,22,22,164,22,123,162,42,94,78,230,70,216, - 195,231,82,162,22,14,22,22,22,137,104,122,162,47,104,22, - 22,22,50,50,14,14,37,22,22,50,92,222,0,239,183,104, - 94,221,50,162,50,212,50,50,50,50,221,50,222,50,162,162, - 190,164,164,212,212,50,50,50,246,94,50,212,212,92,40,221, - 94,40,14,212,164,212,94,162,212,212,50,221,162,0,94,162, - 162,162,221,212,162,0,0,0,0,0,0,162,162,0,162,94, - 162,162,162,0,0,0,162,162,221,221,0,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,50,22,50, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 162,0,50,37,162,37,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,104,183,0,0,221,0,0,162,0, - 0,94,0,0,162,162,162,162,163,183,0,122,75,122,0,221, - 162,0,0,37,0,78,22,162,162,239,187,162,0,44,34,44, - 34,59,0,78,142,0,64,0,0,0,0,0,122,0,0,0, - 0,0,162,142,122,44,0,0,122,0,122,122,0,122,122,122, - 122,122,223,50,171,50,0,0,0,0,0,0,122,42,221,212, - 212,171,50,0,0,0,0,0,122,122,42,221,50,212,171,50, - 0,0,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,0,0,0, - 0,0,162,0,0,0,0,0,0,0,122,221,162,0,0,0, - 0,0,0,0,0,0,221,0,0,0,0,0,0,0,162,162, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142, - 197,38,103,72,48,0,241,212,164,14,249,41,206,206,233,249, - 62,216,206,22,31,190,0,212,203,22,206,62,249,22,14,22, - 233,14,14,22,206,233,226,0,163,163,0,216,93,22,14,175, - 22,10,233,206,175,14,206,190,0,78,212,104,14,22,73,73, - 22,37,22,37,22,22,37,14,103,162,227,94,50,128,117,230, - 230,60,82,0,164,22,14,164,22,137,200,0,221,104,14,22, - 22,22,22,22,22,37,37,37,164,50,92,177,0,212,246,92, - 50,162,94,94,162,162,94,94,221,0,0,162,222,40,122,94, - 226,92,37,37,212,50,212,94,94,212,212,212,94,92,212,221, - 183,40,104,22,164,212,50,37,37,50,50,162,50,162,203,226, - 0,162,162,246,0,0,0,0,0,0,221,0,221,94,0,246, - 40,37,50,162,0,162,0,0,162,162,0,221,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 162,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,0,50,162,0, - 162,0,0,0,0,0,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,29,50,162,0,221,0,0,122,0, - 0,162,50,162,50,50,50,94,75,78,122,122,200,0,0,162, - 0,162,0,61,122,50,22,94,162,212,239,227,0,44,44,64, - 29,59,0,42,223,0,64,0,0,122,0,0,0,0,122,122, - 0,0,183,47,122,64,0,122,122,122,0,0,122,122,122,0, - 0,0,177,203,171,227,0,122,122,122,122,122,0,0,0,75, - 37,171,183,0,122,122,122,122,122,0,0,122,203,37,171,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,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,0,0,0,0,0,0,0,0,162,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0, - 0,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104, - 79,38,55,72,48,0,203,212,50,37,206,206,22,22,50,164, - 73,206,73,14,206,223,0,215,40,50,14,14,233,164,14,14, - 206,14,92,14,206,73,226,0,212,239,0,30,110,10,22,14, - 14,73,233,206,206,206,73,226,162,162,239,212,14,14,73,10, - 14,14,14,14,14,14,14,14,31,162,221,162,221,113,93,107, - 30,90,113,164,14,73,206,14,14,206,104,0,221,200,164,92, - 14,14,10,14,206,14,92,14,14,14,73,177,0,163,227,104, - 22,212,37,164,164,164,164,22,164,164,22,37,222,212,122,94, - 104,164,203,40,40,40,40,212,164,203,40,203,203,164,212,0, - 162,40,164,164,164,92,164,14,14,92,14,164,92,92,226,177, - 0,162,94,212,0,162,0,0,162,221,246,0,0,212,50,0, - 94,164,203,50,94,94,162,94,94,50,162,94,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,40,162,0,162,22,50,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,190,187,78,122,94,0,0,0,0, - 0,162,162,162,50,50,162,94,75,42,0,0,126,162,0,162, - 0,50,162,37,162,50,163,78,162,227,187,183,0,44,34,44, - 20,95,0,42,142,0,64,0,0,122,0,0,122,0,0,122, - 122,162,246,142,0,64,0,0,0,122,122,0,0,122,122,122, - 122,122,177,212,171,50,0,0,0,122,122,122,122,122,221,104, - 212,171,50,0,0,0,122,0,122,122,122,56,104,212,171,50, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,0,122,122, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,162,0, - 0,0,0,0,0,0,0,0,0,0,162,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,122,122,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,162,162,0,0,0,0,0,0,0,0, - 0,0,162,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241, - 48,129,48,103,92,0,50,162,162,50,50,163,241,104,104,75, - 40,212,212,212,246,164,0,162,50,162,40,40,215,203,241,203, - 203,40,212,212,221,162,203,0,246,212,162,14,206,40,164,104, - 104,104,203,40,40,215,246,164,162,162,94,221,212,40,40,104, - 104,104,14,104,104,241,164,50,142,162,78,94,122,122,0,0, - 215,221,95,40,40,40,212,163,215,183,75,0,162,40,50,50, - 40,203,40,40,212,203,203,203,203,212,221,104,0,221,246,212, - 40,203,241,75,37,203,203,203,203,203,40,212,104,40,0,246, - 40,221,50,212,246,221,50,212,212,40,94,246,246,246,212,221, - 221,215,246,246,212,212,212,40,212,40,40,212,50,212,94,104, - 0,221,94,94,162,0,0,94,246,94,94,162,0,162,164,212, - 221,212,212,94,221,221,221,94,94,50,50,50,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,221,0,0,162,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,47,94,183,42,50,0,0,0,0, - 0,162,162,122,94,162,94,0,227,162,122,221,97,0,0,0, - 0,162,0,50,122,221,42,162,162,162,183,183,0,44,44,44, - 29,75,0,219,223,0,64,0,122,0,0,0,0,0,0,0, - 162,0,94,47,122,29,0,122,122,0,0,122,122,122,122,122, - 122,0,48,212,15,183,0,122,122,0,0,0,122,78,122,190, - 22,152,183,0,122,122,0,0,0,122,162,0,223,22,152,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,0,0,0,0,0,0,0,122,0,0,0,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,50,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,94, - 221,0,0,0,0,122,0,0,0,221,221,122,0,221,221,162, - 94,183,221,0,0,0,0,0,0,0,0,0,221,221,215,94, - 212,227,221,162,0,0,0,0,0,0,0,0,0,221,0,221, - 221,246,221,183,221,0,0,0,0,0,0,0,221,122,0,0, - 221,215,221,221,221,221,221,221,0,0,0,0,0,122,0,0, - 221,221,215,94,183,221,221,122,162,0,0,0,0,0,0,162, - 0,221,221,221,221,162,215,221,162,221,78,0,0,0,0,0, - 0,221,215,215,183,94,183,0,122,221,122,221,122,0,0,221, - 162,221,212,246,221,0,162,221,162,221,0,221,221,0,0,221, - 0,0,0,0,0,0,0,0,0,0,0,221,0,0,0,0, - 0,0,0,0,0,162,221,221,221,246,94,0,0,0,212,164, - 50,94,162,162,0,50,50,94,162,50,162,50,162,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,221,221,122,0,162,122,0, - 122,122,0,0,122,122,0,0,0,183,0,0,122,0,0,0, - 122,162,0,0,122,0,0,0,0,0,162,162,0,126,163,111, - 95,162,0,183,34,0,64,0,0,122,0,0,0,0,0,122, - 122,0,227,142,122,44,0,0,122,122,0,0,0,122,0,0, - 122,122,177,50,152,50,122,122,122,0,0,122,0,0,122,142, - 212,229,42,0,122,122,0,0,0,122,0,122,142,212,229,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,162,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,162, - 0,162,162,162,162,0,0,162,0,0,162,0,162,162,162,162, - 162,162,162,0,162,162,162,0,162,162,0,162,0,221,162,162, - 0,0,162,221,162,162,0,162,162,94,94,162,0,162,221,162, - 162,162,221,162,162,162,0,162,0,0,162,162,0,162,162,162, - 0,0,0,0,0,0,0,0,162,0,0,122,0,0,162,0, - 0,0,0,0,0,122,0,0,0,0,0,0,0,0,122,122, - 122,122,122,122,0,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,221,221, - 246,246,215,0,0,221,162,0,0,0,0,162,162,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,221,221,94,162,162,0,0,0,162,212, - 162,162,162,50,50,50,37,50,50,162,162,0,0,162,94,162, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,42,223,0,64,0,0,0,0,0,0,0,122,0, - 122,0,183,104,42,44,0,122,122,122,122,122,122,0,122,122, - 122,122,172,50,229,183,0,162,122,122,122,0,0,0,0,223, - 50,152,94,122,162,122,122,122,0,0,0,0,223,50,152,94, - 0,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0, - 0,0,221,162,0,0,162,0,0,122,122,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 164,73,73,92,73,14,14,22,14,14,14,92,14,92,73,14, - 14,92,92,92,92,73,14,92,73,73,73,73,73,73,168,73, - 168,73,168,168,137,168,73,73,73,177,168,73,73,137,73,168, - 137,137,206,137,137,168,137,137,222,168,137,222,137,137,137,222, - 206,137,137,168,168,137,168,168,168,73,73,73,73,168,177,168, - 73,73,168,168,73,177,73,73,73,73,168,73,73,177,168,73, - 73,168,137,168,168,73,73,177,92,92,73,177,168,73,73,73, - 137,177,168,137,177,168,168,177,168,73,177,177,92,190,92,203, - 40,40,221,162,203,40,50,94,221,221,246,162,22,92,92,92, - 92,164,92,168,137,190,73,164,164,164,92,92,92,92,164,92, - 164,50,203,212,0,0,0,221,94,0,162,162,0,0,0,0, - 162,0,162,162,162,162,0,162,162,162,162,0,0,0,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,162,0,0,221,0,162,162,162,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 0,0,0,219,34,0,64,0,0,0,0,0,0,0,0,0, - 122,162,227,47,122,64,0,0,0,122,0,122,122,122,0,122, - 122,0,172,50,152,162,122,122,122,0,122,122,0,0,0,226, - 50,152,50,0,122,122,0,122,0,0,0,221,104,50,152,50, - 40,183,94,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,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,0,0,0, - 0,0,162,0,0,0,0,0,40,183,94,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,103,222,168,177,177,92,164,226,177,84,73,177,168,168,177, - 177,73,84,168,73,168,222,222,222,222,129,222,222,222,251,222, - 251,222,222,129,222,129,228,251,129,251,222,228,129,103,129,228, - 129,103,229,228,228,228,129,228,228,103,103,55,103,103,31,228, - 129,103,168,103,228,103,55,228,228,228,228,228,251,55,103,228, - 228,251,55,55,55,55,228,55,55,55,55,103,55,79,38,79, - 55,38,79,38,79,103,251,228,31,228,55,79,55,55,228,228, - 103,79,55,79,55,79,79,55,79,103,55,103,123,190,104,104, - 104,40,40,226,222,14,203,104,212,221,221,226,137,92,190,48, - 177,48,251,55,222,222,222,228,228,228,228,228,103,228,31,228, - 251,73,164,94,162,0,0,162,162,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,241,212,94,162,162,0, - 0,221,0,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,203,50,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,190,212,0,0,221,221,0,0,212,104,50,0,221, - 212,212,162,0,0,0,162,241,241,0,0,0,0,0,0,0, - 0,0,0,162,0,163,226,177,222,48,177,177,177,177,84,92, - 177,226,92,92,92,209,92,24,92,209,92,24,92,14,209,209, - 241,241,22,22,203,37,37,50,50,50,50,50,50,164,37,241, - 221,0,0,183,223,0,64,0,122,0,0,0,0,0,0,0, - 0,0,94,142,42,44,0,122,122,122,122,0,0,122,122,122, - 122,122,177,50,152,221,0,122,122,0,0,0,122,0,0,104, - 50,152,0,0,122,122,0,122,122,122,122,0,104,37,152,221, - 212,221,94,0,0,0,0,0,0,0,0,0,0,0,0,212, - 162,162,162,0,0,0,0,162,0,0,0,0,0,0,94,50, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,221,221,212,221,94,0,0,0,0,0, - 0,0,0,0,0,0,0,212,162,162,162,0,0,0,0,0, - 0,0,0,0,0,0,94,50,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,33,55,55,103,222,222,222,222,135,135,222,177,48,168,177, - 168,177,84,177,226,177,168,177,222,222,222,222,222,135,222,253, - 253,253,168,129,168,135,129,129,31,229,135,129,222,228,135,31, - 229,31,178,229,135,222,222,229,228,151,222,151,135,151,222,135, - 229,222,46,229,228,151,103,129,229,55,151,228,229,129,103,229, - 129,129,251,103,173,228,151,103,173,228,55,173,55,55,38,173, - 228,228,55,55,38,103,151,228,229,228,55,55,129,229,55,15, - 228,133,55,229,173,133,173,55,151,173,103,229,251,104,40,142, - 104,164,173,48,104,40,203,164,221,0,203,173,226,50,190,92, - 24,129,129,103,129,129,129,129,129,228,129,129,228,55,228,229, - 48,164,0,0,221,212,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,46,40,0,0,162,212, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,212,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,163,163,163,162,0,0,0,0,0,162,162,0,0,0,75, - 46,226,163,0,0,0,50,135,223,162,0,0,0,0,0,0, - 0,0,162,162,0,162,46,48,135,129,129,253,222,223,135,135, - 135,253,24,223,226,223,135,177,223,253,223,223,253,29,177,177, - 223,177,223,223,209,241,24,46,241,209,46,209,46,226,24,177, - 163,0,0,219,34,0,64,0,0,0,0,0,0,0,0,0, - 0,0,183,104,42,64,0,0,122,122,122,122,0,0,0,122, - 122,0,177,50,171,162,122,122,122,0,122,0,122,122,0,203, - 50,152,162,0,122,122,0,122,0,0,122,0,212,50,171,162, - 212,0,246,94,0,0,0,0,0,0,0,0,0,0,0,162, - 94,162,221,0,0,122,221,0,162,0,0,0,0,162,221,50, - 0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,162,183,162,212,0,246,94,0,0,0,0, - 0,0,0,0,0,0,0,162,94,162,221,0,0,122,221,0, - 0,0,0,0,0,162,221,50,0,94,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,122, - 21,66,38,102,38,33,38,38,21,38,38,197,38,55,38,55, - 55,55,55,228,55,103,229,55,103,55,55,229,55,103,55,103, - 38,129,55,55,103,55,228,129,38,38,55,38,55,55,55,55, - 55,229,24,229,151,229,55,103,55,55,55,55,38,38,55,38, - 55,38,55,228,38,55,103,151,55,151,55,55,55,55,38,55, - 55,55,228,151,103,151,55,55,55,133,55,55,151,228,38,55, - 133,38,55,38,38,38,55,55,55,133,173,38,38,103,151,228, - 173,151,55,129,55,55,55,55,55,103,173,48,190,104,164,142, - 46,48,55,135,226,177,241,246,0,75,104,212,40,142,223,177, - 229,135,48,142,129,151,228,228,229,228,151,228,151,55,129,190, - 162,94,203,40,212,212,162,246,162,0,94,162,162,162,0,0, - 0,0,212,162,0,0,0,0,0,0,162,162,162,0,40,223, - 163,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,46,104,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,215,104,75,215,50,162,0,0,0,0,122,104,59,46,20, - 135,151,229,48,229,135,135,135,46,0,0,0,0,0,0,0, - 0,0,0,0,221,40,47,162,163,34,135,228,229,129,229,135, - 223,229,135,135,135,20,135,135,135,15,135,48,135,20,135,229, - 135,135,135,253,29,177,15,135,135,135,135,15,135,15,229,133, - 46,0,0,221,29,0,64,0,0,0,0,0,0,0,122,0, - 0,0,246,47,56,44,0,122,122,0,0,0,122,122,122,0, - 122,0,172,50,245,162,0,122,0,0,122,122,122,122,122,94, - 37,152,162,122,122,0,0,122,122,122,122,122,212,37,152,221, - 203,0,0,162,0,0,0,0,0,162,0,162,0,0,221,162, - 94,162,162,0,0,221,0,0,0,0,0,0,0,162,221,221, - 37,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,203,0,0,162,0,0,0,0, - 0,162,0,162,0,0,221,162,94,162,162,0,0,221,0,0, - 0,0,0,0,0,162,221,221,37,37,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0, - 66,170,66,66,66,66,66,66,66,250,66,66,66,66,134,66, - 134,66,66,134,134,43,33,143,134,134,43,134,72,88,72,72, - 156,103,88,72,197,88,197,33,72,33,242,72,197,197,100,197, - 38,197,38,55,38,201,197,38,38,197,55,38,103,103,229,38, - 197,197,38,38,33,33,197,197,72,33,197,33,88,33,33,38, - 38,55,129,103,55,55,197,102,201,197,197,38,55,201,38,72, - 33,228,228,55,55,201,55,55,55,55,228,229,38,33,55,55, - 38,201,38,55,38,38,33,38,33,33,151,103,129,48,129,251, - 103,38,55,151,48,48,200,0,221,212,162,0,40,50,47,104, - 200,162,75,46,135,55,151,55,55,55,55,38,55,31,223,241, - 212,40,241,212,0,0,221,0,40,40,40,50,94,162,0,0, - 0,0,94,162,94,200,94,221,94,40,212,0,0,162,0,162, - 0,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,183,94,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 221,0,0,0,0,183,0,0,40,183,227,59,229,38,197,33, - 55,55,55,151,33,38,135,163,0,0,0,0,0,0,0,0, - 0,0,0,221,0,94,226,75,122,47,223,229,38,38,38,229, - 229,133,151,151,229,151,151,151,229,229,20,151,229,229,151,151, - 151,151,186,55,229,151,229,151,133,151,151,151,151,133,103,102, - 200,0,0,183,29,221,64,0,0,0,0,0,0,0,0,0, - 0,0,183,104,42,64,0,0,122,122,122,0,122,122,122,122, - 122,0,48,50,245,122,0,122,122,0,122,122,0,0,221,0, - 212,171,162,0,122,0,0,122,122,0,0,0,0,40,171,162, - 212,162,0,0,0,0,0,221,162,162,0,0,162,162,162,162, - 0,162,0,0,0,0,0,0,0,0,0,0,221,221,94,37, - 203,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,221,0,0, - 0,0,0,0,0,0,0,0,212,162,0,0,0,0,0,221, - 162,162,0,0,162,162,162,162,0,162,0,0,0,0,0,0, - 0,0,0,0,221,221,94,37,203,221,0,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,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,0,0,0,246,0,0,0,0, - 20,228,253,142,46,46,142,34,142,223,142,223,223,177,190,190, - 48,48,48,129,15,135,24,177,129,135,135,129,135,48,20,29, - 20,226,29,253,177,223,223,24,177,24,44,223,142,142,226,46, - 241,47,59,35,59,59,34,35,59,97,203,187,26,42,183,187, - 95,200,95,46,29,20,20,48,15,20,129,135,129,48,253,48, - 253,178,177,177,253,129,48,172,190,29,172,229,48,172,223,172, - 253,29,135,177,253,48,223,177,135,226,177,226,226,135,48,222, - 135,177,253,222,154,129,229,129,229,229,135,135,135,228,229,151, - 55,229,222,223,200,239,212,0,212,94,0,0,0,0,221,162, - 0,0,94,226,226,226,24,177,177,177,177,253,24,92,226,142, - 104,164,212,162,0,0,162,0,50,162,94,0,0,0,0,0, - 0,0,0,0,94,246,0,162,227,50,75,203,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,221,0,0, - 0,0,0,0,200,46,0,221,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,183,59,34,135,133,55,38,38,135,135, - 229,55,38,38,129,200,162,0,0,0,0,0,0,221,246,221, - 0,40,0,0,221,40,212,104,200,162,47,50,200,229,38,38, - 33,38,38,33,197,197,38,197,102,197,133,38,197,38,197,33, - 102,33,102,102,33,38,102,197,102,33,100,33,102,33,100,143, - 223,0,0,78,223,0,64,0,0,0,0,0,0,0,0,0, - 0,0,221,200,56,64,0,0,0,0,0,0,0,0,122,0, - 122,0,48,227,171,122,0,0,0,0,0,0,0,122,0,0, - 94,224,162,0,122,0,0,0,0,0,122,0,122,162,224,162, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,0, - 0,0,0,0,0,0,0,0,0,0,0,50,50,0,162,50, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,162,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,0,0,0,0,0,0,0, - 0,0,0,50,50,0,162,50,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,163,162,0,0,0,0,0,0,0,22,0, - 0,0,0,0,0,246,50,0,0,0,0,0,0,162,162,0, - 0,0,0,0,0,0,162,183,183,162,122,0,0,0,0,0, - 0,0,0,162,122,162,0,162,162,162,162,162,50,50,162,94, - 221,162,162,162,162,0,162,0,162,212,246,221,0,0,0,0, - 0,0,0,0,0,0,0,221,0,0,0,0,162,162,0,0, - 0,0,0,0,0,0,40,94,0,0,0,212,104,162,122,0, - 0,0,0,203,251,221,162,183,79,137,246,104,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,221,0,0,0,0,0,0,0,162,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,94,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,221,94,50,75,241,163,221,0,0, - 162,75,241,241,50,0,0,0,0,0,0,0,0,78,0,0, - 0,221,0,0,94,94,221,212,40,162,246,212,0,0,50,75, - 226,24,241,35,46,142,24,226,92,46,46,223,223,223,178,29, - 223,190,209,92,24,46,226,226,24,226,226,223,226,142,92,142, - 94,0,0,0,75,0,224,0,0,0,0,0,0,0,0,0, - 0,0,221,215,56,99,0,0,0,0,0,0,0,0,0,0, - 0,0,24,162,171,59,75,200,200,200,97,122,26,122,183,122, - 40,200,75,241,200,200,200,97,42,183,122,183,162,95,241,200, - 0,0,0,0,0,0,0,0,0,0,162,221,221,162,162,0, - 0,0,0,0,0,0,0,0,0,0,0,37,50,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,221,221,162,162,0,0,0,0,0,0,0,0,0, - 0,0,0,37,50,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,200,129,46,239,221,0,0,0,0,0,135,226, - 94,0,0,0,0,46,135,162,0,0,0,0,0,163,24,162, - 0,0,0,0,0,0,75,24,35,46,126,94,0,0,122,162, - 50,50,94,50,50,50,50,50,50,212,37,164,203,164,37,164, - 37,37,164,37,203,164,203,50,163,178,223,142,47,227,0,0, - 0,94,212,0,221,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,172,104,0,0,162,229,201,226,95,50, - 0,0,0,92,173,221,221,172,92,104,48,6,212,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,162, - 162,0,0,0,0,0,0,0,104,246,0,0,0,0,0,0, - 0,0,0,162,221,0,0,0,0,0,0,0,0,0,0,0, - 162,162,162,221,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,78, - 122,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0, - 0,0,0,0,0,0,94,164,50,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,64,166,0,0,0,0, - 162,183,235,8,171,166,0,0,0,122,0,0,0,44,171,171, - 229,151,49,15,44,0,245,133,133,133,133,133,186,133,133,133, - 38,152,235,229,122,15,102,38,38,133,38,133,55,133,133,38, - 186,8,223,0,152,38,151,151,151,55,151,151,38,151,38,186, - 55,55,171,55,29,15,229,151,151,133,229,133,229,151,135,29, - 0,0,0,0,0,0,0,0,0,0,162,183,94,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,183,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,46,151,226,59,162,0,0,0,0,0,253,253, - 37,0,0,0,0,200,135,50,0,0,0,0,0,95,24,162, - 0,0,0,0,0,0,75,46,47,59,126,221,0,162,122,215, - 212,212,40,212,203,203,164,241,164,241,241,241,241,104,241,104, - 241,164,104,164,164,164,164,203,203,223,29,142,59,227,0,221, - 162,221,203,162,0,221,203,221,0,0,0,0,0,162,162,0, - 0,0,0,0,162,0,48,104,0,0,162,135,103,142,47,187, - 0,0,0,221,0,0,162,173,0,221,0,104,0,221,0,0, - 246,246,0,0,0,0,0,0,221,0,0,0,0,0,0,221, - 162,0,0,0,0,0,0,0,104,246,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,221,0,0,0,0,0,0, - 246,212,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,183, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,221,215, - 78,0,0,0,0,0,246,203,203,221,0,0,0,0,221,122, - 0,221,162,183,162,78,122,122,0,0,245,15,0,0,0,0, - 162,95,192,235,186,111,0,0,75,200,183,78,162,133,38,151, - 133,38,235,245,29,0,133,33,38,102,197,102,38,197,100,33, - 72,186,158,245,42,186,134,72,143,72,143,72,88,72,72,134, - 72,7,38,122,245,30,66,30,66,43,66,156,66,156,66,30, - 66,179,152,72,158,197,192,197,20,33,229,33,135,33,44,38, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,162,0,0, - 0,0,0,0,35,228,190,47,187,0,0,162,122,162,29,135, - 37,0,0,0,0,47,154,203,0,0,0,0,0,111,223,162, - 0,0,0,0,0,0,200,35,200,47,95,183,0,94,94,37, - 104,164,226,226,92,92,223,73,92,190,137,177,190,137,190,226, - 190,226,92,190,190,92,226,92,203,44,253,223,47,126,0,221, - 94,212,223,221,0,172,18,0,0,0,40,0,0,246,162,162, - 0,0,0,0,221,246,172,226,0,0,42,20,55,172,111,239, - 0,0,0,0,0,0,221,173,246,215,221,246,221,40,221,246, - 40,221,162,0,0,0,0,221,221,162,162,0,0,0,0,0, - 0,0,0,0,0,0,0,0,40,246,0,0,0,0,0,162, - 0,162,0,0,0,0,0,0,0,40,0,0,0,0,0,221, - 162,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,221,0,0,0,0,40, - 200,212,94,162,94,0,0,50,40,239,0,0,0,0,183,162, - 0,0,221,0,183,163,227,50,94,0,183,162,0,0,0,0, - 0,0,0,0,162,162,0,0,200,24,50,162,42,162,162,162, - 94,42,122,162,221,42,64,162,94,94,94,50,94,94,50,187, - 50,50,162,50,78,35,212,50,163,37,163,37,163,163,22,163, - 163,219,37,122,171,37,22,163,209,22,22,241,241,241,22,241, - 241,14,187,163,183,163,183,22,227,22,42,75,122,37,56,22, - 0,162,94,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,94,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,111,56,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,162,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,47,229,178,47,166,0,0,0,0,212,229,177, - 212,0,0,0,0,172,44,212,0,0,0,0,0,59,223,162, - 0,0,0,0,0,0,47,24,47,59,163,183,0,215,221,37, - 104,241,104,104,226,92,142,226,226,92,190,226,190,48,73,226, - 48,226,92,177,190,190,73,226,164,44,48,223,47,166,0,221, - 94,241,92,221,221,40,104,0,162,162,212,0,0,212,0,162, - 0,0,0,0,0,0,172,104,0,0,42,135,55,135,59,166, - 0,0,0,0,0,0,0,173,0,246,0,40,246,221,162,40, - 221,221,0,0,0,221,0,246,246,221,221,221,0,0,162,0, - 0,0,0,0,0,0,0,0,104,221,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,40,0,0,94,162,162,50, - 221,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,42,183,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,215,212,0,0,0,221, - 104,104,241,40,37,0,0,50,95,227,0,0,0,0,221,122, - 122,94,227,94,221,212,47,226,104,0,95,166,0,0,0,0, - 162,183,183,183,122,78,0,0,223,24,183,162,187,126,219,26, - 166,42,183,42,78,221,224,122,42,183,56,219,122,183,42,183, - 42,26,122,221,219,64,42,42,42,42,42,42,42,42,42,42, - 42,122,122,0,152,122,26,42,26,26,26,26,26,26,26,42, - 42,42,122,122,162,42,122,26,42,42,42,42,122,219,221,219, - 0,221,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0, - 0,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,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,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,162,0,0,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,253,55,223,44,126,0,0,0,0,221,197,29, - 50,162,0,0,0,129,253,50,0,0,0,0,0,46,135,78, - 0,0,122,0,0,0,46,46,75,47,95,50,0,94,183,40, - 164,104,226,92,142,226,226,226,223,226,177,190,226,190,190,226, - 226,190,223,92,73,226,190,177,163,47,20,142,59,126,122,221, - 215,40,190,0,0,0,246,162,221,162,94,0,162,40,162,162, - 162,0,0,0,0,0,172,226,0,0,91,229,38,172,59,126, - 0,0,0,0,0,0,221,173,122,221,0,221,0,0,221,246, - 246,246,0,0,221,221,221,221,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,40,215,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,0,0,0, - 162,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,111,78,183,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,94,190,162,0,0,0, - 227,104,241,164,212,0,239,163,40,187,162,0,0,0,0,0, - 0,183,40,212,183,162,246,203,104,122,20,34,0,0,0,0, - 221,42,150,47,142,200,0,122,253,190,78,0,78,20,99,44, - 59,141,59,47,241,0,29,29,172,29,190,29,29,29,224,44, - 243,254,190,223,183,20,142,172,29,172,29,34,20,254,99,47, - 150,219,177,162,245,229,129,229,129,229,129,229,129,229,135,150, - 29,12,190,129,46,129,15,129,129,129,229,135,150,20,26,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,0,0,0,162,0,0,0,0,0,0,0,0, - 0,0,0,0,129,55,29,47,111,122,0,0,0,221,197,251, - 183,0,0,0,0,222,103,183,0,0,0,0,0,46,129,162, - 0,0,0,0,0,0,47,46,163,59,227,183,0,212,42,40, - 241,104,104,226,142,226,190,177,190,190,177,48,177,48,190,177, - 190,177,190,190,190,226,226,48,164,200,223,226,99,126,0,78, - 183,75,226,221,221,0,221,162,221,221,94,0,94,212,94,221, - 0,0,221,162,0,0,48,92,0,221,162,229,201,172,47,42, - 0,0,0,0,0,0,221,173,56,122,0,0,221,246,246,221, - 246,246,0,0,221,221,0,221,0,0,0,0,0,0,0,246, - 221,0,0,0,0,0,0,0,215,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,50,94,162,162,221,94, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 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,187,163,0,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,200,203,162,42,94, - 0,40,104,203,212,0,223,209,221,0,0,0,0,0,0,0, - 0,0,0,0,0,122,122,0,163,162,47,200,0,0,0,122, - 162,42,187,40,241,212,0,122,253,177,111,162,183,47,95,104, - 224,219,95,241,226,122,34,104,104,46,200,104,104,104,166,104, - 219,187,104,104,219,171,142,172,142,172,190,190,48,59,59,47, - 26,42,48,0,245,251,129,129,129,129,129,251,129,173,129,8, - 20,12,48,129,251,129,129,129,129,129,251,129,12,20,17,135, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,122,219,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,162,162,162,0,0,0,0,0,0,0,0, - 0,0,0,0,251,55,223,44,111,162,0,0,0,221,201,55, - 50,0,0,0,0,48,201,37,0,0,0,0,0,24,228,50, - 0,0,122,0,0,0,35,142,163,200,126,94,162,95,126,75, - 104,46,104,226,223,223,223,190,223,190,48,48,135,48,177,172, - 48,20,48,177,48,177,48,253,241,142,29,190,47,95,0,163, - 126,200,223,122,221,0,162,0,221,0,162,0,221,221,221,162, - 0,162,0,0,0,221,48,190,0,221,26,229,201,20,59,187, - 0,0,0,0,0,0,221,38,0,122,0,0,221,246,221,246, - 221,0,221,221,221,0,246,0,0,0,0,0,221,40,246,221, - 221,221,221,221,221,0,0,0,221,221,0,0,0,221,0,0, - 0,0,94,94,221,94,94,212,162,0,221,162,162,162,50,50, - 212,162,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,95,142,162,0,0,0,0,0,0,0,221,104,34,46,59, - 183,122,200,46,37,122,223,177,94,0,0,0,0,0,0,0, - 0,0,0,0,0,0,227,183,78,122,0,0,0,0,122,122, - 78,162,0,0,221,122,0,26,135,223,166,122,212,0,0,0, - 0,0,0,215,142,219,59,0,0,122,221,122,122,122,0,0, - 0,0,0,0,227,47,0,0,0,0,0,0,0,0,0,0, - 0,0,135,162,171,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,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,132,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,162,162,0,0,162,162,0,0,0,0,0, - 0,0,0,162,228,103,177,142,141,122,0,0,0,221,201,79, - 22,122,0,0,0,48,201,164,0,0,0,0,0,35,55,50, - 0,0,122,0,0,0,46,47,75,46,95,183,162,241,224,200, - 104,46,226,142,142,223,223,223,223,20,135,135,129,229,129,135, - 129,135,129,129,129,129,135,251,241,223,253,142,59,183,0,59, - 95,200,172,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,0,0,190,92,0,0,42,151,38,190,95,183, - 0,0,0,0,0,0,0,79,0,0,221,246,221,221,221,40, - 221,0,0,0,0,0,221,0,221,0,0,246,40,40,40,246, - 221,0,0,0,0,0,0,0,221,0,0,221,221,94,0,221, - 0,0,162,212,221,94,221,212,162,162,162,162,162,162,94,162, - 94,94,162,0,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,200,221, - 0,122,20,142,221,0,0,0,0,0,0,122,227,34,29,223, - 44,46,200,142,75,122,44,241,221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,94,126,122,0,0,0,0,0,162, - 42,221,0,0,166,239,0,26,154,135,187,122,126,0,0,0, - 0,0,122,219,142,42,64,122,183,183,166,219,166,26,166,95, - 200,95,187,162,187,64,0,0,0,0,0,0,0,0,0,0, - 0,0,135,162,229,122,0,0,0,0,0,0,0,0,0,0, - 0,59,0,0,0,0,0,0,0,0,0,0,0,0,0,97, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,40,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 40,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,254,12,12,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,162,0,0,0,162,0,0,0,0,0, - 0,0,0,221,228,55,29,44,111,162,0,0,0,221,38,201, - 104,0,0,0,0,48,55,164,0,0,0,0,0,142,55,212, - 0,0,122,0,0,0,200,46,241,46,95,50,42,35,75,46, - 104,142,142,226,142,223,172,177,190,172,135,135,129,129,229,129, - 135,135,135,135,135,253,135,129,46,34,48,142,64,126,0,97, - 59,47,48,56,215,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,190,104,0,0,50,229,103,223,224,126, - 0,0,0,0,0,0,221,173,42,42,221,40,246,246,246,246, - 221,0,0,122,0,0,0,221,0,0,221,221,221,221,94,40, - 0,162,221,0,0,0,0,221,0,221,0,0,221,221,0,0, - 0,0,94,221,221,221,162,37,50,246,162,162,0,162,0,221, - 40,221,94,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,227,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,75,34,142, - 95,162,183,75,47,122,0,0,0,0,0,227,221,46,20,29, - 223,34,226,223,104,122,223,212,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,122,183, - 162,78,0,0,111,227,0,17,135,48,163,42,126,0,0,0, - 0,0,122,227,200,42,20,35,142,24,24,223,223,44,223,226, - 46,35,35,47,35,64,0,0,0,0,0,0,0,0,0,0, - 122,0,135,26,229,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,0,0,0,0,0,0,200, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 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,50,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,183,166,150,243,122,26,0,0,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,103,55,48,34,224,122,0,0,0,221,197,79, - 241,0,0,0,0,48,201,164,0,0,0,0,0,223,55,37, - 0,0,122,0,0,0,35,226,241,241,166,183,122,35,224,35, - 142,226,142,223,142,223,20,253,253,20,135,15,129,229,129,229, - 229,229,129,229,48,222,129,222,46,223,129,223,47,166,0,75, - 59,59,48,122,183,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,190,104,0,0,183,151,79,190,59,111, - 0,0,0,0,0,0,0,173,0,221,221,246,221,246,246,221, - 0,0,0,78,0,94,221,221,0,0,221,221,221,221,221,162, - 0,0,0,0,0,0,0,162,0,0,0,221,0,0,0,0, - 0,0,221,221,0,162,221,221,162,246,0,0,0,162,162,0, - 203,94,212,94,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,0,0,0,0,0,0,122,0,0,0,0,0,183,142,29, - 142,94,221,122,95,0,0,0,183,78,0,47,142,42,35,29, - 34,223,24,24,46,78,177,75,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,183, - 162,122,0,0,95,239,0,187,135,20,97,183,163,0,0,0, - 0,0,42,183,0,219,34,162,0,0,0,0,162,0,0,0, - 0,0,0,0,99,44,0,0,0,0,0,0,0,0,0,0, - 122,0,135,122,171,122,0,0,0,0,0,0,0,0,0,0, - 162,171,0,0,0,0,0,0,0,0,0,0,0,0,0,246, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,94,221,0,0,0,0,0,162, - 0,0,0,0,0,162,212,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 94,221,0,0,0,0,0,162,0,0,0,0,0,162,212,40, - 0,0,0,126,0,122,26,0,26,212,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,162,0, - 0,221,162,0,0,0,162,0,162,0,0,0,0,0,0,0, - 0,0,0,0,55,79,253,29,59,78,0,0,0,0,201,201, - 164,0,0,0,0,222,55,14,221,0,0,0,0,223,55,22, - 0,0,122,0,0,0,24,223,200,104,126,162,78,35,224,47, - 104,47,226,142,190,142,29,29,190,15,135,129,229,229,229,129, - 135,135,135,135,129,229,129,135,200,48,222,29,47,95,162,224, - 224,35,48,221,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,142,104,0,0,50,229,33,177,59,95, - 0,162,0,0,0,0,0,173,0,0,0,0,0,0,221,0, - 0,0,0,0,221,246,221,221,0,0,221,0,0,0,162,221, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,221,0,0,221,0,0,221,0,162,0, - 104,212,162,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,94,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,187,219,0,219,132,183,122,95,35, - 183,0,0,0,162,0,122,95,239,97,126,142,15,29,64,29, - 20,29,29,29,35,122,35,212,0,0,0,0,0,0,0,0, - 111,183,95,64,224,95,0,0,0,0,0,0,0,0,162,78, - 122,183,40,0,111,40,0,187,229,129,163,183,111,0,0,0, - 0,0,42,42,0,26,29,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,34,0,0,0,0,0,0,0,122,219,0, - 0,122,135,42,229,0,0,0,0,0,0,122,0,122,122,162, - 162,245,0,0,0,0,0,0,122,0,122,0,122,122,122,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,162,212, - 203,0,0,0,0,164,92,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,212,203,0,0,0,0,164,92,40, - 0,0,0,0,0,0,0,0,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,0,0,0, - 0,0,0,221,103,38,20,29,64,42,162,0,0,221,38,18, - 24,0,0,0,0,135,55,14,0,0,0,0,0,223,201,212, - 0,0,122,0,0,0,142,222,24,142,126,94,183,44,59,47, - 142,35,29,223,29,223,223,172,223,172,20,129,229,151,135,229, - 229,135,229,229,135,229,135,222,59,129,129,223,59,141,162,97, - 224,47,20,94,183,221,142,251,251,129,190,48,190,48,48,48, - 172,173,173,173,173,173,173,226,172,190,203,229,197,104,59,95, - 0,162,183,215,40,95,47,172,104,104,40,40,221,221,246,104, - 104,104,47,246,246,221,221,246,40,40,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,162,50,94,162,162,0,0,212,164,162,221,94,94,162,0, - 212,50,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,0,0,0,0,0,0,221, - 221,221,183,246,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,0,111,64,182,59,142,224,59, - 0,0,224,59,0,0,0,34,15,221,126,229,151,135,20,29, - 35,200,163,246,94,0,162,0,0,0,0,0,0,0,122,162, - 183,29,40,166,34,171,200,162,0,0,0,0,0,0,162,78, - 0,183,64,221,109,227,0,61,229,253,111,183,95,0,0,0, - 0,0,42,26,0,219,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,99,34,0,0,0,0,0,0,0,0,141,42, - 0,0,135,0,245,95,78,122,122,162,0,122,122,122,162,183, - 162,245,40,42,0,122,162,0,122,122,122,122,122,122,42,95, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,94,0,0, - 212,142,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,221,103,197,15,20,64,183,0,0,0,162,201,220, - 226,183,0,0,0,48,201,241,221,0,0,0,0,223,38,37, - 0,122,122,0,0,0,226,251,223,223,75,183,122,35,59,47, - 226,29,142,29,172,29,20,20,223,20,129,151,103,229,229,229, - 229,229,151,229,229,229,129,129,142,228,222,190,47,163,0,59, - 59,47,20,215,227,0,40,190,190,251,48,48,48,48,48,251, - 190,129,173,173,48,173,251,190,137,48,203,151,79,47,59,111, - 0,183,212,227,40,40,40,190,142,190,104,164,212,40,142,190, - 142,190,104,40,246,221,212,246,40,221,0,0,162,246,212,221, - 0,0,0,0,221,0,0,0,0,0,0,0,215,94,122,221, - 40,164,212,246,94,94,162,162,94,203,212,37,37,50,162,221, - 40,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,162,0,0,0,0,221,221,221, - 221,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,42,59,99,64,29,172,29, - 183,0,47,15,0,0,0,44,38,29,42,64,223,47,97,163, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122, - 122,44,171,0,162,20,29,64,219,122,0,122,0,0,122,78, - 0,122,64,221,95,95,0,182,103,178,75,187,163,0,0,0, - 0,0,219,219,122,219,44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,44,0,0,0,0,0,0,0,0,219,122, - 122,122,48,122,245,203,0,0,0,0,0,0,0,0,0,162, - 122,245,203,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,0,0,0,0,162,0,0, - 212,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,228,201,135,15,44,94,0,0,0,221,201,201, - 24,0,0,0,0,48,103,14,0,0,0,0,0,223,201,212, - 0,0,122,0,0,0,223,228,172,190,224,183,183,35,139,47, - 142,142,223,223,29,223,20,20,29,20,229,229,151,129,229,229, - 135,229,129,135,135,229,229,229,35,55,222,223,99,95,0,59, - 59,59,20,94,227,0,0,0,0,0,0,0,0,221,0,0, - 0,0,0,0,0,0,104,104,0,0,162,197,79,46,59,95, - 0,0,0,0,0,0,0,142,104,203,40,40,246,212,40,226, - 104,246,40,246,246,0,221,162,221,0,0,0,0,212,92,246, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 162,162,162,162,221,50,162,162,0,162,212,37,50,50,162,212, - 212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,0,0,0,0,0,246,212,246, - 246,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,254,150,64,223,29,20, - 34,64,29,15,29,187,95,224,229,29,212,94,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,59,44,99,47,29,20,34,56,0,0,0,0,122,122, - 0,56,64,221,224,239,0,109,151,135,111,166,126,0,0,0, - 0,0,219,183,0,132,44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,64,0,0,0,0,0,0,0,0,42,42, - 122,122,48,122,245,200,0,0,0,122,0,0,0,0,0,0, - 0,245,200,0,0,0,122,0,0,0,0,0,0,0,0,221, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,50,0, - 0,50,162,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,122,0,122,122,122, - 122,122,122,221,228,18,15,15,44,183,219,235,219,56,201,79, - 226,56,0,0,0,135,201,241,162,0,0,0,0,223,55,241, - 0,122,122,0,0,0,177,228,253,223,200,183,183,35,111,35, - 223,44,142,34,223,20,20,48,20,20,229,135,229,229,229,229, - 229,229,229,229,129,135,135,129,142,79,135,223,95,166,0,224, - 224,46,20,215,40,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,142,104,0,0,187,72,55,104,95,126, - 0,0,0,0,0,0,0,172,190,0,0,246,104,40,40,251, - 104,0,246,246,221,221,162,246,0,0,0,0,0,246,104,94, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,162, - 0,0,0,162,162,246,162,162,0,94,0,221,162,50,162,94, - 50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,221, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,0,0,0,0,0,0,0,0,187,64,99,64,20,29,20, - 15,15,15,229,29,224,64,0,0,162,0,122,122,0,0,78, - 0,0,0,0,0,0,0,0,0,0,0,42,122,0,0,0, - 0,183,183,221,59,34,192,29,29,122,166,122,0,0,0,122, - 0,56,47,0,59,227,162,75,103,135,126,187,126,0,0,0, - 0,0,42,26,0,219,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,171,183,122,0,0,0,0,183,42,254,183, - 122,42,135,0,245,172,0,183,122,0,0,0,0,0,0,183, - 0,245,172,0,183,122,0,0,0,0,0,0,0,162,122,95, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,122,122,122,122,122,42,122,26,0,0,42,26,26, - 26,26,26,26,12,26,12,12,26,12,12,12,8,12,12,8, - 8,8,8,26,228,55,135,171,44,187,42,243,150,221,201,197, - 226,0,0,0,0,253,201,241,162,0,0,0,0,223,103,241, - 0,0,122,0,0,0,177,103,222,226,224,50,183,44,59,47, - 142,142,223,29,142,29,135,20,20,20,229,229,151,229,229,229, - 229,229,229,229,135,229,135,135,223,201,135,223,75,126,162,224, - 59,59,135,183,166,0,0,0,0,162,162,0,0,0,162,162, - 162,162,0,0,0,0,104,104,0,0,183,242,228,142,95,187, - 0,162,0,0,0,0,0,251,190,0,0,94,203,203,164,172, - 104,221,246,246,221,221,0,0,0,0,0,122,122,40,92,212, - 0,221,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,221,162,0,212,221,0,162,212,0,0,0,221,221,0, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,221,0,0,0, - 0,0,0,0,0,0,0,0,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,215,0,0,0,0,0,0,0,219,214,64,225,15,20,59, - 163,50,95,59,0,166,20,95,0,0,0,0,0,0,0,0, - 122,183,42,0,0,0,0,0,0,0,0,78,122,42,0,0, - 0,132,171,47,221,239,20,171,20,42,64,219,0,0,0,122, - 221,183,44,122,224,227,122,109,55,135,95,227,126,0,0,0, - 0,0,183,42,0,12,35,0,0,0,0,0,0,0,0,0, - 0,0,0,0,150,29,254,219,122,219,254,187,215,150,99,219, - 122,42,135,0,245,229,95,0,0,122,0,0,0,0,122,42, - 122,245,229,95,0,0,122,0,0,0,0,42,42,42,17,20, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162, - 183,0,0,122,78,122,122,0,0,0,0,0,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,183,0,0,122,78,122,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,42,26,26,0,26,26,26,26,26,42,0,26,26,26, - 26,26,26,26,26,26,26,26,26,26,17,42,0,12,8,12, - 12,12,12,12,12,12,12,12,8,26,12,12,12,26,12,12, - 26,17,26,42,55,79,135,229,44,95,42,26,219,0,201,79, - 177,122,0,0,0,135,55,92,162,0,0,0,0,253,103,22, - 0,0,42,0,0,0,222,55,222,177,111,126,42,44,59,35, - 34,223,142,29,223,29,20,253,253,20,135,129,151,229,229,20, - 229,151,229,20,135,229,129,129,223,103,222,142,59,227,0,59, - 59,59,15,183,40,0,122,162,0,0,122,162,78,162,122,122, - 122,122,122,0,0,0,142,241,162,162,163,72,103,46,97,95, - 0,0,0,0,162,0,0,48,142,0,0,40,172,172,190,104, - 246,246,221,40,0,0,0,221,0,0,40,47,95,164,104,221, - 221,227,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,162,0,0,50,212,0,0,40,0,0,0,162,0,0, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,162,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,94,163,94,0, - 0,0,0,0,0,0,122,221,0,0,122,0,0,0,0,0, - 0,126,46,162,0,0,0,0,0,0,0,0,42,141,111,0, - 0,183,29,46,227,0,59,226,200,183,141,219,0,0,122,122, - 122,183,95,0,59,183,122,99,103,135,111,187,95,0,0,0, - 0,0,42,42,0,150,44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,254,29,142,47,59,104,166,219,95,150,47,122, - 122,0,48,0,245,173,229,34,59,59,75,224,122,141,150,254, - 150,152,173,229,34,59,59,75,224,122,141,150,254,141,44,229, - 0,0,94,0,0,212,142,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,183, - 183,0,183,42,183,122,122,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,94,0,0,212,142,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,183,183,0,183,42,183,122,122,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,42,42,0,122,219,26,219,26,42,0,26,26,26, - 26,26,26,26,42,26,26,26,42,42,42,0,0,42,42,42, - 42,42,42,26,42,42,42,42,42,42,42,42,42,26,26,122, - 42,122,122,0,103,55,15,15,34,254,0,122,122,122,201,201, - 226,122,0,0,0,48,103,164,78,0,0,0,0,34,103,203, - 0,0,122,0,0,0,222,228,222,29,75,126,183,34,64,223, - 20,29,142,29,20,20,20,15,135,15,15,229,151,229,151,135, - 229,229,229,229,135,135,135,229,142,55,251,142,95,187,0,59, - 64,59,135,183,227,0,122,162,0,0,0,162,78,162,78,162, - 0,0,162,162,221,0,104,164,221,94,203,242,201,35,75,111, - 0,0,0,0,0,0,221,48,226,0,0,221,40,40,40,246, - 246,246,246,246,0,0,0,40,0,122,40,142,40,164,50,40, - 227,111,162,0,0,0,122,0,0,0,0,227,0,122,221,0, - 0,0,0,0,0,104,92,94,162,40,162,94,212,212,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,94,162,0,0,162,162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,215,215,246,0,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,162,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,99,0,0,0,0,0,166,221,0,78,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,141,214,212, - 0,0,99,0,0,0,0,0,0,50,0,0,0,0,0,122, - 56,221,0,0,224,50,122,59,151,135,111,111,126,0,0,0, - 0,0,183,42,0,150,47,0,0,0,0,0,0,0,0,0, - 0,0,0,0,254,47,221,221,122,221,162,0,122,0,122,0, - 122,42,177,78,34,221,94,212,94,94,94,94,162,162,162,162, - 94,224,221,94,212,94,94,94,94,0,162,0,122,221,221,221, - 0,0,221,0,0,212,40,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,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,212,40,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,55,228,229,15,44,254,122,0,0,42,79,197, - 226,183,0,0,0,253,55,14,162,0,0,0,0,135,38,241, - 0,0,42,0,0,0,135,228,135,223,224,239,42,34,99,44, - 29,142,29,20,20,15,15,15,20,151,229,229,229,151,38,229, - 15,229,229,229,135,229,15,129,92,103,48,226,47,227,0,59, - 59,64,229,94,166,0,0,0,0,0,0,0,162,122,162,162, - 0,162,0,0,0,0,104,241,94,162,203,72,79,46,59,95, - 0,95,187,166,187,166,0,48,142,0,0,0,0,0,0,246, - 221,221,221,221,221,221,221,0,0,0,0,0,0,221,104,104, - 183,95,221,0,0,183,94,162,0,221,221,162,0,0,0,0, - 0,162,0,183,40,226,164,162,0,40,94,212,40,50,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,0,162,50,50,162,0,0,0,0,0,221, - 221,0,0,0,0,0,0,0,0,0,221,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,44,166,0,0,183,227,0,183,0,246,183,162, - 0,0,0,0,0,0,163,162,0,0,0,0,0,42,64,29, - 132,0,141,37,164,0,0,0,0,95,0,0,0,0,78,78, - 183,94,0,0,224,215,42,35,103,20,95,111,95,0,0,0, - 0,0,42,122,0,243,35,0,0,0,0,229,104,203,129,0, - 0,0,0,0,99,64,0,0,0,0,0,0,0,0,0,0, - 122,56,177,42,44,0,0,0,0,0,0,0,0,122,0,122, - 0,78,0,0,0,0,0,0,122,0,0,122,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,42,0,122,122,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, - 122,122,0,221,228,103,135,15,44,224,122,0,0,221,38,201, - 226,122,0,0,0,135,38,241,0,0,0,0,0,29,79,200, - 0,0,42,0,0,42,24,228,222,223,59,183,50,29,99,34, - 29,29,29,20,20,177,229,151,34,48,186,20,38,34,29,55, - 229,229,229,135,135,229,135,229,223,103,222,226,95,187,0,59, - 64,47,229,215,183,0,0,0,0,183,59,183,0,122,0,162, - 122,0,78,227,183,0,104,203,212,162,142,242,103,46,224,126, - 0,20,47,47,47,64,0,190,92,0,122,95,95,0,0,40, - 221,221,215,40,246,0,0,221,0,0,0,0,0,0,40,40, - 227,183,0,0,0,221,183,94,0,0,56,162,0,0,0,0, - 0,0,162,95,246,200,203,203,162,104,50,162,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,212,50,162,0,0,0,0,0,0,0, - 0,162,221,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,59,126,126,59,212,94,95,42,0,122,183, - 122,0,0,0,78,183,212,0,0,0,0,0,0,42,99,20, - 171,59,224,241,35,99,59,47,47,187,0,0,0,0,78,78, - 166,78,0,0,59,183,122,64,103,171,75,111,95,0,0,0, - 0,0,26,42,0,141,47,0,0,0,0,212,94,221,212,0, - 0,0,0,0,59,64,0,0,0,0,0,0,0,0,0,0, - 122,221,48,183,34,122,122,122,42,78,42,42,122,42,122,42, - 162,78,0,122,122,42,122,122,42,78,78,122,42,122,42,239, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,162,0,26,139,8,182,211,182,0,12,12,12, - 132,17,219,219,42,219,122,122,42,42,42,219,26,26,26,219, - 26,42,42,42,42,122,42,42,42,42,122,42,122,122,122,122, - 122,122,122,122,55,103,229,15,34,59,0,0,0,0,201,220, - 24,183,0,0,0,15,201,226,122,0,0,0,0,34,103,24, - 0,122,122,0,0,26,187,228,129,177,59,126,26,34,35,44, - 190,29,20,20,171,253,22,209,178,22,206,36,38,38,214,229, - 38,151,151,229,20,229,135,229,177,103,222,142,200,227,0,59, - 64,64,15,221,183,0,0,162,0,95,95,47,0,122,0,122, - 0,0,47,142,47,0,104,203,94,162,142,197,228,142,47,126, - 0,20,111,59,35,35,0,223,226,0,132,172,47,246,0,203, - 40,221,215,40,221,0,0,0,0,0,0,0,0,0,0,162, - 215,0,0,0,0,0,0,95,0,0,0,0,0,0,0,0, - 0,183,122,50,183,212,183,15,221,40,162,94,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,162,162,0,0,0,0,0,0,0,0, - 221,246,212,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,122,42,0,0,0,0, - 42,95,0,0,183,227,227,254,47,94,183,95,126,95,183,0, - 0,0,0,0,0,162,162,0,0,0,0,0,0,0,64,20, - 171,15,29,192,171,57,15,152,15,50,0,0,0,0,42,78, - 187,94,0,0,95,183,26,35,55,135,111,95,75,0,0,0, - 0,0,42,42,0,8,35,0,0,0,0,0,0,0,0,0, - 0,0,0,0,182,47,0,0,122,122,122,0,0,0,0,0, - 122,0,24,162,95,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,0,122,0,122,0,0,0,0,0,0,122,0,95, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,183,227,111,224,0,132,99,182, - 99,99,99,64,182,99,99,99,141,99,254,254,109,150,187,166, - 17,17,132,219,26,219,122,122,78,162,0,122,122,122,122,122, - 0,0,0,0,129,31,229,15,225,224,122,0,0,221,197,79, - 226,42,0,0,0,15,79,226,122,0,0,0,0,29,55,104, - 0,0,42,0,122,26,111,228,135,29,59,239,183,44,35,44, - 29,29,20,15,20,178,253,178,209,10,10,24,33,171,99,182, - 229,99,38,229,229,229,229,229,177,228,222,142,95,183,0,64, - 44,64,229,183,183,0,0,122,0,59,142,59,0,0,122,122, - 0,0,47,95,200,0,104,203,94,162,172,242,103,46,95,126, - 0,20,59,47,99,99,0,142,104,0,183,245,29,0,0,40, - 40,246,246,221,0,0,0,0,0,0,0,0,0,0,162,0, - 221,0,0,0,0,0,219,212,0,0,0,0,0,122,0,0, - 183,142,122,254,95,219,219,151,246,246,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,219,42,0,0,0,0, - 0,224,183,221,254,183,0,183,95,162,122,227,183,95,42,0, - 0,0,0,0,0,0,0,0,183,162,0,122,122,0,183,34, - 192,15,15,15,20,171,15,20,171,42,0,0,0,162,94,183, - 227,162,0,0,212,122,122,35,38,178,187,166,239,0,0,0, - 42,0,42,122,0,8,59,0,0,0,0,0,0,0,0,0, - 0,0,0,0,224,59,0,0,0,0,122,122,0,0,0,0, - 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,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,122,0,0,183,122, - 122,122,56,42,183,122,42,42,183,183,42,122,122,78,122,183, - 162,183,122,162,183,122,122,122,122,122,122,122,122,0,0,0, - 122,0,0,219,135,55,135,15,34,99,122,0,0,0,38,79, - 84,56,0,0,0,135,38,24,0,0,0,0,0,223,103,241, - 0,0,42,122,122,122,24,228,48,223,47,95,42,44,99,35, - 172,20,20,20,178,29,186,15,29,15,177,209,129,133,15,99, - 44,64,151,135,229,135,135,229,226,251,129,223,75,239,0,64, - 64,59,135,50,42,0,0,162,0,95,15,47,0,122,0,0, - 0,0,44,151,20,0,203,241,94,162,177,33,103,46,59,126, - 0,29,35,47,35,64,0,226,24,0,162,135,29,0,0,212, - 246,246,246,221,0,0,0,0,0,0,0,0,0,0,221,162, - 0,0,0,0,0,162,215,0,0,0,215,47,111,183,183,219, - 224,215,166,0,64,47,34,15,221,221,0,221,162,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,221,0,0,0,221,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,94,0,0,0,17,99,166,0,0,0,0, - 0,0,0,0,0,0,0,0,122,0,0,0,162,162,162,0, - 0,0,0,0,0,0,0,187,200,239,0,122,219,12,132,254, - 171,47,111,171,20,20,192,171,135,42,0,0,0,122,42,42, - 183,183,0,0,0,122,26,29,55,75,122,239,183,0,0,122, - 162,0,0,0,0,99,47,0,0,0,0,0,0,0,0,0, - 0,0,0,0,64,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,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,122,0,122,0,122,0,0,0,0,0,0,122,0,0, - 0,0,0,221,253,201,229,171,34,224,0,0,0,162,55,79, - 226,122,0,0,0,48,55,226,0,0,0,0,0,223,103,241, - 0,0,122,0,0,122,177,31,223,223,59,239,183,34,64,44, - 29,142,20,29,15,15,229,229,171,133,186,229,84,222,102,34, - 64,34,44,135,229,229,135,151,178,103,129,223,95,50,122,44, - 64,64,229,183,162,0,0,0,0,0,0,0,0,0,0,122, - 0,0,221,246,0,221,203,203,0,0,92,28,103,46,75,163, - 0,44,59,64,59,35,0,226,241,0,0,0,0,0,0,50, - 246,246,221,0,0,0,0,0,0,0,0,0,0,0,221,0, - 0,0,0,0,0,0,221,0,0,0,183,15,29,183,0,0, - 122,183,162,0,221,99,15,190,0,221,0,221,221,162,0,162, - 212,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,221,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,42,221,78,227,150,111,0,0,0,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,162,183,162,0,0,150,99,192,29, - 29,47,44,171,192,20,20,171,171,162,0,0,0,221,94,42, - 50,78,0,0,0,0,42,29,38,24,219,95,239,0,0,221, - 122,0,0,0,0,211,59,0,0,0,0,0,0,0,0,0, - 0,0,0,0,59,59,122,122,0,0,0,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, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,0,0, - 0,0,0,122,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,24,129,129,20,34,224,122,0,0,0,55,197, - 226,183,0,0,0,177,55,24,122,0,0,0,0,29,103,24, - 0,0,42,0,0,122,190,79,135,48,47,126,163,158,64,34, - 142,29,20,20,20,20,15,15,135,15,151,133,151,55,71,151, - 171,15,64,214,229,151,229,151,172,79,103,48,47,95,42,29, - 192,34,151,221,183,0,0,122,0,0,122,0,0,122,122,0, - 122,0,0,0,0,0,104,203,162,0,104,242,33,190,224,97, - 162,135,224,224,99,99,0,104,104,0,0,0,0,0,221,246, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,0,0,0,0,95,38,133,245,29,227, - 0,111,56,56,183,47,20,84,162,212,162,162,0,221,0,40, - 212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,221,221,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,221,221,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,59,95,227,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,0,122,243,141,141,34,29, - 29,171,29,20,29,192,34,171,135,183,0,0,0,0,42,94, - 141,94,0,0,0,122,26,253,38,253,132,111,97,0,122,42, - 42,0,0,122,0,183,183,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,187,122,122,42,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,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, - 122,122,0,122,122,0,122,0,0,0,0,0,0,0,0,0, - 0,0,0,221,35,177,151,135,34,224,0,0,0,0,103,18, - 24,122,0,0,0,177,103,92,0,0,0,42,162,46,129,92, - 0,0,122,122,122,42,223,55,135,177,47,126,50,152,44,29, - 29,29,15,171,15,15,15,229,15,229,151,38,38,133,38,38, - 133,38,38,34,135,38,55,133,135,55,228,177,59,212,78,225, - 34,44,151,221,42,0,0,0,0,0,122,122,0,122,122,122, - 122,122,0,122,162,122,104,203,94,162,241,197,220,223,59,75, - 122,135,64,64,35,64,122,59,241,0,0,221,40,246,246,221, - 221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,162,0,0,0,40,95,142,142,142,215, - 0,221,215,221,221,95,40,203,0,212,162,221,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,246,162,0,0,0,0,0,162,221,0,0,0,0,0,0, - 0,0,0,0,0,164,94,0,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,0,162,47,75,162,0,56,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,59,183,0,78,64,214,67,192,172, - 171,29,192,29,34,29,29,15,229,187,0,0,0,0,183,78, - 126,183,0,0,78,26,42,29,55,29,224,47,163,0,0,183, - 42,0,122,78,42,162,78,42,42,42,219,26,26,219,187,183, - 42,187,111,111,166,187,187,183,187,187,187,187,187,166,183,42, - 78,42,78,122,122,78,42,78,78,122,122,78,78,78,42,78, - 78,78,122,122,122,78,78,78,42,78,78,78,78,122,122,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,122,75,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,227,126,0,0, - 0,0,0,94,94,0,0,0,0,122,122,162,122,162,0,0, - 0,0,122,0,122,122,122,162,122,122,78,78,78,42,42,42, - 78,183,42,78,78,78,122,162,122,162,122,122,122,0,0,0, - 0,0,122,122,223,84,151,20,34,224,122,122,122,78,103,201, - 226,42,0,0,122,135,103,84,162,0,0,95,227,162,162,0, - 0,0,0,122,122,0,177,103,48,253,59,95,239,192,64,34, - 29,20,20,20,135,171,15,15,15,15,151,15,173,142,190,133, - 151,151,38,151,186,151,151,133,177,103,228,177,47,75,122,34, - 225,44,151,162,122,122,122,78,183,0,0,0,0,0,0,0, - 0,0,0,0,0,0,40,164,94,94,226,156,242,253,59,59, - 0,15,47,64,64,64,0,200,104,0,0,221,40,246,221,162, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,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,162,0,0,0,0, - 0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,246,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,221,92,104,0,0,0,0,162,221,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,94,0,0,0,219,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,29,59,0,0,183,132,254,29,29, - 34,34,34,20,34,20,171,171,20,94,0,0,0,0,42,94, - 95,94,0,0,0,221,26,29,103,20,111,59,95,0,219,166, - 219,42,162,42,187,126,187,126,187,183,126,224,126,187,187,187, - 50,183,183,224,224,224,224,187,111,111,224,166,111,111,187,111, - 111,111,111,111,111,111,111,111,109,111,111,111,109,111,111,111, - 111,111,109,111,111,109,111,111,111,109,111,111,111,109,111,111, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 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,226,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,226,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,111,221,0, - 0,0,0,166,224,224,95,111,111,111,111,126,166,183,183,183, - 183,183,187,183,187,126,111,111,111,111,111,75,95,95,47,75, - 95,126,126,111,163,111,111,109,111,111,111,111,187,187,219,219, - 219,166,132,26,177,168,151,20,142,224,219,224,95,42,228,220, - 226,42,0,0,141,48,31,226,162,0,0,56,42,219,187,42, - 42,26,26,26,42,122,223,167,48,177,59,163,183,192,64,44, - 34,29,20,29,15,135,15,135,20,20,151,15,229,223,228,133, - 151,229,133,151,55,133,103,133,48,55,103,223,104,163,122,225, - 34,44,151,122,122,42,187,59,40,0,122,0,0,122,122,122, - 122,122,122,183,183,239,166,163,215,221,40,135,48,104,95,95, - 162,187,162,111,224,254,0,40,59,0,0,246,221,246,246,0, - 221,0,0,0,0,0,0,221,221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,221,221, - 162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,221,104,164,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,42,183,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,50,212,162,0,0,0,122,59,34, - 29,44,34,171,192,29,29,20,47,187,42,122,0,162,183,42, - 163,187,26,26,26,42,78,29,103,29,111,200,97,0,187,224, - 254,243,224,254,150,111,132,187,94,187,187,183,183,126,111,166, - 150,132,183,187,187,187,183,126,166,166,42,183,183,183,221,166, - 111,111,132,187,42,227,111,111,111,187,42,183,126,111,111,132, - 219,183,183,187,187,126,166,166,183,166,166,166,187,187,183,126, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,0,0,0, - 0,0,0,50,59,97,111,75,97,75,75,95,59,46,35,35, - 35,24,223,44,223,44,46,44,44,44,35,99,35,59,111,111, - 187,183,187,187,219,219,219,187,219,219,219,219,111,75,200,200, - 224,75,111,26,172,222,129,15,34,111,94,75,163,183,228,55, - 209,122,0,0,75,126,215,94,162,0,0,0,122,78,78,183, - 122,78,78,122,0,122,226,228,253,223,59,126,50,44,109,95, - 142,47,29,34,29,171,171,20,29,20,15,20,186,24,223,151, - 151,151,55,151,229,151,151,151,223,103,55,177,59,75,0,225, - 44,64,20,221,122,122,166,95,200,0,0,0,0,0,0,0, - 0,0,162,162,162,0,94,221,162,0,221,40,203,183,50,50, - 162,239,0,44,64,99,0,163,46,0,162,221,246,40,246,94, - 246,221,0,0,0,0,221,221,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 162,162,0,0,0,0,0,0,0,0,0,0,0,0,94,50, - 0,0,0,0,0,0,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,221,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 56,122,0,0,0,0,0,78,0,0,0,0,78,122,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,162,221,0,122,221,0,0,0,0,0,221, - 44,34,47,142,34,44,29,34,35,183,26,122,0,0,78,94, - 97,187,26,42,219,26,26,171,103,223,187,35,163,0,0,122, - 219,122,219,187,187,150,111,150,183,187,183,183,162,187,219,183, - 183,162,183,183,187,50,183,183,187,187,183,42,183,42,26,183, - 183,42,183,183,183,219,183,42,221,183,183,183,183,183,183,42, - 183,187,42,183,221,183,42,187,183,42,183,42,183,183,42,42, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 183,78,0,75,59,200,200,24,34,29,253,177,253,29,253,20, - 29,223,34,223,223,35,59,224,95,141,224,150,111,187,26,26, - 187,183,183,166,126,78,183,94,50,163,104,142,142,35,35,59, - 46,47,200,163,222,222,228,15,171,254,97,226,35,46,222,31, - 241,122,0,0,42,94,183,42,183,183,183,94,94,221,221,221, - 162,162,0,122,0,122,226,228,222,177,47,111,78,59,139,95, - 47,46,47,44,46,24,29,20,34,20,229,15,135,223,14,178, - 151,15,229,229,135,135,135,135,226,55,55,190,59,163,0,64, - 64,64,20,183,122,122,219,95,40,0,0,0,0,0,0,0, - 0,0,162,162,162,0,221,94,0,0,104,55,103,46,224,59, - 42,34,0,44,64,99,0,40,200,0,221,221,183,40,183,221, - 162,0,221,221,221,221,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,59, - 239,94,183,0,0,0,0,126,97,219,78,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,94,0,0,0,0,0,0, - 0,0,0,0,0,122,0,0,166,183,0,0,0,0,0,0, - 64,34,192,142,47,47,47,225,24,0,42,122,0,0,56,183, - 40,187,42,26,219,26,42,253,151,35,150,59,111,219,26,162, - 122,0,0,0,0,42,187,111,166,109,187,187,219,187,42,187, - 187,187,111,187,166,183,187,166,219,187,126,187,111,111,187,132, - 111,187,111,111,187,166,150,187,111,111,187,132,187,187,111,111, - 187,126,187,187,111,111,187,111,187,187,111,111,187,111,111,132, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,94,126, - 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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,0, - 0,0,0,0,0,0,94,126,0,0,0,0,0,0,0,0, - 50,162,183,223,253,253,253,29,177,24,223,29,44,46,224,99, - 59,224,59,109,224,99,59,35,24,142,223,177,223,135,48,177, - 253,48,177,253,177,177,253,48,253,48,223,177,223,223,223,84, - 223,177,177,223,129,168,55,15,29,183,241,228,177,226,0,221, - 0,0,0,0,221,183,162,183,78,94,162,183,183,162,78,162, - 122,122,122,0,0,0,24,103,135,29,24,95,162,95,111,163, - 95,47,47,44,59,47,47,29,34,20,171,229,135,135,229,15, - 245,135,135,135,15,135,135,29,104,167,103,177,47,97,122,224, - 47,99,20,162,0,122,122,215,183,0,0,0,0,0,0,0, - 0,0,50,50,0,40,103,48,48,203,226,103,48,135,241,95, - 221,29,0,214,214,64,0,200,104,0,0,0,42,219,0,246, - 221,0,0,0,221,246,221,0,0,0,0,0,0,221,221,0, - 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,221,221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,34, - 44,29,46,50,212,0,0,221,246,111,78,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,221,162,0,0,0,0,122, - 0,0,0,0,0,0,0,122,200,97,0,17,150,0,0,0, - 132,34,64,47,34,254,142,44,59,0,42,0,0,0,0,78, - 183,183,17,12,150,17,26,171,103,223,111,59,95,12,243,243, - 150,243,187,26,42,0,0,0,122,162,187,99,64,224,187,109, - 187,183,183,221,42,42,183,187,187,187,187,12,111,109,187,111, - 150,111,109,109,187,109,111,111,109,109,187,109,111,111,109,109, - 187,109,111,111,109,254,187,111,111,111,109,109,187,254,150,111, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,56,246,163, - 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,56,246,163,0,0,0,0,0,0,0,0, - 0,0,215,111,95,187,111,26,187,150,109,95,111,59,59,35, - 24,223,223,177,135,222,135,222,222,135,222,129,222,222,129,129, - 222,222,222,135,222,135,48,135,253,135,135,222,135,222,177,222, - 135,135,135,129,168,177,84,46,200,0,94,46,239,183,239,163, - 163,163,239,50,163,37,37,212,212,50,94,94,162,78,122,122, - 0,122,122,0,0,0,92,167,129,223,200,183,78,109,187,224, - 47,47,44,29,34,44,44,15,20,229,151,133,38,133,133,151, - 133,133,245,151,135,29,135,223,177,201,55,48,35,111,78,224, - 99,224,20,183,0,122,183,40,200,104,104,95,95,95,97,95, - 97,95,50,0,56,40,28,135,28,223,173,79,173,21,251,26, - 42,200,0,99,59,182,166,95,200,200,59,47,40,246,94,246, - 212,246,221,94,94,162,221,221,0,0,0,0,0,221,221,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,162,50,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126, - 44,223,239,122,177,212,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,122, - 0,0,0,0,0,0,0,0,183,183,162,109,99,17,0,183, - 95,95,47,44,44,99,44,47,75,0,122,0,0,0,0,0, - 0,0,0,122,42,42,78,24,135,29,111,75,126,183,219,219, - 187,141,254,150,243,12,12,26,56,122,0,0,166,95,111,99, - 109,243,150,132,187,17,183,183,183,183,221,122,0,162,219,111, - 166,166,166,183,183,166,150,227,166,94,183,166,132,126,166,94, - 215,132,132,187,187,94,219,132,132,126,166,183,183,126,111,166, - 0,0,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,203,142,162,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,221, - 26,0,0,0,0,0,0,40,0,0,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,203,142,162,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,0,221,26,0,0,0,0,0,0,0, - 42,183,42,24,223,223,253,222,222,222,129,31,228,103,228,103, - 228,222,103,103,129,31,129,251,129,31,222,222,129,222,222,222, - 135,253,135,222,48,222,135,222,222,222,222,222,222,222,251,222, - 222,31,228,228,226,212,162,162,162,0,219,219,219,219,166,59, - 126,183,183,227,212,239,215,50,42,221,42,122,122,122,122,122, - 122,122,0,122,122,26,163,177,177,241,50,162,162,221,0,221, - 122,162,94,221,94,50,212,126,126,126,95,95,75,75,22,75, - 203,75,163,187,50,183,239,183,203,137,135,209,126,227,0,183, - 183,183,227,0,0,0,0,162,221,221,94,246,246,246,246,246, - 221,221,94,162,221,42,72,15,38,241,133,55,38,87,55,0, - 221,0,0,0,0,122,122,221,221,40,40,40,212,221,212,212, - 246,221,246,246,221,94,221,0,0,0,0,0,0,0,0,0, - 0,0,0,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,162,162, - 0,0,0,0,0,0,0,162,0,0,0,0,0,0,94,162, - 0,0,0,0,162,212,162,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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, - 126,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78, - 0,0,0,0,0,0,212,162,0,162,183,99,243,99,0,183, - 47,47,44,35,47,59,59,35,59,0,0,0,0,122,0,0, - 0,122,42,122,122,42,122,50,241,22,166,59,111,219,219,111, - 166,42,26,166,132,243,243,150,150,243,12,17,26,122,0,162, - 221,94,126,187,166,254,182,99,99,49,182,243,243,187,132,166, - 150,187,219,187,17,111,150,187,219,187,187,132,132,187,187,187, - 17,111,132,166,166,187,132,111,132,132,183,187,219,150,17,187, - 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,0,129,103,209,162,0,0, - 0,0,0,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,221,0,46,0,0,0,0,0,162, - 55,135,0,0,0,0,0,40,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,0,129,103,209,162,0,0,0,0,0,221,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,221, - 0,46,0,0,0,0,0,162,55,135,0,0,0,0,0,135, - 201,103,190,55,103,55,55,201,201,55,103,103,103,228,31,222, - 103,222,228,228,103,228,31,103,228,129,228,228,222,222,31,222, - 129,228,129,31,135,222,129,222,129,222,129,129,228,31,129,222, - 222,177,177,203,221,0,0,0,0,0,0,246,241,200,40,221, - 215,203,40,122,122,122,122,0,122,122,122,122,0,122,0,0, - 122,122,0,0,0,122,94,0,0,0,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,0,0,0,183,212,0,0,0,0,0,0, - 0,0,0,0,0,0,122,0,122,122,0,0,0,122,0,0, - 0,0,162,0,0,239,72,21,15,173,72,87,72,15,242,0, - 0,221,0,0,0,0,0,0,122,0,122,0,162,246,94,221, - 221,0,246,221,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,162,162,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,94,94,0,0,0,0,0,0,0,0, - 162,221,221,0,162,0,0,0,0,0,0,122,0,122,42,42, - 42,42,26,26,42,26,0,0,94,162,183,246,183,26,17,219, - 219,219,17,17,17,150,150,12,12,12,243,8,8,8,8,12, - 17,26,42,0,0,0,0,0,221,187,99,99,235,99,182,182, - 182,224,109,182,182,182,182,224,211,182,182,182,99,254,109,182, - 182,182,182,254,109,182,99,182,224,254,109,182,182,99,182,254, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,94,162,241,0,22,50,0,0,0,0, - 0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,162,0,0,0,0,122,122, - 241,203,0,0,0,0,0,40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,94,162, - 241,0,22,50,0,0,0,0,0,162,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,162,0,0,0,0,122,122,241,203,0,0,0,0,0,201, - 242,55,201,201,103,103,201,177,103,55,103,228,228,228,103,103, - 228,55,103,201,48,129,55,228,228,228,103,129,129,253,223,177, - 135,142,226,135,129,222,222,228,222,129,228,228,129,201,48,177, - 135,241,190,177,226,190,190,223,190,92,226,226,104,223,92,203, - 241,226,92,241,104,203,241,46,104,200,92,241,104,104,104,104, - 104,46,212,50,212,46,221,241,46,46,104,104,104,104,241,241, - 203,104,104,104,142,40,241,241,203,203,203,212,203,203,37,163, - 163,203,95,227,94,0,0,122,162,94,227,212,221,0,94,47, - 94,163,94,94,94,78,162,183,162,162,162,183,227,183,0,183, - 94,183,162,0,0,200,21,15,18,38,38,223,173,40,197,0, - 122,162,0,122,183,42,162,122,221,221,246,221,221,221,221,0, - 221,221,221,0,94,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,162,94,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,122,122,42,122,0,0,78,42,122,122,122,42,122,0,122, - 122,122,122,122,42,42,0,0,0,0,0,0,0,122,122,219, - 219,219,17,12,17,187,26,17,17,17,12,243,67,141,49,141, - 67,67,8,8,8,26,42,122,0,0,50,97,200,59,64,99, - 182,99,99,224,64,99,182,99,67,59,64,99,254,67,59,182, - 64,99,182,67,59,182,99,99,224,67,99,59,64,99,99,99 - }; - -static const HdlInfo hdl_huge = -{ - 576, 432, - 199, 38, - 17, 31, - 256, 8, 255, (char *) hdl_huge_colors, - hdl_huge_on, hdl_huge_off -}; diff --git a/blinkentools-2.9/src/hdl-large.h b/blinkentools-2.9/src/hdl-large.h deleted file mode 100644 index 6f42b8f..0000000 --- a/blinkentools-2.9/src/hdl-large.h +++ /dev/null @@ -1,8050 +0,0 @@ -#include "hdl.h" - -static char hdl_large_colors[256][3] = { - { 2, 2, 2}, - { 30,106, 26}, - { 16, 80, 14}, - { 30, 42,144}, - { 10, 60, 10}, - { 30, 41,135}, - { 15, 17, 83}, - {170,134, 97}, - { 77, 6, 6}, - { 10, 9, 51}, - { 67, 78,160}, - { 59, 70,158}, - {194,171, 89}, - { 40, 13, 12}, - {102, 90, 82}, - { 2, 2, 17}, - { 53, 66,155}, - {108, 82,109}, - {109,106,177}, - { 90, 90,169}, - { 49, 62,154}, - { 40, 39, 68}, - { 82, 58, 74}, - {135,119,106}, - {178,170,166}, - { 50, 54,153}, - { 26, 19, 23}, - { 41, 34, 56}, - { 6, 6, 30}, - { 28, 21, 52}, - { 97, 94,169}, - { 38, 54,147}, - {112, 62, 22}, - { 14, 13, 67}, - {140,137,183}, - { 13, 17, 91}, - { 42, 46,148}, - { 29, 11, 9}, - {122,110, 98}, - {109,106,169}, - { 18, 10, 46}, - {204,197,206}, - {198,184,164}, - { 82, 73,161}, - { 19, 14, 28}, - { 98, 98,170}, - { 28, 13, 18}, - { 60, 47, 84}, - {110, 86, 70}, - { 19, 5, 7}, - {145,129,127}, - { 87, 78,137}, - { 64, 37, 31}, - { 74, 74,163}, - { 58, 57, 97}, - {218,138, 6}, - { 80, 78,164}, - { 37, 50,144}, - { 14, 6, 30}, - { 93, 44, 25}, - {170,158,138}, - {122,102, 86}, - {190,158,122}, - { 19, 9, 18}, - {182,182,200}, - { 10, 23, 9}, - {103, 86,168}, - {142,126,106}, - {162,114, 81}, - { 38, 37, 98}, - { 45, 29, 14}, - {122, 74, 18}, - { 14, 6, 8}, - {108, 98,169}, - {192,124, 18}, - { 38, 42,146}, - { 34, 46,136}, - { 95, 81,169}, - { 67, 48, 73}, - { 46, 42, 83}, - { 22, 14, 58}, - {126,102, 82}, - {131,128,183}, - {114, 90, 90}, - { 16, 10, 26}, - { 14, 14, 20}, - { 57, 48, 98}, - { 70, 70,161}, - {182,170,152}, - { 10, 5, 7}, - { 80, 90,165}, - { 62, 62,158}, - { 76, 34, 26}, - { 65, 66,159}, - { 45, 55,138}, - { 83, 68,120}, - { 13, 10, 19}, - { 26, 98, 18}, - { 33, 46,143}, - {192, 70, 10}, - {182,182,193}, - {168,150,120}, - { 77, 86,164}, - { 22, 26, 71}, - {105, 94,161}, - { 44, 29, 52}, - { 89, 82,167}, - {102, 90,170}, - { 22, 22, 76}, - {145,144,194}, - {190,170,142}, - {104, 66, 64}, - { 8, 10, 26}, - { 31, 27, 73}, - { 34, 34,108}, - { 6, 2, 15}, - {126,122,181}, - { 34, 21, 21}, - {162,138,143}, - { 44, 48,160}, - {157, 92, 34}, - { 95, 86,155}, - { 14, 70, 6}, - { 4, 2, 10}, - { 81, 41, 34}, - { 36, 34, 84}, - { 58, 62,158}, - { 98, 82, 70}, - { 56, 32, 29}, - { 14, 14, 46}, - { 32, 28, 52}, - { 84, 64, 98}, - { 38, 44,156}, - { 21, 18, 38}, - { 33, 42,130}, - { 15, 10, 30}, - { 66, 72,159}, - { 18, 15, 46}, - {106,102,169}, - { 54, 58,152}, - { 68, 63,124}, - { 31, 14, 32}, - { 10, 6, 17}, - {157,151,175}, - { 54, 40, 58}, - {122,118,179}, - { 55, 21, 17}, - {174,138, 34}, - {178,174,179}, - {102,102,169}, - {122, 94, 78}, - { 18, 14, 39}, - { 6, 2, 4}, - {114, 98, 82}, - { 17, 18, 72}, - { 18, 66, 16}, - { 97, 90,160}, - { 72, 49, 63}, - { 84, 68, 62}, - { 93, 74,112}, - {198,186,179}, - {148,144,175}, - { 39, 50,137}, - {174,162,151}, - { 62, 74,159}, - { 45, 50,148}, - {114, 24, 12}, - {130, 92, 22}, - {157,120, 73}, - { 70, 86,163}, - { 41, 21, 40}, - { 81, 82,163}, - { 23, 10, 32}, - { 6, 6, 42}, - { 44, 29, 33}, - {115,106,178}, - { 74, 57, 87}, - { 64, 42, 53}, - { 40, 34, 74}, - {154, 50, 6}, - { 35, 42,136}, - { 88, 86,168}, - {110, 62, 45}, - { 73, 55, 56}, - {105, 94,170}, - {178,142, 38}, - {122, 98, 98}, - { 31, 30, 83}, - { 50, 41, 76}, - {110,102,169}, - { 14, 10, 38}, - { 10, 10, 40}, - { 29, 41,150}, - { 28, 20, 36}, - { 96, 86,170}, - { 43, 54,147}, - { 10, 6, 22}, - { 26, 14, 36}, - { 33, 27, 64}, - { 48, 38, 36}, - { 80, 46, 40}, - { 39, 46,136}, - { 6, 6, 17}, - { 7, 6, 38}, - { 26, 38,128}, - { 21, 22, 53}, - { 18, 10, 41}, - {110, 66, 50}, - { 78, 74,136}, - {162,126, 90}, - { 52, 54,162}, - {182,150, 42}, - { 66, 27, 20}, - { 6, 10, 6}, - { 74, 63,106}, - { 13, 46, 10}, - { 6, 6, 5}, - { 56, 42, 38}, - {166,144,112}, - { 96, 90,170}, - { 14, 14, 58}, - { 14, 46, 14}, - { 70, 82,162}, - {115,111,178}, - { 38, 46,145}, - { 58, 66,157}, - { 54, 62,155}, - {162,130, 94}, - {106, 90,172}, - { 51, 34, 54}, - {118, 88, 71}, - { 42, 20, 19}, - { 30, 38,130}, - { 13, 14, 76}, - { 30, 25, 95}, - { 20, 14, 20}, - { 20, 12, 9}, - { 45, 58,151}, - { 10, 10, 7}, - {102, 98,170}, - { 10, 10, 31}, - {114,102,174}, - { 34, 22, 35}, - {109, 74, 64}, - { 10, 6, 27}, - { 2, 2, 6}, - { 88, 78,167}, - { 94, 26, 10}, - { 85, 64, 84}, - {106,102,175}, - {174,154,117}, - { 55, 58,160}, - { 34, 42,143}, - { 6, 6, 10}, - {168,144,148}, - {255,255,255} - }; -static char hdl_large_on[] = { - 132,132,132,132,132,132,132,132,132,132,132,132,132,75,132,75, - 132,75,132,75,132,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,252,252,252,252,75,75,75,75,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252, - 252,252,252,252,252,180,252,252,252,252,252,180,252,252,180,252, - 252,180,180,180,180,180,180,180,180,180,180,5,180,180,5,180, - 5,180,5,180,5,180,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,134,232,232,232,5,5,134,5,5,134,232,232, - 232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232, - 232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232, - 232,204,204,204,204,204,204,204,204,204,204,232,232,232,232,232, - 232,232,232,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,3,5,3,5,3,5,3,98,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,98,98,3,3,3,3,3, - 98,98,98,98,98,98,98,98,3,252,252,252,252,252,3,3, - 3,3,3,3,3,3,3,3,3,192,3,3,3,3,3,3, - 3,3,192,3,192,3,192,3,192,192,192,192,192,192,98,98, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,75,75, - 75,75,75,75,75,75,132,132,132,132,75,75,75,192,75,192, - 75,192,75,192,75,75,75,192,75,192,75,192,75,192,75,192, - 75,192,232,75,192,252,232,75,75,75,75,252,252,252,232,75, - 75,75,75,75,75,75,75,75,75,75,75,75,192,232,252,252, - 232,232,180,3,180,3,252,232,3,180,180,252,180,180,3,180, - 180,180,3,3,3,232,232,232,232,232,232,232,232,5,180,204, - 180,232,232,204,204,232,134,232,232,232,232,232,232,232,232,232, - 232,232,232,232,204,204,232,232,232,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,232,232,232,5,5, - 232,232,232,5,5,5,5,76,5,5,5,5,5,3,5,3, - 5,3,3,3,192,3,3,3,3,3,3,3,3,3,3,3, - 192,3,192,192,192,3,192,192,252,192,192,192,3,192,192,192, - 3,192,3,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,132,192,252, - 132,132,132,75,132,75,132,132,132,132,132,192,132,192,132,75, - 75,75,75,75,75,75,75,75,75,75,192,75,75,75,75,75, - 75,75,75,75,192,75,75,75,75,232,75,232,75,232,75,232, - 75,75,75,75,75,75,75,75,192,75,75,75,75,75,75,192, - 75,232,192,75,232,192,232,75,232,232,75,75,75,75,192,75, - 252,252,252,252,180,252,252,232,252,232,232,252,3,180,232,232, - 232,232,232,232,3,3,3,232,3,3,232,3,5,232,232,232, - 232,5,5,232,232,204,204,204,232,232,232,232,232,232,232,232, - 232,232,204,232,232,204,204,204,204,204,204,204,204,204,204,204, - 204,232,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,232,204,232,232,204,204,232,204,204,204,204,232,3, - 5,5,232,232,5,192,204,3,192,5,192,3,5,192,5,192, - 5,3,5,5,3,5,3,5,192,192,3,3,3,3,3,3, - 192,3,3,3,192,3,192,192,3,3,192,3,192,3,192,3, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, - 132,132,132,132,132,132,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,232,75,75,75,75,75,232,75,75, - 75,75,192,75,75,75,75,75,75,232,75,192,75,75,75,75, - 75,232,75,75,75,75,75,192,75,75,192,232,75,232,75,252, - 252,252,252,252,252,252,252,75,252,252,252,252,252,232,3,252, - 252,252,252,252,232,232,232,252,232,232,180,232,232,3,180,232, - 5,232,232,232,5,232,3,204,232,232,232,232,232,232,232,232, - 232,204,232,204,232,232,232,232,232,204,204,204,204,204,232,232, - 232,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,232,204,232,204,204,232,232,204,232,232,232,232,5,232, - 232,232,5,3,5,5,3,5,5,98,5,3,5,192,5,192, - 192,192,192,5,3,3,3,3,98,98,3,3,3,3,192,3, - 3,3,3,3,3,3,3,192,192,3,98,192,3,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, - 132,192,132,75,75,132,132,132,75,132,132,75,132,75,75,75, - 75,75,75,75,232,75,75,75,75,192,75,75,75,75,75,75, - 75,75,75,75,75,252,75,75,75,75,75,75,75,192,75,75, - 75,75,232,75,75,232,75,75,232,75,75,252,75,75,75,252, - 232,232,252,252,232,252,252,232,252,252,252,252,252,252,232,3, - 180,232,232,252,252,252,3,180,252,232,252,180,232,232,3,232, - 180,5,5,232,5,232,232,232,232,232,232,232,204,204,204,232, - 232,232,232,204,232,232,232,232,232,204,232,232,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,232,204,204,3,204,204,232,3, - 5,204,232,204,204,3,5,5,3,5,5,192,5,5,3,5, - 192,192,192,204,3,3,3,3,3,98,3,3,3,3,3,3, - 3,3,192,192,192,3,98,192,3,192,3,3,192,3,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,192, - 132,75,75,132,132,192,132,132,192,132,75,75,192,132,192,132, - 75,75,75,132,75,75,75,75,75,75,192,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75,75,75,252,252,252,75, - 75,75,75,232,75,75,252,75,252,252,180,252,75,232,75,192, - 232,252,252,232,232,180,232,3,5,3,5,3,180,5,232,3, - 232,232,232,5,232,180,5,3,232,232,232,232,232,232,232,204, - 232,204,232,232,204,204,204,204,232,232,232,232,232,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 232,204,232,204,204,204,232,5,3,5,5,204,5,5,3,204, - 204,3,3,5,3,204,5,5,5,98,5,98,5,98,3,3, - 192,192,192,3,204,3,3,3,3,3,3,3,3,192,3,98, - 98,3,98,98,3,192,3,98,3,3,192,192,3,3,192,3, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 132,132,132,132,132,132,119,132,132,132,132,132,132,132,132,132, - 132,132,132,132,75,132,75,132,132,75,132,75,132,75,75,75, - 132,132,75,132,75,75,132,75,75,75,75,75,75,75,192,75, - 132,132,75,75,75,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,252,252,75,75,75,75,252,75, - 75,75,75,75,232,75,252,252,252,252,180,252,75,252,75,180, - 3,252,252,252,232,252,232,180,180,134,232,3,180,3,232,3, - 5,5,180,5,232,232,232,5,3,5,3,5,232,232,232,232, - 232,204,232,232,232,232,232,232,232,232,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,232,204,204,232, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,232,232,204, - 204,3,232,3,5,3,204,204,204,5,5,204,5,5,5,3, - 232,232,5,232,3,5,98,204,192,98,5,98,5,5,5,192, - 192,192,5,192,3,3,5,3,3,3,3,3,98,3,3,3, - 3,192,98,3,98,3,192,192,192,3,98,192,3,192,3,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,132,132,132,132,132,132,119,119,132,119,132,132,132,132,132, - 132,132,132,132,132,132,132,132,132,75,132,165,165,165,165,132, - 75,132,75,132,132,75,132,75,132,75,132,75,75,132,132,75, - 75,75,75,75,75,75,75,224,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,252,75,75,75,75,75,252,180,75,75, - 252,180,75,75,75,252,75,75,180,252,252,76,3,180,180,252, - 252,232,180,252,252,252,252,232,3,232,180,180,5,180,180,232, - 180,232,232,180,5,5,134,5,232,232,232,232,232,232,232,232, - 232,232,232,232,232,232,232,204,232,204,232,232,232,232,204,204, - 204,204,204,232,232,204,204,204,204,204,204,204,204,204,232,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,232,204,204,204, - 232,204,5,204,204,204,232,232,204,204,232,5,134,5,5,180, - 5,3,5,3,5,5,5,3,98,3,5,5,5,98,192,3, - 5,3,98,5,3,5,3,5,3,98,3,192,98,98,192,192, - 192,98,98,3,3,3,3,3,3,192,192,192,192,98,3,3, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 132,132,132,119,132,132,132,132,119,132,132,132,132,132,132,132, - 132,132,132,132,132,132,75,132,132,75,132,165,165,75,165,165, - 165,165,132,75,75,132,75,132,75,75,75,75,75,36,132,75, - 75,75,132,224,224,132,75,224,75,75,75,75,75,75,75,75, - 75,75,75,75,180,75,252,75,201,75,75,75,75,75,180,75, - 75,75,180,75,75,75,180,252,75,180,75,180,98,252,180,252, - 75,252,180,252,180,180,180,180,252,3,180,180,180,180,180,232, - 180,232,232,232,180,232,232,5,5,5,3,5,5,232,232,232, - 232,134,204,232,232,232,232,204,232,232,232,232,232,232,204,232, - 204,204,232,204,232,232,232,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,232,232,232,232,204,3,5,5,5,232,5,5,5,134, - 5,180,5,5,98,98,98,5,98,3,98,98,204,3,192,3, - 192,192,76,3,5,3,5,3,3,3,98,98,192,3,192,192, - 192,192,98,192,192,192,3,3,98,3,3,192,192,192,3,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 132,119,119,132,132,119,132,119,119,132,119,119,119,132,165,132, - 132,132,132,132,132,132,132,132,132,132,132,165,132,165,165,165, - 132,75,132,132,75,75,132,75,132,132,75,75,132,75,132,36, - 36,36,224,75,75,75,75,75,36,224,224,224,224,224,75,75, - 75,75,180,75,75,75,75,75,75,75,180,75,75,75,75,180, - 75,180,180,75,180,75,75,75,180,75,180,252,252,180,180,75, - 252,252,75,252,180,3,3,75,180,180,180,180,180,180,180,180, - 5,180,5,180,232,5,180,134,5,232,232,232,232,5,5,232, - 232,232,232,232,204,232,232,232,232,232,232,232,204,232,232,204, - 232,232,204,232,232,204,232,204,204,232,232,232,232,204,204,204, - 232,232,232,204,204,204,204,204,204,232,204,232,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,232,204,204,204,232,204, - 232,232,204,232,232,204,5,204,134,5,5,5,134,5,5,5, - 5,5,5,5,5,5,204,98,204,98,98,3,98,5,98,98, - 5,3,192,3,98,5,3,5,5,3,192,98,98,3,3,192, - 3,3,3,98,192,192,3,3,3,3,192,3,3,192,192,252, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,132,132,119,132,119,132,132,165,165,165,132,119,132,165,132, - 132,132,132,132,132,132,132,75,132,132,75,165,165,132,132,165, - 165,75,132,75,75,132,75,165,75,75,165,75,132,75,75,75, - 132,75,132,75,224,132,36,75,75,75,75,75,75,224,224,75, - 75,36,75,75,75,75,75,75,201,201,75,180,75,180,75,180, - 75,75,75,180,75,180,75,75,75,75,75,75,252,252,180,180, - 180,180,180,75,180,180,5,180,180,180,180,180,180,180,5,180, - 232,232,232,5,5,232,232,232,180,134,180,5,232,232,5,232, - 232,134,134,232,232,232,232,232,232,204,204,232,232,232,232,232, - 232,232,232,232,232,232,232,204,204,232,232,204,204,204,204,232, - 232,204,232,232,204,204,232,232,204,232,204,204,232,232,204,232, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,3,5,232,232,232,5,204,204,5,5,204,5,5,5,134, - 5,76,5,5,98,98,98,98,98,204,98,204,98,3,5,98, - 5,3,5,3,3,5,3,5,98,3,3,3,3,98,98,3, - 3,3,192,192,192,98,192,3,3,98,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,119,132,119,132,119,119,165,132,119,119,132,119,132,132,132, - 165,132,132,132,132,132,165,165,165,165,165,165,132,132,132,75, - 165,165,165,165,75,132,75,75,165,75,132,36,132,36,36,36, - 75,36,75,36,75,36,75,224,224,36,36,36,36,75,75,201, - 75,75,75,201,75,75,75,75,75,75,201,75,201,201,75,75, - 180,75,201,75,75,75,75,75,75,75,180,180,75,75,252,180, - 252,75,75,180,3,180,180,252,180,180,5,180,180,180,180,180, - 180,5,5,232,232,5,5,180,232,232,232,232,134,232,232,232, - 232,204,232,134,232,232,232,232,5,232,232,232,204,232,232,204, - 232,232,232,204,192,204,232,232,232,204,204,232,204,5,204,204, - 204,204,204,204,204,204,204,232,232,204,232,204,204,204,232,204, - 204,204,204,232,204,204,204,204,204,204,232,232,232,204,232,232, - 232,232,232,232,232,232,5,5,5,204,5,5,134,5,76,98, - 5,5,98,98,5,204,3,3,98,98,98,98,98,5,98,98, - 98,3,3,5,3,5,3,98,204,3,3,3,98,3,3,3, - 3,3,98,192,192,192,98,3,3,3,3,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,132,119,132,119,132,119,132,119,132,119,165,165,165,119,119, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,75,165,165,75,165,75,36,132,36,224,36, - 75,36,224,36,132,224,36,36,224,75,75,75,75,75,75,201, - 75,201,75,36,201,201,224,75,75,75,36,75,75,75,75,201, - 75,75,75,180,180,75,76,75,180,75,75,180,201,75,201,75, - 180,180,180,180,180,252,180,180,180,3,180,180,180,180,180,180, - 180,180,180,5,180,232,232,5,5,5,180,232,5,232,5,134, - 232,232,232,5,232,232,5,232,232,232,232,232,204,232,232,204, - 232,232,232,232,232,204,232,232,232,232,232,232,204,232,232,232, - 204,192,232,204,204,232,204,232,232,232,232,232,232,204,232,232, - 204,232,204,232,204,204,204,204,204,204,204,204,232,204,232,232, - 232,204,232,3,5,204,232,5,5,5,5,5,5,5,5,76, - 5,5,5,98,76,98,76,204,98,98,98,5,3,98,5,3, - 98,98,5,98,98,98,5,3,3,3,98,3,3,3,98,3, - 3,3,3,3,192,192,192,3,192,3,3,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,132,132,119,119,132,119,132,119,119,119,165,165,165,132,119, - 132,132,165,165,165,165,165,165,165,75,165,165,165,165,165,165, - 165,165,165,165,165,75,75,36,132,36,36,75,132,75,132,224, - 36,36,36,36,36,36,75,75,75,36,36,36,36,224,75,75, - 224,75,36,75,75,75,75,224,201,36,75,201,75,201,75,75, - 201,75,36,201,75,75,75,76,201,180,180,75,180,75,252,75, - 180,75,252,75,75,180,180,252,180,180,180,180,180,180,180,5, - 180,180,180,180,180,180,5,180,232,180,232,5,134,5,232,232, - 232,232,232,232,5,134,232,232,5,232,232,232,232,232,232,232, - 232,204,232,232,232,232,232,232,232,232,204,232,232,232,232,232, - 232,232,232,204,204,232,232,204,232,204,232,232,232,232,232,232, - 204,204,232,232,204,204,204,232,204,232,204,232,204,232,232,232, - 204,232,5,232,204,134,134,204,5,5,5,5,5,5,5,5, - 5,5,76,5,76,3,98,76,98,5,98,98,98,98,98,76, - 98,3,98,5,3,5,3,3,98,3,3,98,3,3,3,98, - 3,3,98,3,192,98,98,3,3,3,3,3,3,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,119,119,119,119,119,119,119,132,119,119,165,119,165,119,165, - 119,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,36, - 132,224,132,224,36,36,36,36,36,36,224,36,36,36,36,36, - 201,36,201,36,36,36,201,36,75,36,75,36,75,36,201,75, - 201,75,75,201,201,201,75,75,75,201,75,75,180,75,201,75, - 76,75,75,75,75,180,180,180,180,180,3,180,75,180,180,180, - 180,180,180,180,180,180,180,180,232,232,180,180,232,5,134,134, - 134,232,232,232,232,232,134,232,232,232,232,232,204,232,232,3, - 232,232,204,232,232,204,232,232,232,232,204,232,204,232,204,232, - 232,232,192,232,232,232,232,232,232,232,204,232,232,204,232,232, - 232,232,204,232,204,204,204,232,232,232,232,232,232,204,204,232, - 3,204,5,5,5,5,5,5,5,5,5,5,5,5,134,76, - 76,5,76,5,98,204,98,3,76,98,98,98,204,98,98,5, - 98,98,98,98,98,98,98,3,3,3,98,3,3,98,3,3, - 3,98,3,3,192,98,98,192,98,3,3,3,3,3,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,119,119,119,119,119,119,119,119,132,119,119,132,165,132,119, - 119,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,36,165,165,165,165,165,165,36,165,36, - 36,36,165,36,36,36,36,36,224,224,36,224,201,36,36,36, - 36,224,36,36,224,36,75,75,36,201,36,201,36,224,75,36, - 224,201,36,36,224,75,201,201,224,252,201,224,201,201,252,201, - 75,75,76,76,201,75,252,180,75,75,180,180,134,180,180,180, - 180,180,180,180,180,180,180,180,180,180,180,180,180,232,232,232, - 232,134,134,232,232,134,232,5,5,5,3,232,232,180,232,232, - 3,232,232,232,232,232,232,232,232,5,5,134,5,232,5,3, - 232,232,232,232,232,192,232,232,192,232,192,232,192,232,232,232, - 232,232,232,232,192,232,192,232,192,232,232,232,232,3,3,232, - 232,5,134,5,134,134,134,5,134,76,5,76,5,76,76,76, - 5,76,76,76,76,3,76,76,76,98,76,98,76,98,98,98, - 98,5,98,98,98,76,3,98,98,98,98,98,3,98,98,3, - 98,98,3,98,3,98,3,98,192,98,98,252,3,3,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 165,165,165,165,119,132,132,119,165,165,132,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 36,36,165,75,36,165,165,36,36,36,36,36,224,36,36,36, - 36,36,224,36,201,36,36,36,36,36,36,36,201,36,36,201, - 36,224,201,36,201,36,224,224,36,224,75,75,75,201,75,75, - 201,75,75,180,180,75,75,75,180,180,75,180,180,134,180,180, - 75,180,75,180,180,180,180,180,180,180,180,180,180,180,134,134, - 232,232,180,134,232,134,232,134,134,232,5,180,232,180,232,232, - 5,180,232,232,180,3,5,5,232,232,232,134,134,232,232,5, - 232,232,232,232,232,232,232,232,3,232,232,232,232,232,192,232, - 192,232,192,232,232,232,232,232,180,3,180,3,180,134,5,5, - 76,134,5,134,5,76,76,76,134,76,134,76,134,76,5,76, - 76,76,76,98,76,76,76,98,76,98,98,76,98,76,76,98, - 76,76,98,98,98,98,98,98,98,3,98,98,3,98,3,98, - 98,3,98,98,3,3,98,98,192,192,3,3,252,3,252,3, - 192,192,192,192,3,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,98, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,132, - 119,165,119,119,119,119,119,36,165,165,165,119,165,165,36,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,201, - 36,36,36,36,36,36,165,36,36,36,36,36,36,36,36,36, - 36,201,36,36,36,201,75,75,201,75,224,201,201,75,201,201, - 180,201,201,75,201,180,201,180,75,180,180,180,180,180,180,180, - 180,180,180,180,75,180,180,180,180,180,180,180,180,180,180,232, - 180,180,232,232,204,232,134,232,180,134,134,5,5,5,180,134, - 134,232,5,5,134,5,134,134,134,134,134,134,134,134,134,134, - 180,180,180,180,180,180,5,180,232,180,180,180,180,180,180,180, - 180,180,75,232,180,180,180,180,5,134,5,134,5,134,76,76, - 5,76,76,76,76,5,134,5,76,76,76,76,76,76,57,57, - 98,76,57,76,98,76,76,98,76,76,76,98,98,98,98,76, - 98,98,98,98,76,98,98,76,98,98,98,98,98,98,98,98, - 98,3,98,98,3,98,3,192,98,98,98,252,192,98,98,98, - 3,192,192,3,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 119,119,119,165,36,119,165,119,119,165,165,165,165,165,165,165, - 36,36,165,165,165,165,165,165,36,165,165,165,165,165,165,165, - 165,165,165,165,36,36,165,165,36,165,36,165,165,165,165,36, - 36,36,36,36,165,36,165,201,36,36,201,36,36,36,36,201, - 36,36,36,201,36,36,36,75,201,201,224,224,224,201,224,201, - 75,75,201,75,201,75,201,201,75,201,75,180,75,180,75,180, - 180,180,180,180,180,180,180,134,180,180,134,180,180,180,180,180, - 180,180,180,232,114,180,180,232,180,5,5,134,134,134,232,5, - 5,134,5,232,134,134,134,134,134,5,204,232,134,134,134,5, - 5,5,5,5,5,134,5,134,134,5,5,5,134,5,134,134, - 134,5,134,180,5,5,5,134,134,134,134,5,134,5,134,134, - 134,5,134,76,76,76,76,134,76,76,76,76,76,76,76,162, - 76,76,57,76,57,76,76,76,57,57,57,57,76,76,98,98, - 76,98,76,98,98,98,98,98,98,3,98,98,98,98,98,98, - 98,98,3,98,3,3,3,98,192,192,192,98,3,192,3,192, - 252,3,192,192,192,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,210,119,119,119,119,119,210,119,119,119,119,119,119,119,119, - 119,119,119,165,165,119,165,119,119,119,119,119,119,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,36,36,165,36,36,36,36,36,165, - 165,165,165,165,36,36,36,165,165,36,165,36,165,36,36,165, - 36,36,201,36,201,36,36,36,201,36,75,75,201,75,75,201, - 201,201,201,201,180,201,75,180,180,180,75,180,180,180,180,75, - 180,75,134,75,180,180,180,180,180,180,180,180,180,180,134,180, - 232,180,180,180,114,180,5,134,5,134,134,5,134,134,134,134, - 134,134,134,5,134,134,134,134,134,134,134,134,5,134,134,134, - 5,134,134,134,134,134,134,134,134,134,76,76,76,134,134,134, - 76,134,76,5,134,134,76,134,5,180,5,76,76,76,5,76, - 5,76,76,134,76,76,76,76,76,76,76,76,76,76,76,76, - 57,162,76,76,57,76,57,57,76,76,76,76,76,98,76,98, - 76,76,98,76,98,76,98,98,98,98,98,98,98,98,98,98, - 98,98,98,3,98,3,192,98,98,3,98,3,3,252,3,98, - 3,3,3,3,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,3, - 119,210,210,210,119,210,119,210,119,210,119,119,210,119,119,119, - 119,119,119,119,119,165,119,165,119,165,165,165,165,119,165,119, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,36,36, - 36,36,36,165,165,165,36,36,165,36,36,36,165,36,36,36, - 36,36,36,36,165,165,201,75,75,36,201,75,201,201,201,224, - 36,75,224,201,75,201,201,201,75,75,201,201,75,201,180,180, - 75,180,201,180,201,180,201,201,134,180,180,180,180,180,180,180, - 180,180,134,180,114,5,134,134,134,134,76,134,134,134,134,134, - 5,134,134,134,134,134,134,134,5,76,76,134,134,134,134,76, - 76,134,134,134,76,76,76,134,76,134,134,134,134,134,134,134, - 134,134,134,134,76,134,134,76,76,76,5,134,134,76,134,76, - 76,134,76,76,76,76,76,76,76,201,57,201,57,162,162,76, - 57,162,162,162,76,162,76,76,162,57,76,57,57,57,76,76, - 76,98,76,98,98,98,98,98,98,98,98,98,98,98,98,98, - 98,98,98,98,3,3,192,192,98,192,192,192,3,3,3,3, - 3,3,3,3,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,252, - 210,210,119,119,210,210,210,119,210,119,210,119,210,119,210,119, - 210,119,119,119,119,165,119,119,165,210,165,210,119,119,119,165, - 165,119,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 36,165,119,165,165,165,165,165,36,36,36,36,36,36,165,165, - 165,165,165,36,36,36,165,165,36,165,165,36,36,201,36,165, - 36,36,36,201,36,36,36,36,201,36,36,36,201,36,36,201, - 75,201,201,201,201,201,201,201,201,180,201,75,201,75,201,201, - 201,201,180,201,201,180,180,180,180,180,180,180,201,180,180,201, - 180,180,201,180,114,201,76,201,180,180,180,76,180,180,134,76, - 180,134,134,134,134,134,134,76,76,134,134,134,134,134,76,134, - 134,76,76,76,134,134,134,76,134,76,134,134,76,76,76,76, - 76,76,76,76,134,134,76,134,134,76,76,76,76,76,76,76, - 5,76,76,76,76,76,162,201,76,162,76,57,76,76,76,162, - 76,162,57,162,162,162,31,31,162,57,162,162,76,57,57,31, - 76,31,98,31,98,76,98,57,98,98,98,98,98,98,98,98, - 98,98,3,3,3,98,3,192,192,192,3,3,3,3,3,3, - 3,3,3,3,3,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,98, - 210,210,210,210,210,210,210,210,119,210,119,119,119,210,119,119, - 119,119,210,119,119,165,119,119,119,119,119,119,210,165,119,165, - 119,119,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,25,25,165,165,165,165,36,165,165, - 165,165,165,165,165,36,36,165,36,36,165,36,165,165,36,165, - 165,165,165,36,36,165,165,162,36,201,201,36,201,75,36,201, - 201,36,201,201,75,75,75,201,201,75,201,201,201,201,75,180, - 201,201,180,201,201,201,180,201,201,201,201,180,201,180,180,180, - 180,134,76,180,114,134,180,201,201,180,180,201,201,180,134,180, - 180,201,180,134,134,76,134,134,134,134,134,134,134,134,134,134, - 134,134,134,134,134,134,134,76,134,76,76,134,134,134,134,201, - 134,201,76,76,76,76,76,76,134,76,76,76,76,76,76,162, - 76,76,76,76,76,76,76,162,76,162,76,162,162,162,162,162, - 57,57,162,162,162,162,76,162,162,57,162,31,76,162,76,57, - 76,76,76,76,98,31,98,98,98,98,98,98,98,98,98,98, - 98,98,98,5,98,3,3,3,3,192,192,3,192,3,3,252, - 3,3,3,3,3,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,3,98, - 210,210,210,210,210,210,210,119,210,210,210,210,119,119,210,119, - 210,119,119,210,119,119,119,119,119,119,119,165,119,165,119,210, - 119,119,210,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,36,25,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,36,165,36, - 165,36,36,165,165,36,165,36,36,36,201,36,201,165,36,165, - 201,36,36,36,201,201,201,201,36,201,201,75,201,75,201,201, - 75,201,201,180,201,201,201,180,180,201,201,201,180,201,201,201, - 201,180,180,201,114,201,201,201,201,201,201,134,201,201,201,201, - 201,180,134,201,201,134,134,76,201,134,201,180,134,134,76,76, - 134,76,76,76,76,76,134,134,76,134,76,201,76,76,201,134, - 201,134,134,76,201,134,201,201,201,201,76,76,76,76,76,76, - 76,76,76,201,162,201,57,76,162,76,162,76,201,162,76,162, - 162,57,162,57,57,162,31,31,162,57,162,76,162,162,76,76, - 31,31,76,31,76,5,98,76,98,98,98,98,98,98,98,98, - 98,98,3,3,98,3,98,3,98,98,98,3,3,192,98,3, - 3,3,3,3,3,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,3,3, - 251,210,210,210,210,210,210,210,210,119,210,210,210,210,119,210, - 119,210,210,119,210,119,119,119,119,210,119,119,119,210,119,165, - 165,165,119,119,210,165,210,165,165,165,210,165,210,165,165,165, - 165,165,165,165,165,165,165,165,165,36,25,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,36, - 165,165,165,165,165,36,165,165,36,201,36,165,201,201,201,36, - 201,36,201,201,36,201,36,36,201,36,201,201,201,180,36,201, - 201,201,201,201,201,36,201,201,180,201,201,201,180,201,201,180, - 201,201,201,201,114,201,180,134,201,180,201,134,201,201,201,201, - 201,201,201,201,201,201,134,134,201,134,201,201,201,134,134,201, - 134,134,76,76,134,76,76,134,76,134,76,201,201,76,76,76, - 201,201,201,76,201,76,76,76,76,201,201,201,76,76,76,162, - 201,201,162,76,76,76,162,201,162,201,162,162,201,162,162,57, - 162,162,162,162,162,162,76,162,76,162,162,57,162,162,31,76, - 162,76,76,31,76,31,31,76,98,98,98,98,98,98,98,98, - 98,98,98,5,98,98,3,3,3,192,98,192,3,3,192,3, - 3,3,98,252,3,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,3,98,98, - 210,251,210,210,210,210,210,210,210,210,119,210,119,210,210,210, - 210,119,210,210,119,119,210,210,119,210,119,210,119,119,210,210, - 119,210,210,119,165,165,210,210,119,210,165,25,210,165,25,165, - 25,25,165,165,165,25,165,25,25,165,25,165,165,210,165,165, - 165,165,210,165,25,165,165,25,165,25,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,36,36,165,201,36, - 36,165,162,165,165,201,201,180,36,201,36,201,162,201,201,36, - 201,201,201,201,201,201,201,75,36,201,75,201,36,201,180,201, - 201,201,76,201,114,201,201,201,201,201,201,201,201,201,201,201, - 201,201,201,201,201,201,201,201,201,201,134,201,134,201,201,201, - 201,201,201,201,76,201,201,201,201,201,76,201,76,76,162,201, - 76,76,76,76,162,201,201,162,201,76,76,76,162,201,201,76, - 162,76,76,76,162,162,201,57,201,57,162,57,162,57,162,162, - 162,57,162,57,162,162,31,162,31,57,162,57,162,162,76,162, - 76,31,76,76,76,76,5,57,76,76,98,98,98,98,98,98, - 98,98,98,98,98,98,98,3,3,98,98,192,98,3,98,3, - 98,98,3,3,3,98,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,3,192,3,98, - 251,251,210,210,210,210,210,210,210,210,210,210,210,119,210,119, - 210,210,210,210,210,119,210,119,210,210,210,119,210,119,210,119, - 210,210,210,210,210,210,25,25,210,210,165,210,165,25,25,165, - 165,165,25,165,25,25,25,165,165,165,25,25,165,165,210,165, - 25,165,25,165,25,25,165,165,25,165,25,165,165,165,25,165, - 165,165,165,165,94,165,165,165,162,165,165,162,36,165,165,180, - 180,36,201,36,201,36,36,201,36,201,36,201,201,36,201,201, - 201,165,201,162,201,201,201,201,201,201,201,201,201,201,201,201, - 201,201,201,162,114,201,201,201,201,201,162,201,201,201,201,201, - 201,201,201,201,201,201,201,201,201,201,201,201,201,201,134,201, - 201,201,76,201,201,76,201,201,201,76,76,201,201,76,201,201, - 162,201,201,76,76,76,76,162,162,162,162,201,162,162,162,76, - 162,162,162,201,201,162,162,162,162,162,162,162,57,201,162,162, - 162,57,162,162,162,162,162,162,162,162,162,76,162,57,162,162, - 76,76,31,31,76,31,76,57,76,98,76,98,98,98,98,98, - 98,98,98,98,98,3,3,3,98,3,3,192,98,192,3,192, - 192,3,3,3,3,252,98,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,3,3,3,252,98, - 91,210,91,91,251,251,251,251,210,210,210,210,210,210,210,210, - 210,119,210,119,119,210,210,210,210,210,210,210,210,210,119,119, - 119,210,210,25,25,25,25,25,25,210,25,25,25,165,210,165, - 25,25,165,165,165,165,165,165,25,25,165,25,25,165,25,165, - 25,165,25,25,165,25,25,165,25,165,165,25,165,165,165,25, - 25,94,165,25,165,165,165,165,36,36,165,165,162,36,201,36, - 201,165,180,36,165,201,36,162,180,165,36,201,36,201,162,165, - 162,201,36,201,201,201,162,201,201,162,201,162,201,162,201,201, - 201,201,162,134,114,162,201,201,162,201,201,162,201,201,201,201, - 201,201,76,162,162,162,162,201,201,201,201,201,201,201,201,201, - 201,201,201,162,162,201,162,162,162,201,201,201,162,201,76,162, - 201,76,201,201,162,162,201,201,201,201,76,162,162,201,201,162, - 201,201,162,162,162,162,201,57,162,162,162,162,162,57,162,162, - 162,162,57,162,162,162,31,57,162,162,162,57,162,162,57,162, - 31,76,76,76,76,76,76,57,98,98,98,76,98,98,98,98, - 98,98,98,98,76,98,98,3,3,98,3,98,192,98,3,3, - 3,3,3,3,192,98,192,3,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,3,192,3,3,3,3,3,192,98,98, - 126,251,91,210,210,210,251,210,251,251,210,210,251,210,119,210, - 210,210,210,210,210,210,210,25,119,210,119,210,25,210,25,119, - 119,119,119,119,210,25,25,210,25,25,25,25,25,210,25,210, - 165,210,165,210,25,210,25,165,165,210,165,210,25,25,25,25, - 165,25,165,25,25,165,25,25,165,25,25,25,25,25,94,165, - 165,25,94,25,94,25,165,165,165,165,165,201,165,165,165,165, - 36,201,162,36,165,162,36,201,36,162,201,165,162,36,201,201, - 201,165,162,165,162,201,165,162,201,165,201,162,201,165,201,201, - 201,201,162,134,114,162,201,201,162,201,201,201,201,201,201,162, - 201,201,201,201,201,201,162,201,162,201,201,201,201,162,201,162, - 162,162,162,201,162,162,201,162,162,162,162,201,162,162,201,162, - 162,162,162,201,201,162,162,162,162,162,162,201,162,162,162,162, - 162,201,162,162,201,57,162,162,162,162,162,162,31,162,31,162, - 162,162,162,162,162,162,162,31,31,162,162,162,162,57,162,162, - 162,162,57,76,31,76,76,76,76,98,98,98,98,98,98,98, - 98,98,98,98,98,98,3,98,98,3,98,98,98,98,192,3, - 3,3,98,3,3,3,3,98,252,252,192,192,192,192,192,192, - 192,192,192,192,3,3,3,3,3,3,3,3,98,3,98,98, - 251,251,91,91,91,91,251,210,251,251,251,210,210,251,210,210, - 210,210,210,210,210,210,210,210,210,210,210,210,165,210,25,210, - 210,210,210,210,25,25,139,25,25,25,25,25,25,25,25,210, - 25,210,25,25,25,25,210,25,210,165,25,25,25,210,25,25, - 25,25,25,165,25,25,25,165,210,165,25,165,25,165,165,25, - 94,25,25,165,165,165,25,165,94,165,165,165,94,165,162,165, - 165,165,165,165,165,201,165,165,165,180,165,36,36,180,165,36, - 162,201,180,201,201,201,201,180,201,201,201,201,201,201,201,201, - 201,201,201,162,114,201,162,201,201,162,201,162,162,162,165,201, - 162,162,201,162,201,162,201,162,162,201,162,162,162,162,162,162, - 162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,201, - 162,162,162,162,162,162,201,201,162,162,201,162,162,31,162,162, - 162,162,162,162,31,31,162,162,162,31,162,76,76,162,162,162, - 162,162,162,162,162,162,162,76,76,76,162,76,76,76,76,76, - 76,76,76,76,76,31,76,76,98,76,98,98,76,98,98,98, - 98,98,98,98,98,98,98,98,3,98,98,3,98,98,98,3, - 3,3,3,98,3,98,98,3,192,3,192,3,192,3,192,3, - 192,3,252,252,3,3,3,3,3,3,3,3,3,98,98,57, - 91,251,251,251,91,210,91,210,251,210,251,210,251,210,251,251, - 251,210,210,210,210,139,210,210,210,210,25,210,210,210,25,210, - 25,25,25,139,25,210,25,139,25,139,210,25,25,139,25,139, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 165,25,25,25,25,25,25,25,210,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,165,25,165,165,165,165,36,165,165, - 165,165,180,165,165,180,36,165,201,36,165,162,36,201,165,201, - 165,201,172,58,80,40,137,40,190,9,40,40,40,137,137,190, - 9,40,40,103,114,165,201,162,162,162,36,201,201,162,162,162, - 201,162,201,162,162,162,162,162,162,162,162,162,162,162,162,162, - 162,162,162,162,94,162,162,162,162,162,162,162,162,162,94,162, - 162,162,162,162,162,162,162,162,162,94,162,162,162,162,31,162, - 31,162,162,162,162,94,162,162,162,31,129,240,112,173,191,191, - 191,173,9,203,191,191,191,191,191,9,9,9,9,191,9,191, - 191,112,191,220,98,76,31,76,76,76,98,98,98,98,98,98, - 98,98,98,98,98,98,98,3,98,98,98,98,98,98,98,98, - 192,3,3,3,3,3,3,3,3,252,3,3,3,3,3,252, - 3,3,3,3,3,3,3,3,3,3,3,3,192,3,98,98, - 91,91,91,251,91,251,91,91,251,251,251,251,251,210,210,251, - 210,210,210,210,210,210,210,210,210,25,210,139,210,139,25,210, - 139,139,139,25,25,210,139,25,210,25,25,210,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,94,25,94,25,165,165,165,165,165,94,165,165, - 165,36,94,162,165,162,165,36,165,187,201,201,165,165,165,180, - 180,201,33,33,6,6,233,6,154,108,154,6,154,233,233,233, - 33,6,233,108,114,162,94,165,165,165,94,94,94,162,94,165, - 94,162,94,94,94,94,94,94,162,162,162,162,94,94,162,94, - 94,94,162,94,94,94,162,162,162,162,162,162,162,162,162,162, - 162,162,162,94,94,94,94,94,162,94,94,94,94,31,94,94, - 94,94,31,94,31,31,31,94,31,237,220,233,9,33,9,9, - 220,233,33,9,33,233,9,33,220,233,191,245,173,233,9,233, - 9,9,191,233,31,31,3,31,57,31,98,57,98,98,98,98, - 98,98,31,98,98,98,98,98,98,98,98,98,98,98,98,3, - 98,3,3,3,3,3,192,192,192,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,98,3,192,252,98,57, - 93,126,91,91,251,251,251,251,91,210,251,251,210,251,210,210, - 251,91,210,210,139,210,139,139,139,139,210,139,210,139,139,139, - 210,210,139,139,210,25,210,139,139,210,139,25,25,139,25,139, - 210,139,139,139,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,139,139,25,25,25, - 25,25,25,25,25,25,25,25,25,94,94,25,165,25,134,133, - 205,154,137,154,137,154,137,133,129,240,129,80,133,154,154,80, - 154,137,220,220,137,33,80,191,173,173,9,80,80,9,80,80, - 190,80,220,220,154,129,80,154,133,137,80,80,137,137,137,137, - 80,137,80,220,220,129,129,191,154,220,129,137,137,137,137,129, - 129,129,129,129,129,129,129,133,220,220,129,129,129,129,129,129, - 133,129,129,129,129,129,129,137,129,129,129,129,129,129,129,220, - 154,133,129,129,190,129,191,129,191,9,129,220,9,220,220,9, - 220,129,220,9,9,9,9,33,9,9,220,220,9,220,9,9, - 9,9,220,191,9,191,191,191,129,191,129,129,129,129,129,191, - 129,9,191,191,98,98,98,98,98,98,98,98,98,98,98,98, - 192,3,3,3,192,3,3,3,192,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,98,3,192,98,98, - 126,93,126,91,91,251,91,210,91,251,251,251,251,251,210,251, - 210,251,251,251,210,251,210,210,210,210,139,139,251,210,139,210, - 139,251,210,139,139,139,139,210,139,139,210,139,251,139,139,210, - 139,139,210,25,210,139,139,139,139,139,139,139,139,139,139,139, - 25,139,139,25,139,25,25,25,139,25,25,25,210,25,139,25, - 25,210,210,25,25,25,210,25,25,165,165,94,25,94,180,9, - 33,40,233,9,33,220,33,9,33,9,203,129,203,40,191,220, - 33,33,220,220,33,220,33,9,108,33,33,33,154,40,191,220, - 191,9,9,220,80,190,220,80,9,154,154,154,33,233,40,33, - 154,33,220,220,220,80,33,220,33,33,154,33,80,33,33,33, - 191,191,220,220,191,80,220,33,220,154,33,220,154,129,154,220, - 220,220,220,220,220,220,80,220,9,220,220,220,220,220,220,220, - 220,9,220,220,220,220,80,33,33,220,33,80,33,233,9,33, - 9,9,9,33,33,154,33,33,80,33,33,9,233,9,233,233, - 220,233,9,220,220,233,220,233,220,233,233,220,233,233,220,233, - 233,220,9,191,204,98,98,98,3,98,3,98,98,98,98,98, - 3,3,3,3,3,3,3,3,192,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,98,3,98,252,98,57, - 91,225,126,93,91,251,91,251,91,210,251,251,251,251,91,251, - 251,251,251,251,251,251,251,251,139,251,251,139,251,251,139,251, - 251,139,139,251,251,251,251,139,251,251,139,251,210,139,139,139, - 139,139,139,139,139,25,139,139,139,139,139,139,139,210,139,139, - 139,139,139,139,139,139,139,139,25,25,210,210,25,210,139,139, - 139,25,25,25,210,25,139,25,25,25,165,25,165,139,201,58, - 9,220,108,33,233,154,33,154,154,33,9,154,233,154,154,80, - 220,173,40,233,154,80,80,80,233,108,154,33,173,203,203,173, - 191,137,33,33,9,9,9,190,9,191,80,154,154,154,108,80, - 129,80,154,154,154,191,191,154,190,203,191,173,129,191,220,154, - 9,154,233,80,220,220,154,154,154,154,129,33,33,220,220,154, - 154,220,33,154,154,154,154,129,154,154,154,33,33,154,80,233, - 154,9,220,33,220,220,33,129,28,33,233,154,80,154,33,154, - 33,154,33,154,80,154,9,33,191,233,80,33,154,33,33,233, - 233,191,233,233,233,33,6,6,6,220,233,220,233,6,220,9, - 233,233,9,173,204,98,98,98,98,98,3,98,98,98,98,98, - 98,98,98,98,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,98,252,98,98, - 93,91,91,126,91,91,91,91,91,91,210,91,251,210,251,251, - 251,251,139,91,139,251,251,251,139,139,251,251,139,251,251,139, - 251,251,139,139,251,251,251,139,251,251,139,139,251,139,91,251, - 139,251,251,139,139,91,139,210,91,251,251,139,139,139,139,139, - 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, - 139,139,139,25,139,139,25,25,25,25,25,94,94,25,191,9, - 9,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,233,233,233,35,98,98,98,98,98,98,3,98,98,98,98, - 98,98,98,98,3,3,3,3,3,3,3,3,3,3,252,3, - 3,3,3,3,3,3,3,3,3,3,98,3,3,192,98,57, - 93,93,91,225,91,91,126,91,251,91,251,251,91,251,251,251, - 91,91,251,251,251,251,139,251,126,251,251,251,251,251,139,251, - 251,251,251,251,139,91,139,251,251,139,251,91,139,251,126,139, - 251,251,139,91,139,139,91,139,139,251,139,91,139,139,139,139, - 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, - 139,139,139,139,139,139,139,139,25,210,25,25,25,210,6,35, - 9,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,151,243,209,227,227,209,68, - 111,173,173,173,191,3,98,98,98,98,3,98,3,98,98,98, - 98,98,98,98,3,5,98,98,98,3,252,98,98,98,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,98,252,98,98, - 225,93,93,91,93,91,91,126,91,91,91,91,251,91,91,126, - 251,251,251,126,126,126,126,126,251,251,126,126,251,126,126,126, - 91,251,251,126,126,251,251,91,91,251,251,251,251,251,251,139, - 91,251,251,91,139,91,139,91,139,91,139,139,91,91,251,139, - 139,139,139,139,139,91,139,91,139,139,139,91,210,139,210,139, - 139,139,139,139,139,139,139,25,139,139,25,139,25,139,6,35, - 9,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,9,173,233,233,98,98,76,98,98,3,3,98,3,3,98, - 98,98,98,98,98,98,98,3,3,98,98,98,98,3,3,3, - 180,3,98,98,3,3,98,98,3,3,98,3,3,3,98,57, - 93,93,93,93,126,93,126,126,126,126,126,91,126,126,251,91, - 91,91,251,251,251,251,251,91,126,126,251,91,126,126,126,126, - 126,91,251,126,126,126,139,251,91,91,251,91,91,91,91,251, - 91,139,91,139,251,91,139,251,91,139,91,251,91,139,91,91, - 91,139,210,91,139,139,139,139,91,139,91,139,139,251,91,210, - 91,210,139,139,139,139,139,139,210,139,25,139,139,126,6,233, - 9,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,9,173,35,233,98,98,3,98,98,98,3,3,98,3,3, - 98,98,98,3,98,3,98,98,98,98,3,3,98,98,98,3, - 252,3,3,192,192,3,3,3,3,3,98,3,3,252,98,98, - 93,93,93,93,93,91,91,93,91,91,91,126,126,91,91,251, - 251,126,91,91,91,91,91,251,251,251,91,126,251,251,251,251, - 126,126,91,126,126,91,91,91,126,139,126,91,126,126,91,91, - 91,91,139,91,91,139,91,91,251,91,91,139,91,139,139,139, - 251,139,139,91,139,91,139,91,139,91,139,139,91,91,139,251, - 139,139,139,139,139,139,139,139,139,139,139,139,139,139,6,33, - 9,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,173,173,233,233,98,98,76,98,98,98,76,3,3,98,3, - 3,98,5,3,98,98,98,98,98,98,98,98,3,3,98,98, - 98,98,98,98,98,98,98,3,3,3,3,252,98,3,98,57, - 87,87,93,87,11,93,91,93,225,91,91,91,91,91,91,91, - 126,91,91,91,91,126,91,91,91,126,126,91,91,91,91,91, - 126,225,91,91,126,126,126,91,91,91,139,91,139,91,126,126, - 91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,139, - 91,91,139,91,139,91,139,91,139,91,91,139,139,91,91,139, - 251,139,139,139,251,139,139,91,139,139,139,139,139,126,154,9, - 9,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,9,173,233,233,98,98,3,98,98,98,3,3,98,3,76, - 3,98,98,98,98,98,98,98,3,98,98,98,98,98,98,98, - 98,98,98,98,98,3,98,3,180,3,98,3,3,252,98,98, - 87,87,87,93,93,93,11,93,91,225,93,91,91,91,93,93, - 93,225,126,126,126,91,91,91,91,126,91,225,93,93,225,126, - 91,91,126,126,126,91,91,126,93,91,91,91,91,91,126,91, - 126,93,91,91,126,126,126,126,91,91,91,139,91,91,91,91, - 91,91,139,139,139,139,91,87,139,91,91,91,91,91,91,91, - 91,139,91,91,91,139,139,139,139,91,139,139,139,91,35,233, - 173,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,173,173,233,233,98,98,98,98,98,98,76,3,98,3,98, - 3,98,98,98,98,98,98,98,3,98,98,98,3,98,98,98, - 98,3,3,252,98,98,98,3,3,252,3,3,3,3,98,57, - 87,164,53,87,87,93,93,93,93,93,93,93,93,126,91,126, - 91,93,93,93,93,93,225,93,93,225,91,126,126,91,93,225, - 126,93,91,93,225,225,91,126,126,93,91,93,126,91,91,93, - 126,225,91,225,91,91,225,91,126,225,139,139,139,139,139,139, - 139,87,139,91,139,139,87,139,139,139,139,87,87,139,139,91, - 91,139,91,91,91,139,139,139,139,139,139,139,139,91,154,9, - 173,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,173,173,35,35,98,98,3,98,98,98,98,98,98,3,76, - 3,98,98,98,3,98,98,98,3,98,98,98,98,98,98,98, - 98,180,3,98,98,98,98,98,98,252,252,98,98,252,98,98, - 164,87,87,87,93,87,93,87,93,93,225,93,93,93,93,93, - 93,225,93,93,225,225,93,225,225,91,225,93,93,93,91,91, - 93,126,93,91,91,91,225,93,93,91,93,126,93,93,93,91, - 91,91,93,91,225,93,91,225,91,91,93,91,91,87,139,139, - 87,139,87,91,91,91,91,91,139,87,91,91,87,91,139,87, - 139,139,91,87,91,91,91,139,139,139,139,139,91,91,6,233, - 9,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,244,142, - 244,173,173,9,233,98,98,98,98,98,98,98,98,98,3,98, - 98,98,98,98,98,98,98,98,98,98,3,76,98,98,98,98, - 98,98,98,98,98,252,252,252,252,252,252,252,3,3,98,57, - 87,87,87,87,93,87,93,87,93,87,93,93,93,93,93,93, - 93,93,93,93,93,93,93,93,93,93,93,93,93,225,93,93, - 93,93,225,93,93,93,93,93,93,91,93,91,93,91,93,93, - 93,225,93,87,93,93,93,225,225,93,93,93,93,93,93,93, - 93,93,139,91,87,91,91,91,91,91,91,87,91,93,93,91, - 93,91,93,91,91,139,126,87,87,91,87,87,91,93,154,9, - 173,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,129,129, - 240,173,9,35,35,98,98,98,98,98,98,98,98,98,5,76, - 98,98,98,98,76,98,98,98,76,98,3,98,3,98,98,98, - 3,98,98,3,3,98,98,98,3,98,3,3,3,3,98,98, - 53,53,87,53,87,87,87,87,87,93,11,11,11,93,93,93, - 93,93,93,93,93,93,93,93,93,93,93,93,93,87,87,93, - 11,93,87,93,136,93,93,93,93,93,93,93,225,93,93,93, - 93,93,87,93,93,93,93,93,93,93,93,93,93,93,93,93, - 93,93,93,93,87,87,93,93,87,87,87,87,91,87,87,87, - 87,91,87,91,93,91,87,91,139,93,87,139,91,91,154,9, - 9,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,137,244,203,58,129,129,190,129,129, - 240,173,173,173,35,98,98,98,76,98,98,98,3,98,98,98, - 98,98,98,98,98,98,98,3,3,98,98,3,98,98,98,3, - 3,98,98,98,76,3,3,98,98,98,3,3,98,252,98,57, - 53,53,87,53,87,87,87,87,87,87,87,87,87,11,87,87, - 11,87,93,93,93,93,93,93,93,93,93,93,93,93,87,93, - 87,93,87,93,136,93,136,93,136,93,87,93,136,93,87,87, - 87,87,136,93,93,93,87,93,93,93,93,136,93,93,93,93, - 93,93,93,87,87,87,93,87,87,87,93,87,87,87,87,87, - 91,93,136,87,91,91,91,91,91,91,126,139,87,93,108,9, - 173,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,133,240,190,244,129,133,240,151,151, - 58,9,9,233,35,31,98,98,98,76,98,76,98,98,3,98, - 98,98,98,98,98,98,98,98,3,98,98,3,98,3,98,76, - 3,98,76,98,98,98,98,98,98,98,76,3,3,252,98,57, - 53,53,53,87,87,87,87,87,87,87,87,93,87,93,93,87, - 93,93,87,93,93,93,11,87,93,93,87,87,87,87,87,87, - 11,87,87,87,93,87,93,136,93,87,87,93,93,93,93,87, - 87,87,93,93,93,93,87,87,93,93,136,93,136,87,87,87, - 93,87,87,87,87,87,87,93,87,93,87,87,87,87,87,87, - 87,87,87,87,87,87,87,87,93,139,93,139,139,93,6,9, - 9,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,240,190,240,129,137,129,129,129, - 240,173,173,233,233,5,98,76,98,98,98,98,76,98,76,98, - 98,76,3,98,3,76,76,3,98,98,98,98,98,98,3,3, - 76,3,98,98,5,3,3,3,98,3,3,3,98,98,224,98, - 53,53,53,53,53,87,87,53,87,87,87,87,87,87,87,53, - 53,87,87,87,87,93,87,87,87,93,93,87,87,87,87,87, - 87,93,87,87,87,87,87,87,136,93,87,87,87,87,87,87, - 87,87,87,87,87,87,136,87,87,87,87,87,87,136,87,87, - 87,87,87,87,87,87,87,93,87,93,136,93,87,87,87,87, - 87,87,87,87,93,87,87,87,87,87,93,93,225,87,108,9, - 173,240,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,240,244,112,129,28,240,240, - 196,173,173,233,35,31,98,57,98,76,98,98,98,98,98,98, - 98,98,3,76,98,98,98,3,3,3,98,3,98,98,98,3, - 98,3,3,98,76,76,76,98,76,98,98,3,3,98,98,57, - 53,53,56,53,53,53,53,87,53,87,53,87,87,53,87,87, - 87,87,53,87,87,87,87,87,87,87,87,11,87,87,87,87, - 93,87,87,87,87,87,87,87,87,87,87,87,87,87,87,53, - 136,87,87,87,87,87,87,87,87,87,87,136,208,87,87,87, - 87,87,87,87,87,87,87,208,87,87,87,87,136,53,87,93, - 87,87,87,93,87,87,93,93,87,87,87,87,93,93,154,9, - 28,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,15,15,173,220,98,76,98,98,98,98,76,98,98,98,98, - 98,98,98,3,3,3,98,98,98,98,98,98,252,98,98,76, - 98,76,98,3,3,3,98,3,3,3,3,98,98,3,57,98, - 56,53,53,53,53,53,53,53,53,87,53,53,87,87,87,87, - 53,87,87,53,53,87,87,87,136,53,87,87,87,87,87,87, - 87,93,87,87,87,87,87,87,87,53,87,87,87,87,87,56, - 53,87,87,56,136,87,87,208,136,87,87,87,87,87,87,208, - 136,87,87,87,208,87,87,87,208,87,208,87,87,87,87,87, - 87,87,87,87,87,87,87,87,87,93,87,87,87,136,154,233, - 191,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,173,173,233,35,31,98,76,31,98,76,98,98,98,98,98, - 98,98,98,98,98,98,98,98,57,98,98,98,98,98,98,3, - 3,98,76,98,98,3,98,98,76,98,3,3,98,98,57,57, - 53,53,56,53,53,53,53,53,53,53,87,53,53,53,53,53, - 87,53,53,87,87,87,136,87,87,87,87,87,87,53,87,53, - 87,53,53,87,53,87,53,87,53,87,53,53,53,53,53,87, - 87,53,53,87,87,53,53,87,136,53,53,208,136,136,208,87, - 87,208,136,87,87,136,87,53,87,87,87,87,87,87,87,208, - 87,87,87,87,87,87,87,87,87,93,87,87,136,87,108,9, - 173,206,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,173,173,9,233,76,31,98,76,98,98,31,98,76,98,98, - 57,98,98,57,98,98,98,98,98,98,57,98,98,252,98,98, - 98,3,98,98,98,76,3,3,3,180,76,98,3,98,98,57, - 246,53,246,56,56,56,53,53,53,53,53,53,53,53,87,53, - 87,53,53,53,53,53,53,53,87,53,53,136,87,53,136,53, - 87,87,53,87,53,87,53,53,53,53,53,53,136,53,43,53, - 53,87,53,56,56,53,56,53,53,53,53,53,53,53,53,208, - 87,53,56,53,53,56,53,136,136,208,136,87,208,208,136,53, - 87,87,56,87,208,87,87,87,87,87,87,87,87,87,154,9, - 173,129,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,173,9,233,233,98,76,31,76,31,3,76,98,98,98,98, - 98,98,98,98,98,98,98,98,98,98,98,98,98,3,98,98, - 98,98,252,98,98,98,98,98,98,3,252,98,3,98,98,57, - 56,56,56,53,53,53,53,56,53,53,53,53,53,87,53,87, - 53,87,53,53,53,87,87,87,53,53,87,53,53,53,53,53, - 53,53,53,53,53,53,43,53,53,53,53,53,53,53,56,53, - 87,53,53,53,53,53,53,136,53,53,53,136,53,53,53,53, - 53,53,53,53,53,53,87,56,53,53,56,53,87,87,208,87, - 136,208,87,87,56,53,53,53,56,87,87,87,136,87,108,173, - 191,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,9,173,9,233,31,31,3,76,98,31,98,98,98,57,98, - 98,98,31,98,98,98,98,98,98,98,98,98,98,98,98,98, - 98,252,98,252,98,98,98,98,98,98,98,98,98,98,57,57, - 246,53,246,56,56,56,53,56,56,53,53,53,53,53,53,53, - 53,87,87,87,53,53,53,53,87,53,53,53,53,53,53,53, - 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,56, - 56,53,53,53,53,53,56,53,136,53,56,136,56,53,53,136, - 56,136,56,53,53,56,53,53,53,53,53,53,53,87,56,10, - 208,56,136,208,53,56,136,136,87,87,56,56,87,56,108,173, - 173,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,206,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,173,173,233,233,98,76,31,76,98,76,76,31,98,76,98, - 98,98,98,31,98,31,98,31,98,98,98,98,57,98,98,98, - 57,98,98,252,252,252,98,98,224,98,75,224,98,3,98,57, - 56,246,56,56,53,53,56,53,53,53,53,53,53,53,53,53, - 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, - 53,53,53,53,56,56,53,53,53,53,53,53,53,53,10,56, - 53,53,53,53,53,53,53,56,10,53,53,53,53,53,56,10, - 53,56,53,53,53,53,53,53,136,53,56,10,10,56,208,53, - 53,56,56,10,53,53,53,56,136,56,56,56,56,56,154,173, - 203,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,9,173,9,233,31,76,76,76,98,31,76,76,98,76,31, - 98,31,98,98,98,98,98,98,98,98,98,57,98,98,98,57, - 98,98,98,98,98,98,252,252,98,201,76,252,98,98,57,57, - 246,56,53,246,246,53,53,53,53,53,246,53,53,53,53,53, - 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, - 53,53,56,53,53,53,53,43,53,43,56,53,53,56,53,53, - 53,53,10,56,56,53,56,53,56,10,56,53,53,53,43,53, - 53,56,53,53,56,53,53,56,56,10,43,53,53,10,53,56, - 208,53,56,10,53,56,53,53,87,56,56,136,56,56,108,173, - 203,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,173,173,233,35,31,31,98,31,76,76,98,98,76,98,98, - 98,31,31,98,31,98,98,98,98,31,98,98,98,57,98,98, - 98,98,98,98,98,98,98,252,252,98,98,75,98,98,98,57, - 246,56,171,56,56,246,56,246,56,53,53,53,246,53,53,53, - 53,56,56,53,53,53,53,10,56,53,53,56,53,53,10,56, - 53,56,53,53,53,56,56,10,56,10,56,56,56,56,56,56, - 56,56,56,10,56,56,53,56,53,43,53,56,53,56,56,10, - 56,56,10,56,53,56,56,56,53,56,56,56,56,56,56,56, - 53,53,53,56,10,10,56,10,53,56,56,56,87,56,108,173, - 115,191,115,58,58,58,58,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,196,202,244,191,115,58,58,58,58,142, - 244,191,115,58,58,58,196,202,196,244,115,58,58,58,196,142, - 244,173,173,9,233,31,76,76,98,76,31,98,31,76,31,98, - 98,98,98,98,98,98,98,31,98,98,98,98,57,98,98,98, - 98,98,98,98,98,98,98,98,98,98,98,98,224,224,57,57, - 56,56,246,56,56,56,56,53,56,56,56,53,53,53,53,56, - 53,53,56,56,56,53,53,53,56,10,53,56,56,53,53,56, - 53,10,56,56,10,56,56,53,56,53,56,56,10,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,43,53,43,56, - 56,43,43,56,56,53,56,56,56,56,56,56,56,53,43,56, - 56,56,56,53,43,56,53,56,53,53,87,56,56,56,108,203, - 203,190,58,129,129,129,129,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,137,137,244,58,58,129,129,240,129,129, - 112,190,58,129,129,191,137,137,240,190,58,129,129,240,129,129, - 240,173,173,9,233,31,31,57,76,98,57,76,98,98,98,98, - 31,98,98,31,98,31,3,31,98,98,98,98,98,98,98,98, - 98,252,75,75,76,98,98,98,98,98,98,3,252,224,224,57, - 246,56,171,56,246,56,53,56,246,53,53,53,246,53,246,53, - 56,56,53,53,53,53,53,53,53,53,53,53,53,56,56,53, - 56,53,53,53,53,53,56,56,53,56,53,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,43,56,56,171,56,171,56, - 56,171,171,56,56,56,56,56,56,53,53,56,56,56,171,56, - 56,53,56,56,56,56,56,53,56,53,56,43,56,56,108,173, - 15,190,58,129,129,240,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,240,129,133,112,190,244,129,129,129,129,151, - 244,190,244,129,133,191,129,129,240,190,240,137,129,190,129,129, - 240,173,173,9,35,31,57,98,57,57,98,57,57,76,31,98, - 98,31,98,98,98,98,98,98,31,98,57,98,98,98,98,98, - 98,57,57,57,98,98,98,98,98,98,98,57,57,224,57,165, - 171,246,56,246,56,246,53,53,246,246,56,53,246,53,56,53, - 53,56,56,53,246,56,56,56,56,56,56,56,56,56,10,56, - 56,56,56,56,56,53,56,56,56,56,56,56,56,56,56,56, - 56,56,10,56,171,56,56,56,171,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,171,56, - 56,56,56,56,56,56,56,56,56,56,56,56,53,56,205,203, - 203,191,244,129,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,191,129,129,244,191,244,133,133,112,133,129, - 240,191,244,137,129,240,129,151,58,191,244,133,129,191,151,151, - 58,173,173,9,35,31,31,31,76,31,57,76,31,76,98,31, - 76,98,31,98,31,98,31,98,98,98,98,98,57,98,57,98, - 98,98,98,98,224,98,98,98,224,98,98,98,98,224,224,57, - 246,246,56,56,246,56,246,246,53,246,53,246,53,246,53,246, - 246,53,53,246,53,53,53,53,53,56,53,56,53,53,56,56, - 56,56,56,56,56,56,56,56,56,10,56,56,10,56,56,56, - 56,171,56,171,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,171,171,56,56,56, - 56,56,56,56,56,171,171,10,56,53,56,56,10,171,108,173, - 15,190,135,129,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,133,191,129,137,244,190,244,220,129,191,129,129, - 244,190,240,129,129,190,129,129,244,58,244,137,133,129,129,129, - 240,173,173,9,220,31,76,76,31,57,76,31,76,31,31,98, - 31,31,98,31,98,98,98,98,31,98,98,57,98,57,98,57, - 57,98,98,224,98,224,224,224,76,224,224,224,224,224,57,165, - 246,56,246,56,246,56,56,246,53,246,56,246,53,246,53,53, - 246,246,53,246,246,246,56,246,53,56,53,246,56,246,56,56, - 53,56,246,56,56,56,56,56,56,56,56,56,56,171,56,56, - 56,56,56,56,56,56,56,56,56,56,56,171,56,171,56,56, - 56,56,56,171,56,56,56,171,171,171,56,56,171,171,171,171, - 171,56,171,171,171,56,171,56,56,10,56,56,56,246,205,203, - 203,240,202,240,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 196,240,28,112,191,112,240,240,244,240,28,112,240,244,240,240, - 196,240,202,240,129,112,240,240,244,240,28,112,240,28,240,240, - 196,173,9,9,35,31,31,162,31,31,57,57,57,57,31,76, - 98,31,98,98,31,98,31,98,31,31,57,98,57,57,98,98, - 57,57,57,57,57,57,57,57,224,224,224,57,57,165,31,195, - 106,106,106,56,246,246,53,246,246,53,246,53,246,53,246,246, - 246,53,246,246,53,246,53,56,246,56,56,56,56,56,56,56, - 246,56,56,56,56,56,171,56,56,56,171,171,171,56,171,171, - 171,171,222,171,171,171,171,171,56,56,56,56,171,56,56,56, - 56,56,171,56,56,56,171,106,171,171,171,171,171,171,171,171, - 171,171,56,56,56,171,171,171,56,56,56,56,56,171,205,115, - 15,190,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,129,200,207,207,207,207,182, - 124,15,15,173,129,31,31,31,31,76,57,31,57,57,57,31, - 31,57,31,31,57,31,57,98,98,98,57,57,98,57,57,57, - 57,98,98,224,224,224,224,224,57,57,57,98,98,57,57,165, - 56,246,246,246,246,246,246,53,246,246,246,53,246,246,53,246, - 246,53,246,56,246,246,246,56,246,246,56,246,56,56,56,171, - 56,171,171,171,171,56,171,171,171,56,56,56,171,171,171,56, - 171,56,56,56,222,171,171,171,171,171,171,56,171,171,171,171, - 171,56,171,171,171,56,56,56,171,171,171,171,171,102,171,171, - 171,102,102,102,102,171,171,171,171,56,56,171,56,106,103,33, - 173,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,15,173,9,35,31,31,31,31,31,76,31,31,57,57,57, - 98,57,98,31,57,31,31,31,57,57,57,57,57,57,57,98, - 57,57,57,57,57,57,57,224,224,224,36,224,224,57,57,195, - 77,246,246,246,246,246,246,246,53,246,246,246,246,53,246,246, - 53,246,56,56,246,56,246,53,56,246,56,171,56,246,246,56, - 106,246,56,106,246,171,246,171,56,171,171,171,56,56,222,171, - 171,171,171,171,171,171,56,171,171,171,171,171,171,171,171,171, - 171,171,171,171,171,171,171,171,171,171,171,171,171,106,171,171, - 102,171,171,171,171,171,102,171,171,171,171,171,171,102,108,173, - 173,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,135,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,173,173,220,220,31,31,31,31,31,31,31,57,31,31,31, - 31,31,31,57,57,57,57,57,31,57,57,57,57,57,57,57, - 57,57,57,57,57,57,36,57,57,57,57,165,57,165,195,31, - 106,246,246,246,246,246,246,246,246,246,53,246,246,246,53,246, - 246,246,56,246,56,246,246,246,246,106,246,106,171,171,106,56, - 171,171,56,171,106,171,246,106,56,171,171,171,171,171,171,171, - 171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171, - 171,171,171,171,171,171,171,171,102,181,171,171,171,102,181,171, - 181,181,181,102,181,171,90,171,102,181,171,171,171,181,103,40, - 173,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,206,150,60,163,60,163,250, - 230,173,173,9,35,94,31,31,31,94,31,31,31,31,31,31, - 31,31,31,31,31,31,31,57,31,31,31,57,57,57,57,57, - 57,57,57,57,57,57,57,57,57,57,57,57,224,57,165,195, - 246,77,77,246,246,246,246,246,246,246,246,246,246,246,246,246, - 53,246,246,246,56,246,171,246,171,246,171,56,246,106,56,106, - 246,106,106,171,171,171,171,171,106,171,171,171,171,106,171,171, - 171,171,171,171,171,102,171,171,171,171,171,171,171,171,171,171, - 171,171,171,171,171,102,181,102,106,102,181,102,181,171,102,102, - 102,171,171,121,102,90,181,181,171,102,171,171,171,121,103,173, - 28,190,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,173,173,220,220,94,31,94,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,57,31,57,57,57,31,57,57,31,57, - 31,57,57,57,57,31,165,165,165,165,57,165,57,31,31,237, - 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, - 246,246,246,246,246,246,246,56,106,246,106,106,246,106,171,171, - 56,171,106,106,171,106,56,171,106,106,171,171,171,106,171,171, - 171,171,171,171,171,102,171,171,171,171,171,171,171,171,171,102, - 171,171,171,171,106,171,106,102,171,171,171,171,181,171,121,181, - 102,121,102,181,181,102,102,102,181,181,181,181,102,121,103,9, - 28,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,173,173,9,35,31,31,31,31,94,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,57,31,31,31,31,57, - 31,57,57,57,57,57,57,57,57,119,57,195,165,195,195,195, - 77,77,77,77,77,246,246,246,246,246,246,246,246,246,246,246, - 246,246,246,246,246,246,246,246,246,106,246,246,171,246,246,106, - 106,106,171,106,106,171,106,106,56,171,106,106,106,171,106,106, - 106,171,171,171,171,106,102,106,102,102,181,171,171,171,171,106, - 171,171,171,102,171,171,102,171,181,121,102,121,102,181,102,102, - 181,102,181,102,121,181,121,102,121,102,181,171,171,19,113,203, - 203,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,173,173,191,154,237,94,94,31,94,31,94,31,31,31,237, - 31,31,31,31,31,31,31,31,31,31,31,31,31,57,31,31, - 31,31,31,195,31,31,31,195,195,31,25,57,165,195,195,237, - 77,77,77,77,246,77,246,246,246,246,43,246,246,246,246,246, - 246,246,246,246,246,246,246,246,246,246,246,246,106,106,106,106, - 106,106,106,106,106,106,106,106,106,106,171,106,106,171,181,181, - 106,106,106,106,171,106,181,106,106,106,181,181,181,102,106,102, - 181,171,106,102,181,106,181,102,102,181,102,181,102,121,181,181, - 181,121,102,181,102,102,90,181,56,56,19,121,102,19,103,203, - 28,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,15,173,9,6,237,31,237,31,31,31,94,31,31,31,237, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,31,195,31,195,31,195,195,119,195,195,57,25,25,237, - 77,77,77,77,246,77,77,246,77,77,246,77,246,246,246,246, - 246,246,246,246,246,246,246,246,246,246,106,106,246,246,246,106, - 106,106,106,106,106,106,106,106,106,106,106,106,181,106,106,106, - 181,106,106,181,106,171,106,102,181,102,106,171,106,106,181,171, - 171,121,181,106,171,102,171,181,121,181,19,181,181,181,181,181, - 102,181,121,102,121,121,121,181,181,181,102,102,181,181,187,203, - 28,135,115,58,244,58,196,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,190,115,58,58,58,58,202, - 196,190,115,58,244,244,142,142,244,191,115,58,58,58,58,196, - 244,240,115,58,58,244,196,196,244,244,115,58,58,58,196,142, - 244,173,173,191,220,237,31,94,31,94,31,237,94,237,195,31, - 237,237,195,195,195,195,195,195,31,210,195,195,195,31,31,31, - 195,31,31,31,195,31,195,195,195,237,195,195,195,195,237,237, - 77,77,77,77,246,246,246,77,246,77,77,246,77,77,77,246, - 77,77,246,77,246,77,77,77,246,77,77,246,77,77,246,77, - 246,246,246,246,106,106,106,106,181,181,106,106,106,106,106,106, - 181,181,106,181,181,181,106,106,106,106,181,181,102,106,121,181, - 171,106,102,121,181,121,181,181,102,181,181,181,181,102,121,181, - 181,181,181,181,19,102,102,181,121,121,121,102,121,102,130,203, - 203,240,58,129,129,240,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,240,58,129,129,129,129,137, - 196,190,58,129,129,190,129,129,112,190,58,129,133,129,129,129, - 244,190,190,129,129,191,137,129,244,190,58,129,129,240,129,129, - 240,15,173,9,35,237,237,94,237,31,94,237,31,237,31,195, - 31,237,31,237,31,195,31,195,237,31,31,31,210,31,195,31, - 195,195,195,31,195,195,31,195,195,195,195,237,195,237,139,237, - 77,77,77,77,77,77,77,77,77,246,77,77,246,77,246,77, - 246,77,77,77,246,246,246,246,246,77,246,77,246,246,77,246, - 77,77,77,77,106,106,106,106,77,77,106,106,106,106,106,106, - 106,106,106,106,106,171,181,181,106,181,106,171,106,106,171,106, - 121,102,121,102,181,102,181,181,181,121,102,121,181,181,181,102, - 121,181,181,181,181,121,121,102,102,102,121,181,181,156,103,203, - 28,190,244,151,129,191,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,58,240,244,133,129,240,129,137, - 244,190,244,151,129,190,133,129,244,191,244,129,129,240,129,129, - 244,58,244,129,129,240,133,137,240,190,240,137,129,190,129,129, - 240,173,173,191,205,237,237,94,237,237,237,195,237,195,195,31, - 31,31,237,31,195,237,237,31,31,210,31,237,31,195,195,237, - 237,195,31,210,195,195,195,237,195,237,237,25,237,195,237,20, - 77,66,77,77,77,77,77,77,246,77,77,246,77,77,246,77, - 77,246,77,77,77,77,246,77,246,77,246,77,77,77,77,77, - 106,106,181,77,106,77,77,106,106,106,77,106,106,181,106,106, - 106,106,106,106,106,106,171,121,106,106,106,106,121,121,181,102, - 121,181,181,181,121,171,181,181,181,181,181,102,181,121,181,181, - 102,102,181,181,181,102,121,181,121,102,102,90,181,19,198,115, - 173,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,244,129,129,129,129,129, - 240,190,58,129,129,240,129,151,240,190,58,129,129,129,129,133, - 240,191,135,129,129,191,129,133,244,191,244,133,129,240,151,151, - 58,173,173,173,6,237,94,31,237,31,94,31,237,237,237,237, - 237,195,195,237,195,31,237,195,237,237,31,237,237,31,210,31, - 237,237,237,237,237,237,31,237,195,195,195,210,25,25,237,139, - 77,77,77,77,77,77,246,77,77,246,77,77,77,77,246,246, - 77,77,77,77,77,77,246,77,246,77,77,246,246,77,77,106, - 77,77,77,106,77,181,106,106,77,194,106,181,194,77,121,106, - 106,181,181,121,181,181,181,106,181,181,121,181,106,106,106,77, - 102,121,171,106,171,19,171,181,171,121,181,121,181,102,121,171, - 121,171,121,181,181,121,181,102,121,121,121,121,181,19,108,203, - 28,190,240,133,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,190,244,129,129,85,137,129, - 196,190,240,133,137,191,129,151,244,191,244,129,129,85,129,129, - 240,244,135,133,137,191,129,129,244,58,244,137,137,129,129,129, - 240,173,28,191,154,20,20,94,20,94,237,237,31,195,237,237, - 237,237,237,237,237,237,237,31,210,31,237,237,237,237,237,237, - 237,31,31,31,210,31,210,195,31,210,237,195,237,237,139,20, - 77,77,77,77,77,77,77,77,246,246,246,246,246,246,77,246, - 246,246,77,246,77,246,77,246,77,246,77,77,246,246,77,106, - 106,106,77,106,77,194,77,181,106,194,77,106,106,106,194,194, - 106,106,106,77,106,77,181,106,106,106,181,181,121,181,181,77, - 106,181,121,181,106,121,181,121,181,181,181,181,121,121,121,181, - 181,181,181,181,181,121,121,181,181,181,181,102,121,156,103,244, - 28,240,28,28,240,202,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,28,240,112,240,240,28,240,240, - 202,240,28,28,129,28,240,240,196,135,240,240,240,28,240,240, - 196,240,28,28,129,28,240,240,196,191,28,112,129,28,240,240, - 196,173,15,9,6,237,237,94,237,237,94,237,237,195,195,195, - 237,237,31,195,195,195,237,237,237,237,31,31,237,31,237,31, - 251,237,237,237,237,31,237,237,237,31,237,25,237,237,237,20, - 194,194,77,77,77,77,246,77,77,77,246,246,77,246,246,77, - 246,77,246,77,77,77,77,246,246,77,246,246,77,77,106,77, - 77,77,194,77,77,106,194,77,77,106,181,194,181,77,106,106, - 121,77,106,181,121,121,77,121,194,121,77,106,77,181,121,181, - 121,121,181,121,194,121,181,181,121,121,121,181,181,181,121,181, - 121,121,121,181,121,181,121,121,181,121,121,156,181,156,113,15, - 115,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,129,200,207,207,207,207,182, - 124,15,202,28,129,16,20,94,20,237,20,237,237,237,237,237, - 237,237,237,237,237,237,237,237,237,210,237,237,210,237,31,237, - 237,31,210,31,237,237,195,195,195,237,237,237,25,237,20,139, - 77,77,77,77,77,77,77,246,77,246,77,77,77,77,77,77, - 246,77,246,77,246,77,77,77,77,77,77,77,77,77,77,77, - 77,77,194,194,77,77,194,194,194,194,77,77,194,194,194,77, - 181,194,77,194,194,181,194,121,194,194,194,121,77,121,194,194, - 77,77,77,121,194,77,194,121,121,194,194,121,194,121,194,121, - 121,77,181,121,181,156,181,181,121,181,121,19,156,156,113,9, - 173,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,15,28,9,233,20,20,31,20,94,237,20,20,237,237,20, - 237,237,237,237,237,237,237,237,237,237,237,237,237,20,237,237, - 20,237,237,31,237,237,237,237,237,237,237,237,237,237,20,20, - 194,194,194,77,77,77,246,77,77,246,77,246,246,77,77,77, - 77,77,77,246,77,246,77,246,77,77,77,106,77,77,77,77, - 77,77,77,77,194,194,77,77,77,77,194,194,121,77,77,194, - 77,77,194,77,194,66,194,194,121,194,66,194,66,194,66,194, - 156,107,156,77,77,66,66,194,194,121,66,66,194,194,194,219, - 194,156,194,121,156,121,194,156,156,156,121,194,121,107,113,191, - 203,135,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,151,48,218,218,101,218,7,243,129,48,218,218,101,218,7, - 243,15,173,220,154,16,20,20,20,20,237,237,237,20,20,237, - 20,20,20,237,237,237,237,237,20,237,237,20,237,237,20,237, - 237,20,20,237,237,237,20,20,237,237,237,237,237,139,20,226, - 181,194,194,181,77,194,77,106,77,77,77,77,77,77,77,77, - 77,77,77,77,77,77,77,77,77,77,77,77,77,194,194,77, - 77,194,194,77,77,194,194,66,194,77,77,77,77,194,77,194, - 66,66,194,77,194,77,77,194,194,194,194,194,66,194,66,66, - 77,77,66,107,194,77,77,66,194,194,156,66,194,66,194,194, - 194,66,194,66,194,107,66,194,194,156,107,156,156,184,113,191, - 203,190,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,206,150,60,163,60,163,250, - 230,15,173,9,35,20,20,20,237,20,20,20,20,237,237,237, - 237,237,20,20,20,20,20,237,20,20,237,20,20,237,20,237, - 237,237,20,237,237,237,237,237,237,237,20,237,237,251,20,20, - 194,194,194,77,181,77,194,77,77,77,77,77,77,77,77,77, - 77,77,77,77,77,77,77,77,106,77,77,194,77,77,77,194, - 194,77,77,194,66,77,66,77,77,66,194,66,66,77,194,66, - 121,77,194,194,77,194,194,66,194,194,194,194,121,194,194,121, - 107,194,121,77,66,66,107,194,66,66,194,194,66,156,66,66, - 66,156,66,156,107,107,156,107,107,107,156,107,107,184,113,203, - 191,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,135,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,173,173,220,220,16,20,20,20,20,20,237,20,20,20,20, - 20,20,237,237,237,237,237,20,20,237,237,20,237,20,237,20, - 20,20,237,20,20,237,237,20,237,20,237,237,20,20,20,16, - 194,194,194,194,194,77,181,194,181,77,77,181,77,77,106,194, - 77,194,77,77,77,77,106,77,194,194,77,194,77,77,77,77, - 194,194,77,194,194,77,194,194,77,194,77,194,194,66,77,77, - 194,77,121,194,194,121,77,194,194,77,66,194,194,121,77,194, - 66,194,156,194,194,194,66,194,194,66,107,156,66,194,107,156, - 66,107,66,66,66,107,107,107,107,107,107,30,156,184,198,28, - 28,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,15,173,220,154,16,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,237,237,20,20,20,20,237,20,20,237, - 237,20,20,237,20,20,237,20,20,20,20,20,20,20,226,16, - 181,194,181,194,181,194,181,77,106,181,194,106,194,181,181,106, - 194,106,194,194,181,106,77,77,106,77,181,77,194,194,194,194, - 77,77,194,77,194,66,77,77,194,77,194,194,194,194,121,194, - 194,66,77,194,194,194,194,121,77,121,194,77,66,77,107,194, - 121,66,66,194,107,66,194,66,107,66,66,66,194,107,66,66, - 107,194,107,107,107,107,107,107,107,107,156,107,156,30,198,203, - 244,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,206,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,173,15,173,205,11,16,16,16,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,237,20,251,237,20,20,237,20,20,237,237,20,20,226, - 194,19,194,181,194,106,181,181,181,194,181,181,106,106,181,181, - 181,106,106,77,194,181,194,77,181,77,181,194,194,106,77,194, - 194,194,194,194,194,156,194,66,194,66,77,194,77,194,194,77, - 121,66,66,66,194,194,66,107,66,194,194,77,66,194,66,66, - 194,194,66,121,194,228,156,66,66,66,228,228,107,107,107,107, - 228,107,107,107,66,107,107,156,107,156,107,107,107,104,113,28, - 28,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,173,173,9,35,11,20,16,16,16,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,251,20,20,16, - 19,194,194,181,194,181,194,181,181,194,181,106,194,181,181,181, - 194,181,181,181,181,77,181,181,77,181,77,106,106,194,194,181, - 194,194,194,194,194,194,194,194,194,194,156,66,156,194,66,107, - 66,194,194,194,66,66,194,194,194,121,107,156,194,121,194,121, - 66,66,66,66,66,66,66,66,107,107,66,228,228,107,228,228, - 107,228,107,107,104,107,107,228,156,228,107,104,107,184,198,28, - 28,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,190,115,58,244,58,196,202,244,191,115,58,58,58,115,196, - 196,244,202,58,58,58,244,196,244,190,115,58,115,58,58,244, - 244,191,115,58,58,244,115,244,196,244,115,58,58,58,196,142, - 244,15,173,9,205,11,16,16,20,16,20,16,16,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,237,20,20,20,20,20,20,20,16,226, - 219,19,194,181,19,194,181,181,194,181,181,181,181,194,181,181, - 181,181,194,194,181,77,181,181,194,181,181,194,181,181,194,194, - 181,194,194,194,194,194,194,194,194,194,194,66,194,194,194,194, - 66,66,194,194,156,66,66,107,66,194,66,107,66,66,107,194, - 66,121,66,107,66,66,228,228,228,228,228,228,228,228,156,228, - 156,104,228,107,104,104,104,104,104,104,107,104,104,73,113,115, - 28,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,58,129,137,129,137,129, - 196,190,58,129,137,240,137,137,196,190,135,129,129,191,133,129, - 244,190,58,129,129,191,137,129,196,190,58,129,133,129,129,129, - 196,190,244,137,137,191,133,129,240,190,58,129,129,240,129,129, - 240,173,173,9,154,11,16,16,16,16,16,20,16,16,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,237,20,20,20, - 20,237,237,20,237,20,20,237,20,20,20,20,237,251,20,16, - 19,194,19,19,194,19,181,181,194,181,181,194,181,181,181,194, - 181,181,181,194,181,19,181,194,181,181,194,181,181,194,181,194, - 194,194,181,194,194,194,194,194,66,194,194,194,194,66,66,66, - 156,194,66,66,66,194,194,66,194,66,194,66,66,194,66,66, - 66,66,107,66,107,228,66,228,228,228,228,228,104,104,228,104, - 104,228,104,104,228,184,228,228,104,228,104,104,104,184,198,28, - 115,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,137,244,191,244,137,129,240,137,137, - 244,190,244,129,137,191,129,137,244,203,58,129,129,191,129,129, - 240,190,244,129,133,191,133,129,244,190,244,129,129,129,129,151, - 244,190,240,137,129,191,129,129,240,190,240,137,129,190,129,129, - 240,15,15,9,205,164,16,16,16,16,20,16,20,16,20,20, - 16,20,20,20,20,20,20,20,20,20,20,20,20,16,20,20, - 20,20,20,237,20,20,237,20,237,237,237,20,20,20,16,20, - 219,194,194,194,181,194,181,194,181,181,194,181,181,194,181,181, - 181,194,181,19,181,194,181,181,194,181,181,194,19,194,181,194, - 181,194,181,194,219,194,156,219,194,66,194,107,156,194,219,66, - 107,156,156,107,107,107,194,107,107,66,194,107,107,121,107,156, - 107,107,107,107,107,228,156,228,228,228,228,228,228,104,184,104, - 184,184,184,184,104,184,104,184,104,184,184,30,104,73,187,202, - 28,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,133,240,190,244,129,129,129,129,133, - 240,190,58,129,137,240,129,133,240,190,244,129,137,190,129,133, - 244,203,244,133,129,129,129,137,240,190,58,129,129,240,129,137, - 240,190,244,137,129,240,129,151,58,191,244,133,129,191,151,151, - 58,173,173,9,6,11,16,16,16,16,16,16,16,16,16,16, - 20,16,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,237,20,20,237,20,20, - 19,19,19,194,194,19,19,181,194,181,181,181,181,181,194,181, - 194,181,181,194,181,181,181,181,181,181,194,181,181,181,219,181, - 219,19,219,181,194,219,194,194,219,219,156,194,219,156,194,219, - 219,219,107,194,107,121,107,107,194,156,107,156,107,107,156,107, - 156,156,184,156,156,107,156,156,104,156,104,228,184,184,184,184, - 184,184,184,184,184,73,73,104,239,104,104,104,104,73,198,15, - 115,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,129,244,190,240,129,129,85,129,129, - 28,190,244,137,137,129,129,129,240,190,135,133,129,129,129,129, - 135,190,244,129,129,240,133,129,244,190,58,129,129,129,133,129, - 28,58,240,137,129,129,129,129,244,58,244,137,133,129,129,129, - 240,173,173,9,65,164,16,16,16,16,20,20,16,16,20,20, - 16,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,237,20,20,20,20,20,20,20,20,20,20,16, - 194,194,194,194,194,194,19,194,181,194,194,106,77,194,181,194, - 181,77,77,194,194,194,194,181,194,181,219,194,194,181,219,194, - 194,181,219,19,219,219,19,219,194,194,219,194,219,219,219,194, - 194,194,219,219,219,156,219,156,156,219,156,219,219,219,219,219, - 219,219,219,156,219,156,156,156,30,156,30,30,30,107,104,30, - 184,104,184,104,184,30,184,184,239,184,184,239,239,73,130,28, - 28,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,240,202,240,202,240,240,28,240,240, - 196,112,112,112,129,202,240,240,196,240,202,28,129,202,240,190, - 202,240,28,112,240,28,240,240,202,240,112,112,135,28,112,240, - 196,240,28,112,129,202,240,240,244,240,28,112,240,28,240,240, - 196,173,173,9,35,164,16,16,16,16,16,16,20,16,16,16, - 20,16,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,237,20,20,237,20,20,20,20,237,237,20,20,20,16, - 228,194,219,194,194,194,194,219,19,194,194,194,19,194,194,194, - 219,19,19,194,194,219,194,194,194,219,194,194,219,194,194,19, - 219,219,194,194,181,194,219,181,219,19,194,219,194,156,219,219, - 219,19,219,219,156,219,219,219,219,219,219,219,219,156,219,219, - 156,19,219,219,30,219,30,30,156,30,30,156,156,30,30,30, - 30,30,45,30,30,104,30,30,104,104,104,104,104,73,187,115, - 115,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,129,200,207,207,207,207,182, - 124,15,15,173,205,11,16,16,16,16,16,16,16,20,20,16, - 20,20,16,20,16,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,237,20,20,20,20,20,20,20, - 228,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194, - 194,77,77,194,194,194,194,219,194,194,219,194,194,194,194,194, - 194,219,219,219,219,219,219,194,194,219,181,219,194,194,194,194, - 219,219,19,219,219,19,156,219,19,121,181,219,219,19,19,19, - 219,156,19,19,30,219,19,30,19,156,30,30,30,219,30,30, - 156,156,30,30,30,239,104,30,45,184,104,184,104,73,187,28, - 173,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,15,15,173,154,11,16,16,16,16,16,16,16,20,20,16, - 16,16,20,16,20,20,16,16,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,237,20,20,16,16, - 219,219,219,194,19,194,194,194,181,194,19,194,194,219,19,194, - 194,219,219,194,194,194,194,194,194,194,194,194,194,194,194,194, - 219,194,194,194,219,194,219,219,219,219,219,219,219,219,219,219, - 194,121,194,19,156,219,19,194,194,219,156,19,194,219,156,219, - 19,19,156,219,19,219,219,19,219,30,156,19,30,30,30,219, - 30,30,30,30,30,30,30,45,104,30,30,104,239,73,187,203, - 191,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,151,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,135,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,173,28,220,205,164,16,11,16,16,20,20,16,16,16,16, - 16,20,20,16,16,20,20,16,20,16,20,16,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,16,20,16, - 219,219,219,194,219,219,194,19,194,194,181,194,194,194,194,181, - 194,194,194,77,194,194,194,194,194,194,219,219,219,107,219,66, - 219,219,107,194,219,194,156,219,194,194,194,219,219,219,219,219, - 219,219,219,219,19,156,219,19,219,19,194,19,181,219,19,121, - 219,19,181,121,19,156,219,30,219,30,30,219,30,156,30,30, - 30,30,30,30,30,104,30,30,104,30,30,30,104,73,178,244, - 191,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,151,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,206,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,206,150,60,163,60,163,250, - 230,28,15,233,154,164,16,16,11,11,16,16,16,16,226,16, - 16,16,16,20,16,20,16,16,16,20,16,20,16,16,20,20, - 16,20,20,16,20,20,16,20,20,20,16,20,20,20,20,16, - 219,219,219,219,194,194,19,181,19,194,181,181,194,181,194,181, - 194,181,194,19,194,219,194,194,194,194,194,194,194,194,194,219, - 194,194,194,219,219,219,194,194,219,156,219,219,219,194,194,19, - 219,19,19,181,194,219,19,219,19,219,19,194,219,181,181,19, - 181,219,219,19,194,181,19,19,19,19,19,156,19,30,30,156, - 219,156,156,30,156,30,30,30,45,104,30,104,45,73,187,28, - 203,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,135,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,129,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,15,173,9,65,164,164,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,20,16,16, - 20,16,16,20,16,16,20,20,16,16,20,16,20,16,225,225, - 219,219,194,219,194,194,194,181,194,181,181,194,181,181,194,181, - 194,181,194,181,194,181,181,181,181,181,194,194,181,194,181,194, - 194,194,194,194,194,219,219,194,219,219,181,194,19,19,121,181, - 194,194,219,19,181,219,19,19,181,181,19,181,156,219,181,19, - 181,19,19,19,156,194,19,156,156,19,19,219,19,19,30,19, - 19,30,219,30,30,30,30,19,30,30,156,30,30,239,130,28, - 244,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,151,158,50,254,254,118,67,158,206,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,173,173,9,108,164,11,16,11,16,16,11,16,16,16,16, - 16,11,16,11,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,11, - 219,194,219,181,194,181,194,181,181,181,181,194,181,181,181,181, - 181,181,181,181,194,181,181,194,181,194,181,181,181,181,181,181, - 181,181,181,181,19,181,181,181,194,181,219,219,181,194,219,219, - 19,19,19,121,219,181,121,181,219,156,181,19,181,181,156,181, - 156,181,156,19,19,19,219,19,19,19,156,19,156,19,19,30, - 30,30,19,30,30,19,30,30,30,30,30,30,30,239,125,115, - 28,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,28,173,9,65,164,164,11,16,16,11,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,11,16,16,16,16,16,16,225,11,225, - 219,194,219,219,194,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,19,181,181,181,181,19,19,181,181,181, - 194,181,19,181,219,19,219,19,19,219,19,19,19,181,19,19, - 19,19,19,19,19,19,19,156,30,30,19,19,156,19,19,19, - 30,19,30,19,30,30,30,30,30,30,30,30,30,149,178,28, - 203,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,28,191,173,35,164,16,164,16,11,16,225,11,225,16,11, - 16,11,16,11,225,16,225,11,16,16,16,16,16,16,16,11, - 16,16,16,16,16,16,16,16,11,11,11,16,11,11,11,11, - 219,219,194,181,194,194,194,181,194,181,181,181,181,181,181,181, - 181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,181,181,181,181,181,181,181,19,19,181, - 19,19,19,19,181,19,19,19,19,19,19,19,19,19,181,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,156,19,19, - 19,19,45,19,19,30,90,30,90,45,156,45,30,239,125,28, - 112,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,244,244,196,244,190,115,58,244,58,115,196, - 244,191,115,58,58,58,115,244,244,190,115,58,58,244,196,202, - 240,191,115,58,58,58,58,115,244,191,115,58,58,244,196,196, - 244,190,115,58,58,244,196,196,244,244,115,58,58,58,196,142, - 244,15,173,9,205,164,164,11,11,11,11,11,16,11,11,16, - 11,16,16,16,11,11,11,16,11,11,11,16,11,11,11,11, - 11,11,164,16,11,11,11,164,16,11,164,16,11,11,164,164, - 194,19,194,194,181,181,181,181,181,181,181,181,181,181,181,102, - 181,181,102,181,102,181,102,181,102,181,102,181,181,181,181,181, - 102,181,181,102,19,102,19,19,90,181,181,90,181,181,19,181, - 181,181,181,19,181,181,19,181,19,181,181,181,19,19,181,19, - 19,19,19,19,181,19,19,19,19,19,156,19,19,30,19,30, - 19,30,90,45,30,45,45,45,156,45,156,45,45,149,27,15, - 203,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 244,190,58,129,137,190,137,129,240,190,135,129,137,191,133,151, - 240,58,58,129,129,129,133,129,196,190,58,129,129,190,129,137, - 196,190,58,129,129,191,129,133,196,190,190,129,129,190,137,129, - 196,190,58,129,129,191,137,129,244,190,58,129,129,240,129,129, - 240,15,9,9,154,164,16,164,16,11,11,11,16,11,11,16, - 11,11,11,16,225,16,11,11,16,11,11,164,11,16,164,16, - 164,11,11,164,11,164,11,164,11,16,164,164,11,164,164,10, - 19,194,19,194,181,181,181,106,181,181,181,181,181,102,106,181, - 102,181,181,181,102,181,102,181,102,181,181,102,102,181,102,181, - 181,181,181,181,181,181,102,181,181,90,19,181,181,181,102,19, - 90,19,19,102,19,19,181,19,181,90,19,19,181,181,19,19, - 19,19,19,19,156,19,19,19,19,30,30,19,30,30,90,45, - 90,30,45,30,30,156,30,156,45,45,45,30,30,45,125,28, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,191,137,133, - 28,191,244,137,129,240,137,129,244,58,244,129,129,191,129,129, - 240,190,240,129,129,240,129,133,28,240,240,129,129,240,129,129, - 244,190,244,129,129,129,129,129,244,58,244,129,129,240,137,133, - 28,190,244,137,129,240,133,137,240,190,240,137,129,190,129,129, - 240,28,28,9,65,164,164,11,164,164,11,11,11,11,11,11, - 11,11,11,11,164,16,11,11,11,164,16,164,164,164,164,164, - 164,164,16,164,164,164,11,164,164,164,164,164,164,164,10,164, - 181,194,181,181,181,181,181,106,106,106,171,106,106,181,102,181, - 181,102,181,106,106,106,171,106,171,181,181,181,181,181,181,181, - 102,181,181,181,181,181,181,181,181,181,181,19,19,19,181,19, - 181,19,19,19,19,19,181,19,219,19,19,19,19,19,19,19, - 19,19,156,19,19,156,156,156,19,19,30,19,156,30,30,30, - 30,156,30,90,45,45,45,45,156,45,45,45,45,45,130,202, - 203,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,129,129,137,129, - 135,190,244,133,129,129,133,151,240,191,58,129,133,190,129,137, - 58,240,58,129,129,191,129,129,135,190,244,133,129,190,137,151, - 240,191,244,133,133,240,129,137,240,191,58,129,129,129,129,129, - 135,190,244,133,129,191,129,137,244,191,244,133,129,240,151,151, - 58,28,28,9,108,164,164,164,11,164,164,164,11,11,164,11, - 11,11,164,11,164,164,164,164,164,164,164,164,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164,164,164,164,164,10,10, - 194,181,194,181,181,181,181,181,102,181,181,102,102,181,181,181, - 102,181,106,102,181,102,181,181,102,181,181,102,181,181,181,181, - 181,181,181,181,181,181,181,181,194,181,181,181,181,194,219,194, - 219,219,219,219,156,19,219,19,19,219,156,156,30,156,156,156, - 156,156,156,30,219,30,30,30,104,104,30,30,30,30,30,30, - 30,104,45,45,45,156,45,156,45,45,156,45,30,73,21,15, - 191,190,240,137,129,191,129,151,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,135,133,129,85,129,129, - 244,191,244,129,129,191,129,129,240,190,240,129,129,129,129,133, - 244,58,135,129,151,129,129,129,244,58,244,137,129,129,129,129, - 244,190,244,129,129,240,137,129,240,190,135,133,129,240,129,129, - 244,190,244,137,137,191,133,129,244,58,244,137,137,129,129,129, - 240,15,28,191,205,10,164,164,164,11,164,164,164,164,11,164, - 164,164,164,164,164,11,11,164,164,164,164,164,164,164,164,164, - 164,164,164,10,164,164,164,164,164,164,10,164,164,164,10,10, - 181,181,181,77,181,181,181,181,181,106,181,181,181,181,181,181, - 106,181,106,181,106,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,194,181,194,219,194,219,219,219,219,219, - 219,219,219,219,156,30,156,219,156,219,156,219,30,30,156,30, - 184,30,107,184,107,228,184,184,184,184,104,104,104,104,104,104, - 30,104,30,104,45,104,45,45,104,45,104,239,239,239,27,115, - 203,240,28,112,240,28,240,240,196,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,142,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,142,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,142,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,196,240,28,112,240,28,240,240, - 202,135,28,112,240,28,240,240,196,240,28,112,85,202,112,240, - 28,240,202,112,129,202,240,240,244,240,28,112,85,28,85,240, - 196,240,28,112,191,112,240,240,142,240,28,28,240,112,240,240, - 202,240,28,112,129,28,112,240,196,191,28,112,129,28,240,240, - 196,203,15,191,154,169,164,10,164,164,164,164,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164, - 164,164,10,164,164,10,164,164,10,164,164,164,10,10,10,10, - 194,194,181,19,194,181,194,181,181,181,181,181,181,181,181,181, - 181,181,181,106,181,181,194,181,181,181,181,181,181,181,181,181, - 181,181,181,181,194,181,181,194,19,181,219,181,219,181,19,219, - 156,219,219,219,219,219,184,107,107,219,30,30,107,219,184,107, - 219,219,184,156,184,30,107,107,107,107,184,184,104,107,104,156, - 104,30,104,104,30,104,104,104,45,104,239,239,239,138,125,28, - 244,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,129,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,129,200,207,207,207,207,182, - 124,151,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,129,200,207,207,207,207,182,124,129,200,207,207,207,207,182, - 124,15,28,173,65,169,10,208,10,10,10,164,164,10,164,164, - 164,164,164,164,164,10,164,164,164,164,164,169,164,164,169,164, - 10,164,10,10,164,10,164,10,164,164,222,164,164,164,222,222, - 19,194,194,181,194,181,194,181,181,194,181,181,194,181,194,181, - 194,181,181,194,181,194,181,194,181,181,181,181,181,181,181,194, - 181,181,181,181,181,181,181,181,194,181,19,19,219,19,19,181, - 19,19,219,219,219,219,30,30,30,219,219,30,156,219,30,30, - 30,219,30,219,156,30,30,184,30,107,156,184,184,184,104,184, - 104,104,104,30,104,104,30,104,239,73,104,104,104,138,27,28, - 28,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,206,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,206,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,206,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,15,15,28,205,169,169,10,10,10,10,10,10,10,10,10, - 10,164,222,164,10,10,10,10,169,164,164,169,164,164,164,169, - 164,164,10,10,10,164,10,10,222,164,10,222,10,10,10,222, - 194,19,194,194,19,194,194,194,194,194,194,194,194,194,194,19, - 194,194,19,194,194,194,194,194,219,194,219,194,194,194,194,181, - 219,194,194,181,19,219,181,181,19,181,181,181,19,181,19,219, - 219,19,19,19,19,19,19,19,219,219,219,219,30,219,219,219, - 156,219,219,30,219,219,156,156,30,30,184,219,30,30,184,30, - 104,30,104,104,104,104,104,104,104,104,239,239,239,138,178,191, - 191,190,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,135,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,84,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,135,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,129,48,218,218,101,218,7,243,129,48,218,218,101,218,7, - 243,15,28,9,205,169,222,169,10,169,222,222,10,10,10,10, - 164,222,10,10,10,10,169,164,169,164,169,164,169,164,10,164, - 169,10,10,10,169,10,10,222,10,10,10,10,222,10,222,222, - 194,219,194,194,219,194,194,194,194,194,194,194,194,194,194,219, - 219,194,219,194,19,219,194,194,194,66,219,219,219,219,219,194, - 194,219,219,194,194,219,219,181,219,219,19,19,219,181,19,19, - 19,19,19,19,19,19,19,19,19,219,19,19,19,219,219,219, - 219,19,219,30,219,219,30,219,219,30,30,30,219,30,30,219, - 156,156,30,30,30,156,30,30,104,104,104,239,104,138,178,203, - 191,151,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,206,150,60,163,60,163,250,230,206,150,60,163,60,163,250, - 230,173,28,220,108,169,169,169,169,169,222,222,222,222,222,222, - 222,222,222,10,169,164,169,10,169,10,169,164,169,169,169,10, - 10,169,10,10,10,169,10,222,10,169,10,10,10,222,222,169, - 228,194,219,228,194,194,194,19,194,194,194,219,194,194,194,194, - 194,219,194,219,194,194,194,194,219,194,194,194,194,194,194,194, - 219,194,194,219,219,194,194,219,181,19,19,194,19,219,219,19, - 194,19,219,19,19,219,219,219,219,19,219,219,30,30,219,156, - 30,30,219,219,30,30,219,30,30,219,30,156,30,30,30,30, - 30,30,156,156,156,30,30,30,45,45,30,104,239,73,21,58, - 203,151,38,24,148,148,24,88,81,151,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,151,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,151,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,151,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,206,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,135,38,24,148,148,24,88, - 81,28,28,191,130,169,169,169,169,169,222,222,222,222,222,222, - 222,10,222,169,10,169,10,169,10,169,10,169,10,10,164,169, - 169,10,169,169,169,10,169,10,169,222,169,222,222,222,169,222, - 228,228,219,219,219,194,194,194,219,219,194,194,194,194,194,19, - 194,219,194,219,194,219,194,194,219,194,219,219,219,194,219,194, - 219,219,194,219,219,219,194,219,219,219,219,219,219,219,219,219, - 219,30,219,219,19,19,30,30,30,30,30,219,219,30,30,30, - 219,30,30,219,30,30,30,30,30,30,239,184,30,30,30,30, - 30,30,30,30,30,30,30,30,104,45,45,45,45,73,21,240, - 203,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,28,173,191,103,169,169,169,169,169,102,169,169,102,169,169, - 169,169,222,169,222,169,222,169,169,169,10,169,169,169,10,169, - 169,10,169,10,169,222,169,222,10,222,169,169,222,222,169,102, - 184,228,228,228,228,228,228,228,194,194,219,219,228,219,219,228, - 219,194,219,194,219,194,219,66,194,219,66,66,219,228,228,219, - 228,66,107,219,107,107,219,107,66,66,219,219,30,156,219,30, - 219,219,30,30,219,30,19,219,219,219,19,30,30,30,30,219, - 30,30,30,30,219,30,184,30,184,184,30,45,30,184,30,184, - 30,30,45,45,104,104,239,30,45,104,104,239,73,138,125,244, - 240,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,173,15,9,130,169,169,169,169,169,169,169,169,222,169,102, - 102,169,169,169,169,169,169,222,222,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169,222,222,222,222,222,169, - 184,184,228,228,184,228,228,228,228,228,228,228,228,228,228,228, - 228,228,228,228,228,228,219,228,228,219,219,66,219,219,219,219, - 219,219,228,219,219,184,107,184,219,107,107,219,107,219,107,30, - 156,219,219,30,219,30,30,30,30,30,30,219,30,30,30,30, - 30,30,30,30,30,156,30,30,30,184,30,30,30,30,30,30, - 239,184,30,45,45,30,73,104,239,239,239,239,149,138,27,244, - 203,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,28,203,9,187,169,169,169,169,169,169,169,169,102,102,102, - 102,102,102,169,169,169,169,169,222,169,169,169,169,169,169,169, - 169,169,169,222,169,222,169,169,222,222,222,169,222,169,222,102, - 184,184,184,184,228,184,184,228,228,228,228,219,228,194,228,219, - 228,219,219,228,219,194,228,219,194,194,66,228,219,228,219,228, - 219,228,219,107,107,219,30,219,184,219,184,107,184,107,219,107, - 107,184,30,30,30,30,30,30,30,30,30,30,19,30,30,30, - 30,30,30,30,219,30,30,30,30,30,30,239,45,45,239,239, - 30,30,104,104,239,239,239,149,149,73,73,138,73,189,21,28, - 244,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,58,196,142,244,191,115,58,58,58,244,28, - 244,191,115,58,58,244,196,142,244,191,115,58,58,58,115,196, - 244,191,115,58,58,58,244,202,244,191,115,58,58,244,142,142, - 240,240,115,58,58,244,115,196,244,191,115,58,58,244,115,115, - 244,190,115,58,58,244,115,196,196,244,115,58,58,58,196,142, - 244,15,28,112,21,169,169,169,169,169,169,169,169,169,102,102, - 102,102,102,102,102,102,102,169,169,169,169,222,222,169,169,169, - 169,222,169,169,222,169,222,222,169,169,169,222,169,222,102,222, - 184,184,228,228,228,228,184,184,228,219,228,228,228,228,228,194, - 228,184,228,228,228,228,228,228,228,219,228,228,219,228,219,228, - 219,228,219,219,228,107,107,219,184,219,30,184,184,184,107,184, - 219,184,184,184,184,30,30,30,30,30,30,30,30,30,30,30, - 30,45,45,30,30,30,30,30,30,184,30,30,30,30,239,239, - 239,239,239,104,73,239,73,73,149,138,73,138,138,189,21,203, - 244,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,191,129,129,196,190,190,129,129,240,137,151, - 196,190,135,129,129,190,129,129,244,190,58,129,137,191,133,129, - 196,190,58,129,129,191,151,137,196,190,58,129,129,190,129,129, - 196,190,135,129,129,190,133,129,196,190,58,129,137,190,154,133, - 244,203,244,137,137,191,133,129,240,190,58,129,129,240,129,129, - 240,203,173,173,103,169,169,169,169,169,169,169,169,169,169,169, - 102,169,102,102,102,169,222,102,222,102,169,169,169,222,169,169, - 169,169,169,169,222,169,169,222,222,222,222,222,222,222,169,102, - 228,228,184,184,228,228,228,228,228,228,228,228,219,228,228,228, - 228,228,184,228,228,228,228,219,228,228,228,219,228,228,228,219, - 228,228,184,228,219,107,107,107,219,184,107,219,184,107,30,184, - 184,184,219,184,184,184,184,184,184,30,30,30,184,45,30,30, - 30,30,30,30,30,30,30,30,45,45,45,184,239,45,30,104, - 239,45,239,239,239,239,239,239,73,73,239,73,138,138,178,244, - 28,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,58,129,129,135,137,137,244,58,58,129,137,240,137,137, - 28,244,244,129,129,135,137,133,28,191,244,137,129,191,129,137, - 244,190,244,129,133,191,129,129,244,190,240,129,129,190,133,129, - 244,203,58,129,129,191,137,129,244,240,244,137,129,240,129,129, - 135,190,240,137,129,191,129,129,240,190,240,137,129,190,129,129, - 240,15,28,112,103,169,169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,102,102,102,102,102,222,102,169,102,169,102,169, - 102,222,222,222,222,222,222,169,169,222,222,222,222,222,222,222, - 184,228,228,184,228,219,228,219,219,228,219,228,228,194,228,219, - 228,219,184,219,228,219,228,184,184,219,228,228,184,228,228,228, - 219,228,184,184,184,184,184,184,107,184,184,184,184,228,107,184, - 184,184,184,184,184,184,184,184,184,184,73,184,184,73,184,239, - 184,30,45,30,184,45,45,30,30,30,45,30,30,45,45,30, - 239,45,45,45,239,239,239,149,239,138,149,73,138,39,21,244, - 191,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,244,129,133,191,129,137,240,191,244,129,129,129,129,137, - 135,190,58,129,129,191,129,129,135,190,244,137,137,190,129,137, - 240,191,58,137,129,129,129,133,240,191,58,129,129,240,129,129, - 240,190,244,129,129,240,137,137,240,190,244,133,129,191,129,133, - 244,190,244,137,129,240,129,151,58,191,244,137,129,191,151,151, - 58,15,173,191,103,169,169,169,169,169,169,102,102,102,169,169, - 169,169,169,169,169,169,222,169,102,169,169,222,169,222,222,222, - 169,222,222,222,222,222,222,10,222,222,10,10,10,10,222,222, - 184,184,30,228,228,228,228,228,228,219,228,228,219,228,219,228, - 228,228,228,228,228,228,184,228,228,228,228,219,228,228,184,184, - 184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184, - 184,184,184,184,184,184,184,184,184,73,184,184,184,184,184,184, - 239,73,184,184,184,184,184,184,184,184,184,239,73,239,239,239, - 239,239,138,138,149,104,149,104,138,239,73,149,239,138,178,244, - 203,190,135,133,129,240,137,129,240,190,135,133,129,191,137,129, - 240,190,135,133,129,191,137,129,240,190,135,133,129,191,137,129, - 240,190,135,133,129,191,137,129,240,190,135,133,129,191,137,129, - 240,190,135,133,129,191,137,129,240,190,135,133,129,191,137,129, - 240,190,240,129,137,240,137,129,240,190,135,133,129,129,129,129, - 240,190,135,133,133,191,129,129,244,190,240,137,129,129,129,129, - 196,191,240,129,129,129,129,129,196,58,135,133,129,191,137,129, - 240,190,135,137,129,129,129,129,244,191,244,137,129,240,129,137, - 28,58,240,137,129,129,129,129,196,58,240,137,133,129,129,129, - 240,173,28,191,130,169,169,169,169,169,102,102,169,102,169,102, - 102,102,222,222,222,222,169,222,169,222,222,222,222,222,222,222, - 222,222,222,222,10,222,10,222,10,10,10,10,10,10,10,10, - 219,228,219,219,219,219,219,219,228,219,219,219,219,228,219,219, - 219,219,219,219,194,194,219,219,219,228,184,219,184,228,228,184, - 184,228,184,184,184,184,184,184,184,184,184,184,73,184,184,184, - 73,184,184,184,184,184,184,184,184,184,73,73,184,73,184,184, - 184,239,239,239,184,184,239,239,239,239,184,184,184,239,239,239, - 104,104,239,239,149,239,149,239,138,104,45,239,239,149,21,244, - 190,240,28,28,191,112,240,240,142,240,28,28,240,112,240,240, - 142,240,28,28,240,112,240,240,142,240,28,28,240,112,240,240, - 142,240,28,28,240,112,240,240,142,240,28,28,240,112,240,240, - 142,240,28,28,240,112,240,240,142,240,28,28,240,112,240,240, - 196,240,202,112,129,112,240,240,196,240,28,112,240,28,85,240, - 202,112,28,28,191,112,240,240,244,240,28,112,85,28,85,240, - 244,135,202,240,240,202,240,240,244,112,28,28,129,244,112,135, - 196,240,28,112,85,28,85,240,244,240,28,112,85,240,240,240, - 196,240,28,112,129,202,240,240,244,240,28,112,240,28,240,240, - 196,28,28,191,103,169,169,169,169,169,102,102,169,102,222,169, - 222,222,102,102,222,222,222,222,222,222,222,10,222,222,222,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,164,10,10, - 184,184,219,219,219,219,219,219,219,219,219,219,219,19,194,194, - 219,219,30,219,219,219,219,219,219,219,219,219,219,30,30,228, - 228,184,184,184,184,184,184,73,184,184,184,184,184,184,184,184, - 184,73,184,184,184,184,73,73,73,73,184,184,73,184,73,184, - 184,184,184,184,184,30,184,184,184,184,30,45,45,104,30,104, - 45,45,30,30,104,45,104,45,45,149,149,149,45,39,178,244, - 203,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,151,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,15,28,112,103,169,169,169,169,102,169,222,222,222,222,222, - 222,222,222,222,222,10,222,10,222,10,10,10,10,10,10,10, - 10,164,164,10,164,10,164,10,164,164,164,164,164,164,164,164, - 184,30,30,30,219,19,219,194,19,219,219,219,219,30,30,19, - 219,219,219,30,30,184,30,184,249,228,184,184,184,184,249,184, - 184,184,184,184,184,184,184,184,184,184,73,184,73,184,73,184, - 184,239,73,239,239,30,30,30,30,45,30,30,30,30,45,45, - 184,45,30,45,239,45,45,45,45,45,30,30,45,45,45,30, - 30,45,45,45,45,45,45,45,45,45,104,149,239,149,21,240, - 244,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,151,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,15,15,202,103,169,169,169,169,222,102,169,222,222,10,222, - 222,10,10,222,222,10,10,10,10,10,10,164,164,164,164,164, - 10,10,164,164,164,164,164,164,164,164,164,164,164,164,164,164, - 184,30,19,219,30,19,19,19,219,219,30,30,30,19,219,219, - 19,219,30,219,30,30,184,30,30,30,239,184,184,184,184,184, - 249,184,184,241,184,241,184,73,73,73,184,184,184,184,184,73, - 73,184,184,184,184,73,73,73,73,184,73,239,73,239,184,184, - 239,30,239,30,30,30,45,30,30,30,45,45,30,45,45,45, - 45,45,45,45,45,149,45,45,104,45,149,149,149,149,178,190, - 191,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,129,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,129,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,206,48,218,218,101,218,7,243,206,48,218,218,101,218,7, - 243,28,28,9,130,169,102,169,222,222,10,10,10,222,222,10, - 10,10,10,10,164,10,10,164,164,164,164,164,164,164,164,164, - 11,11,164,164,11,164,164,164,164,164,11,11,11,11,164,164, - 184,30,30,30,219,45,30,19,30,219,30,249,45,30,30,30, - 30,30,45,30,30,45,30,30,30,219,30,184,30,30,30,184, - 249,184,184,184,184,241,184,184,184,184,241,184,73,73,184,184, - 73,73,73,73,73,73,73,73,73,73,73,239,239,73,149,239, - 189,73,138,189,189,73,138,138,138,73,73,239,73,239,138,138, - 73,239,104,104,149,149,149,149,149,45,45,45,149,39,21,244, - 191,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,206,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,151,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,28,112,9,103,169,222,10,222,222,222,10,10,10,10,10, - 10,10,136,10,164,164,10,10,10,164,164,164,164,164,164,164, - 164,11,164,164,11,11,16,11,16,164,164,11,11,11,11,11, - 184,30,30,219,30,30,249,30,219,30,30,45,249,249,30,30, - 30,30,45,249,249,45,30,30,30,45,45,30,30,30,30,219, - 184,184,249,184,249,184,184,73,73,73,184,184,184,184,73,73, - 73,239,73,73,184,73,239,73,239,73,239,73,73,239,73,138, - 239,149,73,239,239,239,73,73,73,239,239,138,239,239,239,239, - 239,149,149,149,104,149,104,149,104,149,149,149,149,39,21,244, - 244,151,38,24,148,148,24,88,81,151,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,151,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,151,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,135,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,135,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,115,203,191,103,102,222,222,10,10,10,10,10,136,10,53, - 136,164,10,164,10,10,164,164,164,164,164,11,11,11,11,164, - 164,164,11,11,164,16,11,11,11,16,16,11,11,11,164,164, - 184,30,45,30,30,30,45,18,45,45,45,45,249,223,30,45, - 30,184,249,18,45,249,30,45,45,249,45,30,30,30,30,30, - 239,184,239,184,45,239,239,45,30,45,239,239,45,45,45,30, - 239,30,239,239,184,184,45,239,239,239,239,184,239,239,239,239, - 239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,149, - 239,149,149,149,104,149,104,149,104,104,149,45,45,149,21,244, - 244,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,151,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,129,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,203,191,191,187,102,222,169,169,169,10,169,10,136,10,10, - 164,164,10,164,164,164,164,164,164,164,164,164,164,164,11,11, - 11,11,11,11,164,11,11,11,11,11,11,16,16,16,11,11, - 184,249,30,45,30,30,30,18,223,45,45,249,18,116,18,45, - 249,249,18,145,249,45,45,45,249,249,249,45,30,30,30,30, - 30,45,30,45,30,30,30,30,45,30,30,30,30,30,30,45, - 30,239,30,45,45,45,30,45,45,30,45,45,45,30,45,239, - 239,45,239,239,45,45,45,45,239,149,239,149,149,149,149,104, - 45,45,45,45,149,149,149,149,149,149,149,149,149,18,21,244, - 240,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,28,28,28,103,102,10,10,10,10,10,10,10,10,10,10, - 10,164,164,164,164,164,164,11,164,11,164,11,11,11,11,11, - 11,11,16,16,16,11,11,11,11,16,11,164,16,11,11,11, - 184,239,30,249,30,45,30,45,223,145,249,249,18,82,223,18, - 249,18,116,145,249,249,249,249,223,249,249,45,45,45,45,45, - 30,45,30,45,45,45,45,45,45,45,45,239,239,45,30,45, - 30,45,30,45,45,239,239,30,239,30,45,45,45,184,45,30, - 45,45,45,45,45,45,45,45,45,45,45,45,45,45,149,45, - 239,45,45,45,45,45,45,149,45,45,104,149,45,39,21,244, - 240,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,28,244,191,187,222,222,10,10,169,10,164,10,164,164,164, - 10,164,164,164,164,164,164,11,164,11,164,11,11,11,11,11, - 11,164,164,16,164,16,11,11,16,11,16,16,11,16,11,11, - 184,45,249,30,249,30,249,249,249,82,145,18,18,34,223,82, - 223,82,223,116,249,18,18,116,145,18,45,249,45,45,45,30, - 45,45,45,45,45,45,45,30,45,45,30,30,30,30,239,30, - 45,45,45,30,30,45,30,45,45,45,45,30,45,45,30,45, - 30,30,30,239,239,45,239,45,239,45,239,239,45,45,45,149, - 149,104,149,45,45,149,104,45,149,45,149,149,149,149,79,244, - 203,203,115,58,58,58,58,115,196,244,115,58,58,58,58,115, - 196,244,115,58,58,58,58,115,196,244,115,58,58,58,58,115, - 196,244,115,58,58,58,58,115,196,244,115,58,58,58,58,115, - 196,244,115,58,58,58,115,196,240,191,115,58,58,58,196,142, - 196,190,115,58,58,244,142,142,196,190,115,58,58,58,58,244, - 244,135,115,58,58,58,58,115,58,135,115,58,244,58,202,244, - 244,240,115,58,58,58,244,244,244,203,115,58,58,58,244,196, - 244,191,115,58,244,244,244,196,244,190,115,58,58,58,58,244, - 244,190,115,58,58,58,196,202,196,244,115,58,58,58,196,142, - 244,28,191,28,130,102,222,222,10,10,136,10,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164,11,164,11,11,11,11, - 11,11,11,164,16,11,16,11,16,164,16,16,16,11,11,11, - 249,239,249,249,249,249,45,249,18,223,109,116,18,109,116,145, - 109,109,223,109,249,223,116,34,223,249,249,184,184,45,249,45, - 45,249,45,45,45,45,45,45,239,239,239,239,239,239,239,239, - 239,239,239,239,239,239,239,239,239,239,73,239,239,239,239,138, - 149,149,239,239,239,239,149,239,239,239,239,104,149,149,104,45, - 149,104,149,104,149,149,149,104,149,104,149,149,149,138,21,58, - 190,190,135,129,129,240,129,133,244,190,190,129,129,240,129,133, - 244,190,190,129,129,240,129,133,244,190,190,129,129,240,129,133, - 244,190,190,129,129,240,129,133,244,190,190,129,129,240,129,133, - 244,190,190,129,129,191,133,129,196,190,135,129,129,240,137,129, - 244,190,58,129,129,190,129,129,196,190,58,129,129,240,129,129, - 196,191,58,129,129,240,129,133,196,191,135,129,129,129,137,129, - 244,190,58,129,129,240,151,129,196,190,135,129,129,191,137,129, - 244,190,135,129,129,190,151,129,244,58,58,129,129,129,129,129, - 244,58,58,129,129,191,151,137,244,190,58,129,129,240,129,129, - 240,28,203,191,187,222,208,10,169,10,136,136,10,136,10,164, - 164,164,164,164,164,164,164,164,164,164,11,164,164,11,11,11, - 16,11,11,16,11,16,11,16,16,16,11,11,16,16,16,11, - 249,249,249,45,249,223,223,18,18,223,116,148,82,143,82,82, - 148,109,145,109,145,116,143,116,175,249,249,249,249,239,239,45, - 249,45,249,249,239,239,239,239,239,239,239,184,249,239,249,239, - 239,239,239,73,239,239,249,73,249,73,249,73,249,138,138,73, - 73,73,239,73,138,149,73,73,138,138,138,149,73,73,138,138, - 149,149,138,149,138,138,138,138,138,149,239,149,239,39,21,244, - 190,58,58,129,129,129,129,129,240,58,58,129,129,129,129,129, - 240,58,58,129,129,129,129,129,240,58,58,129,129,129,129,129, - 240,58,58,129,129,129,129,129,240,58,58,129,129,129,129,129, - 240,58,244,129,129,191,137,129,244,203,58,129,129,191,129,151, - 244,190,244,129,129,190,129,133,28,190,244,129,137,129,129,151, - 58,190,244,137,137,129,129,137,244,58,244,151,129,240,133,129, - 244,190,244,129,129,129,129,129,135,244,58,129,151,240,137,137, - 244,203,58,137,129,129,129,151,240,190,244,133,129,129,129,151, - 240,190,240,129,129,191,129,137,240,190,240,137,129,190,129,129, - 240,115,244,28,125,102,222,10,10,10,10,10,164,10,164,136, - 164,164,164,164,11,164,164,11,11,11,11,11,11,11,11,16, - 11,16,11,11,11,11,16,11,11,16,16,16,16,16,16,16, - 249,239,249,45,249,249,18,116,34,82,223,34,64,64,143,64, - 109,109,24,143,109,148,109,116,223,18,249,249,249,249,249,45, - 45,239,45,239,239,239,239,239,239,239,239,239,239,239,249,73, - 239,249,249,239,249,73,249,239,249,239,249,239,73,149,138,149, - 138,138,138,73,73,138,138,138,73,239,138,138,138,149,138,138, - 138,138,138,104,138,189,138,138,138,138,104,39,149,39,21,202, - 190,191,244,129,137,240,129,133,244,191,244,129,137,240,129,133, - 244,191,244,129,137,240,129,133,244,191,244,129,137,240,129,133, - 244,191,244,129,137,240,129,133,244,191,244,129,137,240,129,133, - 244,191,58,129,133,240,137,129,240,190,244,129,133,190,129,137, - 240,190,244,133,137,240,137,129,135,190,58,129,133,240,137,137, - 240,191,244,129,137,240,129,137,240,191,244,137,129,191,129,133, - 240,191,58,129,129,240,137,133,244,190,244,129,137,129,129,133, - 240,190,244,129,129,240,129,137,244,191,244,129,129,240,129,137, - 244,191,244,133,151,240,129,133,244,191,244,133,129,240,151,151, - 58,203,203,28,187,222,10,10,10,10,164,164,164,11,164,136, - 164,164,164,164,11,11,11,11,11,11,11,11,11,225,11,11, - 11,16,11,16,16,16,11,16,16,16,16,16,16,16,225,225, - 249,249,249,249,45,249,18,18,223,82,148,148,148,64,160,148, - 143,109,148,64,64,64,34,82,109,82,145,18,249,45,45,239, - 239,239,239,239,239,239,239,45,249,45,45,239,239,239,45,45, - 249,45,45,239,45,45,45,239,45,249,239,249,149,73,239,73, - 239,73,239,149,149,149,149,73,149,138,73,149,149,138,138,138, - 138,138,138,138,138,138,138,138,138,138,138,149,149,39,79,115, - 244,190,135,137,129,191,129,129,240,190,135,133,129,191,129,129, - 240,190,135,133,129,191,129,129,240,190,135,133,129,191,129,129, - 240,190,135,133,129,191,129,129,240,190,135,133,129,191,129,129, - 240,190,240,129,129,129,133,129,240,190,240,129,129,129,133,129, - 28,190,244,129,137,129,129,129,196,190,240,129,129,129,129,129, - 196,190,240,133,129,240,137,129,240,190,240,129,129,191,129,129, - 244,190,135,133,129,129,129,129,240,190,240,133,129,112,129,129, - 240,190,240,133,129,129,133,129,244,190,244,129,129,129,133,129, - 244,58,244,137,137,191,129,129,244,58,244,137,137,129,129,129, - 240,244,28,28,187,102,208,10,136,164,10,136,11,136,164,164, - 11,11,11,11,164,11,164,11,11,11,11,11,11,11,11,225, - 16,16,16,16,16,11,16,225,16,16,225,20,126,16,16,16, - 249,249,249,249,249,249,18,223,223,223,171,34,160,41,41,42, - 209,120,160,41,41,148,254,143,82,145,249,18,249,239,45,45, - 45,239,45,45,239,239,239,45,239,239,45,45,45,239,239,45, - 239,239,249,239,239,239,239,239,45,149,45,45,149,149,149,149, - 149,149,45,239,239,149,149,149,149,149,73,239,239,239,239,149, - 104,138,138,138,104,39,149,138,149,149,138,149,149,39,21,115, - 240,240,28,112,240,240,240,190,196,240,28,28,191,112,240,190, - 196,240,28,28,191,112,240,190,196,240,28,28,191,112,240,190, - 196,240,28,28,191,112,240,190,196,240,28,28,191,112,240,190, - 196,240,244,112,85,28,240,240,196,240,244,112,85,28,240,240, - 196,240,28,112,129,202,240,240,202,240,28,112,240,28,85,240, - 196,240,28,28,240,112,240,240,196,240,28,240,85,244,240,240, - 196,240,28,28,240,28,240,240,196,240,28,28,240,112,240,240, - 142,240,28,244,240,28,112,129,196,240,112,112,240,28,112,129, - 196,191,28,112,129,112,240,240,244,191,28,112,129,28,240,240, - 196,244,244,112,187,169,10,10,136,164,10,164,164,164,164,164, - 11,11,11,11,11,225,11,11,11,225,225,16,16,16,16,16, - 16,225,16,16,20,20,16,16,16,20,225,20,126,20,16,16, - 249,249,249,249,249,18,18,145,34,161,118,250,24,160,41,42, - 12,62,62,41,41,42,143,95,114,75,114,87,249,45,239,30, - 184,30,239,239,45,45,45,239,45,45,45,239,45,45,45,239, - 45,45,45,45,45,239,45,45,239,45,149,149,45,45,45,45, - 45,45,149,149,149,239,149,239,239,45,149,149,149,149,149,149, - 149,149,149,149,149,149,149,149,138,138,239,149,149,149,21,202, - 244,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,190,200,207,207,207,207,182, - 124,129,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,129,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,190,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,206,200,207,207,207,207,182,124,206,200,207,207,207,207,182, - 124,129,200,207,207,207,207,182,124,129,200,207,207,207,207,182, - 124,203,28,28,187,222,208,136,136,136,11,164,164,11,11,11, - 87,11,11,11,11,11,93,225,225,225,225,225,11,16,225,16, - 16,225,16,16,225,225,20,16,20,20,20,20,20,226,126,225, - 18,18,18,223,223,116,82,82,82,116,34,159,74,211,110,110, - 68,23,250,62,110,62,186,230,71,59,13,233,232,239,239,45, - 45,45,45,45,30,45,45,45,45,45,30,30,45,45,45,45, - 45,45,45,239,45,239,239,45,45,45,45,149,149,149,149,149, - 149,45,45,239,239,45,149,149,149,45,239,239,149,149,149,149, - 149,149,149,149,104,149,149,149,149,149,104,149,149,39,21,202, - 244,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,206,243,209,227,227,209,68,111,85,243,209,227,227,209,68, - 111,206,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,129,243,209,227,227,209,68, - 111,129,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,190,243,209,227,227,209,68,111,190,243,209,227,227,209,68, - 111,15,15,202,187,222,10,10,136,136,11,11,11,11,11,11, - 11,11,93,11,225,11,225,225,11,11,11,16,16,225,16,225, - 251,16,225,20,20,225,20,126,225,126,225,126,16,16,226,225, - 18,18,18,18,18,18,18,223,145,116,82,109,163,243,211,32, - 64,143,227,71,147,150,7,157,105,72,231,231,80,171,249,239, - 239,30,30,45,45,30,30,45,45,30,45,239,30,45,30,30, - 30,30,30,45,30,45,45,30,184,45,45,45,45,45,45,45, - 45,45,239,45,45,239,45,45,45,149,149,149,45,149,45,149, - 149,45,45,149,149,149,104,45,45,149,149,149,149,149,21,58, - 190,206,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,85,48,218,218,101,218,7,243,85,48,218,218,101,218,7, - 243,84,48,218,218,101,218,7,243,84,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,129,48,218,218,101,218,7,243,129,48,218,218,101,218,7, - 243,129,48,218,218,101,218,7,243,190,48,218,218,101,218,7, - 243,190,48,218,218,101,218,7,243,129,48,218,218,101,218,7, - 243,28,202,191,125,10,136,11,164,136,164,87,11,11,11,11, - 11,11,11,225,225,225,225,16,225,16,16,225,16,225,16,16, - 11,225,20,225,225,126,20,225,20,20,126,16,126,226,225,225, - 18,18,18,18,18,18,223,18,223,223,145,109,34,82,148,82, - 161,163,186,52,168,22,243,150,183,47,95,189,116,223,18,249, - 45,239,184,45,239,45,30,30,239,30,30,45,30,45,45,239, - 239,239,30,45,30,30,45,45,30,45,45,45,45,45,45,45, - 45,45,45,45,45,239,239,45,45,45,45,45,45,149,45,45, - 149,45,45,45,45,149,149,45,45,45,45,45,149,138,21,244, - 240,129,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,206,150,60,163,60,163,250,230,206,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,190,150,60,163,60,163,250,230,190,150,60,163,60,163,250, - 230,206,150,60,163,60,163,250,230,129,150,60,163,60,163,250, - 230,129,150,60,163,60,163,250,230,206,150,60,163,60,163,250, - 230,28,15,28,125,10,53,136,164,11,11,11,87,11,11,11, - 11,11,225,11,225,11,11,225,225,225,225,11,16,225,16,225, - 16,225,16,126,16,225,126,225,225,225,20,225,16,16,16,225, - 18,18,249,249,249,18,18,18,18,145,82,82,145,116,109,34, - 109,109,143,167,82,82,82,34,34,116,145,223,18,18,18,18, - 249,45,45,239,45,239,239,239,30,45,45,184,239,30,184,30, - 30,45,45,239,45,239,239,45,239,239,45,45,45,45,45,45, - 239,45,239,149,149,45,149,104,45,45,45,149,45,45,149,149, - 45,149,149,149,45,149,104,149,149,149,149,149,45,39,79,196, - 244,85,38,24,148,148,24,88,81,129,38,24,148,148,24,88, - 81,129,38,24,148,148,24,88,81,129,38,24,148,148,24,88, - 81,129,38,24,148,148,24,88,81,129,38,24,148,148,24,88, - 81,135,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,190,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,129,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,151,38,24,148,148,24,88,81,190,38,24,148,148,24,88, - 81,129,38,24,148,148,24,88,81,206,38,24,148,148,24,88, - 81,135,38,24,148,148,24,88,81,135,38,24,148,148,24,88, - 81,203,28,28,125,10,136,136,136,136,136,164,11,11,11,11, - 11,11,11,11,11,225,225,11,11,11,11,225,11,11,11,225, - 11,11,225,16,16,16,225,16,16,225,16,126,16,225,225,11, - 249,18,18,18,249,249,18,18,18,145,116,145,145,116,34,34, - 82,82,82,7,223,82,145,223,82,223,18,223,18,18,18,18, - 249,249,239,249,239,249,249,249,249,239,239,239,239,249,249,239, - 239,239,239,239,239,239,239,249,45,239,239,239,239,239,239,149, - 149,45,45,45,149,45,149,45,149,45,45,45,149,45,45,149, - 45,45,104,149,104,149,45,104,45,104,149,149,45,149,21,142, - 244,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,206,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,129,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,190,158,50,254,254,118,67,158,190,158,50,254,254,118,67, - 158,240,28,202,69,222,10,10,136,136,136,136,136,136,136,136, - 11,164,164,11,164,164,11,11,11,11,164,11,11,11,11,11, - 11,11,11,11,11,11,16,11,225,225,11,225,16,16,16,11, - 249,249,249,249,249,249,18,18,18,145,223,223,145,223,82,34, - 82,145,223,12,116,82,145,223,223,116,223,223,18,18,249,249, - 249,249,18,249,249,249,45,249,239,249,249,249,249,239,239,249, - 249,249,249,249,149,249,249,239,149,239,239,239,239,149,149,239, - 239,149,239,239,45,149,45,149,45,149,45,149,104,149,149,104, - 149,45,149,45,149,149,149,149,149,149,45,149,149,149,79,244, - 196,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,129,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,84,14,24,64,64,64,88, - 230,129,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,190,14,24,64,64,64,88,230,190,14,24,64,64,64,88, - 230,28,28,15,21,222,222,208,10,10,10,10,10,10,10,10, - 53,53,164,10,164,164,164,164,164,164,164,164,164,11,164,11, - 11,11,11,11,11,11,11,225,11,11,16,16,16,11,11,225, - 249,249,249,249,249,249,18,18,18,18,18,18,223,223,145,82, - 145,145,223,42,23,82,223,223,223,223,223,18,18,18,18,249, - 18,249,249,18,249,249,239,249,249,249,45,249,249,249,249,45, - 239,239,239,239,239,239,239,73,249,149,149,149,239,239,239,239, - 239,149,149,149,239,138,104,149,104,149,104,149,45,149,149,149, - 149,149,149,149,73,149,138,138,138,138,104,189,138,39,21,96, - 202,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,40,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,129,127,88,42,42,42,62,243,129,127,88,42,42,42,62, - 243,190,127,88,42,42,42,62,243,190,127,88,42,42,42,62, - 243,28,28,28,79,102,222,222,222,222,222,10,10,10,10,10, - 10,10,164,10,10,10,10,10,10,164,164,164,164,164,164,164, - 164,164,11,11,11,11,11,11,16,11,11,11,225,225,11,11, - 249,249,249,45,249,249,249,18,18,18,18,18,223,223,223,116, - 223,223,223,42,145,82,223,223,18,223,18,18,18,18,149,18, - 249,149,149,249,249,18,18,249,249,249,249,239,149,249,73,249, - 249,249,249,249,249,249,249,149,73,249,249,138,189,138,138,138, - 138,138,138,73,138,138,138,189,138,138,138,138,149,73,138,138, - 138,189,138,138,138,138,138,138,138,189,39,138,189,39,79,202, - 196,190,115,58,58,58,58,115,58,190,115,58,58,58,58,115, - 58,190,115,58,58,58,58,115,58,190,115,58,58,58,58,115, - 58,190,115,58,58,58,58,115,58,190,115,58,58,58,244,142, - 244,191,115,58,58,58,244,142,244,191,115,58,58,58,115,196, - 244,191,115,58,58,58,244,115,244,191,115,58,58,58,58,115, - 135,240,115,58,58,58,58,115,244,191,115,58,58,58,115,115, - 244,190,115,58,58,58,244,196,244,135,115,58,58,58,115,115, - 58,240,115,58,58,58,115,196,244,240,115,58,58,244,244,196, - 240,191,115,58,58,244,115,196,196,244,115,58,58,58,196,142, - 244,202,28,28,79,102,222,222,222,10,10,222,10,10,10,222, - 10,10,10,164,164,164,164,164,164,164,10,164,10,164,164,164, - 164,164,164,164,164,11,11,11,11,11,11,11,11,11,11,11, - 249,73,249,249,249,45,249,18,18,18,18,18,18,223,223,145, - 223,223,39,12,38,145,223,223,18,18,18,18,18,18,149,249, - 149,249,149,149,45,45,249,249,149,249,249,239,239,249,249,249, - 249,249,249,249,249,249,249,249,249,249,138,138,138,138,138,138, - 73,73,138,138,138,138,138,138,189,138,138,189,39,39,149,138, - 138,138,138,39,138,138,138,138,138,104,39,189,189,39,188,142, - 202,190,58,129,129,191,129,133,244,190,58,129,129,191,129,133, - 244,190,58,129,129,191,129,133,244,190,58,129,129,191,129,133, - 244,190,58,129,129,191,129,133,28,135,58,129,129,129,129,129, - 240,190,58,129,129,240,151,129,196,190,190,129,129,191,133,129, - 244,190,190,129,129,129,220,133,244,190,190,129,129,240,129,133, - 196,191,190,129,129,129,129,133,112,190,190,129,129,191,137,133, - 244,191,58,129,129,191,151,129,244,244,58,129,129,191,133,133, - 196,190,58,129,129,191,133,129,244,190,190,129,129,190,151,129, - 196,190,135,129,129,191,133,129,240,190,58,129,129,240,129,129, - 240,28,28,28,76,90,222,171,222,222,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,164,164,164,164,164,164,164, - 164,164,11,11,164,11,11,11,11,11,11,11,11,11,164,164, - 249,249,184,249,249,249,249,249,249,149,18,18,18,223,223,223, - 39,175,223,12,175,223,18,223,18,18,18,18,18,18,18,18, - 45,249,239,239,249,249,249,45,239,45,249,249,249,239,239,249, - 73,149,239,239,239,239,138,149,239,239,73,149,138,149,138,138, - 149,149,149,73,239,138,138,138,149,149,149,149,239,239,149,149, - 149,138,149,239,149,149,104,149,149,39,104,149,149,39,79,196, - 142,190,244,129,129,129,129,129,244,190,244,129,129,129,129,129, - 244,190,244,129,129,129,129,129,244,190,244,129,129,129,129,129, - 244,190,244,129,129,129,129,129,244,190,240,129,129,240,129,129, - 244,190,58,129,129,191,137,129,244,58,244,129,137,191,129,137, - 244,58,135,129,129,240,129,137,244,58,58,129,137,129,129,129, - 58,58,244,129,129,240,129,129,244,58,58,129,137,129,129,137, - 244,190,244,129,129,129,133,129,135,191,244,129,129,191,129,129, - 244,190,244,129,129,191,129,129,244,58,244,129,129,129,129,129, - 244,203,58,129,151,191,129,129,240,190,240,137,129,190,129,129, - 240,244,202,216,79,102,102,10,222,10,10,222,10,10,10,10, - 10,10,10,10,10,164,164,164,53,164,10,164,164,164,164,164, - 164,164,164,11,11,164,11,164,11,11,11,11,11,11,11,11, - 249,18,249,249,249,249,249,249,18,249,18,18,18,39,39,223, - 223,223,18,12,38,223,223,18,223,18,18,18,149,18,149,18, - 249,249,249,249,249,45,249,249,249,45,239,239,249,249,239,249, - 239,149,249,149,138,239,149,138,138,149,239,239,239,45,45,149, - 149,239,149,149,149,149,149,104,149,149,45,149,149,239,149,104, - 149,239,149,239,149,149,104,149,45,149,149,149,45,39,79,202, - 202,191,240,133,151,240,129,133,240,190,240,133,151,240,129,133, - 240,190,240,133,151,240,129,133,240,190,240,133,151,240,129,133, - 240,190,240,133,151,240,129,133,240,190,58,129,129,190,151,151, - 240,191,244,129,133,240,129,133,240,191,58,129,137,240,129,133, - 240,191,244,129,129,190,129,137,240,191,240,129,133,240,129,129, - 240,191,58,129,129,240,129,129,240,191,244,129,129,240,129,137, - 135,191,240,133,129,240,129,137,244,190,58,129,129,240,129,137, - 240,191,58,129,137,190,129,133,240,191,135,129,129,240,129,151, - 240,190,240,129,129,190,129,151,58,191,244,137,129,191,151,151, - 58,28,202,202,79,169,222,10,222,222,10,10,10,136,10,10, - 10,10,164,53,10,10,10,10,10,164,164,164,164,87,164,164, - 164,164,164,11,11,11,11,11,11,11,11,11,11,11,11,11, - 249,175,249,249,249,249,249,249,249,249,18,18,18,18,175,223, - 18,18,18,12,73,223,223,39,39,18,18,18,18,18,18,18, - 149,149,249,249,149,18,249,149,249,18,149,249,149,249,149,249, - 149,249,149,73,149,149,73,149,149,149,149,149,149,149,149,239, - 239,149,149,149,149,45,149,149,149,239,149,45,45,149,149,149, - 149,149,149,149,45,149,149,149,149,149,149,45,149,149,79,142, - 142,58,244,137,129,191,129,129,28,58,244,137,129,191,129,129, - 28,58,244,137,129,191,129,129,28,58,244,137,129,191,129,129, - 28,58,244,137,129,240,129,129,244,58,135,129,133,129,129,129, - 196,190,240,129,137,191,129,129,240,190,240,133,129,129,129,129, - 240,58,240,129,133,112,137,129,240,58,240,129,129,240,137,129, - 240,190,135,129,133,191,151,151,240,190,135,129,129,191,137,129, - 244,58,244,137,129,191,137,129,244,190,135,133,129,191,137,129, - 244,190,135,129,129,129,129,129,240,244,190,133,129,129,133,129, - 240,58,135,137,129,129,129,129,196,58,240,137,133,129,129,129, - 240,115,15,202,162,102,171,222,56,10,10,10,136,10,10,164, - 10,10,10,164,164,164,164,164,164,164,164,164,164,164,11,11, - 11,11,11,11,11,11,11,11,11,93,11,11,11,11,11,164, - 175,175,175,18,18,18,18,18,18,249,18,18,223,18,18,223, - 223,223,249,12,17,223,223,18,18,18,18,18,18,149,18,18, - 18,18,149,18,149,18,149,18,149,18,149,249,149,249,149,249, - 149,149,18,149,149,18,149,149,249,249,149,138,138,138,149,149, - 149,239,239,104,149,239,149,149,149,149,149,149,149,104,39,149, - 149,104,149,149,149,149,45,149,45,45,149,149,149,149,47,216, - 142,240,28,112,240,240,240,240,196,240,28,112,240,240,240,240, - 196,240,28,112,240,240,240,240,196,240,28,112,240,240,240,240, - 196,240,28,112,240,240,240,240,202,240,202,112,240,202,240,240, - 244,240,244,112,129,112,240,240,196,240,202,28,129,28,240,240, - 196,240,202,240,191,112,240,240,196,240,28,112,240,112,240,240, - 196,240,28,240,240,240,240,240,196,240,202,240,190,112,112,240, - 244,240,28,112,240,28,112,129,196,240,28,28,129,112,240,240, - 196,240,28,112,85,28,240,240,196,240,28,244,240,28,240,240, - 196,240,28,112,85,202,240,240,244,240,28,112,240,28,240,240, - 196,28,15,202,79,102,222,222,10,56,136,10,10,136,10,164, - 164,164,10,53,164,164,164,53,164,53,11,87,11,164,164,87, - 11,11,11,11,11,11,11,11,11,225,16,225,225,11,93,11, - 175,223,175,175,175,249,249,249,18,18,18,18,18,18,175,175, - 18,18,73,12,66,223,223,39,223,18,18,18,18,149,18,149, - 18,149,18,149,18,149,18,18,149,249,18,249,249,18,149,18, - 249,249,149,149,149,149,149,249,149,149,138,149,149,149,138,149, - 138,149,149,39,138,149,149,149,138,149,138,138,149,149,149,149, - 149,39,149,138,149,149,149,104,149,149,45,149,149,169,21,115, - 202,253,245,202,142,202,253,115,115,115,245,115,253,202,115,245, - 253,115,245,253,202,253,115,152,115,115,245,245,152,115,245,245, - 245,253,15,245,115,202,245,245,245,202,115,202,253,202,115,115, - 115,115,115,245,202,253,115,115,152,202,202,253,202,112,253,202, - 202,142,202,196,245,202,245,245,253,115,245,115,115,202,152,115, - 115,115,245,115,115,115,245,115,245,245,245,253,202,202,115,115, - 115,115,115,115,202,202,253,202,115,115,245,245,115,202,115,15, - 202,202,15,245,202,202,15,245,202,202,245,245,15,245,15,245, - 245,115,245,15,202,202,15,15,115,115,15,115,202,245,15,245, - 15,245,115,0,94,222,102,10,222,10,10,10,136,10,10,10, - 10,10,164,164,164,53,164,11,164,164,164,164,164,11,11,11, - 11,11,11,11,11,225,93,225,11,11,225,11,225,225,11,11, - 175,223,175,18,223,18,18,18,175,18,18,175,175,223,18,223, - 175,223,239,211,17,18,223,18,223,39,18,223,18,18,18,18, - 149,18,149,249,149,149,149,149,18,149,18,149,249,149,149,18, - 149,249,249,18,249,249,138,249,39,149,138,138,138,149,138,138, - 39,39,149,149,39,138,138,149,138,149,149,138,39,149,149,39, - 149,39,39,149,149,39,149,149,149,149,149,149,39,174,26,245, - 84,193,193,202,84,115,85,142,89,135,96,152,115,202,89,115, - 112,151,206,135,244,202,202,245,245,135,196,240,0,245,245,245, - 245,152,152,245,0,115,202,49,15,112,190,151,115,202,253,253, - 245,135,135,196,196,202,253,112,190,240,202,245,0,152,152,152, - 152,84,84,44,172,151,44,151,29,253,245,0,152,202,202,129, - 85,115,253,216,0,151,85,129,240,202,15,196,135,240,253,253, - 253,202,253,245,115,115,152,0,152,89,89,216,245,253,245,115, - 245,202,202,15,245,152,245,152,0,245,115,216,202,115,96,142, - 245,142,253,115,115,202,142,245,245,245,253,28,202,245,152,0, - 245,0,245,245,89,151,90,56,10,10,10,10,10,164,164,164, - 164,164,164,164,164,87,164,11,11,164,11,11,87,11,11,11, - 11,11,93,93,11,11,225,225,225,16,225,225,16,16,225,11, - 175,223,223,175,175,175,175,175,18,175,223,18,223,175,223,175, - 223,175,18,211,159,223,223,223,18,223,18,223,223,18,18,18, - 18,18,18,18,18,18,249,18,249,18,149,18,149,18,249,149, - 18,39,39,138,138,39,39,39,138,249,138,138,138,138,39,149, - 149,149,149,39,149,149,138,138,149,39,39,149,39,149,39,149, - 39,149,149,39,39,149,39,149,39,149,149,149,39,178,47,151, - 44,196,96,240,49,96,115,142,72,202,142,196,172,238,202,72, - 80,29,133,240,115,15,245,15,15,133,151,29,202,245,152,115, - 245,112,85,152,72,72,142,96,115,202,84,172,253,152,115,135, - 198,108,29,198,112,129,151,84,63,84,80,151,151,202,89,72, - 72,152,96,44,133,72,206,29,242,115,15,197,172,15,63,63, - 84,129,28,244,28,190,29,29,151,151,80,129,151,240,28,240, - 105,129,133,58,196,191,193,29,29,115,115,115,244,115,115,253, - 115,152,115,115,245,152,196,190,15,96,202,115,84,46,196,142, - 142,15,203,28,28,244,245,115,15,245,245,28,115,152,89,245, - 152,245,115,245,0,220,102,10,136,10,164,10,164,10,10,53, - 164,164,53,164,11,164,87,11,87,11,87,11,11,11,11,11, - 11,11,11,11,225,225,225,225,16,225,16,225,225,225,11,225, - 175,223,223,175,223,175,175,223,175,175,223,18,223,18,223,223, - 223,223,18,185,51,175,223,39,223,223,18,18,18,18,18,18, - 149,18,149,18,249,18,149,18,149,149,249,18,249,39,138,138, - 149,149,149,138,149,149,149,149,39,18,149,149,138,149,149,138, - 138,149,239,138,138,149,138,138,149,149,39,149,39,149,149,149, - 149,149,149,149,149,149,149,149,149,73,149,149,149,229,47,188, - 242,115,72,63,89,89,115,202,89,202,253,253,142,63,96,142, - 196,96,135,205,245,15,112,135,115,151,29,198,135,15,202,115, - 245,196,129,115,58,58,89,202,28,152,202,49,172,216,115,29, - 242,29,29,190,133,235,240,112,96,135,240,235,46,133,190,238, - 72,72,84,58,29,44,29,29,29,191,15,84,172,202,63,72, - 96,63,190,151,129,244,133,137,190,187,151,129,152,151,29,29, - 133,108,162,29,196,190,198,29,193,152,152,245,191,89,115,115, - 115,49,135,190,202,0,129,154,115,46,193,190,202,244,15,202, - 135,115,115,89,220,244,202,115,202,115,115,245,245,15,245,245, - 245,0,245,0,245,154,102,10,53,136,136,164,164,164,164,164, - 164,164,11,164,11,164,164,164,11,11,11,11,87,11,11,11, - 11,11,11,11,225,225,225,225,225,225,16,16,16,226,11,11, - 175,223,175,223,175,223,18,175,18,18,18,175,18,175,18,18, - 223,18,249,147,95,223,223,223,39,18,39,18,39,223,18,18, - 18,249,18,149,18,149,18,249,249,189,249,138,138,249,249,138, - 249,138,138,149,138,249,138,249,149,138,138,138,138,73,138,149, - 138,149,39,104,149,138,149,149,104,149,45,149,104,149,149,138, - 149,149,149,73,149,149,149,149,149,149,149,149,39,198,229,188, - 85,44,72,96,202,89,96,58,72,202,72,172,89,142,142,96, - 96,72,137,105,115,245,245,202,151,96,245,58,202,253,202,202, - 115,245,216,152,63,89,202,245,15,0,142,46,46,29,142,190, - 29,133,244,80,44,63,135,115,152,240,115,15,191,244,44,135, - 142,89,44,44,151,151,193,29,58,115,15,49,63,236,63,84, - 37,129,245,15,28,202,113,187,133,152,245,115,130,198,193,137, - 151,193,133,190,202,115,142,15,115,115,142,245,58,0,152,152, - 152,89,108,187,133,0,115,152,0,142,206,72,89,196,135,115, - 142,216,115,72,129,196,253,253,115,142,202,245,15,152,115,15, - 245,245,245,245,15,154,102,10,10,10,136,136,87,11,164,136, - 164,164,164,11,164,11,11,11,11,11,11,11,11,11,11,11, - 93,11,225,225,225,11,225,16,225,126,225,225,225,225,225,225, - 175,223,175,175,175,223,175,241,175,175,18,175,175,175,175,175, - 223,175,249,227,95,223,39,223,175,175,175,223,39,223,39,18, - 39,149,18,149,18,149,249,249,249,138,73,249,138,138,249,189, - 249,138,138,73,73,73,138,73,73,73,73,138,138,138,73,73, - 73,239,149,149,239,104,149,149,149,138,149,149,149,138,149,138, - 138,104,39,149,149,39,149,149,149,149,45,149,39,27,47,47, - 105,151,72,72,142,152,89,96,142,115,193,172,152,49,58,142, - 72,196,129,198,133,245,245,44,133,244,112,115,202,202,245,245, - 202,245,240,29,84,84,135,216,152,152,96,96,245,29,151,178, - 105,113,129,84,240,245,96,125,133,133,197,151,58,203,63,135, - 142,72,44,58,96,137,190,240,240,28,129,141,172,44,63,72, - 72,129,245,15,15,196,84,135,240,244,173,141,37,202,115,58, - 84,80,205,15,15,15,15,245,0,152,245,245,72,115,72,135, - 89,152,137,154,206,245,245,152,152,89,72,240,142,72,142,137, - 115,245,245,245,220,115,152,115,115,245,245,115,245,0,245,245, - 245,15,245,0,240,154,171,136,136,10,136,10,136,136,10,164, - 11,11,53,11,11,164,11,11,11,11,11,11,11,11,93,11, - 225,225,225,225,16,225,225,16,16,226,126,226,16,226,16,225, - 175,175,175,175,175,175,175,175,175,175,223,175,223,175,223,223, - 175,223,39,168,208,223,223,39,223,223,223,18,175,39,223,18, - 138,18,138,18,249,189,189,189,189,189,249,138,73,138,73,73, - 73,73,73,249,138,149,73,149,149,138,138,239,73,73,149,149, - 149,138,149,104,138,149,138,138,104,138,104,138,138,138,138,138, - 149,149,149,149,138,239,73,138,138,239,138,149,189,198,188,47, - 188,170,172,58,72,152,96,96,115,0,49,172,142,172,72,253, - 245,196,58,29,178,151,178,86,135,151,193,21,135,245,115,115, - 0,244,133,191,152,84,240,58,49,58,84,172,84,112,202,58, - 198,137,133,135,244,178,197,197,244,28,196,188,29,202,15,151, - 112,72,44,84,44,135,196,142,89,135,240,133,137,190,29,58, - 49,115,245,15,196,172,44,202,137,84,84,29,46,80,49,72, - 151,133,29,15,15,245,15,15,115,152,15,15,115,49,72,142, - 253,152,115,58,245,115,115,202,245,115,89,115,142,197,72,15, - 15,245,245,245,245,240,202,240,58,115,115,0,15,115,152,115, - 245,115,245,245,80,137,102,10,10,136,136,11,164,164,11,11, - 164,164,11,164,164,11,11,11,11,11,11,225,11,225,11,225, - 16,11,11,11,225,16,126,225,225,225,16,225,226,16,126,225, - 175,175,241,241,175,175,175,241,241,175,175,18,223,175,175,223, - 18,223,18,68,54,223,39,18,39,39,39,39,18,189,39,18, - 189,39,39,39,249,249,138,249,249,138,73,249,73,249,138,249, - 249,249,73,239,73,249,73,73,138,73,138,138,149,73,138,73, - 138,138,138,138,138,104,39,138,138,138,138,104,138,104,138,138, - 138,189,189,138,189,138,138,138,189,138,138,39,39,242,105,144, - 188,26,63,117,72,142,72,58,96,85,44,96,133,172,172,172, - 89,63,152,49,84,29,188,80,96,151,47,188,151,152,96,115, - 202,190,151,137,115,193,190,103,63,172,84,141,72,245,15,115, - 196,206,112,202,49,63,198,193,141,44,197,29,172,44,129,244, - 135,80,96,29,193,193,69,29,96,142,240,154,29,137,142,206, - 152,115,202,245,197,115,190,244,80,151,29,187,187,29,29,151, - 135,154,29,15,129,202,244,198,133,135,15,115,115,72,206,152, - 142,245,245,28,245,152,206,115,152,245,115,193,115,236,190,245, - 15,245,245,15,15,142,115,28,129,191,191,0,202,115,115,152, - 245,15,0,0,154,154,222,136,136,10,136,164,164,164,164,11, - 11,11,11,11,11,11,87,11,11,225,11,225,225,225,225,11, - 16,225,16,126,225,225,20,126,226,226,226,225,226,16,16,225, - 175,175,175,175,175,175,175,175,175,249,175,241,175,249,18,18, - 175,138,39,167,140,18,175,241,189,189,39,18,189,18,189,189, - 39,189,189,189,189,138,189,138,138,189,249,138,249,138,249,138, - 138,138,138,138,249,73,249,249,73,239,73,239,73,239,73,138, - 104,138,138,138,138,138,104,149,149,138,138,138,138,138,138,138, - 138,73,138,104,138,138,138,104,138,149,138,149,223,188,78,78, - 176,27,105,151,49,49,89,96,96,29,29,80,151,63,172,235, - 89,152,152,115,84,202,188,188,21,206,125,188,137,238,141,58, - 115,37,206,80,152,80,151,29,202,84,72,133,206,245,245,245, - 0,190,245,178,79,142,151,193,46,128,46,29,85,96,72,112, - 240,133,198,84,96,69,79,79,79,115,115,96,112,0,115,240, - 89,115,49,142,135,173,133,80,142,193,197,29,44,187,216,142, - 151,58,129,202,190,244,240,84,72,115,115,15,15,115,72,142, - 115,89,202,137,115,152,112,113,152,202,80,37,202,206,115,245, - 15,245,15,15,15,115,129,191,190,190,28,202,191,245,245,15, - 115,115,245,15,103,80,10,208,164,11,164,11,11,87,11,87, - 11,11,225,225,225,11,11,11,225,11,225,225,225,20,16,225, - 225,16,126,16,126,16,225,16,16,225,16,226,226,226,126,225, - 175,175,175,175,175,241,175,175,175,175,175,241,175,175,241,18, - 175,18,18,167,214,18,39,18,18,189,189,189,138,189,249,249, - 249,138,249,138,189,73,73,73,73,73,73,189,73,73,73,73, - 73,73,73,138,138,138,138,249,138,138,138,73,138,149,149,149, - 73,138,104,138,138,149,138,104,138,104,138,104,138,138,104,138, - 138,149,138,138,138,138,138,149,104,138,138,138,39,144,78,78, - 105,129,28,129,63,44,72,89,115,193,133,135,172,37,115,112, - 142,46,236,236,115,202,84,198,105,151,141,198,151,203,172,196, - 63,236,84,129,72,151,129,151,129,44,172,133,154,135,15,115, - 245,190,244,44,84,115,84,37,141,63,46,84,190,152,172,44, - 190,151,198,29,178,178,178,79,86,80,115,151,190,245,151,240, - 129,151,135,172,28,240,154,85,198,117,29,193,115,113,84,133, - 205,152,152,96,130,244,115,58,172,142,15,245,15,115,191,115, - 115,115,28,240,154,142,245,190,0,108,205,129,137,133,15,245, - 15,245,245,15,15,245,196,240,9,244,115,115,69,190,202,202, - 15,115,190,190,234,154,10,136,136,136,136,136,11,11,11,11, - 87,11,11,11,225,225,225,225,225,225,225,225,225,225,225,16, - 20,225,16,225,126,20,226,226,226,226,20,226,226,226,226,225, - 175,241,241,241,241,241,249,249,241,241,175,18,241,249,18,175, - 18,241,175,230,54,175,175,241,189,175,18,18,189,189,18,189, - 189,138,189,189,249,138,249,138,249,138,138,73,189,249,189,189, - 249,138,249,73,138,73,73,138,138,73,73,138,138,189,104,138, - 138,138,138,138,138,138,138,138,138,138,138,138,138,138,189,138, - 138,104,138,138,138,104,138,138,189,138,138,138,18,105,141,46, - 13,63,112,28,191,242,84,89,202,29,44,141,84,72,49,96, - 63,46,49,152,133,172,89,197,29,29,174,172,44,105,174,154, - 58,49,141,198,29,96,115,135,80,244,142,190,44,190,245,245, - 0,151,28,197,105,205,137,151,49,63,44,172,151,135,133,84, - 129,142,151,115,178,79,188,113,21,133,112,29,205,0,152,151, - 80,133,245,202,15,15,84,141,206,151,231,154,46,187,178,245, - 72,152,245,115,15,202,72,37,172,142,15,245,115,15,154,191, - 240,196,135,15,29,129,96,240,152,108,151,80,154,190,15,15, - 15,15,15,15,15,245,142,190,240,202,115,49,154,187,15,115, - 202,245,112,202,129,151,222,136,11,11,11,11,11,93,11,11, - 11,11,93,225,11,11,11,11,225,225,225,225,225,16,126,126, - 225,20,126,20,16,126,226,16,20,226,226,226,226,20,16,16, - 175,241,73,249,249,241,184,241,73,73,241,73,73,241,189,189, - 175,189,175,71,54,175,39,39,138,189,189,189,18,189,189,138, - 189,189,249,189,189,189,189,138,138,189,249,138,189,138,138,189, - 189,189,138,138,138,138,73,138,138,138,138,73,138,189,189,138, - 73,138,104,138,73,104,39,138,138,138,138,138,104,39,149,138, - 189,138,138,138,138,138,104,39,149,138,138,39,223,130,112,129, - 129,133,130,193,151,44,197,72,202,44,151,84,141,135,240,84, - 117,63,193,46,26,141,193,205,193,29,198,72,196,141,117,26, - 191,130,151,151,84,141,63,240,84,89,151,151,103,152,89,89, - 63,129,190,240,178,105,63,130,151,151,96,178,29,236,46,142, - 135,135,84,49,49,29,187,198,187,193,154,133,151,205,152,152, - 84,137,202,115,15,190,231,13,146,142,197,49,240,133,154,72, - 49,190,137,129,152,245,137,137,152,245,15,0,89,72,108,0, - 89,191,240,191,129,190,253,245,152,80,133,29,137,129,15,15, - 15,245,245,245,15,196,58,63,152,142,245,72,245,114,202,115, - 240,245,115,115,245,154,10,136,136,225,11,136,11,93,93,225, - 225,11,11,225,225,225,225,16,16,225,16,16,126,16,225,20, - 225,20,126,20,16,16,226,126,226,226,20,20,226,226,226,225, - 175,241,241,241,241,241,241,241,241,241,73,241,241,241,241,175, - 249,18,18,111,54,175,73,73,73,138,249,249,138,189,249,189, - 189,138,189,189,249,138,249,189,189,249,189,189,138,189,189,138, - 138,138,138,73,138,138,138,73,138,138,189,138,73,138,138,104, - 138,138,189,189,189,39,138,138,138,138,138,189,39,138,189,39, - 39,189,138,138,39,138,39,138,189,189,39,138,39,29,238,26, - 129,193,229,229,229,105,27,49,89,84,152,152,141,84,196,46, - 141,231,172,245,231,44,235,29,96,151,105,188,133,46,26,13, - 49,49,58,205,240,202,142,240,142,84,112,133,135,49,49,72, - 46,244,133,191,28,235,29,193,245,245,129,37,242,29,245,72, - 135,196,112,202,115,49,198,105,29,151,152,129,129,240,152,89, - 152,253,115,152,115,174,146,128,212,37,170,196,72,80,84,245, - 0,129,205,0,152,152,245,0,0,245,0,191,133,196,72,115, - 84,72,196,103,113,137,113,187,58,240,190,191,58,190,15,245, - 15,245,0,245,245,115,58,0,253,115,115,115,245,190,96,46, - 242,115,245,245,151,103,136,136,11,11,11,225,93,11,225,225, - 93,225,225,225,16,225,16,225,225,16,225,20,225,20,20,225, - 126,225,16,126,226,226,226,20,20,226,226,226,226,251,126,226, - 241,175,241,241,241,241,241,73,73,241,241,241,241,249,241,241, - 241,189,249,59,54,189,73,73,73,73,73,73,249,189,249,249, - 189,189,138,189,189,189,138,73,189,138,73,73,73,73,73,73, - 73,189,138,189,189,189,189,189,189,73,189,138,189,189,189,189, - 189,189,104,39,73,189,189,189,189,189,138,138,189,138,138,138, - 39,189,189,73,39,138,189,189,39,138,39,39,223,242,240,46, - 46,242,177,229,229,105,47,49,89,89,152,37,172,63,130,178, - 193,13,133,235,229,63,26,117,213,130,198,198,26,174,117,63, - 49,89,49,58,151,202,244,240,202,142,137,133,137,72,72,72, - 235,202,244,84,28,28,135,63,29,89,29,151,58,202,198,133, - 245,115,15,115,115,115,63,29,198,151,15,0,202,15,152,152, - 152,152,115,89,231,70,13,236,37,115,49,196,135,190,242,37, - 245,244,142,152,245,0,142,89,115,152,152,137,245,142,142,190, - 115,152,115,191,129,129,151,133,142,202,154,154,129,80,115,152, - 245,245,245,245,152,202,58,152,49,115,253,115,240,190,202,196, - 115,0,245,15,58,135,136,93,136,225,11,225,225,225,93,16, - 226,126,225,225,126,126,225,16,225,20,225,20,126,126,20,20, - 20,20,20,251,251,251,226,226,20,226,251,20,20,20,226,226, - 241,241,175,241,241,241,73,241,241,241,73,241,73,73,73,249, - 73,73,175,200,86,249,249,73,73,73,189,189,73,249,189,73, - 73,138,73,138,73,73,73,138,73,73,138,138,249,138,189,138, - 189,73,189,73,73,73,189,73,73,189,138,189,73,73,189,138, - 73,138,189,73,189,73,73,189,189,189,189,189,189,39,189,138, - 138,149,39,39,138,189,138,138,138,189,138,39,39,130,37,236, - 193,29,177,144,229,105,229,37,245,152,89,236,152,152,130,188, - 63,170,13,146,174,238,236,242,174,170,29,29,112,242,26,13, - 89,49,152,96,112,191,202,190,115,244,113,205,133,240,142,142, - 49,196,245,133,29,203,28,129,202,202,202,216,202,72,29,129, - 190,240,112,96,112,196,72,242,197,202,115,129,244,203,152,152, - 49,89,0,89,152,0,0,0,152,89,202,117,29,84,129,46, - 63,151,115,152,152,0,58,49,49,152,152,129,108,244,240,72, - 49,49,115,133,191,154,137,245,115,253,142,142,244,202,72,89, - 115,0,152,72,253,49,115,152,216,245,245,245,244,196,244,49, - 28,142,152,0,129,205,10,11,225,225,225,225,126,225,16,225, - 225,16,126,126,225,16,126,20,126,126,20,126,20,20,126,126, - 251,251,226,20,20,20,20,251,139,139,20,139,139,139,226,16, - 241,241,241,184,184,241,184,184,184,241,73,249,241,73,241,73, - 249,249,175,52,86,241,189,73,73,73,73,189,73,73,189,249, - 73,189,73,189,189,189,73,73,73,73,73,73,73,73,73,73, - 138,73,138,138,138,73,189,189,73,73,138,138,138,138,73,138, - 189,189,138,138,138,138,149,138,138,189,189,138,104,39,189,189, - 39,138,138,189,189,189,73,149,138,189,138,39,223,157,235,146, - 117,172,128,49,117,37,49,37,115,89,89,152,0,49,84,172, - 49,49,133,72,174,216,235,130,144,235,193,242,193,13,141,49, - 89,49,89,89,72,63,202,63,49,190,206,202,115,202,0,115, - 115,89,58,216,133,151,236,84,133,142,58,29,130,240,202,142, - 142,142,202,244,202,129,89,193,231,202,15,133,135,115,115,152, - 152,49,96,151,84,135,202,245,245,152,49,115,151,96,202,235, - 236,135,152,152,0,15,115,115,152,152,141,141,129,137,245,115, - 29,0,244,103,113,103,154,112,29,80,135,152,152,152,152,0, - 152,152,115,72,253,152,0,0,0,152,245,245,191,129,253,152, - 245,202,152,0,113,108,136,11,11,225,16,16,16,225,126,226, - 226,20,20,251,237,20,20,251,20,251,237,126,20,20,20,20, - 20,226,226,226,226,226,20,20,20,226,20,20,20,20,226,226, - 241,241,241,241,241,184,184,184,184,184,184,184,241,73,73,73, - 73,73,241,200,79,241,73,73,73,73,73,73,73,73,73,73, - 189,73,241,189,189,73,189,189,189,241,73,73,73,189,241,189, - 73,189,73,73,189,189,189,189,189,189,189,189,189,189,39,189, - 189,138,189,189,189,189,189,189,189,189,189,138,73,138,39,138, - 189,189,189,189,138,138,39,138,73,189,189,138,39,200,157,85, - 96,236,13,174,46,44,105,49,0,49,49,152,89,89,49,170, - 49,72,13,117,146,236,26,130,188,84,46,117,44,151,15,15, - 49,49,152,49,72,49,245,49,84,133,96,172,172,72,89,89, - 152,115,89,240,245,202,190,29,29,72,85,133,129,142,115,151, - 244,245,115,202,142,15,253,112,13,15,15,89,152,15,15,152, - 152,152,152,152,115,137,29,84,236,37,191,240,28,28,135,135, - 84,115,115,115,15,173,28,15,15,115,15,58,29,113,245,202, - 113,129,108,113,113,151,115,0,245,0,0,0,115,115,245,0, - 152,152,152,115,0,0,152,152,245,152,0,152,28,154,197,238, - 96,115,0,0,244,96,11,225,16,126,225,16,226,20,20,20, - 20,126,20,20,20,20,251,20,237,20,20,20,126,126,126,226, - 226,20,226,226,226,20,226,226,226,20,226,226,226,226,226,226, - 241,73,228,228,241,184,241,228,184,241,184,73,184,73,73,73, - 241,73,241,52,188,241,73,73,73,73,73,241,189,189,241,241, - 241,189,241,189,241,189,189,189,189,241,241,241,189,189,241,189, - 241,189,175,189,189,189,189,39,189,189,189,189,189,189,39,39, - 39,39,39,39,39,189,189,39,39,189,189,189,189,138,39,189, - 39,39,39,39,189,189,39,39,39,138,39,189,39,229,22,177, - 13,46,235,174,229,236,174,49,152,49,49,152,152,115,72,193, - 72,96,37,112,146,72,236,117,78,133,46,244,213,26,46,46, - 15,115,28,178,188,105,79,188,105,245,152,72,235,54,47,21, - 198,152,152,190,152,245,245,253,202,198,187,72,240,213,202,151, - 129,213,244,202,202,135,44,242,146,202,15,72,152,115,115,152, - 152,152,152,152,72,151,172,190,190,202,202,115,28,112,115,58, - 29,15,173,173,173,15,245,115,15,245,15,15,103,178,187,142, - 198,103,133,191,190,133,115,151,152,152,152,115,133,244,15,115, - 115,152,152,152,240,0,152,152,0,152,0,196,115,142,58,196, - 202,89,152,245,108,129,225,225,16,16,226,16,126,16,226,226, - 20,20,20,20,237,20,237,251,237,119,165,224,20,20,20,226, - 226,20,20,226,226,226,226,226,226,226,226,226,226,226,20,226, - 228,228,241,241,228,228,184,184,184,184,228,228,73,228,73,184, - 184,73,241,199,79,241,184,73,73,73,73,73,189,241,189,241, - 189,241,189,241,39,241,241,241,241,39,241,241,189,189,189,241, - 189,189,189,189,241,241,189,189,241,189,175,39,189,189,189,189, - 189,189,189,189,189,39,39,189,189,189,189,189,189,39,73,39, - 189,189,189,189,39,189,189,189,189,189,189,39,223,177,248,111, - 46,236,46,200,117,231,46,37,49,49,37,152,49,152,49,170, - 49,49,146,231,128,111,117,117,174,197,238,28,72,197,133,242, - 244,15,203,105,196,29,44,85,130,0,0,0,202,151,72,72, - 89,89,89,29,152,202,173,15,173,29,105,235,240,196,129,112, - 129,190,85,133,133,129,96,231,231,15,15,108,113,137,15,115, - 72,152,152,206,193,198,142,205,240,191,245,191,112,28,96,89, - 196,245,245,245,0,15,15,173,15,15,203,0,133,80,133,187, - 151,115,108,125,114,133,0,103,113,244,152,58,115,115,0,152, - 72,152,152,152,190,137,240,58,245,206,190,112,253,142,240,202, - 240,245,245,152,190,133,11,16,16,226,226,226,20,226,20,251, - 20,226,20,251,251,75,234,114,234,234,233,108,6,35,108,108, - 234,187,234,114,114,69,134,232,114,114,114,94,226,20,226,226, - 228,73,228,228,228,228,228,228,228,73,228,228,228,228,73,228, - 73,73,241,128,188,241,184,73,241,73,241,73,73,73,73,189, - 189,189,189,241,189,189,189,189,189,189,189,189,189,189,189,189, - 189,241,189,189,189,189,241,189,189,189,189,241,189,189,73,241, - 189,241,189,189,189,189,189,189,189,189,189,189,189,39,138,189, - 189,189,73,189,189,189,189,138,39,189,189,189,39,217,200,248, - 229,49,231,59,128,89,37,245,152,235,115,242,199,242,152,170, - 235,84,193,174,146,26,128,26,174,130,235,15,47,141,235,197, - 202,28,191,178,193,214,95,178,188,0,0,142,84,85,115,89, - 152,89,49,193,151,151,205,28,244,231,29,29,89,115,142,142, - 96,129,129,135,142,115,236,128,84,28,15,133,187,96,15,203, - 29,117,0,58,63,205,193,142,151,133,244,151,108,103,216,133, - 151,151,29,29,29,29,198,202,15,15,15,245,187,178,187,178, - 133,245,245,112,15,115,152,206,129,190,202,96,142,202,115,152, - 72,152,152,245,108,113,58,49,0,0,0,202,202,244,190,115, - 202,115,245,152,137,205,93,225,16,16,225,16,226,226,16,226, - 237,201,232,234,108,234,234,234,234,234,33,108,108,6,6,6, - 6,108,35,108,108,108,108,154,154,154,6,234,226,226,20,226, - 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,73, - 228,228,241,70,188,241,241,184,104,73,73,73,73,189,189,189, - 189,189,189,73,189,189,189,189,73,189,189,73,189,189,189,189, - 189,73,189,189,189,189,73,189,241,73,73,241,189,241,189,189, - 189,189,189,189,73,73,189,73,189,189,189,189,189,189,189,189, - 189,39,39,138,39,73,189,189,149,73,189,189,223,183,22,248, - 157,236,212,146,146,49,202,49,236,172,89,176,131,176,26,151, - 170,198,105,178,27,117,85,235,117,117,235,142,242,141,141,29, - 15,135,129,130,130,198,27,27,188,142,151,96,112,115,152,152, - 89,58,188,188,188,229,27,44,70,212,174,198,26,0,253,245, - 253,202,115,240,245,63,231,112,28,15,178,79,29,133,115,28, - 151,151,202,142,130,193,84,29,152,115,72,85,96,152,84,178, - 29,193,198,187,198,198,21,28,173,15,152,0,113,178,125,178, - 29,15,202,245,0,15,245,0,0,135,133,29,129,202,112,152, - 0,245,152,202,244,244,63,115,152,15,137,190,244,220,191,202, - 58,216,129,129,108,29,11,225,226,226,16,226,94,201,114,234, - 108,108,234,114,234,234,234,234,234,234,154,6,108,108,108,108, - 108,108,108,6,108,108,154,108,108,108,108,108,226,226,226,226, - 228,228,228,228,228,66,228,66,228,228,228,228,228,228,228,228, - 73,228,241,170,21,241,184,241,104,73,241,73,73,73,73,73, - 73,73,189,73,189,189,73,189,189,189,189,73,73,189,73,189, - 189,73,73,73,73,189,189,73,189,189,189,73,73,189,189,189, - 73,189,189,189,189,189,189,138,189,189,189,73,189,189,189,189, - 73,73,189,73,138,138,189,189,138,149,138,73,189,177,200,248, - 200,49,37,117,141,235,238,193,49,72,235,105,21,229,105,96, - 193,105,144,78,176,47,89,238,26,46,236,72,245,216,152,112, - 28,72,220,235,144,86,86,176,54,245,245,115,245,115,151,151, - 193,96,84,105,242,44,202,152,253,49,146,170,178,198,89,240, - 202,129,129,202,236,151,113,188,178,15,79,105,113,198,152,115, - 197,29,178,142,188,141,141,198,198,49,72,198,187,172,240,178, - 108,206,193,29,29,29,80,85,152,152,115,152,187,72,58,190, - 135,133,86,133,245,72,63,152,245,154,133,154,29,137,129,152, - 0,202,0,112,240,244,49,115,152,137,137,137,202,191,245,15, - 28,115,137,133,108,205,164,16,94,187,187,234,234,108,234,234, - 234,234,234,234,234,33,234,234,114,234,108,6,108,6,6,6, - 6,108,108,6,6,234,6,6,6,6,108,6,226,226,20,226, - 228,228,228,66,66,66,66,66,66,66,66,66,228,228,228,228, - 228,228,241,117,229,241,228,73,104,228,104,104,104,104,73,73, - 189,189,73,189,73,73,189,73,73,73,73,189,189,73,73,73, - 73,73,189,73,73,73,73,189,73,73,73,189,189,73,73,73, - 138,239,73,189,189,73,138,73,189,189,189,189,104,189,138,138, - 189,189,73,189,189,138,104,73,189,73,189,189,39,199,177,22, - 157,128,231,13,46,174,177,78,174,193,84,63,115,72,72,85, - 151,197,130,144,47,47,105,152,89,0,245,216,216,152,245,202, - 245,115,202,202,29,105,188,47,86,115,28,15,202,28,115,28, - 28,85,96,196,202,115,202,202,202,202,245,72,26,105,188,193, - 84,151,133,178,86,86,21,205,202,202,79,187,193,151,190,202, - 202,151,29,244,137,80,151,206,170,142,15,115,152,245,115,198, - 29,244,58,84,235,63,46,26,152,115,152,245,152,245,245,245, - 245,113,113,198,133,96,216,245,0,29,80,133,133,133,115,0, - 115,15,245,245,202,58,72,115,115,115,196,112,244,205,28,151, - 108,89,129,220,133,240,114,234,234,234,114,114,234,234,114,234, - 234,114,234,114,234,33,234,234,234,234,80,6,108,108,108,108, - 108,6,108,108,108,6,108,108,108,108,6,108,20,226,226,226, - 228,66,66,66,66,66,66,66,66,66,66,228,66,228,228,228, - 228,228,241,170,198,241,228,228,104,104,104,73,104,104,104,104, - 73,189,73,73,73,73,189,73,73,189,73,73,73,73,73,73, - 73,73,73,73,73,73,239,138,189,73,73,73,138,189,73,73, - 73,73,73,73,73,73,189,104,104,104,138,189,104,73,73,104, - 104,189,104,73,73,189,189,73,239,73,73,73,189,156,174,236, - 235,238,236,46,117,172,37,46,96,89,183,183,117,231,242,128, - 63,216,128,37,13,70,212,32,238,253,231,13,13,231,37,13, - 238,115,63,84,85,206,58,58,63,142,135,58,96,135,58,58, - 63,202,112,142,112,58,135,190,85,112,142,72,96,240,142,89, - 238,202,202,89,245,115,89,115,202,115,115,115,72,196,253,202, - 89,202,196,58,142,89,142,240,202,115,89,202,202,202,202,115, - 202,202,142,196,142,240,58,202,202,253,202,115,244,244,240,28, - 15,202,244,244,58,202,115,115,245,202,115,244,244,196,115,202, - 245,15,115,115,142,202,202,202,15,245,115,115,115,115,15,115, - 253,152,152,115,15,108,113,29,40,40,58,9,9,40,9,9, - 9,33,80,6,234,114,114,234,234,234,6,154,6,108,108,6, - 234,6,108,6,108,6,154,108,108,108,6,108,69,103,139,20, - 228,66,66,66,66,77,66,77,66,77,66,66,66,66,66,66, - 66,66,184,26,105,241,228,228,228,228,228,228,104,104,104,104, - 104,104,73,73,73,104,104,73,73,104,104,104,73,73,104,73, - 73,104,73,73,73,73,73,73,73,73,73,104,73,73,73,73, - 73,73,73,104,73,73,104,189,189,189,104,73,149,73,104,189, - 189,104,189,138,104,73,239,73,73,104,104,73,73,138,47,242, - 235,89,141,92,92,92,92,124,217,216,183,124,200,124,200,59, - 26,63,128,182,32,32,32,120,37,152,92,59,59,59,200,59, - 26,89,193,141,141,193,141,193,26,89,197,193,141,197,197,193, - 26,96,193,151,197,197,151,172,26,142,235,49,63,37,63,84, - 26,89,217,127,72,72,49,115,26,216,235,172,58,84,206,58, - 26,152,133,84,206,172,84,84,84,202,44,84,206,58,206,206, - 235,96,44,58,190,135,190,58,235,196,84,190,58,190,58,135, - 142,135,72,58,115,58,244,196,115,89,58,58,58,244,58,58, - 152,142,244,244,244,58,115,142,152,196,244,244,58,244,196,115, - 245,245,135,135,80,233,33,233,233,35,35,35,108,35,35,35, - 35,233,35,35,233,9,33,233,154,108,233,108,108,6,6,108, - 6,108,154,108,108,108,234,154,6,154,108,154,154,129,112,115, - 77,66,77,66,77,77,77,77,77,77,66,77,66,77,66,66, - 66,66,184,193,198,184,228,228,104,228,228,228,228,228,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, - 104,104,104,104,104,104,104,104,73,104,104,73,104,104,73,73, - 239,239,104,104,104,104,104,104,104,104,104,104,239,73,239,104, - 104,104,104,104,104,73,239,104,104,138,104,104,104,73,176,229, - 84,115,231,212,124,124,92,124,183,216,52,59,92,59,124,59, - 46,152,124,32,32,71,32,120,26,89,59,32,32,182,182,59, - 193,115,174,105,170,174,170,141,235,253,197,193,193,170,193,141, - 26,84,193,29,193,29,29,141,174,142,133,235,84,235,46,46, - 26,253,236,152,63,49,172,49,242,115,26,151,105,105,193,172, - 26,142,242,44,44,151,172,197,26,142,197,172,172,172,206,84, - 133,96,44,206,84,84,206,58,235,58,84,206,84,172,58,96, - 238,85,58,49,63,58,49,135,96,112,58,58,172,172,244,44, - 216,135,58,58,58,58,58,135,152,96,58,58,58,58,58,142, - 245,202,133,129,33,233,35,35,35,6,233,35,35,35,35,233, - 35,233,35,233,233,233,35,233,33,33,9,154,108,108,154,108, - 154,108,6,6,6,154,154,234,108,108,108,154,154,220,216,245, - 77,66,77,77,66,77,77,66,77,77,77,77,77,121,66,194, - 194,66,184,46,170,184,66,121,121,104,228,104,228,228,228,104, - 104,104,104,104,104,104,104,228,104,104,104,228,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,73,104,73,104,104,104, - 104,104,104,73,104,104,104,104,104,104,239,73,104,104,104,104, - 138,104,104,104,104,104,104,138,104,104,104,104,239,239,131,157, - 242,115,170,128,170,146,170,92,26,253,146,92,146,92,92,59, - 26,152,124,59,182,59,59,71,46,89,59,32,32,182,182,59, - 46,115,128,52,52,212,174,174,46,89,174,170,170,170,170,170, - 117,58,170,29,29,170,29,29,174,142,141,117,231,141,235,141, - 235,142,46,70,13,141,46,236,242,89,141,193,105,105,242,197, - 235,142,242,141,172,172,193,172,242,202,193,172,44,172,44,197, - 235,196,193,84,172,172,44,63,133,96,197,206,172,84,84,58, - 72,96,58,172,49,172,58,84,142,63,58,135,80,197,244,84, - 115,96,58,58,58,58,58,135,245,135,244,58,58,58,244,142, - 245,190,29,29,6,233,233,35,35,35,35,35,233,35,35,233, - 233,233,233,233,233,233,35,233,233,233,33,33,154,6,108,108, - 6,108,108,108,108,108,108,6,6,6,220,220,191,245,0,115, - 77,66,77,77,246,77,77,77,246,77,77,121,77,77,77,77, - 121,77,184,26,130,184,66,66,121,121,121,121,156,121,228,156, - 156,228,228,104,228,228,104,228,228,104,121,95,214,214,95,51, - 51,121,104,104,104,104,104,104,73,104,104,104,73,104,104,104, - 104,73,104,104,104,73,104,239,104,104,104,104,239,104,104,104, - 104,104,138,104,104,104,104,104,104,104,104,104,104,104,158,157, - 174,142,141,146,146,212,170,212,170,253,231,212,146,13,13,92, - 141,152,92,212,124,59,59,71,141,142,124,59,59,59,128,124, - 141,115,128,105,105,105,170,170,193,142,174,170,170,170,29,170, - 117,112,170,29,29,193,29,193,174,142,46,172,46,231,231,117, - 235,142,46,58,46,46,37,37,174,202,141,193,128,170,29,141, - 133,142,193,193,141,141,197,44,242,142,193,172,197,172,197,197, - 26,58,141,206,84,206,172,84,133,253,172,206,172,172,206,206, - 96,235,58,58,172,49,58,84,238,85,58,172,197,29,58,84, - 253,112,58,58,58,58,72,135,0,135,244,58,203,58,115,58, - 245,129,205,29,6,35,35,6,6,233,35,35,233,35,233,233, - 233,35,233,9,233,233,233,233,35,233,9,233,233,33,80,108, - 108,6,108,6,6,6,108,154,154,154,244,33,28,245,245,202, - 77,77,77,77,77,77,246,77,77,77,246,77,77,246,121,121, - 77,194,107,235,133,184,121,121,121,66,66,66,66,156,66,156, - 228,156,104,156,104,156,104,156,104,47,242,29,21,21,27,85, - 85,130,51,30,104,156,156,214,199,79,159,104,156,104,104,104, - 104,104,239,104,104,239,104,104,73,104,104,104,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,239,214,183, - 242,72,170,124,52,212,212,212,117,196,231,128,128,212,128,92, - 26,196,146,92,92,124,59,59,235,72,212,124,92,92,128,92, - 26,115,170,170,170,170,170,117,26,196,231,170,231,242,170,117, - 193,84,174,170,174,105,174,174,242,96,26,46,26,141,197,197, - 26,253,183,117,26,117,26,235,242,152,193,193,170,242,141,193, - 26,142,170,193,26,44,26,197,26,253,141,46,172,197,172,63, - 133,96,235,84,96,49,238,89,89,142,96,84,84,84,84,96, - 96,135,49,58,63,63,58,84,112,84,115,244,142,172,142,84, - 245,235,115,196,58,244,244,84,245,135,115,58,58,244,196,196, - 0,154,29,205,108,6,6,6,233,6,6,233,233,233,233,233, - 233,233,35,9,9,9,233,9,233,233,233,33,33,233,233,33, - 33,154,108,108,108,6,108,154,108,154,154,154,245,245,0,240, - 43,77,246,43,77,246,43,246,246,246,246,246,77,246,77,77, - 77,77,107,26,29,184,77,121,77,121,121,121,121,121,121,121, - 156,156,156,156,228,156,228,156,121,85,216,0,152,253,245,0, - 0,0,242,214,214,54,79,85,213,85,27,54,95,54,27,54, - 156,104,104,104,156,104,104,156,104,156,104,156,104,104,104,104, - 104,156,104,104,104,104,104,104,104,104,156,104,156,228,176,183, - 229,142,141,124,92,92,92,92,174,115,231,92,92,212,212,92, - 26,96,231,146,146,212,200,32,63,89,212,92,52,128,128,124, - 197,115,117,174,146,105,170,170,26,142,242,141,170,141,170,170, - 26,96,193,172,172,141,197,193,117,142,117,172,117,231,124,52, - 26,202,217,197,141,141,197,26,174,115,193,198,170,130,141,193, - 26,115,170,29,193,72,44,26,235,253,242,44,235,235,197,172, - 235,216,216,115,216,152,253,238,235,238,206,206,172,206,190,84, - 238,96,84,58,58,206,206,84,96,44,135,203,58,196,58,84, - 115,135,58,244,244,58,196,96,245,44,115,244,244,58,196,142, - 152,133,198,29,154,6,6,35,35,233,233,35,233,35,233,233, - 233,233,233,233,233,9,233,233,9,233,233,233,233,33,233,33, - 33,33,33,233,108,108,154,154,190,245,190,240,152,202,0,112, - 43,77,246,246,43,77,246,43,246,246,246,246,246,246,246,51, - 106,77,107,235,151,30,121,106,121,77,106,121,121,121,121,121, - 156,121,66,121,156,51,95,51,208,253,0,0,0,0,0,0, - 0,0,253,85,202,238,238,253,245,0,202,238,238,0,152,89, - 54,51,156,104,104,156,156,156,156,156,156,104,156,156,156,104, - 156,104,156,156,104,156,156,156,156,156,104,156,156,104,214,183, - 144,49,231,92,124,212,212,124,117,84,141,212,212,128,212,124, - 46,238,231,146,212,212,59,59,26,202,174,128,92,92,128,124, - 26,196,146,105,128,212,105,146,117,142,193,170,170,170,170,170, - 26,135,170,193,29,170,170,193,242,238,141,63,141,13,26,46, - 117,89,217,193,170,170,193,193,117,89,29,170,29,170,141,193, - 235,89,235,115,115,253,89,89,238,202,193,172,172,172,151,172, - 216,216,152,0,0,96,89,115,202,142,44,206,40,206,135,253, - 245,253,72,58,58,190,58,84,72,112,58,206,58,58,240,84, - 202,96,203,190,58,244,58,84,115,206,58,58,58,115,58,244, - 245,108,29,29,154,6,6,6,6,154,35,233,35,233,35,233, - 233,233,233,35,9,233,233,233,9,233,233,233,9,233,33,33, - 33,33,33,33,6,108,6,154,40,15,245,245,245,245,152,115, - 43,77,246,43,43,43,43,246,43,43,246,246,246,43,246,246, - 106,77,194,63,151,219,77,106,121,121,121,106,181,121,121,121, - 121,51,41,41,41,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,245,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,41,51,156,51,30,156,156,121,156, - 121,156,156,156,156,156,156,156,156,156,156,156,156,156,131,157, - 144,72,84,151,151,129,44,151,63,63,85,129,84,85,44,133, - 96,96,193,193,117,27,117,26,96,72,26,133,133,80,133,85, - 96,112,44,44,151,135,133,85,63,89,44,85,235,44,133,235, - 238,142,44,44,151,96,44,235,96,96,235,235,85,96,44,85, - 96,96,193,133,193,96,135,112,72,115,96,135,96,135,135,63, - 238,253,89,89,216,245,245,0,152,245,202,142,96,142,96,216, - 0,0,0,0,238,26,236,152,152,115,202,202,142,89,152,216, - 216,245,89,152,115,202,142,202,142,202,115,253,245,152,115,115, - 142,142,115,245,115,253,115,216,202,202,15,115,152,245,152,115, - 202,103,198,103,154,6,6,154,233,35,6,233,233,233,233,233, - 233,233,233,233,9,9,9,233,233,9,233,233,233,233,233,233, - 9,233,33,33,33,154,108,154,28,245,115,245,245,202,245,245, - 43,43,246,246,43,43,43,43,43,246,43,43,246,51,77,50, - 118,73,121,26,96,194,246,171,106,246,106,121,106,121,121,181, - 208,54,41,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,47,54,129,54,156,156,156,156, - 156,156,156,121,121,156,156,156,156,121,156,156,156,156,214,176, - 144,72,130,217,199,242,217,199,26,96,205,144,199,130,21,199, - 26,216,183,21,217,47,199,79,235,142,21,188,27,130,27,21, - 96,142,130,21,27,193,27,27,96,142,130,130,130,205,27,27, - 142,85,79,86,54,130,130,27,96,96,130,130,27,205,27,21, - 85,213,54,54,140,133,103,27,85,253,27,27,21,205,27,187, - 202,152,85,216,152,216,238,152,245,0,112,133,205,205,125,133, - 152,152,152,238,236,236,26,216,216,216,205,130,85,216,245,245, - 0,0,216,216,0,85,103,29,202,89,205,154,133,133,205,205, - 202,202,133,205,85,129,133,129,202,202,133,137,135,129,137,112, - 152,29,29,29,108,154,35,233,233,220,6,35,233,233,233,233, - 233,35,233,233,233,233,233,233,233,233,173,233,233,9,233,33, - 233,33,33,33,33,33,9,203,152,115,245,245,115,202,245,152, - 0,115,58,234,86,246,43,246,43,43,246,43,43,246,156,163, - 148,95,54,44,242,241,106,106,246,121,171,121,106,171,121,208, - 54,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,135,115,245,108,156,51,121,30, - 208,54,121,156,156,156,121,121,156,121,121,121,121,121,214,183, - 217,72,193,217,199,130,199,27,26,63,193,27,27,117,27,183, - 157,85,130,27,27,65,27,27,85,89,130,27,130,65,27,27, - 238,96,29,130,27,133,130,130,238,142,130,130,130,26,130,130, - 238,235,79,21,79,65,130,130,96,85,130,205,130,133,130,130, - 96,238,208,214,54,65,103,130,85,202,130,130,130,205,130,205, - 85,152,238,96,236,89,44,213,253,152,85,205,205,133,26,205, - 216,152,96,238,216,238,85,216,0,216,216,216,216,216,216,216, - 0,0,0,0,0,0,213,85,202,216,213,112,85,137,133,133, - 202,112,133,137,129,129,129,85,196,244,133,129,85,129,129,240, - 115,29,198,29,108,35,103,35,6,233,154,6,6,35,233,9, - 233,233,35,35,233,173,233,173,233,233,9,233,233,233,233,9, - 233,233,233,33,33,33,9,9,9,115,115,216,245,115,245,245, - 0,115,58,58,6,234,43,246,43,246,43,43,51,246,66,241, - 116,43,38,235,85,73,121,106,121,106,121,121,121,121,208,105, - 253,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,245,240,125,130,239,54, - 133,202,140,156,121,121,156,121,121,121,156,121,156,156,131,157, - 157,235,205,199,199,193,199,27,26,26,26,27,199,65,27,217, - 26,213,199,27,217,205,199,127,96,238,21,217,27,26,27,130, - 72,236,242,130,27,133,27,130,72,238,130,130,130,133,130,130, - 112,85,21,21,86,133,130,130,85,235,205,130,27,65,205,130, - 235,238,221,162,79,205,130,130,135,216,103,130,130,65,130,130, - 96,253,85,235,96,216,85,133,96,216,205,130,27,112,85,85, - 216,216,238,96,152,238,26,89,216,216,216,202,253,253,216,89, - 216,0,245,0,152,115,152,0,216,216,96,202,253,129,129,129, - 142,202,133,205,85,129,133,190,202,202,129,137,96,129,151,112, - 202,103,198,130,108,35,154,6,6,6,233,220,233,35,35,35, - 233,233,9,35,233,233,9,233,33,233,233,233,173,233,233,233, - 233,9,33,233,33,33,233,233,220,191,28,245,253,245,245,115, - 58,115,115,15,58,234,43,43,43,246,43,77,246,77,66,66, - 83,29,243,240,142,184,66,121,66,246,246,69,206,187,86,202, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,202,0,133,208,129, - 15,0,129,54,156,121,156,156,156,104,121,121,121,121,214,157, - 177,96,133,27,199,130,27,70,26,26,193,27,199,130,199,199, - 26,96,130,27,199,65,21,150,235,72,54,158,27,133,27,199, - 96,85,130,130,199,85,27,130,96,96,130,130,130,26,130,130, - 85,85,79,79,79,65,130,130,85,235,130,205,130,130,130,205, - 235,63,54,54,79,65,103,205,85,238,130,130,130,205,130,205, - 85,142,205,238,152,115,202,96,202,253,205,205,85,216,216,0, - 0,89,152,0,0,245,112,0,0,0,216,253,85,133,253,0, - 0,0,112,112,238,202,85,202,253,253,216,0,216,216,96,133, - 202,202,129,133,240,85,129,85,202,112,133,129,112,133,129,96, - 142,29,130,130,108,6,154,233,220,220,6,220,233,154,154,35, - 154,6,233,233,233,6,9,9,233,33,233,233,33,233,9,233, - 233,233,233,9,233,233,9,9,233,9,9,203,253,245,245,152, - 58,244,115,115,115,58,170,91,43,246,43,43,246,246,77,107, - 22,235,27,235,72,107,106,86,29,205,152,152,142,83,127,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,0,245,245,245,115,0, - 0,245,245,202,125,86,140,86,86,130,121,121,121,121,176,144, - 217,89,72,26,26,236,235,235,238,96,238,235,133,253,85,26, - 238,89,213,85,26,236,235,133,238,85,85,85,26,85,85,85, - 238,96,213,85,133,85,235,85,89,89,85,133,133,85,133,133, - 202,213,130,103,130,135,133,133,96,238,133,85,133,85,133,133, - 238,142,221,21,79,133,193,205,96,202,65,205,133,85,205,205, - 96,89,96,253,216,0,0,253,216,216,26,238,238,89,216,0, - 152,216,0,0,0,0,0,0,0,216,152,85,135,44,96,152, - 0,0,135,133,133,112,142,216,0,0,0,216,216,216,213,152, - 202,202,85,112,96,240,112,202,202,245,112,85,202,96,240,202, - 202,205,29,29,154,154,35,154,6,220,233,220,220,6,33,233, - 233,220,220,220,154,6,220,154,33,220,220,233,233,233,233,233, - 9,233,233,233,9,233,233,233,33,233,9,9,28,115,245,202, - 190,244,244,9,233,33,234,80,43,43,95,246,43,246,51,104, - 199,70,26,235,89,131,118,193,0,0,0,0,216,63,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,245,245,245,245,245,245,0, - 245,245,0,0,0,202,245,33,28,142,142,86,156,121,159,158, - 248,216,70,92,212,212,212,124,146,238,146,212,124,124,92,59, - 52,216,124,59,59,92,59,59,70,216,32,59,59,59,92,59, - 174,253,128,174,212,70,174,70,242,238,231,13,231,231,231,146, - 26,238,231,212,59,32,212,13,174,238,70,174,231,70,70,70, - 242,72,242,70,70,70,231,212,117,196,231,128,217,200,157,183, - 236,216,117,236,216,0,0,152,152,216,49,72,238,49,216,89, - 216,0,0,0,0,0,0,0,0,0,89,238,63,63,0,245, - 96,96,65,89,152,0,0,0,0,245,216,213,65,216,216,216, - 253,213,65,65,215,65,65,65,202,115,115,216,245,115,152,115, - 115,205,29,29,9,220,6,220,6,220,220,220,220,6,154,154, - 220,9,9,191,154,220,191,220,220,220,220,33,33,9,233,9, - 233,233,9,233,233,233,233,9,233,233,233,9,9,129,245,115, - 244,58,58,40,234,114,210,86,43,91,43,246,43,43,14,183, - 85,65,117,44,216,70,52,26,0,0,0,0,0,216,245,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,245,245,245,0,245,245, - 245,245,0,0,0,0,0,202,115,245,129,129,54,181,131,159, - 183,89,13,92,146,231,212,146,217,89,70,212,92,247,92,124, - 52,216,92,212,92,247,92,212,52,152,71,59,59,59,124,124, - 217,238,128,174,174,170,170,231,199,142,13,46,13,46,13,13, - 27,85,231,46,13,13,13,13,199,58,70,128,146,117,128,128, - 199,238,22,32,92,117,128,146,199,96,217,183,177,183,183,158, - 235,89,238,216,0,0,0,152,238,152,247,247,89,216,0,216, - 152,152,0,0,0,0,152,235,216,152,236,49,238,89,152,152, - 152,133,236,63,236,152,152,216,142,238,4,122,97,238,89,65, - 253,133,65,122,97,4,215,221,115,235,115,245,152,72,115,84, - 152,187,125,27,6,220,220,220,220,35,233,233,220,220,6,233, - 33,33,6,33,6,233,33,220,33,33,33,233,233,233,233,233, - 233,233,233,233,9,233,233,233,9,233,233,233,33,9,202,202, - 244,115,28,203,108,234,43,91,91,91,95,93,87,43,47,199, - 70,199,70,85,89,70,216,46,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0, - 245,245,0,0,0,0,0,245,245,28,253,129,208,30,176,248, - 183,253,52,200,146,231,231,146,52,253,231,92,92,212,212,212, - 199,89,128,52,92,92,92,146,199,89,71,32,92,92,212,212, - 199,96,146,174,146,170,231,141,217,85,117,231,231,231,46,231, - 128,85,247,13,236,37,49,13,174,96,174,117,231,46,231,13, - 174,96,70,52,52,46,13,49,174,96,117,70,117,70,52,70, - 238,89,238,216,0,0,216,236,216,216,247,32,152,216,0,89, - 238,0,0,0,0,0,0,236,242,216,152,152,0,152,0,0, - 0,0,0,152,216,0,152,96,85,133,215,122,97,238,65,221, - 142,85,215,122,1,2,221,193,202,133,152,142,115,89,72,96, - 152,130,178,130,133,129,112,129,112,112,112,112,112,112,85,96, - 112,142,85,96,96,85,96,238,96,96,238,240,112,112,112,112, - 196,112,240,85,112,112,112,85,240,96,96,112,96,112,85,135, - 202,115,115,115,58,80,69,91,91,91,93,140,87,51,158,65, - 217,70,70,235,216,236,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245, - 0,0,0,0,0,0,0,0,0,0,0,0,133,140,47,158, - 183,213,13,59,212,146,212,146,128,72,200,167,212,212,212,124, - 212,72,128,212,212,212,212,92,128,202,92,247,124,146,231,13, - 52,112,231,37,231,37,37,37,229,238,13,37,13,146,231,37, - 217,96,117,8,99,74,99,231,174,44,231,46,231,46,117,70, - 199,238,200,231,70,70,117,231,26,89,216,238,117,199,174,70, - 236,89,72,72,236,236,49,152,152,152,63,13,37,49,49,236, - 89,152,0,0,0,0,0,0,213,152,152,0,0,0,0,0, - 0,0,0,152,0,72,89,152,0,44,216,65,215,72,49,26, - 58,133,115,196,238,253,253,26,245,235,152,89,152,152,115,44, - 245,198,103,187,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 245,0,0,245,244,58,58,58,80,234,69,201,54,199,236,199, - 238,213,216,85,253,0,0,0,238,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,245,0,0,0,0,0,0,0,245,245,85,177,248, - 183,238,117,124,124,124,124,92,52,89,52,32,59,124,92,146, - 70,72,128,212,231,146,146,146,212,238,70,212,146,13,13,37, - 128,112,231,37,13,37,49,37,174,235,13,236,37,68,59,49, - 199,96,92,146,49,13,8,236,174,85,117,236,46,46,117,70, - 70,85,183,183,236,49,37,49,37,89,146,49,89,231,117,46, - 216,213,216,0,0,216,152,0,0,0,0,0,216,72,49,152, - 0,0,0,0,0,0,0,0,0,0,37,152,0,0,0,0, - 0,0,0,0,0,216,89,152,216,142,245,152,115,49,72,26, - 142,133,152,115,49,253,115,197,253,26,89,49,115,152,72,84, - 245,198,198,130,188,54,176,54,214,131,214,214,214,176,214,158, - 214,131,176,176,159,159,159,159,159,176,78,176,214,214,131,214, - 214,176,214,131,176,95,78,214,159,159,248,17,159,17,17,17, - 0,0,0,0,0,245,115,115,203,115,203,217,183,236,236,236, - 216,216,26,44,253,0,0,0,0,0,0,0,0,245,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,245,0,0,0,0,0,0,0,216,0,47,158, - 157,89,13,146,212,212,146,92,128,89,52,59,212,212,247,92, - 128,72,231,146,212,212,212,49,128,72,128,13,212,37,13,37, - 229,96,231,37,37,37,37,37,174,85,13,49,37,13,212,13, - 128,49,59,55,74,71,247,49,117,85,117,199,217,70,243,111, - 70,89,153,81,236,238,49,8,37,152,166,8,42,41,41,67, - 117,152,0,0,0,0,216,72,0,0,0,0,152,13,49,152, - 0,0,0,0,0,0,0,0,0,0,0,0,0,152,0,0, - 0,0,0,0,0,0,216,63,238,26,152,245,152,115,115,117, - 253,235,49,63,49,152,72,235,245,44,89,115,72,72,152,44, - 245,198,113,198,130,170,130,242,235,26,46,174,105,105,105,27, - 199,117,229,217,144,52,217,177,177,242,130,130,63,46,235,174, - 105,105,174,229,144,117,199,52,199,144,177,217,177,177,78,183, - 0,0,0,0,0,0,0,0,115,115,15,152,152,89,216,213, - 152,0,152,152,253,0,0,0,152,0,0,115,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,159, - 183,238,117,212,146,146,212,146,128,72,124,124,212,146,146,146, - 70,49,231,13,146,13,146,37,128,142,146,146,13,37,37,37, - 128,253,231,37,37,49,37,49,174,96,13,49,37,49,231,13, - 199,84,92,120,68,120,179,13,174,85,183,67,41,67,41,148, - 158,236,160,88,8,8,152,8,231,72,146,49,183,183,70,199, - 85,0,0,26,216,89,89,70,152,0,0,0,0,152,152,0, - 0,0,0,0,0,0,0,0,0,0,89,152,152,0,0,0, - 0,253,0,0,0,0,0,235,235,253,0,0,0,0,245,96, - 253,133,49,63,49,152,115,197,115,172,89,49,49,115,49,172, - 253,198,198,198,202,152,135,0,0,0,0,0,216,84,245,245, - 245,245,152,245,151,0,0,245,245,115,112,0,245,0,245,0, - 216,135,0,0,0,245,245,15,44,0,0,0,0,0,152,242, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,152,0,245,0,0,0,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,245,0,245,217,158, - 157,72,46,212,92,92,92,92,128,89,52,146,13,124,146,146, - 231,112,32,59,146,212,212,13,174,96,70,13,146,236,37,37, - 174,96,141,37,37,37,13,37,117,96,117,37,37,13,231,37, - 174,151,92,59,247,8,37,49,117,85,183,199,70,72,153,218, - 199,236,110,111,49,37,238,72,70,72,152,152,238,0,216,213, - 216,0,152,89,216,216,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,89,0,152,65,0,0,0,0,0, - 0,0,152,152,152,89,152,0,245,89,0,0,0,0,0,152, - 0,96,37,37,89,152,72,235,115,96,89,72,115,72,115,96, - 245,198,178,198,253,96,129,0,0,0,0,0,202,151,0,245, - 245,0,245,235,133,245,245,0,0,85,190,0,0,245,0,0, - 202,151,0,0,245,0,245,46,151,0,245,245,245,0,112,242, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,0,245,0,245,144,248, - 157,72,236,146,231,146,92,212,70,72,13,212,146,146,231,92, - 26,96,128,212,146,212,212,212,70,142,70,212,146,231,146,231, - 70,72,117,212,71,13,231,146,117,72,117,13,92,146,231,146, - 117,84,231,13,26,13,117,231,117,85,117,117,199,117,70,199, - 117,238,128,128,70,70,231,46,216,0,0,0,0,152,0,0, - 0,0,152,152,152,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,216,0,152,0,0,245,0,0,0, - 0,0,0,152,152,89,152,0,0,0,0,0,0,0,0,152, - 0,245,152,115,89,115,89,96,115,72,115,72,89,89,253,96, - 202,198,198,142,235,135,240,0,245,245,245,0,85,151,245,245, - 0,245,245,46,133,245,245,245,245,129,135,245,245,245,245,0, - 85,129,245,0,245,245,245,26,133,245,245,245,245,115,26,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,245,0,0,0,144,248, - 183,96,236,212,212,92,92,146,174,238,26,59,212,212,212,59, - 117,72,231,212,212,146,146,146,174,142,231,146,13,49,37,37, - 174,72,243,209,74,49,37,117,117,213,13,236,231,46,46,37, - 117,84,63,89,72,238,72,89,117,238,26,49,72,238,236,236, - 26,238,117,236,49,49,89,89,89,152,89,0,0,0,152,216, - 152,152,0,152,152,0,152,0,0,0,0,0,0,0,0,0, - 0,0,0,0,152,72,152,0,0,0,0,0,0,0,0,0, - 0,0,0,152,152,216,49,152,0,0,0,0,0,0,0,85, - 115,245,245,152,152,152,152,63,202,96,152,115,89,115,89,142, - 115,113,198,202,235,129,129,245,245,245,0,0,44,151,245,245, - 245,0,15,193,133,0,245,245,0,135,129,0,0,245,0,0, - 84,151,245,245,245,245,15,193,193,0,245,245,245,253,26,130, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,229,22, - 157,89,72,146,231,231,212,231,231,72,49,146,231,231,13,146, - 46,89,128,32,231,146,128,231,46,72,46,231,117,13,13,13, - 117,72,52,186,243,141,13,46,46,253,46,37,13,117,46,46, - 46,238,235,236,49,236,236,236,26,72,26,238,236,49,236,238, - 236,216,236,236,46,46,236,46,46,216,152,0,216,216,152,72, - 238,72,216,216,72,152,152,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,152,0,152,152,0,0,0,0,0,0,0,0,0,0,235, - 202,253,0,152,152,72,89,72,115,96,152,152,89,89,115,142, - 115,198,105,202,44,135,135,0,0,245,245,245,44,129,245,245, - 245,245,253,242,133,245,245,245,245,190,190,0,0,245,245,245, - 44,151,245,245,245,245,115,242,133,245,245,245,15,202,117,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,89, - 152,216,0,216,0,152,216,89,0,0,216,216,216,72,216,0, - 0,216,152,89,152,89,89,89,216,0,216,152,89,216,216,216, - 253,245,72,115,238,89,253,216,0,0,245,152,216,152,89,0, - 0,152,152,115,89,89,152,245,152,216,238,216,0,216,0,152, - 0,216,152,0,0,0,0,216,216,0,152,152,216,152,0,236, - 89,89,89,72,152,152,152,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,245, - 0,0,245,0,0,0,0,245,245,245,0,152,152,245,0,0, - 245,202,112,245,133,129,129,245,0,0,245,0,85,151,245,245, - 245,245,245,242,133,245,245,245,245,85,129,245,0,0,245,0, - 44,151,245,245,245,245,245,242,133,245,245,245,0,202,26,130, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,52, - 128,231,231,231,174,146,174,146,174,128,128,52,52,52,52,52, - 52,52,177,177,177,124,177,177,200,200,157,124,177,177,157,177, - 52,52,124,177,177,200,177,157,200,157,157,200,183,177,52,177, - 200,177,200,157,157,157,200,177,128,26,235,117,26,238,89,70, - 117,70,52,52,52,199,52,52,128,46,216,0,152,0,0,0, - 152,152,0,152,89,89,152,0,0,0,0,0,0,0,0,89, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96, - 0,152,152,72,245,216,0,0,63,0,0,0,0,152,152,141, - 117,117,26,46,46,46,235,46,235,46,63,63,49,49,89,72, - 72,49,72,0,44,135,240,245,0,0,245,245,44,151,245,15, - 245,245,15,242,80,245,245,245,15,240,190,0,0,0,245,0, - 85,137,245,245,245,245,245,242,137,245,245,245,245,202,26,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,186, - 131,248,131,248,22,22,157,183,157,157,157,157,157,176,157,22, - 157,248,22,22,22,78,78,78,176,176,22,22,22,157,22,22, - 131,22,131,183,22,22,22,22,22,22,248,22,248,248,248,176, - 22,176,183,22,22,22,22,157,70,117,217,144,117,72,26,26, - 105,144,144,78,176,157,183,176,174,85,238,72,152,0,152,0, - 0,152,0,0,152,216,238,63,0,0,0,0,0,0,0,0, - 0,0,142,142,0,0,0,0,0,0,0,0,0,0,84,72, - 152,0,0,44,242,144,105,105,229,0,0,0,0,0,216,133, - 105,47,177,177,144,144,229,144,229,144,144,144,229,105,229,229, - 229,188,144,245,133,129,129,0,0,0,245,0,44,129,245,245, - 245,245,245,117,133,245,245,245,0,129,129,245,0,0,245,245, - 44,129,15,245,245,245,15,117,80,245,245,245,245,202,117,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,238,17, - 54,176,176,248,176,248,176,131,176,157,131,131,157,176,78,78, - 78,78,78,177,144,144,229,144,144,229,105,130,229,229,78,78, - 176,176,157,78,229,144,78,177,78,78,78,177,177,177,177,144, - 52,78,78,177,78,176,176,47,217,177,78,229,26,216,152,216, - 96,238,235,128,144,177,177,174,26,236,216,0,89,89,152,0, - 0,0,89,216,96,89,216,0,0,0,0,0,0,0,0,0, - 115,238,216,0,0,0,0,0,0,0,0,0,0,152,0,245, - 253,193,27,176,157,176,22,229,253,0,0,245,0,216,216,235, - 63,105,47,176,131,131,131,131,176,176,131,95,95,176,95,95, - 95,95,176,245,133,85,190,0,0,0,0,0,96,190,245,245, - 245,245,245,242,137,245,245,245,245,85,190,0,0,0,0,0, - 96,190,245,245,245,245,245,242,151,245,245,245,245,202,26,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,152,0,0, - 72,174,253,0,0,170,89,0,235,235,0,245,235,152,245,0, - 96,235,142,0,152,72,72,89,49,238,63,37,235,63,236,72, - 46,29,112,245,72,152,245,0,0,0,0,245,245,0,26,245, - 229,44,245,0,70,238,199,183,253,0,0,0,0,0,0,0, - 152,115,245,245,245,202,245,0,152,152,0,0,0,0,0,0, - 152,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,0,152,115,245,115,152,0,0,0,0,216,0,0,0,236, - 216,0,202,89,115,115,115,115,80,84,142,49,108,29,115,72, - 58,105,229,108,193,178,178,79,188,188,47,187,198,79,47,47, - 47,47,178,29,188,176,176,78,78,178,178,79,188,188,47,187, - 198,79,47,47,47,47,178,29,188,176,176,78,78,47,133,176, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 135,144,135,0,0,229,49,245,44,197,0,0,193,115,0,0, - 197,44,135,216,72,26,117,231,70,174,70,174,70,174,70,70, - 193,105,135,216,235,216,130,0,152,0,152,152,0,0,117,0, - 78,130,253,0,0,85,85,216,213,238,216,0,0,216,216,0, - 0,0,0,0,0,238,0,0,0,0,0,0,0,0,0,216, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,245,0,0,0,0,0,0,0,0,0,152,235,72,152,89, - 96,0,245,152,216,89,84,63,84,0,245,152,240,238,115,197, - 142,133,133,190,58,205,29,193,193,133,242,44,96,130,29,242, - 242,130,26,84,198,174,105,105,105,205,29,193,193,133,242,44, - 96,130,242,29,242,130,193,63,198,174,105,105,105,130,63,144, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 242,144,151,0,0,78,96,0,174,26,0,0,170,89,0,0, - 26,151,142,216,96,117,242,174,174,128,229,229,174,174,174,174, - 193,105,135,253,26,152,216,152,89,89,89,0,0,0,70,152, - 78,130,115,0,0,85,85,0,216,216,216,0,0,216,0,0, - 0,0,0,0,0,238,0,0,0,0,0,0,216,152,152,152, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,202,202,0,0,0,0,0,0,245,235,216,142,26,238,133, - 96,0,0,0,115,253,216,26,205,152,0,115,85,172,72,130, - 202,133,29,85,133,242,29,130,130,242,151,151,235,198,27,105, - 130,133,28,242,229,144,217,144,130,29,29,130,130,242,151,151, - 235,198,27,174,130,133,112,242,229,144,144,144,130,193,242,144, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,152,0,0,0,0,0, - 174,177,137,245,0,183,49,245,174,174,245,0,229,96,0,0, - 193,44,58,96,44,242,130,174,27,199,144,177,144,144,177,177, - 29,174,190,84,242,216,0,0,0,0,152,0,245,245,117,0, - 157,130,115,0,0,85,85,216,213,213,0,216,0,0,0,238, - 85,152,152,0,245,0,0,152,0,152,216,89,89,152,152,89, - 152,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,245,202,142,133,0,0,0,142,198,193,193,63,170, - 0,0,0,0,0,0,0,89,0,0,245,115,0,202,49,170, - 196,0,245,245,44,129,84,152,202,202,142,96,115,85,0,0, - 0,245,245,242,137,245,115,0,0,129,84,152,202,202,142,96, - 115,190,0,0,0,245,245,242,151,0,152,0,245,216,96,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,152,0,0,0,0,0,0,0, - 174,78,133,0,0,22,26,245,174,174,0,0,144,63,245,0, - 197,141,112,172,193,174,105,105,229,144,78,78,78,78,144,177, - 130,229,135,151,130,142,0,0,0,0,0,0,0,0,117,245, - 157,130,202,0,0,85,238,216,216,89,0,245,216,0,216,0, - 152,216,0,0,0,0,0,0,0,0,152,216,216,0,0,216, - 236,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,0,245,216,198,238,142,115,245,216,205,198,105,105,235,242, - 0,0,0,0,245,245,245,245,0,0,115,245,245,96,129,27, - 196,0,0,245,202,29,29,96,96,235,63,142,96,80,0,0, - 0,0,0,130,151,0,0,0,0,29,29,96,96,235,84,72, - 112,133,0,0,0,0,245,242,151,0,0,0,0,0,26,133, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 174,157,29,115,0,22,26,0,174,174,0,0,144,49,245,0, - 242,117,142,84,29,29,27,27,27,188,78,78,177,78,78,177, - 105,229,85,172,130,253,96,117,242,26,117,242,27,70,130,26, - 157,242,202,245,238,133,26,238,216,85,235,89,216,213,216,0, - 0,0,0,0,0,0,0,0,0,152,152,152,89,89,216,152, - 238,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216, - 253,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,245,80,151,133,0,240,0,29,44,188,21,198,193,96,115, - 0,0,0,245,133,29,29,245,0,0,115,245,129,96,197,27, - 58,0,0,245,15,133,29,0,0,0,0,0,0,133,245,0, - 0,28,245,117,130,245,245,245,202,29,133,245,0,0,0,0, - 245,133,245,0,0,28,245,242,130,245,245,245,202,96,26,133, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 242,176,178,245,0,22,117,0,170,128,0,0,177,235,15,0, - 174,174,44,206,133,105,105,27,144,47,54,78,47,47,47,78, - 199,229,135,151,130,96,216,238,85,85,85,85,85,85,117,238, - 22,29,142,216,0,85,117,236,85,70,235,85,89,89,0,0, - 46,0,0,0,0,0,0,0,89,89,216,152,216,89,72,72, - 152,0,0,0,0,0,0,0,0,0,0,0,0,216,238,216, - 0,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0, - 0,0,154,198,105,130,79,135,130,26,235,115,152,0,0,0, - 0,0,245,245,151,133,198,29,245,0,245,245,240,96,193,229, - 240,0,245,115,15,133,137,0,0,0,0,0,15,133,0,0, - 0,15,15,242,130,245,0,245,202,137,133,0,0,0,0,0, - 15,133,245,0,0,202,245,130,130,245,0,0,202,44,44,193, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,245,0,0,0,0,0,0,0,0,245, - 63,144,178,244,28,22,141,0,130,128,245,0,229,63,245,0, - 229,229,44,151,29,130,105,178,144,144,176,78,78,78,47,78, - 177,174,240,151,198,85,152,0,152,0,216,216,216,216,26,152, - 248,26,202,0,0,85,117,216,117,27,213,213,0,216,216,213, - 117,216,0,0,0,0,0,0,0,152,0,89,216,0,0,216, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,0, - 0,0,137,130,205,44,133,44,202,245,0,0,152,142,0,0, - 0,245,202,0,129,133,198,105,191,245,245,253,190,112,193,229, - 244,245,245,15,15,133,137,0,0,0,0,0,245,113,240,240, - 240,191,15,130,79,133,115,15,205,80,151,0,0,0,0,0, - 245,113,240,240,240,129,245,242,79,133,115,15,205,235,44,44, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 253,174,125,202,0,22,117,0,174,174,0,0,144,63,245,0, - 128,144,206,151,198,27,178,188,79,47,78,176,86,78,177,177, - 52,27,96,80,105,96,216,0,0,152,245,0,0,0,26,216, - 111,193,142,253,115,238,26,216,85,85,213,216,216,216,238,96, - 235,96,245,245,245,0,216,245,0,0,89,46,89,152,238,152, - 0,0,0,0,0,0,0,0,0,152,152,152,0,0,0,0, - 0,0,0,253,0,0,0,0,0,0,0,0,0,0,0,245, - 0,0,245,0,0,0,115,202,245,253,115,245,245,245,0,152, - 0,0,191,151,142,96,245,245,245,0,253,115,0,58,29,105, - 151,0,0,15,245,137,151,0,142,89,96,0,245,133,216,0, - 216,245,245,26,133,72,216,152,253,151,151,0,142,89,96,0, - 245,133,216,245,245,245,15,117,133,72,253,152,115,142,235,151, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 89,174,125,142,0,22,26,245,130,229,0,0,144,84,245,245, - 170,144,151,151,198,27,188,229,105,229,176,188,176,86,47,47, - 177,174,96,133,198,112,0,0,133,245,245,245,44,253,26,89, - 248,193,196,29,29,85,26,85,213,238,238,238,0,0,0,0, - 216,238,0,0,238,245,0,0,0,216,85,133,235,72,0,0, - 0,0,0,0,0,0,0,0,0,0,152,0,0,0,0,216, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,245,0,0,202,245,190,129,238,135,15,0,0,245,152, - 0,245,202,21,187,130,125,125,0,0,202,202,0,58,198,229, - 190,0,0,15,245,137,151,0,216,152,0,0,245,129,0,245, - 0,0,245,46,142,245,245,115,152,137,151,0,216,152,0,0, - 245,129,0,0,0,0,245,235,142,245,245,245,115,253,85,44, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,242,178,202,0,157,231,0,174,229,0,0,144,235,15,245, - 242,229,151,29,29,21,188,188,188,229,144,188,108,78,47,78, - 52,105,240,29,178,72,0,245,130,115,245,245,130,89,235,96, - 111,193,142,130,29,84,235,133,96,238,238,0,0,0,0,0, - 216,245,0,245,202,0,133,115,142,240,240,130,133,0,216,0, - 0,0,0,0,0,0,0,0,0,0,152,152,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245, - 0,245,191,245,0,245,245,0,115,245,245,253,0,0,245,245, - 196,245,28,113,198,79,21,178,0,0,115,142,0,0,198,170, - 135,0,115,245,245,151,129,0,0,0,0,0,245,151,245,0, - 245,0,245,0,245,0,0,0,0,151,129,0,0,0,0,0, - 245,151,0,245,245,0,245,0,245,0,0,0,0,0,0,245, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,170,178,202,0,183,193,245,174,174,0,0,229,63,245,0, - 174,177,151,29,198,178,188,188,86,86,176,131,86,178,78,176, - 157,144,96,113,21,196,245,0,245,245,245,245,245,245,235,152, - 111,130,244,29,29,84,235,152,152,216,216,0,0,0,0,0, - 0,0,0,0,0,245,47,79,96,96,112,105,238,152,0,152, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 135,202,245,0,0,0,0,0,0,0,0,0,0,0,245,245, - 245,191,154,21,178,178,178,178,15,0,15,142,0,245,178,105, - 190,0,196,245,245,115,115,245,245,0,0,245,245,202,15,245, - 245,245,245,0,0,0,0,0,0,115,115,245,245,0,0,245, - 245,202,245,245,245,245,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,174,105,196,142,157,117,245,130,128,152,142,235,96,245,115, - 229,177,197,29,198,178,188,188,47,86,54,188,176,176,176,176, - 177,144,172,113,178,202,245,202,245,0,0,115,245,152,235,112, - 243,242,84,130,154,112,235,0,85,216,0,0,0,0,0,0, - 0,0,0,0,0,0,213,213,0,0,0,216,152,152,0,0, - 0,0,0,0,0,0,0,0,152,0,0,0,0,0,0,0, - 0,26,0,0,152,0,0,0,0,0,0,0,0,0,0,0, - 142,245,15,245,0,0,0,0,0,0,0,0,0,0,0,235, - 142,115,29,178,187,178,69,188,245,0,202,196,245,245,105,27, - 151,15,244,115,244,190,240,28,244,244,203,244,58,190,244,191, - 244,244,244,244,244,244,196,28,115,190,240,28,244,244,203,244, - 58,40,244,191,244,244,58,244,244,244,196,28,115,115,115,196, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 142,229,125,135,172,157,46,245,44,84,245,115,115,115,15,245, - 174,144,197,137,29,198,105,178,188,47,47,105,176,54,176,78, - 177,144,172,29,187,142,202,85,245,245,0,245,152,89,89,202, - 174,206,72,58,29,142,235,0,238,238,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,152,0,0,0,216,0,0,0,0,0, - 0,152,0,0,0,0,0,0,0,0,0,0,0,15,245,0, - 0,253,245,245,0,0,0,0,0,0,0,0,0,0,245,245, - 202,245,245,44,105,187,105,29,15,0,202,244,115,15,105,105, - 151,15,244,28,28,203,58,203,28,196,28,240,244,244,244,28, - 244,244,244,28,244,244,244,240,202,203,58,203,28,196,28,240, - 28,244,244,28,28,28,244,28,244,244,244,240,28,112,202,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 238,174,105,235,242,63,72,115,72,72,142,89,253,245,245,0, - 242,177,151,244,40,29,198,198,229,86,78,86,86,47,178,144, - 157,177,151,133,198,115,115,96,142,253,202,89,152,130,217,229, - 157,217,240,85,108,135,44,238,202,216,216,216,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,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,29,193,235, - 245,115,245,0,0,0,0,0,0,0,0,0,245,0,0,0, - 96,28,115,15,29,198,29,151,245,0,245,202,173,15,105,198, - 151,112,191,173,115,115,15,202,244,129,190,203,28,28,28,244, - 28,240,191,190,191,191,190,190,190,115,15,202,244,129,190,203, - 244,28,28,244,240,240,191,190,191,191,190,190,190,191,190,190, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 89,152,0,245,235,135,235,96,202,115,202,245,245,245,245,152, - 49,235,115,0,152,115,115,202,196,240,135,84,63,206,142,115, - 46,63,115,245,202,245,245,216,152,253,253,152,152,27,159,176, - 127,131,245,152,245,245,202,96,89,238,216,216,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,152,0,0,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,115,152,245, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115, - 0,202,244,202,135,135,84,135,0,245,245,15,15,15,115,49, - 244,28,191,28,191,9,173,191,173,173,203,244,202,196,240,220, - 33,129,9,190,190,40,9,40,9,9,173,191,173,173,28,28, - 202,196,240,9,33,129,40,190,190,40,9,190,9,191,40,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152, - 96,177,177,157,70,177,177,177,52,157,174,52,52,52,229,52, - 242,52,177,52,128,128,128,174,229,128,128,128,128,174,174,117, - 117,174,242,26,174,117,174,242,242,242,229,242,236,26,117,193, - 193,193,72,96,193,26,238,238,89,152,89,238,142,96,89,216, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,152,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,245, - 245,245,245,245,245,115,28,115,115,28,115,15,15,15,245,202, - 245,15,28,191,28,28,203,15,28,112,28,191,191,28,202,115, - 142,58,129,137,9,9,137,220,137,28,203,15,28,112,203,191, - 191,28,202,89,58,58,191,137,9,9,137,80,40,137,220,80 - }; - -static char hdl_large_off[] = { - 132,132,132,132,132,132,132,132,132,132,132,132,132,75,132,75, - 132,75,132,75,132,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,252,252,252,252,75,75,75,75,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252, - 252,252,252,252,252,180,252,252,252,252,252,180,252,252,180,252, - 252,180,180,180,180,180,180,180,180,180,180,5,180,180,5,180, - 5,180,5,180,5,180,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,134,232,232,232,5,5,134,5,5,134,232,232, - 232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232, - 232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232, - 232,204,204,204,204,204,204,204,204,204,204,232,232,232,232,232, - 232,232,232,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,3,5,3,5,3,5,3,98,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,98,98,3,3,3,3,3, - 98,98,98,98,98,98,98,98,3,252,252,252,252,252,3,3, - 3,3,3,3,3,3,3,3,3,192,3,3,3,3,3,3, - 3,3,192,3,192,3,192,3,192,192,192,192,192,192,98,98, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,75,75, - 75,75,75,75,75,75,132,132,132,132,75,75,75,192,75,192, - 75,192,75,192,75,75,75,192,75,192,75,192,75,192,75,192, - 75,192,232,75,192,252,232,75,75,75,75,252,252,252,232,75, - 75,75,75,75,75,75,75,75,75,75,75,75,192,232,252,252, - 232,232,180,3,180,3,252,232,3,180,180,252,180,180,3,180, - 180,180,3,3,3,232,232,232,232,232,232,232,232,5,180,204, - 180,232,232,204,204,232,134,232,232,232,232,232,232,232,232,232, - 232,232,232,232,204,204,232,232,232,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,232,232,232,5,5, - 232,232,232,5,5,5,5,76,5,5,5,5,5,3,5,3, - 5,3,3,3,192,3,3,3,3,3,3,3,3,3,3,3, - 192,3,192,192,192,3,192,192,252,192,192,192,3,192,192,192, - 3,192,3,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,132,192,252, - 132,132,132,75,132,75,132,132,132,132,132,192,132,192,132,75, - 75,75,75,75,75,75,75,75,75,75,192,75,75,75,75,75, - 75,75,75,75,192,75,75,75,75,232,75,232,75,232,75,232, - 75,75,75,75,75,75,75,75,192,75,75,75,75,75,75,192, - 75,232,192,75,232,192,232,75,232,232,75,75,75,75,192,75, - 252,252,252,252,180,252,252,232,252,232,232,252,3,180,232,232, - 232,232,232,232,3,3,3,232,3,3,232,3,5,232,232,232, - 232,5,5,232,232,204,204,204,232,232,232,232,232,232,232,232, - 232,232,204,232,232,204,204,204,204,204,204,204,204,204,204,204, - 204,232,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,232,204,232,232,204,204,232,204,204,204,204,232,3, - 5,5,232,232,5,192,204,3,192,5,192,3,5,192,5,192, - 5,3,5,5,3,5,3,5,192,192,3,3,3,3,3,3, - 192,3,3,3,192,3,192,192,3,3,192,3,192,3,192,3, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, - 132,132,132,132,132,132,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,232,75,75,75,75,75,232,75,75, - 75,75,192,75,75,75,75,75,75,232,75,192,75,75,75,75, - 75,232,75,75,75,75,75,192,75,75,192,232,75,232,75,252, - 252,252,252,252,252,252,252,75,252,252,252,252,252,232,3,252, - 252,252,252,252,232,232,232,252,232,232,180,232,232,3,180,232, - 5,232,232,232,5,232,3,204,232,232,232,232,232,232,232,232, - 232,204,232,204,232,232,232,232,232,204,204,204,204,204,232,232, - 232,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,232,204,232,204,204,232,232,204,232,232,232,232,5,232, - 232,232,5,3,5,5,3,5,5,98,5,3,5,192,5,192, - 192,192,192,5,3,3,3,3,98,98,3,3,3,3,192,3, - 3,3,3,3,3,3,3,192,192,3,98,192,3,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, - 132,192,132,75,75,132,132,132,75,132,132,75,132,75,75,75, - 75,75,75,75,232,75,75,75,75,192,75,75,75,75,75,75, - 75,75,75,75,75,252,75,75,75,75,75,75,75,192,75,75, - 75,75,232,75,75,232,75,75,232,75,75,252,75,75,75,252, - 232,232,252,252,232,252,252,232,252,252,252,252,252,252,232,3, - 180,232,232,252,252,252,3,180,252,232,252,180,232,232,3,232, - 180,5,5,232,5,232,232,232,232,232,232,232,204,204,204,232, - 232,232,232,204,232,232,232,232,232,204,232,232,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,232,204,204,3,204,204,232,3, - 5,204,232,204,204,3,5,5,3,5,5,192,5,5,3,5, - 192,192,192,204,3,3,3,3,3,98,3,3,3,3,3,3, - 3,3,192,192,192,3,98,192,3,192,3,3,192,3,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,192, - 132,75,75,132,132,192,132,132,192,132,75,75,192,132,192,132, - 75,75,75,132,75,75,75,75,75,75,192,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75,75,75,252,252,252,75, - 75,75,75,232,75,75,252,75,252,252,180,252,75,232,75,192, - 232,252,252,232,232,180,232,3,5,3,5,3,180,5,232,3, - 232,232,232,5,232,180,5,3,232,232,232,232,232,232,232,204, - 232,204,232,232,204,204,204,204,232,232,232,232,232,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 232,204,232,204,204,204,232,5,3,5,5,204,5,5,3,204, - 204,3,3,5,3,204,5,5,5,98,5,98,5,98,3,3, - 192,192,192,3,204,3,3,3,3,3,3,3,3,192,3,98, - 98,3,98,98,3,192,3,98,3,3,192,192,3,3,192,3, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 132,132,132,132,132,132,119,132,132,132,132,132,132,132,132,132, - 132,132,132,132,75,132,75,132,132,75,132,75,132,75,75,75, - 132,132,75,132,75,75,132,75,75,75,75,75,75,75,192,75, - 132,132,75,75,75,75,75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,252,252,75,75,75,75,252,75, - 75,75,75,75,232,75,252,252,252,252,180,252,75,252,75,180, - 3,252,252,252,232,252,232,180,180,134,232,3,180,3,232,3, - 5,5,180,5,232,232,232,5,3,5,3,5,232,232,232,232, - 232,204,232,232,232,232,232,232,232,232,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,232,204,204,232, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,232,232,204, - 204,3,232,3,5,3,204,204,204,5,5,204,5,5,5,3, - 232,232,5,232,3,5,98,204,192,98,5,98,5,5,5,192, - 192,192,5,192,3,3,5,3,3,3,3,3,98,3,3,3, - 3,192,98,3,98,3,192,192,192,3,98,192,3,192,3,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,132,132,132,132,132,132,119,119,132,119,132,132,132,132,132, - 132,132,132,132,132,132,132,132,132,75,132,165,165,165,165,132, - 75,132,75,132,132,75,132,75,132,75,132,75,75,132,132,75, - 75,75,75,75,75,75,75,224,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,252,75,75,75,75,75,252,180,75,75, - 252,180,75,75,75,252,75,75,180,252,252,76,3,180,180,252, - 252,232,180,252,252,252,252,232,3,232,180,180,5,180,180,232, - 180,232,232,180,5,5,134,5,232,232,232,232,232,232,232,232, - 232,232,232,232,232,232,232,204,232,204,232,232,232,232,204,204, - 204,204,204,232,232,204,204,204,204,204,204,204,204,204,232,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,232,204,204,204, - 232,204,5,204,204,204,232,232,204,204,232,5,134,5,5,180, - 5,3,5,3,5,5,5,3,98,3,5,5,5,98,192,3, - 5,3,98,5,3,5,3,5,3,98,3,192,98,98,192,192, - 192,98,98,3,3,3,3,3,3,192,192,192,192,98,3,3, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 132,132,132,119,132,132,132,132,119,132,132,132,132,132,132,132, - 132,132,132,132,132,132,75,132,132,75,132,165,165,75,165,165, - 165,165,132,75,75,132,75,132,75,75,75,75,75,36,132,75, - 75,75,132,224,224,132,75,224,75,75,75,75,75,75,75,75, - 75,75,75,75,180,75,252,75,201,75,75,75,75,75,180,75, - 75,75,180,75,75,75,180,252,75,180,75,180,98,252,180,252, - 75,252,180,252,180,180,180,180,252,3,180,180,180,180,180,232, - 180,232,232,232,180,232,232,5,5,5,3,5,5,232,232,232, - 232,134,204,232,232,232,232,204,232,232,232,232,232,232,204,232, - 204,204,232,204,232,232,232,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,232,232,232,232,204,3,5,5,5,232,5,5,5,134, - 5,180,5,5,98,98,98,5,98,3,98,98,204,3,192,3, - 192,192,76,3,5,3,5,3,3,3,98,98,192,3,192,192, - 192,192,98,192,192,192,3,3,98,3,3,192,192,192,3,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 132,119,119,132,132,119,132,119,119,132,119,119,119,132,165,132, - 132,132,132,132,132,132,132,132,132,132,132,165,132,165,165,165, - 132,75,132,132,75,75,132,75,132,132,75,75,132,75,132,36, - 36,36,224,75,75,75,75,75,36,224,224,224,224,224,75,75, - 75,75,180,75,75,75,75,75,75,75,180,75,75,75,75,180, - 75,180,180,75,180,75,75,75,180,75,180,252,252,180,180,75, - 252,252,75,252,180,3,3,75,180,180,180,180,180,180,180,180, - 5,180,5,180,232,5,180,134,5,232,232,232,232,5,5,232, - 232,232,232,232,204,232,232,232,232,232,232,232,204,232,232,204, - 232,232,204,232,232,204,232,204,204,232,232,232,232,204,204,204, - 232,232,232,204,204,204,204,204,204,232,204,232,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,232,204,204,204,232,204, - 232,232,204,232,232,204,5,204,134,5,5,5,134,5,5,5, - 5,5,5,5,5,5,204,98,204,98,98,3,98,5,98,98, - 5,3,192,3,98,5,3,5,5,3,192,98,98,3,3,192, - 3,3,3,98,192,192,3,3,3,3,192,3,3,192,192,252, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,132,132,119,132,119,132,132,165,165,165,132,119,132,165,132, - 132,132,132,132,132,132,132,75,132,132,75,165,165,132,132,165, - 165,75,132,75,75,132,75,165,75,75,165,75,132,75,75,75, - 132,75,132,75,224,132,36,75,75,75,75,75,75,224,224,75, - 75,36,75,75,75,75,75,75,201,201,75,180,75,180,75,180, - 75,75,75,180,75,180,75,75,75,75,75,75,252,252,180,180, - 180,180,180,75,180,180,5,180,180,180,180,180,180,180,5,180, - 232,232,232,5,5,232,232,232,180,134,180,5,232,232,5,232, - 232,134,134,232,232,232,232,232,232,204,204,232,232,232,232,232, - 232,232,232,232,232,232,232,204,204,232,232,204,204,204,204,232, - 232,204,232,232,204,204,232,232,204,232,204,204,232,232,204,232, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,3,5,232,232,232,5,204,204,5,5,204,5,5,5,134, - 5,76,5,5,98,98,98,98,98,204,98,204,98,3,5,98, - 5,3,5,3,3,5,3,5,98,3,3,3,3,98,98,3, - 3,3,192,192,192,98,192,3,3,98,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,119,132,119,132,119,119,165,132,119,119,132,119,132,132,132, - 165,132,132,132,132,132,165,165,165,165,165,165,132,132,132,75, - 165,165,165,165,75,132,75,75,165,75,132,36,132,36,36,36, - 75,36,75,36,75,36,75,224,224,36,36,36,36,75,75,201, - 75,75,75,201,75,75,75,75,75,75,201,75,201,201,75,75, - 180,75,201,75,75,75,75,75,75,75,180,180,75,75,252,180, - 252,75,75,180,3,180,180,252,180,180,5,180,180,180,180,180, - 180,5,5,232,232,5,5,180,232,232,232,232,134,232,232,232, - 232,204,232,134,232,232,232,232,5,232,232,232,204,232,232,204, - 232,232,232,204,192,204,232,232,232,204,204,232,204,5,204,204, - 204,204,204,204,204,204,204,232,232,204,232,204,204,204,232,204, - 204,204,204,232,204,204,204,204,204,204,232,232,232,204,232,232, - 232,232,232,232,232,232,5,5,5,204,5,5,134,5,76,98, - 5,5,98,98,5,204,3,3,98,98,98,98,98,5,98,98, - 98,3,3,5,3,5,3,98,204,3,3,3,98,3,3,3, - 3,3,98,192,192,192,98,3,3,3,3,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,132,119,132,119,132,119,132,119,132,119,165,165,165,119,119, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,75,165,165,75,165,75,36,132,36,224,36, - 75,36,224,36,132,224,36,36,224,75,75,75,75,75,75,201, - 75,201,75,36,201,201,224,75,75,75,36,75,75,75,75,201, - 75,75,75,180,180,75,76,75,180,75,75,180,201,75,201,75, - 180,180,180,180,180,252,180,180,180,3,180,180,180,180,180,180, - 180,180,180,5,180,232,232,5,5,5,180,232,5,232,5,134, - 232,232,232,5,232,232,5,232,232,232,232,232,204,232,232,204, - 232,232,232,232,232,204,232,232,232,232,232,232,204,232,232,232, - 204,192,232,204,204,232,204,232,232,232,232,232,232,204,232,232, - 204,232,204,232,204,204,204,204,204,204,204,204,232,204,232,232, - 232,204,232,3,5,204,232,5,5,5,5,5,5,5,5,76, - 5,5,5,98,76,98,76,204,98,98,98,5,3,98,5,3, - 98,98,5,98,98,98,5,3,3,3,98,3,3,3,98,3, - 3,3,3,3,192,192,192,3,192,3,3,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,132,132,119,119,132,119,132,119,119,119,165,165,165,132,119, - 132,132,165,165,165,165,165,165,165,75,165,165,165,165,165,165, - 165,165,165,165,165,75,75,36,132,36,36,75,132,75,132,224, - 36,36,36,36,36,36,75,75,75,36,36,36,36,224,75,75, - 224,75,36,75,75,75,75,224,201,36,75,201,75,201,75,75, - 201,75,36,201,75,75,75,76,201,180,180,75,180,75,252,75, - 180,75,252,75,75,180,180,252,180,180,180,180,180,180,180,5, - 180,180,180,180,180,180,5,180,232,180,232,5,134,5,232,232, - 232,232,232,232,5,134,232,232,5,232,232,232,232,232,232,232, - 232,204,232,232,232,232,232,232,232,232,204,232,232,232,232,232, - 232,232,232,204,204,232,232,204,232,204,232,232,232,232,232,232, - 204,204,232,232,204,204,204,232,204,232,204,232,204,232,232,232, - 204,232,5,232,204,134,134,204,5,5,5,5,5,5,5,5, - 5,5,76,5,76,3,98,76,98,5,98,98,98,98,98,76, - 98,3,98,5,3,5,3,3,98,3,3,98,3,3,3,98, - 3,3,98,3,192,98,98,3,3,3,3,3,3,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,119,119,119,119,119,119,119,132,119,119,165,119,165,119,165, - 119,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,36, - 132,224,132,224,36,36,36,36,36,36,224,36,36,36,36,36, - 201,36,201,36,36,36,201,36,75,36,75,36,75,36,201,75, - 201,75,75,201,201,201,75,75,75,201,75,75,180,75,201,75, - 76,75,75,75,75,180,180,180,180,180,3,180,75,180,180,180, - 180,180,180,180,180,180,180,180,232,232,180,180,232,5,134,134, - 134,232,232,232,232,232,134,232,232,232,232,232,204,232,232,3, - 232,232,204,232,232,204,232,232,232,232,204,232,204,232,204,232, - 232,232,192,232,232,232,232,232,232,232,204,232,232,204,232,232, - 232,232,204,232,204,204,204,232,232,232,232,232,232,204,204,232, - 3,204,5,5,5,5,5,5,5,5,5,5,5,5,134,76, - 76,5,76,5,98,204,98,3,76,98,98,98,204,98,98,5, - 98,98,98,98,98,98,98,3,3,3,98,3,3,98,3,3, - 3,98,3,3,192,98,98,192,98,3,3,3,3,3,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,132, - 119,119,119,119,119,119,119,119,119,132,119,119,132,165,132,119, - 119,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,36,165,165,165,165,165,165,36,165,36, - 36,36,165,36,36,36,36,36,224,224,36,224,201,36,36,36, - 36,224,36,36,224,36,75,75,36,201,36,201,36,224,75,36, - 224,201,36,36,224,75,201,201,224,252,201,224,201,201,252,201, - 75,75,76,76,201,75,252,180,75,75,180,180,134,180,180,180, - 180,180,180,180,180,180,180,180,180,180,180,180,180,232,232,232, - 232,134,134,232,232,134,232,5,5,5,3,232,232,180,232,232, - 3,232,232,232,232,232,232,232,232,5,5,134,5,232,5,3, - 232,232,232,232,232,192,232,232,192,232,192,232,192,232,232,232, - 232,232,232,232,192,232,192,232,192,232,232,232,232,3,3,232, - 232,5,134,5,134,134,134,5,134,76,5,76,5,76,76,76, - 5,76,76,76,76,3,76,76,76,98,76,98,76,98,98,98, - 98,5,98,98,98,76,3,98,98,98,98,98,3,98,98,3, - 98,98,3,98,3,98,3,98,192,98,98,252,3,3,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 165,165,165,165,119,132,132,119,165,165,132,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 36,36,165,75,36,165,165,36,36,36,36,36,224,36,36,36, - 36,36,224,36,201,36,36,36,36,36,36,36,201,36,36,201, - 36,224,201,36,201,36,224,224,36,224,75,75,75,201,75,75, - 201,75,75,180,180,75,75,75,180,180,75,180,180,134,180,180, - 75,180,75,180,180,180,180,180,180,180,180,180,180,180,134,134, - 232,232,180,134,232,134,232,134,134,232,5,180,232,180,232,232, - 5,180,232,232,180,3,5,5,232,232,232,134,134,232,232,5, - 232,232,232,232,232,232,232,232,3,232,232,232,232,232,192,232, - 192,232,192,232,232,232,232,232,180,3,180,3,180,134,5,5, - 76,134,5,134,5,76,76,76,134,76,134,76,134,76,5,76, - 76,76,76,98,76,76,76,98,76,98,98,76,98,76,76,98, - 76,76,98,98,98,98,98,98,98,3,98,98,3,98,3,98, - 98,3,98,98,3,3,98,98,192,192,3,3,252,3,252,3, - 192,192,192,192,3,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,98, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,132, - 119,165,119,119,119,119,119,36,165,165,165,119,165,165,36,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,36, - 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,201, - 36,36,36,36,36,36,165,36,36,36,36,36,36,36,36,36, - 36,201,36,36,36,201,75,75,201,75,224,201,201,75,201,201, - 180,201,201,75,201,180,201,180,75,180,180,180,180,180,180,180, - 180,180,180,180,75,180,180,180,180,180,180,180,180,180,180,232, - 180,180,232,232,204,232,134,232,180,134,134,5,5,5,180,134, - 134,232,5,5,134,5,134,134,134,134,134,134,134,134,134,134, - 180,180,180,180,180,180,5,180,232,180,180,180,180,180,180,180, - 180,180,75,232,180,180,180,180,5,134,5,134,5,134,76,76, - 5,76,76,76,76,5,134,5,76,76,76,76,76,76,57,57, - 98,76,57,76,98,76,76,98,76,76,76,98,98,98,98,76, - 98,98,98,98,76,98,98,76,98,98,98,98,98,98,98,98, - 98,3,98,98,3,98,3,192,98,98,98,252,192,98,98,98, - 3,192,192,3,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 119,119,119,165,36,119,165,119,119,165,165,165,165,165,165,165, - 36,36,165,165,165,165,165,165,36,165,165,165,165,165,165,165, - 165,165,165,165,36,36,165,165,36,165,36,165,165,165,165,36, - 36,36,36,36,165,36,165,201,36,36,201,36,36,36,36,201, - 36,36,36,201,36,36,36,75,201,201,224,224,224,201,224,201, - 75,75,201,75,201,75,201,201,75,201,75,180,75,180,75,180, - 180,180,180,180,180,180,180,134,180,180,134,180,180,180,180,180, - 180,180,180,232,114,180,180,232,180,5,5,134,134,134,232,5, - 5,134,5,232,134,134,134,134,134,5,204,232,134,134,134,5, - 5,5,5,5,5,134,5,134,134,5,5,5,134,5,134,134, - 134,5,134,180,5,5,5,134,134,134,134,5,134,5,134,134, - 134,5,134,76,76,76,76,134,76,76,76,76,76,76,76,162, - 76,76,57,76,57,76,76,76,57,57,57,57,76,76,98,98, - 76,98,76,98,98,98,98,98,98,3,98,98,98,98,98,98, - 98,98,3,98,3,3,3,98,192,192,192,98,3,192,3,192, - 252,3,192,192,192,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98, - 119,210,119,119,119,119,119,210,119,119,119,119,119,119,119,119, - 119,119,119,165,165,119,165,119,119,119,119,119,119,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,36,36,165,36,36,36,36,36,165, - 165,165,165,165,36,36,36,165,165,36,165,36,165,36,36,165, - 36,36,201,36,201,36,36,36,201,36,75,75,201,75,75,201, - 201,201,201,201,180,201,75,180,180,180,75,180,180,180,180,75, - 180,75,134,75,180,180,180,180,180,180,180,180,180,180,134,180, - 232,180,180,180,114,180,5,134,5,134,134,5,134,134,134,134, - 134,134,134,5,134,134,134,134,134,134,134,134,5,134,134,134, - 5,134,134,134,134,134,134,134,134,134,76,76,76,134,134,134, - 76,134,76,5,134,134,76,134,5,180,5,76,76,76,5,76, - 5,76,76,134,76,76,76,76,76,76,76,76,76,76,76,76, - 57,162,76,76,57,76,57,57,76,76,76,76,76,98,76,98, - 76,76,98,76,98,76,98,98,98,98,98,98,98,98,98,98, - 98,98,98,3,98,3,192,98,98,3,98,3,3,252,3,98, - 3,3,3,3,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,3, - 119,210,210,210,119,210,119,210,119,210,119,119,210,119,119,119, - 119,119,119,119,119,165,119,165,119,165,165,165,165,119,165,119, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,36,36, - 36,36,36,165,165,165,36,36,165,36,36,36,165,36,36,36, - 36,36,36,36,165,165,201,75,75,36,201,75,201,201,201,224, - 36,75,224,201,75,201,201,201,75,75,201,201,75,201,180,180, - 75,180,201,180,201,180,201,201,134,180,180,180,180,180,180,180, - 180,180,134,180,114,5,134,134,134,134,76,134,134,134,134,134, - 5,134,134,134,134,134,134,134,5,76,76,134,134,134,134,76, - 76,134,134,134,76,76,76,134,76,134,134,134,134,134,134,134, - 134,134,134,134,76,134,134,76,76,76,5,134,134,76,134,76, - 76,134,76,76,76,76,76,76,76,201,57,201,57,162,162,76, - 57,162,162,162,76,162,76,76,162,57,76,57,57,57,76,76, - 76,98,76,98,98,98,98,98,98,98,98,98,98,98,98,98, - 98,98,98,98,3,3,192,192,98,192,192,192,3,3,3,3, - 3,3,3,3,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,252, - 210,210,119,119,210,210,210,119,210,119,210,119,210,119,210,119, - 210,119,119,119,119,165,119,119,165,210,165,210,119,119,119,165, - 165,119,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 36,165,119,165,165,165,165,165,36,36,36,36,36,36,165,165, - 165,165,165,36,36,36,165,165,36,165,165,36,36,201,36,165, - 36,36,36,201,36,36,36,36,201,36,36,36,201,36,36,201, - 75,201,201,201,201,201,201,201,201,180,201,75,201,75,201,201, - 201,201,180,201,201,180,180,180,180,180,180,180,201,180,180,201, - 180,180,201,180,114,201,76,201,180,180,180,76,180,180,134,76, - 180,134,134,134,134,134,134,76,76,134,134,134,134,134,76,134, - 134,76,76,76,134,134,134,76,134,76,134,134,76,76,76,76, - 76,76,76,76,134,134,76,134,134,76,76,76,76,76,76,76, - 5,76,76,76,76,76,162,201,76,162,76,57,76,76,76,162, - 76,162,57,162,162,162,31,31,162,57,162,162,76,57,57,31, - 76,31,98,31,98,76,98,57,98,98,98,98,98,98,98,98, - 98,98,3,3,3,98,3,192,192,192,3,3,3,3,3,3, - 3,3,3,3,3,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,98, - 210,210,210,210,210,210,210,210,119,210,119,119,119,210,119,119, - 119,119,210,119,119,165,119,119,119,119,119,119,210,165,119,165, - 119,119,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,25,25,165,165,165,165,36,165,165, - 165,165,165,165,165,36,36,165,36,36,165,36,165,165,36,165, - 165,165,165,36,36,165,165,162,36,201,201,36,201,75,36,201, - 201,36,201,201,75,75,75,201,201,75,201,201,201,201,75,180, - 201,201,180,201,201,201,180,201,201,201,201,180,201,180,180,180, - 180,134,76,180,114,134,180,201,201,180,180,201,201,180,134,180, - 180,201,180,134,134,76,134,134,134,134,134,134,134,134,134,134, - 134,134,134,134,134,134,134,76,134,76,76,134,134,134,134,201, - 134,201,76,76,76,76,76,76,134,76,76,76,76,76,76,162, - 76,76,76,76,76,76,76,162,76,162,76,162,162,162,162,162, - 57,57,162,162,162,162,76,162,162,57,162,31,76,162,76,57, - 76,76,76,76,98,31,98,98,98,98,98,98,98,98,98,98, - 98,98,98,5,98,3,3,3,3,192,192,3,192,3,3,252, - 3,3,3,3,3,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,3,98, - 210,210,210,210,210,210,210,119,210,210,210,210,119,119,210,119, - 210,119,119,210,119,119,119,119,119,119,119,165,119,165,119,210, - 119,119,210,165,165,165,165,165,165,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,36,25,165,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,36,165,36, - 165,36,36,165,165,36,165,36,36,36,201,36,201,165,36,165, - 201,36,36,36,201,201,201,201,36,201,201,75,201,75,201,201, - 75,201,201,180,201,201,201,180,180,201,201,201,180,201,201,201, - 201,180,180,201,114,201,201,201,201,201,201,134,201,201,201,201, - 201,180,134,201,201,134,134,76,201,134,201,180,134,134,76,76, - 134,76,76,76,76,76,134,134,76,134,76,201,76,76,201,134, - 201,134,134,76,201,134,201,201,201,201,76,76,76,76,76,76, - 76,76,76,201,162,201,57,76,162,76,162,76,201,162,76,162, - 162,57,162,57,57,162,31,31,162,57,162,76,162,162,76,76, - 31,31,76,31,76,5,98,76,98,98,98,98,98,98,98,98, - 98,98,3,3,98,3,98,3,98,98,98,3,3,192,98,3, - 3,3,3,3,3,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,3,3, - 251,210,210,210,210,210,210,210,210,119,210,210,210,210,119,210, - 119,210,210,119,210,119,119,119,119,210,119,119,119,210,119,165, - 165,165,119,119,210,165,210,165,165,165,210,165,210,165,165,165, - 165,165,165,165,165,165,165,165,165,36,25,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,36, - 165,165,165,165,165,36,165,165,36,201,36,165,201,201,201,36, - 201,36,201,201,36,201,36,36,201,36,201,201,201,180,36,201, - 201,201,201,201,201,36,201,201,180,201,201,201,180,201,201,180, - 201,201,201,201,114,201,180,134,201,180,201,134,201,201,201,201, - 201,201,201,201,201,201,134,134,201,134,201,201,201,134,134,201, - 134,134,76,76,134,76,76,134,76,134,76,201,201,76,76,76, - 201,201,201,76,201,76,76,76,76,201,201,201,76,76,76,162, - 201,201,162,76,76,76,162,201,162,201,162,162,201,162,162,57, - 162,162,162,162,162,162,76,162,76,162,162,57,162,162,31,76, - 162,76,76,31,76,31,31,76,98,98,98,98,98,98,98,98, - 98,98,98,5,98,98,3,3,3,192,98,192,3,3,192,3, - 3,3,98,252,3,3,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,3,98,98, - 210,251,210,210,210,210,210,210,210,210,119,210,119,210,210,210, - 210,119,210,210,119,119,210,210,119,210,119,210,119,119,210,210, - 119,210,210,119,165,165,210,210,119,210,165,25,210,165,25,165, - 25,25,165,165,165,25,165,25,25,165,25,165,165,210,165,165, - 165,165,210,165,25,165,165,25,165,25,165,165,165,165,165,165, - 165,165,165,165,165,165,165,165,165,165,165,36,36,165,201,36, - 36,165,162,165,165,201,201,180,36,201,36,201,162,201,201,36, - 201,201,201,201,201,201,201,75,36,201,75,201,36,201,180,201, - 201,201,76,201,114,201,201,201,201,201,201,201,201,201,201,201, - 201,201,201,201,201,201,201,201,201,201,134,201,134,201,201,201, - 201,201,201,201,76,201,201,201,201,201,76,201,76,76,162,201, - 76,76,76,76,162,201,201,162,201,76,76,76,162,201,201,76, - 162,76,76,76,162,162,201,57,201,57,162,57,162,57,162,162, - 162,57,162,57,162,162,31,162,31,57,162,57,162,162,76,162, - 76,31,76,76,76,76,5,57,76,76,98,98,98,98,98,98, - 98,98,98,98,98,98,98,3,3,98,98,192,98,3,98,3, - 98,98,3,3,3,98,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,3,192,3,98, - 251,251,210,210,210,210,210,210,210,210,210,210,210,119,210,119, - 210,210,210,210,210,119,210,119,210,210,210,119,210,119,210,119, - 210,210,210,210,210,210,25,25,210,210,165,210,165,25,25,165, - 165,165,25,165,25,25,25,165,165,165,25,25,165,165,210,165, - 25,165,25,165,25,25,165,165,25,165,25,165,165,165,25,165, - 165,165,165,165,94,165,165,165,162,165,165,162,36,165,165,180, - 180,36,201,36,201,36,36,201,36,201,36,201,201,36,201,201, - 201,165,201,162,201,201,201,201,201,201,201,201,201,201,201,201, - 201,201,201,162,114,201,201,201,201,201,162,201,201,201,201,201, - 201,201,201,201,201,201,201,201,201,201,201,201,201,201,134,201, - 201,201,76,201,201,76,201,201,201,76,76,201,201,76,201,201, - 162,201,201,76,76,76,76,162,162,162,162,201,162,162,162,76, - 162,162,162,201,201,162,162,162,162,162,162,162,57,201,162,162, - 162,57,162,162,162,162,162,162,162,162,162,76,162,57,162,162, - 76,76,31,31,76,31,76,57,76,98,76,98,98,98,98,98, - 98,98,98,98,98,3,3,3,98,3,3,192,98,192,3,192, - 192,3,3,3,3,252,98,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,3,3,3,252,98, - 91,210,91,91,251,251,251,251,210,210,210,210,210,210,210,210, - 210,119,210,119,119,210,210,210,210,210,210,210,210,210,119,119, - 119,210,210,25,25,25,25,25,25,210,25,25,25,165,210,165, - 25,25,165,165,165,165,165,165,25,25,165,25,25,165,25,165, - 25,165,25,25,165,25,25,165,25,165,165,25,165,165,165,25, - 25,94,165,25,165,165,165,165,36,36,165,165,162,36,201,36, - 201,165,180,36,165,201,36,162,180,165,36,201,36,201,162,165, - 162,201,36,201,201,201,162,201,201,162,201,162,201,162,201,201, - 201,201,162,134,114,162,201,201,162,201,201,162,201,201,201,201, - 201,201,76,162,162,162,162,201,201,201,201,201,201,201,201,201, - 201,201,201,162,162,201,162,162,162,201,201,201,162,201,76,162, - 201,76,201,201,162,162,201,201,201,201,76,162,162,201,201,162, - 201,201,162,162,162,162,201,57,162,162,162,162,162,57,162,162, - 162,162,57,162,162,162,31,57,162,162,162,57,162,162,57,162, - 31,76,76,76,76,76,76,57,98,98,98,76,98,98,98,98, - 98,98,98,98,76,98,98,3,3,98,3,98,192,98,3,3, - 3,3,3,3,192,98,192,3,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,3,192,3,3,3,3,3,192,98,98, - 126,251,91,210,210,210,251,210,251,251,210,210,251,210,119,210, - 210,210,210,210,210,210,210,25,119,210,119,210,25,210,25,119, - 119,119,119,119,210,25,25,210,25,25,25,25,25,210,25,210, - 165,210,165,210,25,210,25,165,165,210,165,210,25,25,25,25, - 165,25,165,25,25,165,25,25,165,25,25,25,25,25,94,165, - 165,25,94,25,94,25,165,165,165,165,165,201,165,165,165,165, - 36,201,162,36,165,162,36,201,36,162,201,165,162,36,201,201, - 201,165,162,165,162,201,165,162,201,165,201,162,201,165,201,201, - 201,201,162,134,114,162,201,201,162,201,201,201,201,201,201,162, - 201,201,201,201,201,201,162,201,162,201,201,201,201,162,201,162, - 162,162,162,201,162,162,201,162,162,162,162,201,162,162,201,162, - 162,162,162,201,201,162,162,162,162,162,162,201,162,162,162,162, - 162,201,162,162,201,57,162,162,162,162,162,162,31,162,31,162, - 162,162,162,162,162,162,162,31,31,162,162,162,162,57,162,162, - 162,162,57,76,31,76,76,76,76,98,98,98,98,98,98,98, - 98,98,98,98,98,98,3,98,98,3,98,98,98,98,192,3, - 3,3,98,3,3,3,3,98,252,252,192,192,192,192,192,192, - 192,192,192,192,3,3,3,3,3,3,3,3,98,3,98,98, - 251,251,91,91,91,91,251,210,251,251,251,210,210,251,210,210, - 210,210,210,210,210,210,210,210,210,210,210,210,165,210,25,210, - 210,210,210,210,25,25,139,25,25,25,25,25,25,25,25,210, - 25,210,25,25,25,25,210,25,210,165,25,25,25,210,25,25, - 25,25,25,165,25,25,25,165,210,165,25,165,25,165,165,25, - 94,25,25,165,165,165,25,165,94,165,165,165,94,165,162,165, - 165,165,165,165,165,201,165,165,165,180,165,36,36,180,165,36, - 162,201,180,201,201,201,201,180,201,201,201,201,201,201,201,201, - 201,201,201,162,114,201,162,201,201,162,201,162,162,162,165,201, - 162,162,201,162,201,162,201,162,162,201,162,162,162,162,162,162, - 162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,201, - 162,162,162,162,162,162,201,201,162,162,201,162,162,31,162,162, - 162,162,162,162,31,31,162,162,162,31,162,76,76,162,162,162, - 162,162,162,162,162,162,162,76,76,76,162,76,76,76,76,76, - 76,76,76,76,76,31,76,76,98,76,98,98,76,98,98,98, - 98,98,98,98,98,98,98,98,3,98,98,3,98,98,98,3, - 3,3,3,98,3,98,98,3,192,3,192,3,192,3,192,3, - 192,3,252,252,3,3,3,3,3,3,3,3,3,98,98,57, - 91,251,251,251,91,210,91,210,251,210,251,210,251,210,251,251, - 251,210,210,210,210,139,210,210,210,210,25,210,210,210,25,210, - 25,25,25,139,25,210,25,139,25,139,210,25,25,139,25,139, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 165,25,25,25,25,25,25,25,210,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,165,25,165,165,165,165,36,165,165, - 165,165,180,165,165,180,36,165,201,36,165,162,36,201,165,201, - 165,201,172,58,80,40,137,40,190,9,40,40,40,137,137,190, - 9,40,40,103,114,165,201,162,162,162,36,201,201,162,162,162, - 201,162,201,162,162,162,162,162,162,162,162,162,162,162,162,162, - 162,162,162,162,94,162,162,162,162,162,162,162,162,162,94,162, - 162,162,162,162,162,162,162,162,162,94,162,162,162,162,31,162, - 31,162,162,162,162,94,162,162,162,31,129,240,112,173,191,191, - 191,173,9,203,191,191,191,191,191,9,9,9,9,191,9,191, - 191,112,191,220,98,76,31,76,76,76,98,98,98,98,98,98, - 98,98,98,98,98,98,98,3,98,98,98,98,98,98,98,98, - 192,3,3,3,3,3,3,3,3,252,3,3,3,3,3,252, - 3,3,3,3,3,3,3,3,3,3,3,3,192,3,98,98, - 91,91,91,251,91,251,91,91,251,251,251,251,251,210,210,251, - 210,210,210,210,210,210,210,210,210,25,210,139,210,139,25,210, - 139,139,139,25,25,210,139,25,210,25,25,210,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,94,25,94,25,165,165,165,165,165,94,165,165, - 165,36,94,162,165,162,165,36,165,187,201,201,165,165,165,180, - 180,201,33,33,6,6,233,6,154,108,154,6,154,233,233,233, - 33,6,233,108,114,162,94,165,165,165,94,94,94,162,94,165, - 94,162,94,94,94,94,94,94,162,162,162,162,94,94,162,94, - 94,94,162,94,94,94,162,162,162,162,162,162,162,162,162,162, - 162,162,162,94,94,94,94,94,162,94,94,94,94,31,94,94, - 94,94,31,94,31,31,31,94,31,237,220,233,9,33,9,9, - 220,233,33,9,33,233,9,33,220,233,191,245,173,233,9,233, - 9,9,191,233,31,31,3,31,57,31,98,57,98,98,98,98, - 98,98,31,98,98,98,98,98,98,98,98,98,98,98,98,3, - 98,3,3,3,3,3,192,192,192,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,98,3,192,252,98,57, - 93,126,91,91,251,251,251,251,91,210,251,251,210,251,210,210, - 251,91,210,210,139,210,139,139,139,139,210,139,210,139,139,139, - 210,210,139,139,210,25,210,139,139,210,139,25,25,139,25,139, - 210,139,139,139,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,139,139,25,25,25, - 25,25,25,25,25,25,25,25,25,94,94,25,165,25,134,133, - 205,154,137,154,137,154,137,133,129,240,129,80,133,154,154,80, - 154,137,220,220,137,33,80,191,173,173,9,80,80,9,80,80, - 190,80,220,220,154,129,80,154,133,137,80,80,137,137,137,137, - 80,137,80,220,220,129,129,191,154,220,129,137,137,137,137,129, - 129,129,129,129,129,129,129,133,220,220,129,129,129,129,129,129, - 133,129,129,129,129,129,129,137,129,129,129,129,129,129,129,220, - 154,133,129,129,190,129,191,129,191,9,129,220,9,220,220,9, - 220,129,220,9,9,9,9,33,9,9,220,220,9,220,9,9, - 9,9,220,191,9,191,191,191,129,191,129,129,129,129,129,191, - 129,9,191,191,98,98,98,98,98,98,98,98,98,98,98,98, - 192,3,3,3,192,3,3,3,192,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,98,3,192,98,98, - 126,93,126,91,91,251,91,210,91,251,251,251,251,251,210,251, - 210,251,251,251,210,251,210,210,210,210,139,139,251,210,139,210, - 139,251,210,139,139,139,139,210,139,139,210,139,251,139,139,210, - 139,139,210,25,210,139,139,139,139,139,139,139,139,139,139,139, - 25,139,139,25,139,25,25,25,139,25,25,25,210,25,139,25, - 25,210,210,25,25,25,210,25,25,165,165,94,25,94,180,9, - 33,40,233,9,33,220,33,9,33,9,203,129,203,40,191,220, - 33,33,220,220,33,220,33,9,108,33,33,33,154,40,191,220, - 191,9,9,220,80,190,220,80,9,154,154,154,33,233,40,33, - 154,33,220,220,220,80,33,220,33,33,154,33,80,33,33,33, - 191,191,220,220,191,80,220,33,220,154,33,220,154,129,154,220, - 220,220,220,220,220,220,80,220,9,220,220,220,220,220,220,220, - 220,9,220,220,220,220,80,33,33,220,33,80,33,233,9,33, - 9,9,9,33,33,154,33,33,80,33,33,9,233,9,233,233, - 220,233,9,220,220,233,220,233,220,233,233,220,233,233,220,233, - 233,220,9,191,204,98,98,98,3,98,3,98,98,98,98,98, - 3,3,3,3,3,3,3,3,192,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,98,3,98,252,98,57, - 91,225,126,93,91,251,91,251,91,210,251,251,251,251,91,251, - 251,251,251,251,251,251,251,251,139,251,251,139,251,251,139,251, - 251,139,139,251,251,251,251,139,251,251,139,251,210,139,139,139, - 139,139,139,139,139,25,139,139,139,139,139,139,139,210,139,139, - 139,139,139,139,139,139,139,139,25,25,210,210,25,210,139,139, - 139,25,25,25,210,25,139,25,25,25,165,25,165,139,201,58, - 9,220,108,33,233,154,33,154,154,33,9,154,233,154,154,80, - 220,173,40,233,154,80,80,80,233,108,154,33,173,203,203,173, - 191,137,33,33,9,9,9,190,9,191,80,154,154,154,108,80, - 129,80,154,154,154,191,191,154,190,203,191,173,129,191,220,154, - 9,154,233,80,220,220,154,154,154,154,129,33,33,220,220,154, - 154,220,33,154,154,154,154,129,154,154,154,33,33,154,80,233, - 154,9,220,33,220,220,33,129,28,33,233,154,80,154,33,154, - 33,154,33,154,80,154,9,33,191,233,80,33,154,33,33,233, - 233,191,233,233,233,33,6,6,6,220,233,220,233,6,220,9, - 233,233,9,173,204,98,98,98,98,98,3,98,98,98,98,98, - 98,98,98,98,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,98,252,98,98, - 93,91,91,126,91,91,91,91,91,91,210,91,251,210,251,251, - 251,251,139,91,139,251,251,251,139,139,251,251,139,251,251,139, - 251,251,139,139,251,251,251,139,251,251,139,139,251,139,91,251, - 139,251,251,139,139,91,139,210,91,251,251,139,139,139,139,139, - 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, - 139,139,139,25,139,139,25,25,25,25,25,94,94,25,191,9, - 9,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,190,142,142,142,142,142,142,142,190,142,142,142,142,142,142, - 142,233,233,233,35,98,98,98,98,98,98,3,98,98,98,98, - 98,98,98,98,3,3,3,3,3,3,3,3,3,3,252,3, - 3,3,3,3,3,3,3,3,3,3,98,3,3,192,98,57, - 93,93,91,225,91,91,126,91,251,91,251,251,91,251,251,251, - 91,91,251,251,251,251,139,251,126,251,251,251,251,251,139,251, - 251,251,251,251,139,91,139,251,251,139,251,91,139,251,126,139, - 251,251,139,91,139,139,91,139,139,251,139,91,139,139,139,139, - 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, - 139,139,139,139,139,139,139,139,25,210,25,25,25,210,6,35, - 9,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,151,58,80,80,80,80,40,137,151,58,80,80,80,80,40, - 137,173,173,173,191,3,98,98,98,98,3,98,3,98,98,98, - 98,98,98,98,3,5,98,98,98,3,252,98,98,98,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,98,252,98,98, - 225,93,93,91,93,91,91,126,91,91,91,91,251,91,91,126, - 251,251,251,126,126,126,126,126,251,251,126,126,251,126,126,126, - 91,251,251,126,126,251,251,91,91,251,251,251,251,251,251,139, - 91,251,251,91,139,91,139,91,139,91,139,139,91,91,251,139, - 139,139,139,139,139,91,139,91,139,139,139,91,210,139,210,139, - 139,139,139,139,139,139,139,25,139,139,25,139,25,139,6,35, - 9,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 137,9,173,233,233,98,98,76,98,98,3,3,98,3,3,98, - 98,98,98,98,98,98,98,3,3,98,98,98,98,3,3,3, - 180,3,98,98,3,3,98,98,3,3,98,3,3,3,98,57, - 93,93,93,93,126,93,126,126,126,126,126,91,126,126,251,91, - 91,91,251,251,251,251,251,91,126,126,251,91,126,126,126,126, - 126,91,251,126,126,126,139,251,91,91,251,91,91,91,91,251, - 91,139,91,139,251,91,139,251,91,139,91,251,91,139,91,91, - 91,139,210,91,139,139,139,139,91,139,91,139,139,251,91,210, - 91,210,139,139,139,139,139,139,210,139,25,139,139,126,6,233, - 9,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,129,58,80,80,80,80,80, - 40,9,173,35,233,98,98,3,98,98,98,3,3,98,3,3, - 98,98,98,3,98,3,98,98,98,98,3,3,98,98,98,3, - 252,3,3,192,192,3,3,3,3,3,98,3,3,252,98,98, - 93,93,93,93,93,91,91,93,91,91,91,126,126,91,91,251, - 251,126,91,91,91,91,91,251,251,251,91,126,251,251,251,251, - 126,126,91,126,126,91,91,91,126,139,126,91,126,126,91,91, - 91,91,139,91,91,139,91,91,251,91,91,139,91,139,139,139, - 251,139,139,91,139,91,139,91,139,91,139,139,91,91,139,251, - 139,139,139,139,139,139,139,139,139,139,139,139,139,139,6,33, - 9,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,80, - 151,173,173,233,233,98,98,76,98,98,98,76,3,3,98,3, - 3,98,5,3,98,98,98,98,98,98,98,98,3,3,98,98, - 98,98,98,98,98,98,98,3,3,3,3,252,98,3,98,57, - 87,87,93,87,11,93,91,93,225,91,91,91,91,91,91,91, - 126,91,91,91,91,126,91,91,91,126,126,91,91,91,91,91, - 126,225,91,91,126,126,126,91,91,91,139,91,139,91,126,126, - 91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,139, - 91,91,139,91,139,91,139,91,139,91,91,139,139,91,91,139, - 251,139,139,139,251,139,139,91,139,139,139,139,139,126,154,9, - 9,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,40,40,40, - 151,129,58,40,40,40,40,40,151,129,58,40,40,58,40,206, - 40,9,173,233,233,98,98,3,98,98,98,3,3,98,3,76, - 3,98,98,98,98,98,98,98,3,98,98,98,98,98,98,98, - 98,98,98,98,98,3,98,3,180,3,98,3,3,252,98,98, - 87,87,87,93,93,93,11,93,91,225,93,91,91,91,93,93, - 93,225,126,126,126,91,91,91,91,126,91,225,93,93,225,126, - 91,91,126,126,126,91,91,126,93,91,91,91,91,91,126,91, - 126,93,91,91,126,126,126,126,91,91,91,139,91,91,91,91, - 91,91,139,139,139,139,91,87,139,91,91,91,91,91,91,91, - 91,139,91,91,91,139,139,139,139,91,139,139,139,91,35,233, - 173,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,40,80,80,80, - 206,129,58,40,40,80,80,80,206,129,58,40,80,80,40,80, - 151,173,173,233,233,98,98,98,98,98,98,76,3,98,3,98, - 3,98,98,98,98,98,98,98,3,98,98,98,3,98,98,98, - 98,3,3,252,98,98,98,3,3,252,3,3,3,3,98,57, - 87,164,53,87,87,93,93,93,93,93,93,93,93,126,91,126, - 91,93,93,93,93,93,225,93,93,225,91,126,126,91,93,225, - 126,93,91,93,225,225,91,126,126,93,91,93,126,91,91,93, - 126,225,91,225,91,91,225,91,126,225,139,139,139,139,139,139, - 139,87,139,91,139,139,87,139,139,139,139,87,87,139,139,91, - 91,139,91,91,91,139,139,139,139,139,139,139,139,91,154,9, - 173,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,40,135,190,58,80,80,80,80,80, - 190,173,173,35,35,98,98,3,98,98,98,98,98,98,3,76, - 3,98,98,98,3,98,98,98,3,98,98,98,98,98,98,98, - 98,180,3,98,98,98,98,98,98,252,252,98,98,252,98,98, - 164,87,87,87,93,87,93,87,93,93,225,93,93,93,93,93, - 93,225,93,93,225,225,93,225,225,91,225,93,93,93,91,91, - 93,126,93,91,91,91,225,93,93,91,93,126,93,93,93,91, - 91,91,93,91,225,93,91,225,91,91,93,91,91,87,139,139, - 87,139,87,91,91,91,91,91,139,87,91,91,87,91,139,87, - 139,139,91,87,91,91,91,139,139,139,139,139,91,91,6,233, - 9,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,196,244, - 244,191,115,58,58,58,196,244,244,191,115,58,58,58,244,142, - 244,173,173,9,233,98,98,98,98,98,98,98,98,98,3,98, - 98,98,98,98,98,98,98,98,98,98,3,76,98,98,98,98, - 98,98,98,98,98,252,252,252,252,252,252,252,3,3,98,57, - 87,87,87,87,93,87,93,87,93,87,93,93,93,93,93,93, - 93,93,93,93,93,93,93,93,93,93,93,93,93,225,93,93, - 93,93,225,93,93,93,93,93,93,91,93,91,93,91,93,93, - 93,225,93,87,93,93,93,225,225,93,93,93,93,93,93,93, - 93,93,139,91,87,91,91,91,91,91,91,87,91,93,93,91, - 93,91,93,91,91,139,126,87,87,91,87,87,91,93,154,9, - 173,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,137,129, - 244,190,135,129,129,240,137,129,244,190,135,129,129,240,129,129, - 240,173,9,35,35,98,98,98,98,98,98,98,98,98,5,76, - 98,98,98,98,76,98,98,98,76,98,3,98,3,98,98,98, - 3,98,98,3,3,98,98,98,3,98,3,3,3,3,98,98, - 53,53,87,53,87,87,87,87,87,93,11,11,11,93,93,93, - 93,93,93,93,93,93,93,93,93,93,93,93,93,87,87,93, - 11,93,87,93,136,93,93,93,93,93,93,93,225,93,93,93, - 93,93,87,93,93,93,93,93,93,93,93,93,93,93,93,93, - 93,93,93,93,87,87,93,93,87,87,87,87,91,87,87,87, - 87,91,87,91,93,91,87,91,139,93,87,139,91,91,154,9, - 9,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,133,28,203,58,129,129,240,137,133, - 28,203,58,129,129,240,137,137,244,203,58,129,129,190,129,129, - 240,173,173,173,35,98,98,98,76,98,98,98,3,98,98,98, - 98,98,98,98,98,98,98,3,3,98,98,3,98,98,98,3, - 3,98,98,98,76,3,3,98,98,98,3,3,98,252,98,57, - 53,53,87,53,87,87,87,87,87,87,87,87,87,11,87,87, - 11,87,93,93,93,93,93,93,93,93,93,93,93,93,87,93, - 87,93,87,93,136,93,136,93,136,93,87,93,136,93,87,87, - 87,87,136,93,93,93,87,93,93,93,93,136,93,93,93,93, - 93,93,93,87,87,87,93,87,87,87,93,87,87,87,87,87, - 91,93,136,87,91,91,91,91,91,91,126,139,87,93,108,9, - 173,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,129,135,190,244,129,137,191,129,129, - 135,190,244,129,137,191,129,133,240,190,244,129,133,240,151,151, - 58,9,9,233,35,31,98,98,98,76,98,76,98,98,3,98, - 98,98,98,98,98,98,98,98,3,98,98,3,98,3,98,76, - 3,98,76,98,98,98,98,98,98,98,76,3,3,252,98,57, - 53,53,53,87,87,87,87,87,87,87,87,93,87,93,93,87, - 93,93,87,93,93,93,11,87,93,93,87,87,87,87,87,87, - 11,87,87,87,93,87,93,136,93,87,87,93,93,93,93,87, - 87,87,93,93,93,93,87,87,93,93,136,93,136,87,87,87, - 93,87,87,87,87,87,87,93,87,93,87,87,87,87,87,87, - 87,87,87,87,87,87,87,87,93,139,93,139,139,93,6,9, - 9,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,112,190,135,129,133,129,129,129, - 112,190,135,129,133,129,129,129,240,190,240,129,137,129,129,129, - 240,173,173,233,233,5,98,76,98,98,98,98,76,98,76,98, - 98,76,3,98,3,76,76,3,98,98,98,98,98,98,3,3, - 76,3,98,98,5,3,3,3,98,3,3,3,98,98,224,98, - 53,53,53,53,53,87,87,53,87,87,87,87,87,87,87,53, - 53,87,87,87,87,93,87,87,87,93,93,87,87,87,87,87, - 87,93,87,87,87,87,87,87,136,93,87,87,87,87,87,87, - 87,87,87,87,87,87,136,87,87,87,87,87,87,136,87,87, - 87,87,87,87,87,87,87,93,87,93,136,93,87,87,87,87, - 87,87,87,87,93,87,87,87,87,87,93,93,225,87,108,9, - 173,240,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,135,28,112,240,202,240,240, - 196,135,28,112,240,202,240,240,196,240,244,112,129,28,240,240, - 196,173,173,233,35,31,98,57,98,76,98,98,98,98,98,98, - 98,98,3,76,98,98,98,3,3,3,98,3,98,98,98,3, - 98,3,3,98,76,76,76,98,76,98,98,3,3,98,98,57, - 53,53,56,53,53,53,53,87,53,87,53,87,87,53,87,87, - 87,87,53,87,87,87,87,87,87,87,87,11,87,87,87,87, - 93,87,87,87,87,87,87,87,87,87,87,87,87,87,87,53, - 136,87,87,87,87,87,87,87,87,87,87,136,208,87,87,87, - 87,87,87,87,87,87,87,208,87,87,87,87,136,53,87,93, - 87,87,87,93,87,87,93,93,87,87,87,87,93,93,154,9, - 28,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,115,190,142,142,142,142,142,115, - 115,190,142,142,142,142,142,115,89,190,115,115,89,142,142,115, - 142,15,15,173,220,98,76,98,98,98,98,76,98,98,98,98, - 98,98,98,3,3,3,98,98,98,98,98,98,252,98,98,76, - 98,76,98,3,3,3,98,3,3,3,3,98,98,3,57,98, - 56,53,53,53,53,53,53,53,53,87,53,53,87,87,87,87, - 53,87,87,53,53,87,87,87,136,53,87,87,87,87,87,87, - 87,93,87,87,87,87,87,87,87,53,87,87,87,87,87,56, - 53,87,87,56,136,87,87,208,136,87,87,87,87,87,87,208, - 136,87,87,87,208,87,87,87,208,87,208,87,87,87,87,87, - 87,87,87,87,87,87,87,87,87,93,87,87,87,136,154,233, - 191,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,129,244,40,80,40,80,80,151,129,244,40,80,40,80,80, - 151,151,203,40,80,40,40,80,40,129,135,80,80,80,80,80, - 80,173,173,233,35,31,98,76,31,98,76,98,98,98,98,98, - 98,98,98,98,98,98,98,98,57,98,98,98,98,98,98,3, - 3,98,76,98,98,3,98,98,76,98,3,3,98,98,57,57, - 53,53,56,53,53,53,53,53,53,53,87,53,53,53,53,53, - 87,53,53,87,87,87,136,87,87,87,87,87,87,53,87,53, - 87,53,53,87,53,87,53,87,53,87,53,53,53,53,53,87, - 87,53,53,87,87,53,53,87,136,53,53,208,136,136,208,87, - 87,208,136,87,87,136,87,53,87,87,87,87,87,87,87,208, - 87,87,87,87,87,87,87,87,87,93,87,87,136,87,108,9, - 173,206,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 172,190,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 172,190,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 172,190,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 172,190,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 172,190,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 172,190,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 172,190,190,40,80,80,80,80,172,190,190,40,80,80,80,80, - 40,206,135,40,80,80,80,80,40,190,58,40,80,80,80,40, - 137,173,173,9,233,76,31,98,76,98,98,31,98,76,98,98, - 57,98,98,57,98,98,98,98,98,98,57,98,98,252,98,98, - 98,3,98,98,98,76,3,3,3,180,76,98,3,98,98,57, - 246,53,246,56,56,56,53,53,53,53,53,53,53,53,87,53, - 87,53,53,53,53,53,53,53,87,53,53,136,87,53,136,53, - 87,87,53,87,53,87,53,53,53,53,53,53,136,53,43,53, - 53,87,53,56,56,53,56,53,53,53,53,53,53,53,53,208, - 87,53,56,53,53,56,53,136,136,208,136,87,208,208,136,53, - 87,87,56,87,208,87,87,87,87,87,87,87,87,87,154,9, - 173,129,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 137,151,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 137,151,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 137,151,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 137,151,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 137,151,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 137,151,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 137,151,58,80,80,80,80,80,137,151,58,80,80,80,80,80, - 151,129,58,80,80,80,80,80,151,190,190,80,40,40,80,80, - 206,173,9,233,233,98,76,31,76,31,3,76,98,98,98,98, - 98,98,98,98,98,98,98,98,98,98,98,98,98,3,98,98, - 98,98,252,98,98,98,98,98,98,3,252,98,3,98,98,57, - 56,56,56,53,53,53,53,56,53,53,53,53,53,87,53,87, - 53,87,53,53,53,87,87,87,53,53,87,53,53,53,53,53, - 53,53,53,53,53,53,43,53,53,53,53,53,53,53,56,53, - 87,53,53,53,53,53,53,136,53,53,53,136,53,53,53,53, - 53,53,53,53,53,53,87,56,53,53,56,53,87,87,208,87, - 136,208,87,87,56,53,53,53,56,87,87,87,136,87,108,173, - 191,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,40,40,190,58,80,80,80,80,40, - 40,190,58,80,80,80,80,80,151,190,58,80,80,80,80,80, - 137,9,173,9,233,31,31,3,76,98,31,98,98,98,57,98, - 98,98,31,98,98,98,98,98,98,98,98,98,98,98,98,98, - 98,252,98,252,98,98,98,98,98,98,98,98,98,98,57,57, - 246,53,246,56,56,56,53,56,56,53,53,53,53,53,53,53, - 53,87,87,87,53,53,53,53,87,53,53,53,53,53,53,53, - 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,56, - 56,53,53,53,53,53,56,53,136,53,56,136,56,53,53,136, - 56,136,56,53,53,56,53,53,53,53,53,53,53,87,56,10, - 208,56,136,208,53,56,136,136,87,87,56,56,87,56,108,173, - 173,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,40,137,190,58,40,58,40,40,40, - 151,206,190,40,40,40,40,206,206,190,190,40,40,40,206,206, - 206,173,173,233,233,98,76,31,76,98,76,76,31,98,76,98, - 98,98,98,31,98,31,98,31,98,98,98,98,57,98,98,98, - 57,98,98,252,252,252,98,98,224,98,75,224,98,3,98,57, - 56,246,56,56,53,53,56,53,53,53,53,53,53,53,53,53, - 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, - 53,53,53,53,56,56,53,53,53,53,53,53,53,53,10,56, - 53,53,53,53,53,53,53,56,10,53,53,53,53,53,56,10, - 53,56,53,53,53,53,53,53,136,53,56,10,10,56,208,53, - 53,56,56,10,53,53,53,56,136,56,56,56,56,56,154,173, - 203,129,58,40,40,80,80,40,137,129,58,40,80,40,80,40, - 137,129,58,40,80,40,80,40,137,129,58,40,80,40,80,40, - 137,129,58,40,80,40,80,40,137,129,58,40,80,40,80,40, - 137,129,58,40,80,40,80,40,137,129,58,40,80,40,80,40, - 137,129,58,40,80,40,80,40,137,129,58,40,80,40,80,40, - 137,129,58,40,80,40,80,40,137,129,58,40,80,40,80,40, - 137,129,58,40,80,40,80,40,137,129,58,40,80,40,80,40, - 137,129,58,40,80,40,80,40,137,129,58,80,80,40,80,80, - 129,190,58,40,80,40,40,80,151,190,58,80,40,40,80,80, - 151,9,173,9,233,31,76,76,76,98,31,76,76,98,76,31, - 98,31,98,98,98,98,98,98,98,98,98,57,98,98,98,57, - 98,98,98,98,98,98,252,252,98,201,76,252,98,98,57,57, - 246,56,53,246,246,53,53,53,53,53,246,53,53,53,53,53, - 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, - 53,53,56,53,53,53,53,43,53,43,56,53,53,56,53,53, - 53,53,10,56,56,53,56,53,56,10,56,53,53,53,43,53, - 53,56,53,53,56,53,53,56,56,10,43,53,53,10,53,56, - 208,53,56,10,53,56,53,53,87,56,56,136,56,56,108,173, - 203,190,58,80,80,80,40,80,206,190,203,80,80,80,80,80, - 206,190,203,80,80,80,80,80,206,190,203,80,80,80,80,80, - 206,190,203,80,80,80,80,80,206,190,203,80,80,80,80,80, - 206,190,203,80,80,80,80,80,206,190,203,80,80,80,80,80, - 206,190,203,80,80,80,80,80,206,190,203,80,80,80,80,80, - 206,190,203,80,80,80,80,80,206,190,203,80,80,80,80,80, - 206,190,203,80,80,80,80,80,206,190,203,80,80,80,80,80, - 206,190,203,80,80,80,80,80,206,190,58,80,80,80,80,40, - 206,190,58,80,80,80,80,80,206,190,191,80,80,80,80,80, - 190,173,173,233,35,31,31,98,31,76,76,98,98,76,98,98, - 98,31,31,98,31,98,98,98,98,31,98,98,98,57,98,98, - 98,98,98,98,98,98,98,252,252,98,98,75,98,98,98,57, - 246,56,171,56,56,246,56,246,56,53,53,53,246,53,53,53, - 53,56,56,53,53,53,53,10,56,53,53,56,53,53,10,56, - 53,56,53,53,53,56,56,10,56,10,56,56,56,56,56,56, - 56,56,56,10,56,56,53,56,53,43,53,56,53,56,56,10, - 56,56,10,56,53,56,56,56,53,56,56,56,56,56,56,56, - 53,53,53,56,10,10,56,10,53,56,56,56,87,56,108,173, - 115,191,115,58,58,58,58,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,244,202,244,190,115,58,58,244,244,202, - 244,190,115,58,58,244,196,202,244,191,115,58,58,58,58,142, - 244,191,115,58,58,58,196,202,196,244,115,58,58,58,196,142, - 244,173,173,9,233,31,76,76,98,76,31,98,31,76,31,98, - 98,98,98,98,98,98,98,31,98,98,98,98,57,98,98,98, - 98,98,98,98,98,98,98,98,98,98,98,98,224,224,57,57, - 56,56,246,56,56,56,56,53,56,56,56,53,53,53,53,56, - 53,53,56,56,56,53,53,53,56,10,53,56,56,53,53,56, - 53,10,56,56,10,56,56,53,56,53,56,56,10,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,43,53,43,56, - 56,43,43,56,56,53,56,56,56,56,56,56,56,53,43,56, - 56,56,56,53,43,56,53,56,53,53,87,56,56,56,108,203, - 203,190,58,129,129,129,129,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,151,137,244,58,58,129,129,190,151,137, - 244,58,58,129,129,190,137,137,244,58,58,129,129,240,129,129, - 112,190,58,129,129,191,137,137,240,190,58,129,129,240,129,129, - 240,173,173,9,233,31,31,57,76,98,57,76,98,98,98,98, - 31,98,98,31,98,31,3,31,98,98,98,98,98,98,98,98, - 98,252,75,75,76,98,98,98,98,98,98,3,252,224,224,57, - 246,56,171,56,246,56,53,56,246,53,53,53,246,53,246,53, - 56,56,53,53,53,53,53,53,53,53,53,53,53,56,56,53, - 56,53,53,53,53,53,56,56,53,56,53,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,43,56,56,171,56,171,56, - 56,171,171,56,56,56,56,56,56,53,53,56,56,56,171,56, - 56,53,56,56,56,56,56,53,56,53,56,43,56,56,108,173, - 15,190,58,129,129,240,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,191,129,133,112,190,244,129,129,191,129,133, - 112,190,244,129,129,240,129,133,112,190,244,129,129,129,129,151, - 244,190,244,129,133,191,129,129,240,190,240,137,129,190,129,129, - 240,173,173,9,35,31,57,98,57,57,98,57,57,76,31,98, - 98,31,98,98,98,98,98,98,31,98,57,98,98,98,98,98, - 98,57,57,57,98,98,98,98,98,98,98,57,57,224,57,165, - 171,246,56,246,56,246,53,53,246,246,56,53,246,53,56,53, - 53,56,56,53,246,56,56,56,56,56,56,56,56,56,10,56, - 56,56,56,56,56,53,56,56,56,56,56,56,56,56,56,56, - 56,56,10,56,171,56,56,56,171,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,171,56, - 56,56,56,56,56,56,56,56,56,56,56,56,53,56,205,203, - 203,191,244,129,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,129,129,129,244,190,244,133,129,129,129,129, - 244,190,244,133,129,191,129,129,244,191,244,133,133,112,133,129, - 240,191,244,137,129,240,129,151,58,191,244,133,129,191,151,151, - 58,173,173,9,35,31,31,31,76,31,57,76,31,76,98,31, - 76,98,31,98,31,98,31,98,98,98,98,98,57,98,57,98, - 98,98,98,98,224,98,98,98,224,98,98,98,98,224,224,57, - 246,246,56,56,246,56,246,246,53,246,53,246,53,246,53,246, - 246,53,53,246,53,53,53,53,53,56,53,56,53,53,56,56, - 56,56,56,56,56,56,56,56,56,10,56,56,10,56,56,56, - 56,171,56,171,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,171,171,56,56,56, - 56,56,56,56,56,171,171,10,56,53,56,56,10,171,108,173, - 15,190,135,129,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,129,240,129,137,28,190,244,137,129,240,129,137, - 28,190,244,137,133,191,129,137,244,190,244,220,129,191,129,129, - 244,190,240,129,129,190,129,129,244,58,244,137,133,129,129,129, - 240,173,173,9,220,31,76,76,31,57,76,31,76,31,31,98, - 31,31,98,31,98,98,98,98,31,98,98,57,98,57,98,57, - 57,98,98,224,98,224,224,224,76,224,224,224,224,224,57,165, - 246,56,246,56,246,56,56,246,53,246,56,246,53,246,53,53, - 246,246,53,246,246,246,56,246,53,56,53,246,56,246,56,56, - 53,56,246,56,56,56,56,56,56,56,56,56,56,171,56,56, - 56,56,56,56,56,56,56,56,56,56,56,171,56,171,56,56, - 56,56,56,171,56,56,56,171,171,171,56,56,171,171,171,171, - 171,56,171,171,171,56,171,56,56,10,56,56,56,246,205,203, - 203,240,202,240,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 244,240,28,112,240,240,240,240,244,240,28,112,240,240,240,240, - 196,240,28,112,191,112,240,240,244,240,28,112,240,244,240,240, - 196,240,202,240,129,112,240,240,244,240,28,112,240,28,240,240, - 196,173,9,9,35,31,31,162,31,31,57,57,57,57,31,76, - 98,31,98,98,31,98,31,98,31,31,57,98,57,57,98,98, - 57,57,57,57,57,57,57,57,224,224,224,57,57,165,31,195, - 106,106,106,56,246,246,53,246,246,53,246,53,246,53,246,246, - 246,53,246,246,53,246,53,56,246,56,56,56,56,56,56,56, - 246,56,56,56,56,56,171,56,56,56,171,171,171,56,171,171, - 171,171,222,171,171,171,171,171,56,56,56,56,171,56,56,56, - 56,56,171,56,56,56,171,106,171,171,171,171,171,171,171,171, - 171,171,56,56,56,171,171,171,56,56,56,56,56,171,205,115, - 15,190,142,142,115,142,142,142,115,151,142,142,115,142,142,142, - 115,151,142,142,115,142,142,142,115,151,142,142,115,142,142,142, - 115,151,142,142,115,142,142,142,115,151,142,142,115,142,142,142, - 115,151,142,142,115,142,142,142,115,151,142,142,115,142,142,142, - 115,151,142,142,115,142,142,142,115,151,142,142,115,142,142,142, - 115,151,142,142,115,142,142,142,115,151,142,142,115,142,142,142, - 115,151,142,142,115,142,142,142,115,151,142,142,115,142,142,142, - 115,151,142,142,115,142,142,142,115,151,115,142,142,142,142,142, - 115,206,142,115,115,142,142,142,142,129,142,202,142,142,142,115, - 142,15,15,173,129,31,31,31,31,76,57,31,57,57,57,31, - 31,57,31,31,57,31,57,98,98,98,57,57,98,57,57,57, - 57,98,98,224,224,224,224,224,57,57,57,98,98,57,57,165, - 56,246,246,246,246,246,246,53,246,246,246,53,246,246,53,246, - 246,53,246,56,246,246,246,56,246,246,56,246,56,56,56,171, - 56,171,171,171,171,56,171,171,171,56,56,56,171,171,171,56, - 171,56,56,56,222,171,171,171,171,171,171,56,171,171,171,171, - 171,56,171,171,171,56,56,56,171,171,171,171,171,102,171,171, - 171,102,102,102,102,171,171,171,171,56,56,171,56,106,103,33, - 173,129,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 80,190,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 80,190,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 80,190,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 80,190,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 80,190,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 80,190,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 80,190,58,40,80,80,80,80,80,190,135,80,80,80,40,80, - 80,129,244,80,80,80,80,80,151,190,244,80,40,80,80,80, - 80,15,173,9,35,31,31,31,31,31,76,31,31,57,57,57, - 98,57,98,31,57,31,31,31,57,57,57,57,57,57,57,98, - 57,57,57,57,57,57,57,224,224,224,36,224,224,57,57,195, - 77,246,246,246,246,246,246,246,53,246,246,246,246,53,246,246, - 53,246,56,56,246,56,246,53,56,246,56,171,56,246,246,56, - 106,246,56,106,246,171,246,171,56,171,171,171,56,56,222,171, - 171,171,171,171,171,171,56,171,171,171,171,171,171,171,171,171, - 171,171,171,171,171,171,171,171,171,171,171,171,171,106,171,171, - 102,171,171,171,171,171,102,171,171,171,171,171,171,102,108,173, - 173,206,58,80,40,80,40,80,151,206,58,80,40,80,40,80, - 151,206,58,80,40,80,40,80,151,206,58,80,40,80,40,80, - 151,206,58,80,40,80,40,80,151,206,58,80,40,80,40,80, - 151,206,58,80,40,80,40,80,151,206,58,80,40,80,40,80, - 151,206,58,80,40,80,40,80,151,206,58,80,40,80,40,80, - 151,206,58,80,40,80,40,80,151,206,58,80,40,80,40,80, - 151,206,58,80,40,80,40,80,151,206,58,80,40,80,40,80, - 151,190,190,80,40,80,40,80,151,190,58,40,80,80,80,80, - 206,135,58,80,80,80,40,40,80,190,58,80,80,80,80,40, - 137,173,173,220,220,31,31,31,31,31,31,31,57,31,31,31, - 31,31,31,57,57,57,57,57,31,57,57,57,57,57,57,57, - 57,57,57,57,57,57,36,57,57,57,57,165,57,165,195,31, - 106,246,246,246,246,246,246,246,246,246,53,246,246,246,53,246, - 246,246,56,246,56,246,246,246,246,106,246,106,171,171,106,56, - 171,171,56,171,106,171,246,106,56,171,171,171,171,171,171,171, - 171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171, - 171,171,171,171,171,171,171,171,102,181,171,171,171,102,181,171, - 181,181,181,102,181,171,90,171,102,181,171,171,171,181,103,40, - 173,129,58,80,80,80,80,80,172,129,244,80,80,40,80,80, - 172,129,244,80,80,40,80,80,172,129,244,80,80,40,80,80, - 172,129,244,80,80,40,80,80,172,129,244,80,80,40,80,80, - 172,129,244,80,80,40,80,80,172,129,244,80,80,40,80,80, - 172,129,244,80,80,40,80,80,172,129,244,80,80,40,80,80, - 172,129,244,80,80,40,80,80,172,129,244,80,80,40,80,80, - 172,129,244,80,80,40,80,80,172,129,244,80,80,40,80,80, - 206,129,58,80,80,80,80,80,206,190,58,80,40,80,80,80, - 151,190,135,80,40,80,80,80,206,206,58,80,40,40,80,80, - 206,173,173,9,35,94,31,31,31,94,31,31,31,31,31,31, - 31,31,31,31,31,31,31,57,31,31,31,57,57,57,57,57, - 57,57,57,57,57,57,57,57,57,57,57,57,224,57,165,195, - 246,77,77,246,246,246,246,246,246,246,246,246,246,246,246,246, - 53,246,246,246,56,246,171,246,171,246,171,56,246,106,56,106, - 246,106,106,171,171,171,171,171,106,171,171,171,171,106,171,171, - 171,171,171,171,171,102,171,171,171,171,171,171,171,171,171,171, - 171,171,171,171,171,102,181,102,106,102,181,102,181,171,102,102, - 102,171,171,121,102,90,181,181,171,102,171,171,171,121,103,173, - 28,190,58,80,80,80,40,80,40,206,58,80,80,80,40,80, - 40,206,58,80,80,80,40,80,40,206,58,80,80,80,40,80, - 40,206,58,80,80,80,40,80,40,206,58,80,80,80,40,80, - 40,206,58,80,80,80,40,80,40,206,58,80,80,80,40,80, - 40,206,58,80,80,80,40,80,40,206,58,80,80,80,40,80, - 40,206,58,80,80,80,40,80,40,206,58,80,80,80,40,80, - 40,206,58,80,80,80,40,80,40,206,58,80,80,80,80,80, - 206,190,58,80,80,80,40,80,137,190,58,80,80,80,40,80, - 151,190,58,80,80,80,80,80,151,190,58,80,80,80,80,80, - 137,173,173,220,220,94,31,94,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,57,31,57,57,57,31,57,57,31,57, - 31,57,57,57,57,31,165,165,165,165,57,165,57,31,31,237, - 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, - 246,246,246,246,246,246,246,56,106,246,106,106,246,106,171,171, - 56,171,106,106,171,106,56,171,106,106,171,171,171,106,171,171, - 171,171,171,171,171,102,171,171,171,171,171,171,171,171,171,102, - 171,171,171,171,106,171,106,102,171,171,171,171,181,171,121,181, - 102,121,102,181,181,102,102,102,181,181,181,181,102,121,103,9, - 28,129,58,40,40,40,40,190,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,206,129,190,40,40,40,40,206, - 80,190,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 206,173,173,9,35,31,31,31,31,94,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,57,31,31,31,31,57, - 31,57,57,57,57,57,57,57,57,119,57,195,165,195,195,195, - 77,77,77,77,77,246,246,246,246,246,246,246,246,246,246,246, - 246,246,246,246,246,246,246,246,246,106,246,246,171,246,246,106, - 106,106,171,106,106,171,106,106,56,171,106,106,106,171,106,106, - 106,171,171,171,171,106,102,106,102,102,181,171,171,171,171,106, - 171,171,171,102,171,171,102,171,181,121,102,121,102,181,102,102, - 181,102,181,102,121,181,121,102,121,102,181,171,171,19,113,203, - 203,190,58,40,80,80,80,80,206,190,58,80,80,80,80,80, - 206,190,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 206,190,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 206,190,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 206,190,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 206,190,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 206,190,58,80,80,80,80,80,206,190,58,80,80,40,80,40, - 151,190,58,40,80,80,80,80,206,190,58,40,80,80,80,40, - 151,190,58,40,40,80,80,40,40,129,58,80,40,40,80,80, - 151,173,173,191,154,237,94,94,31,94,31,94,31,31,31,237, - 31,31,31,31,31,31,31,31,31,31,31,31,31,57,31,31, - 31,31,31,195,31,31,31,195,195,31,25,57,165,195,195,237, - 77,77,77,77,246,77,246,246,246,246,43,246,246,246,246,246, - 246,246,246,246,246,246,246,246,246,246,246,246,106,106,106,106, - 106,106,106,106,106,106,106,106,106,106,171,106,106,171,181,181, - 106,106,106,106,171,106,181,106,106,106,181,181,181,102,106,102, - 181,171,106,102,181,106,181,102,102,181,102,181,102,121,181,181, - 181,121,102,181,102,102,90,181,56,56,19,121,102,19,103,203, - 28,129,203,80,80,80,80,40,135,129,58,80,40,80,80,40, - 135,129,58,80,40,80,80,40,135,129,58,80,40,80,80,40, - 135,129,58,80,40,80,80,40,135,129,58,80,40,80,80,40, - 135,129,58,80,40,80,80,40,135,129,58,80,40,80,80,40, - 135,129,58,80,40,80,80,40,135,129,58,80,40,80,80,40, - 135,129,58,80,40,80,80,40,135,129,58,80,40,80,80,40, - 135,129,58,80,40,80,80,40,135,129,244,80,80,80,40,80, - 206,129,203,80,80,80,80,80,190,190,58,80,80,40,40,80, - 135,129,58,80,80,80,80,80,135,190,191,80,80,80,80,80, - 190,15,173,9,6,237,31,237,31,31,31,94,31,31,31,237, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,31,195,31,195,31,195,195,119,195,195,57,25,25,237, - 77,77,77,77,246,77,77,246,77,77,246,77,246,246,246,246, - 246,246,246,246,246,246,246,246,246,246,106,106,246,246,246,106, - 106,106,106,106,106,106,106,106,106,106,106,106,181,106,106,106, - 181,106,106,181,106,171,106,102,181,102,106,171,106,106,181,171, - 171,121,181,106,171,102,171,181,121,181,19,181,181,181,181,181, - 102,181,121,102,121,121,121,181,181,181,102,102,181,181,187,203, - 28,135,115,58,244,58,196,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,240,115,58,244,244,244,28, - 196,240,115,58,244,244,244,28,196,190,115,58,58,58,58,202, - 196,190,115,58,244,244,142,142,244,191,115,58,58,58,58,196, - 244,240,115,58,58,244,196,196,244,244,115,58,58,58,196,142, - 244,173,173,191,220,237,31,94,31,94,31,237,94,237,195,31, - 237,237,195,195,195,195,195,195,31,210,195,195,195,31,31,31, - 195,31,31,31,195,31,195,195,195,237,195,195,195,195,237,237, - 77,77,77,77,246,246,246,77,246,77,77,246,77,77,77,246, - 77,77,246,77,246,77,77,77,246,77,77,246,77,77,246,77, - 246,246,246,246,106,106,106,106,181,181,106,106,106,106,106,106, - 181,181,106,181,181,181,106,106,106,106,181,181,102,106,121,181, - 171,106,102,121,181,121,181,181,102,181,181,181,181,102,121,181, - 181,181,181,181,19,102,102,181,121,121,121,102,121,102,130,203, - 203,240,58,129,129,240,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,190,244,137,137,191,137,151, - 244,190,244,137,137,191,137,151,244,240,58,129,129,129,129,137, - 196,190,58,129,129,190,129,129,112,190,58,129,133,129,129,129, - 244,190,190,129,129,191,137,129,244,190,58,129,129,240,129,129, - 240,15,173,9,35,237,237,94,237,31,94,237,31,237,31,195, - 31,237,31,237,31,195,31,195,237,31,31,31,210,31,195,31, - 195,195,195,31,195,195,31,195,195,195,195,237,195,237,139,237, - 77,77,77,77,77,77,77,77,77,246,77,77,246,77,246,77, - 246,77,77,77,246,246,246,246,246,77,246,77,246,246,77,246, - 77,77,77,77,106,106,106,106,77,77,106,106,106,106,106,106, - 106,106,106,106,106,171,181,181,106,181,106,171,106,106,171,106, - 121,102,121,102,181,102,181,181,181,121,102,121,181,181,181,102, - 121,181,181,181,181,121,121,102,102,102,121,181,181,156,103,203, - 28,190,244,151,129,191,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,244,190,240,129,151,240,137,129, - 244,190,240,129,151,240,137,129,58,240,244,133,129,240,129,137, - 244,190,244,151,129,190,133,129,244,191,244,129,129,240,129,129, - 244,58,244,129,129,240,133,137,240,190,240,137,129,190,129,129, - 240,173,173,191,205,237,237,94,237,237,237,195,237,195,195,31, - 31,31,237,31,195,237,237,31,31,210,31,237,31,195,195,237, - 237,195,31,210,195,195,195,237,195,237,237,25,237,195,237,20, - 77,66,77,77,77,77,77,77,246,77,77,246,77,77,246,77, - 77,246,77,77,77,77,246,77,246,77,246,77,77,77,77,77, - 106,106,181,77,106,77,77,106,106,106,77,106,106,181,106,106, - 106,106,106,106,106,106,171,121,106,106,106,106,121,121,181,102, - 121,181,181,181,121,171,181,181,181,181,181,102,181,121,181,181, - 102,102,181,181,181,102,121,181,121,102,102,90,181,19,198,115, - 173,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,58,129,129,129,137,137, - 240,190,58,129,129,129,137,137,240,190,244,129,129,129,129,129, - 240,190,58,129,129,240,129,151,240,190,58,129,129,129,129,133, - 240,191,135,129,129,191,129,133,244,191,244,133,129,240,151,151, - 58,173,173,173,6,237,94,31,237,31,94,31,237,237,237,237, - 237,195,195,237,195,31,237,195,237,237,31,237,237,31,210,31, - 237,237,237,237,237,237,31,237,195,195,195,210,25,25,237,139, - 77,77,77,77,77,77,246,77,77,246,77,77,77,77,246,246, - 77,77,77,77,77,77,246,77,246,77,77,246,246,77,77,106, - 77,77,77,106,77,181,106,106,77,194,106,181,194,77,121,106, - 106,181,181,121,181,181,181,106,181,181,121,181,106,106,106,77, - 102,121,171,106,171,19,171,181,171,121,181,121,181,102,121,171, - 121,171,121,181,181,121,181,102,121,121,121,121,181,19,108,203, - 28,190,240,133,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,203,240,137,129,129,129,129, - 244,203,240,137,129,129,129,129,244,190,244,129,129,85,137,129, - 196,190,240,133,137,191,129,151,244,191,244,129,129,85,129,129, - 240,244,135,133,137,191,129,129,244,58,244,137,137,129,129,129, - 240,173,28,191,154,20,20,94,20,94,237,237,31,195,237,237, - 237,237,237,237,237,237,237,31,210,31,237,237,237,237,237,237, - 237,31,31,31,210,31,210,195,31,210,237,195,237,237,139,20, - 77,77,77,77,77,77,77,77,246,246,246,246,246,246,77,246, - 246,246,77,246,77,246,77,246,77,246,77,77,246,246,77,106, - 106,106,77,106,77,194,77,181,106,194,77,106,106,106,194,194, - 106,106,106,77,106,77,181,106,106,106,181,181,121,181,181,77, - 106,181,121,181,106,121,181,121,181,181,181,181,121,121,121,181, - 181,181,181,181,181,121,121,181,181,181,181,102,121,156,103,244, - 28,240,28,28,240,202,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,196,190,202,112,240,28,85,240, - 196,190,202,112,240,28,85,240,28,240,112,240,240,28,240,240, - 202,240,28,28,129,28,240,240,196,135,240,240,240,28,240,240, - 196,240,28,28,129,28,240,240,196,191,28,112,129,28,240,240, - 196,173,15,9,6,237,237,94,237,237,94,237,237,195,195,195, - 237,237,31,195,195,195,237,237,237,237,31,31,237,31,237,31, - 251,237,237,237,237,31,237,237,237,31,237,25,237,237,237,20, - 194,194,77,77,77,77,246,77,77,77,246,246,77,246,246,77, - 246,77,246,77,77,77,77,246,246,77,246,246,77,77,106,77, - 77,77,194,77,77,106,194,77,77,106,181,194,181,77,106,106, - 121,77,106,181,121,121,77,121,194,121,77,106,77,181,121,181, - 121,121,181,121,194,121,181,181,121,121,121,181,181,181,121,181, - 121,121,121,181,121,181,121,121,181,121,121,156,181,156,113,15, - 115,206,89,142,142,115,196,142,142,206,142,142,142,115,142,142, - 142,206,142,142,142,115,142,142,142,206,142,142,142,115,142,142, - 142,206,142,142,142,115,142,142,142,206,142,142,142,115,142,142, - 142,206,142,142,142,115,142,142,142,206,142,142,142,115,142,142, - 142,206,142,142,142,115,142,142,142,206,142,142,142,115,142,142, - 142,206,142,142,142,115,142,142,142,206,142,142,142,115,142,142, - 142,206,142,142,142,115,142,142,115,206,142,142,142,142,142,142, - 115,190,142,115,89,142,142,142,115,190,142,142,142,142,142,115, - 72,190,142,115,89,142,142,142,142,129,89,115,89,142,142,115, - 142,15,202,28,129,16,20,94,20,237,20,237,237,237,237,237, - 237,237,237,237,237,237,237,237,237,210,237,237,210,237,31,237, - 237,31,210,31,237,237,195,195,195,237,237,237,25,237,20,139, - 77,77,77,77,77,77,77,246,77,246,77,77,77,77,77,77, - 246,77,246,77,246,77,77,77,77,77,77,77,77,77,77,77, - 77,77,194,194,77,77,194,194,194,194,77,77,194,194,194,77, - 181,194,77,194,194,181,194,121,194,194,194,121,77,121,194,194, - 77,77,77,121,194,77,194,121,121,194,194,121,194,121,194,121, - 121,77,181,121,181,156,181,181,121,181,121,19,156,156,113,9, - 173,129,190,80,40,80,80,80,151,129,244,80,40,80,80,80, - 151,129,244,80,40,80,80,80,151,129,244,80,40,80,80,80, - 151,129,244,80,40,80,80,80,151,129,244,80,40,80,80,80, - 151,129,244,80,40,80,80,80,151,129,244,80,40,80,80,80, - 151,129,244,80,40,80,80,80,151,129,244,80,40,80,80,80, - 151,129,244,80,40,80,80,80,151,129,244,80,40,80,80,80, - 151,129,244,80,40,80,40,80,80,190,244,80,40,80,40,80, - 151,129,58,80,80,80,80,80,80,190,244,80,40,40,80,80, - 40,129,244,80,80,40,80,80,151,190,244,80,80,80,80,80, - 80,15,28,9,233,20,20,31,20,94,237,20,20,237,237,20, - 237,237,237,237,237,237,237,237,237,237,237,237,237,20,237,237, - 20,237,237,31,237,237,237,237,237,237,237,237,237,237,20,20, - 194,194,194,77,77,77,246,77,77,246,77,246,246,77,77,77, - 77,77,77,246,77,246,77,246,77,77,77,106,77,77,77,77, - 77,77,77,77,194,194,77,77,77,77,194,194,121,77,77,194, - 77,77,194,77,194,66,194,194,121,194,66,194,66,194,66,194, - 156,107,156,77,77,66,66,194,194,121,66,66,194,194,194,219, - 194,156,194,121,156,121,194,156,156,156,121,194,121,107,113,191, - 203,135,244,80,80,40,40,40,40,190,244,80,80,40,40,40, - 40,190,244,80,80,40,40,40,40,190,244,80,80,40,40,40, - 40,190,244,80,80,40,40,40,40,190,244,80,80,40,40,40, - 40,190,244,80,80,40,40,40,40,190,244,80,80,40,40,40, - 40,190,244,80,80,40,40,40,40,190,244,80,80,40,40,40, - 40,190,244,80,80,40,40,40,40,190,244,80,80,40,40,40, - 40,190,244,80,80,80,40,80,151,190,58,80,80,80,80,80, - 40,85,58,80,80,40,80,80,151,190,58,80,80,80,80,80, - 40,151,58,80,80,80,40,40,80,129,58,40,80,80,80,40, - 137,15,173,220,154,16,20,20,20,20,237,237,237,20,20,237, - 20,20,20,237,237,237,237,237,20,237,237,20,237,237,20,237, - 237,20,20,237,237,237,20,20,237,237,237,237,237,139,20,226, - 181,194,194,181,77,194,77,106,77,77,77,77,77,77,77,77, - 77,77,77,77,77,77,77,77,77,77,77,77,77,194,194,77, - 77,194,194,77,77,194,194,66,194,77,77,77,77,194,77,194, - 66,66,194,77,194,77,77,194,194,194,194,194,66,194,66,66, - 77,77,66,107,194,77,77,66,194,194,156,66,194,66,194,194, - 194,66,194,66,194,107,66,194,194,156,107,156,156,184,113,191, - 203,190,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,40,80,80,80, - 80,190,190,80,40,80,40,80,151,151,58,80,80,80,80,80, - 151,190,135,80,80,80,80,80,206,206,190,80,40,40,80,80, - 206,15,173,9,35,20,20,20,237,20,20,20,20,237,237,237, - 237,237,20,20,20,20,20,237,20,20,237,20,20,237,20,237, - 237,237,20,237,237,237,237,237,237,237,20,237,237,251,20,20, - 194,194,194,77,181,77,194,77,77,77,77,77,77,77,77,77, - 77,77,77,77,77,77,77,77,106,77,77,194,77,77,77,194, - 194,77,77,194,66,77,66,77,77,66,194,66,66,77,194,66, - 121,77,194,194,77,194,194,66,194,194,194,194,121,194,194,121, - 107,194,121,77,66,66,107,194,66,66,194,194,66,156,66,66, - 66,156,66,156,107,107,156,107,107,107,156,107,107,184,113,203, - 191,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,40,80,40,190,58,80,80,80,80,80, - 206,135,58,80,80,80,40,80,40,190,58,80,80,80,40,80, - 206,190,244,80,40,80,80,80,206,190,58,80,80,80,80,80, - 137,173,173,220,220,16,20,20,20,20,20,237,20,20,20,20, - 20,20,237,237,237,237,237,20,20,237,237,20,237,20,237,20, - 20,20,237,20,20,237,237,20,237,20,237,237,20,20,20,16, - 194,194,194,194,194,77,181,194,181,77,77,181,77,77,106,194, - 77,194,77,77,77,77,106,77,194,194,77,194,77,77,77,77, - 194,194,77,194,194,77,194,194,77,194,77,194,194,66,77,77, - 194,77,121,194,194,121,77,194,194,77,66,194,194,121,77,194, - 66,194,156,194,194,194,66,194,194,66,107,156,66,194,107,156, - 66,107,66,66,66,107,107,107,107,107,107,30,156,184,198,28, - 28,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,206,151,129,58,40,40,40,40,206, - 151,129,58,40,40,40,40,40,151,129,58,40,40,58,40,206, - 151,190,203,40,40,40,40,206,151,129,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,151,190,190,40,40,40,206,206, - 206,15,173,220,154,16,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,237,237,20,20,20,20,237,20,20,237, - 237,20,20,237,20,20,237,20,20,20,20,20,20,20,226,16, - 181,194,181,194,181,194,181,77,106,181,194,106,194,181,181,106, - 194,106,194,194,181,106,77,77,106,77,181,77,194,194,194,194, - 77,77,194,77,194,66,77,77,194,77,194,194,194,194,121,194, - 194,66,77,194,194,194,194,121,77,121,194,77,66,77,107,194, - 121,66,66,194,107,66,194,66,107,66,66,66,194,107,66,66, - 107,194,107,107,107,107,107,107,107,107,156,107,156,30,198,203, - 244,129,58,40,80,80,80,80,206,129,58,40,80,80,80,80, - 206,129,58,40,80,80,80,80,206,129,58,40,80,80,80,80, - 206,129,58,40,80,80,80,80,206,129,58,40,80,80,80,80, - 206,129,58,40,80,80,80,80,206,129,58,40,80,80,80,80, - 206,129,58,40,80,80,80,80,206,129,58,40,80,80,80,80, - 206,129,58,40,80,80,80,80,206,129,58,40,80,80,80,80, - 206,129,58,40,80,80,40,40,40,129,58,40,80,80,40,80, - 151,206,58,80,80,80,40,80,206,190,58,40,80,80,80,80, - 151,190,58,80,80,80,80,80,151,190,58,80,40,40,80,80, - 151,173,15,173,205,11,16,16,16,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,237,20,251,237,20,20,237,20,20,237,237,20,20,226, - 194,19,194,181,194,106,181,181,181,194,181,181,106,106,181,181, - 181,106,106,77,194,181,194,77,181,77,181,194,194,106,77,194, - 194,194,194,194,194,156,194,66,194,66,77,194,77,194,194,77, - 121,66,66,66,194,194,66,107,66,194,194,77,66,194,66,66, - 194,194,66,121,194,228,156,66,66,66,228,228,107,107,107,107, - 228,107,107,107,66,107,107,156,107,156,107,107,107,104,113,28, - 28,190,58,80,40,80,40,40,135,190,58,80,40,80,40,40, - 135,190,58,80,40,80,40,40,135,190,58,80,40,80,40,40, - 135,190,58,80,40,80,40,40,135,190,58,80,40,80,40,40, - 135,190,58,80,40,80,40,40,135,190,58,80,40,80,40,40, - 135,190,58,80,40,80,40,40,135,190,58,80,40,80,40,40, - 135,190,58,80,40,80,40,40,135,190,58,80,80,40,40,40, - 135,190,203,80,80,80,80,80,206,190,58,80,80,80,80,80, - 190,129,190,40,80,80,80,40,190,129,203,80,80,80,40,40, - 190,129,58,80,40,40,80,80,135,190,191,80,80,80,80,80, - 190,173,173,9,35,11,20,16,16,16,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,251,20,20,16, - 19,194,194,181,194,181,194,181,181,194,181,106,194,181,181,181, - 194,181,181,181,181,77,181,181,77,181,77,106,106,194,194,181, - 194,194,194,194,194,194,194,194,194,194,156,66,156,194,66,107, - 66,194,194,194,66,66,194,194,194,121,107,156,194,121,194,121, - 66,66,66,66,66,66,66,66,107,107,66,228,228,107,228,228, - 107,228,107,107,104,107,107,228,156,228,107,104,107,184,198,28, - 28,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,190,115,58,244,58,196,202,244,191,115,58,58,58,115,196, - 196,244,202,58,58,58,244,196,244,190,115,58,115,58,58,244, - 244,191,115,58,58,244,115,244,196,244,115,58,58,58,196,142, - 244,15,173,9,205,11,16,16,20,16,20,16,16,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,237,20,20,20,20,20,20,20,16,226, - 219,19,194,181,19,194,181,181,194,181,181,181,181,194,181,181, - 181,181,194,194,181,77,181,181,194,181,181,194,181,181,194,194, - 181,194,194,194,194,194,194,194,194,194,194,66,194,194,194,194, - 66,66,194,194,156,66,66,107,66,194,66,107,66,66,107,194, - 66,121,66,107,66,66,228,228,228,228,228,228,228,228,156,228, - 156,104,228,107,104,104,104,104,104,104,107,104,104,73,113,115, - 28,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,190,129,129,129,137,129, - 244,190,190,129,129,129,137,129,244,190,58,129,137,129,137,129, - 196,190,58,129,137,240,137,137,196,190,135,129,129,191,133,129, - 244,190,58,129,129,191,137,129,196,190,58,129,133,129,129,129, - 196,190,244,137,137,191,133,129,240,190,58,129,129,240,129,129, - 240,173,173,9,154,11,16,16,16,16,16,20,16,16,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,237,20,20,20, - 20,237,237,20,237,20,20,237,20,20,20,20,237,251,20,16, - 19,194,19,19,194,19,181,181,194,181,181,194,181,181,181,194, - 181,181,181,194,181,19,181,194,181,181,194,181,181,194,181,194, - 194,194,181,194,194,194,194,194,66,194,194,194,194,66,66,66, - 156,194,66,66,66,194,194,66,194,66,194,66,66,194,66,66, - 66,66,107,66,107,228,66,228,228,228,228,228,104,104,228,104, - 104,228,104,104,228,184,228,228,104,228,104,104,104,184,198,28, - 115,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,133,28,58,135,129,129,240,137,133, - 28,58,135,129,129,240,137,137,244,191,244,137,129,240,137,137, - 244,190,244,129,137,191,129,137,244,203,58,129,129,191,129,129, - 240,190,244,129,133,191,133,129,244,190,244,129,129,129,129,151, - 244,190,240,137,129,191,129,129,240,190,240,137,129,190,129,129, - 240,15,15,9,205,164,16,16,16,16,20,16,20,16,20,20, - 16,20,20,20,20,20,20,20,20,20,20,20,20,16,20,20, - 20,20,20,237,20,20,237,20,237,237,237,20,20,20,16,20, - 219,194,194,194,181,194,181,194,181,181,194,181,181,194,181,181, - 181,194,181,19,181,194,181,181,194,181,181,194,19,194,181,194, - 181,194,181,194,219,194,156,219,194,66,194,107,156,194,219,66, - 107,156,156,107,107,107,194,107,107,66,194,107,107,121,107,156, - 107,107,107,107,107,228,156,228,228,228,228,228,228,104,184,104, - 184,184,184,184,104,184,104,184,104,184,184,30,104,73,187,202, - 28,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,129,240,191,244,129,129,129,129,129, - 240,191,244,129,129,129,129,133,240,190,244,129,129,129,129,133, - 240,190,58,129,137,240,129,133,240,190,244,129,137,190,129,133, - 244,203,244,133,129,129,129,137,240,190,58,129,129,240,129,137, - 240,190,244,137,129,240,129,151,58,191,244,133,129,191,151,151, - 58,173,173,9,6,11,16,16,16,16,16,16,16,16,16,16, - 20,16,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,237,20,20,237,20,20, - 19,19,19,194,194,19,19,181,194,181,181,181,181,181,194,181, - 194,181,181,194,181,181,181,181,181,181,194,181,181,181,219,181, - 219,19,219,181,194,219,194,194,219,219,156,194,219,156,194,219, - 219,219,107,194,107,121,107,107,194,156,107,156,107,107,156,107, - 156,156,184,156,156,107,156,156,104,156,104,228,184,184,184,184, - 184,184,184,184,184,73,73,104,239,104,104,104,104,73,198,15, - 115,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,151,240,58,240,129,129,85,129,151, - 240,58,240,129,129,85,129,129,244,190,240,129,129,85,129,129, - 28,190,244,137,137,129,129,129,240,190,135,133,129,129,129,129, - 135,190,244,129,129,240,133,129,244,190,58,129,129,129,133,129, - 28,58,240,137,129,129,129,129,244,58,244,137,133,129,129,129, - 240,173,173,9,65,164,16,16,16,16,20,20,16,16,20,20, - 16,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,237,20,20,20,20,20,20,20,20,20,20,16, - 194,194,194,194,194,194,19,194,181,194,194,106,77,194,181,194, - 181,77,77,194,194,194,194,181,194,181,219,194,194,181,219,194, - 194,181,219,19,219,219,19,219,194,194,219,194,219,219,219,194, - 194,194,219,219,219,156,219,156,156,219,156,219,219,219,219,219, - 219,219,219,156,219,156,156,156,30,156,30,30,30,107,104,30, - 184,104,184,104,184,30,184,184,239,184,184,239,239,73,130,28, - 28,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,191,196,240,196,240,240,28,240,191, - 196,240,196,240,240,28,240,240,202,240,202,240,240,28,240,240, - 196,112,112,112,129,202,240,240,196,240,202,28,129,202,240,190, - 202,240,28,112,240,28,240,240,202,240,112,112,135,28,112,240, - 196,240,28,112,129,202,240,240,244,240,28,112,240,28,240,240, - 196,173,173,9,35,164,16,16,16,16,16,16,20,16,16,16, - 20,16,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,237,20,20,237,20,20,20,20,237,237,20,20,20,16, - 228,194,219,194,194,194,194,219,19,194,194,194,19,194,194,194, - 219,19,19,194,194,219,194,194,194,219,194,194,219,194,194,19, - 219,219,194,194,181,194,219,181,219,19,194,219,194,156,219,219, - 219,19,219,219,156,219,219,219,219,219,219,219,219,156,219,219, - 156,19,219,219,30,219,30,30,156,30,30,156,156,30,30,30, - 30,30,45,30,30,104,30,30,104,104,104,104,104,73,187,115, - 115,190,142,142,142,142,142,115,142,190,142,142,142,142,142,115, - 142,190,142,142,142,142,142,115,142,190,142,142,142,142,142,115, - 142,190,142,142,142,142,142,115,142,190,142,142,142,142,142,115, - 142,190,142,142,142,142,142,115,142,190,142,142,142,142,142,115, - 142,190,142,142,142,142,142,115,142,190,142,142,142,142,142,115, - 142,190,142,142,142,142,142,142,115,151,142,142,142,142,142,142, - 115,190,202,115,142,142,142,115,115,190,142,115,142,142,142,142, - 115,151,142,142,142,115,142,142,115,190,142,142,142,115,142,142, - 142,190,142,115,142,142,142,142,142,129,142,202,142,142,142,115, - 142,15,15,173,205,11,16,16,16,16,16,16,16,20,20,16, - 20,20,16,20,16,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,237,20,20,20,20,20,20,20, - 228,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194, - 194,77,77,194,194,194,194,219,194,194,219,194,194,194,194,194, - 194,219,219,219,219,219,219,194,194,219,181,219,194,194,194,194, - 219,219,19,219,219,19,156,219,19,121,181,219,219,19,19,19, - 219,156,19,19,30,219,19,30,19,156,30,30,30,219,30,30, - 156,156,30,30,30,239,104,30,45,184,104,184,104,73,187,28, - 173,129,244,80,80,80,40,80,151,129,244,80,80,80,40,80, - 151,129,244,80,80,80,40,80,151,129,244,80,80,80,40,80, - 151,129,244,80,80,80,40,80,151,129,244,80,80,80,40,80, - 151,129,244,80,80,80,40,80,151,129,244,80,80,80,40,80, - 151,129,244,80,80,80,40,80,151,129,244,80,80,80,40,80, - 151,129,244,80,80,40,40,80,80,190,244,80,80,40,40,80, - 80,190,58,80,80,40,80,80,80,129,244,80,40,40,80,40, - 80,190,244,80,80,80,40,80,80,190,58,80,40,80,40,40, - 137,151,244,80,40,80,80,80,151,190,244,80,40,80,80,80, - 80,15,15,173,154,11,16,16,16,16,16,16,16,20,20,16, - 16,16,20,16,20,20,16,16,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,237,20,20,16,16, - 219,219,219,194,19,194,194,194,181,194,19,194,194,219,19,194, - 194,219,219,194,194,194,194,194,194,194,194,194,194,194,194,194, - 219,194,194,194,219,194,219,219,219,219,219,219,219,219,219,219, - 194,121,194,19,156,219,19,194,194,219,156,19,194,219,156,219, - 19,19,156,219,19,219,219,19,219,30,156,19,30,30,30,219, - 30,30,30,30,30,30,30,45,104,30,30,104,239,73,187,203, - 191,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,40,80,80,80,40,190,58,40,40,80,80,80, - 40,190,58,40,80,80,80,80,151,190,58,40,80,80,80,80, - 151,190,58,40,80,40,80,80,206,151,58,80,80,80,80,80, - 151,190,244,80,80,80,40,80,151,135,244,80,80,80,80,80, - 40,206,58,80,80,80,40,40,80,190,58,80,80,80,80,40, - 137,173,28,220,205,164,16,11,16,16,20,20,16,16,16,16, - 16,20,20,16,16,20,20,16,20,16,20,16,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,16,20,16, - 219,219,219,194,219,219,194,19,194,194,181,194,194,194,194,181, - 194,194,194,77,194,194,194,194,194,194,219,219,219,107,219,66, - 219,219,107,194,219,194,156,219,194,194,194,219,219,219,219,219, - 219,219,219,219,19,156,219,19,219,19,194,19,181,219,19,121, - 219,19,181,121,19,156,219,30,219,30,30,219,30,156,30,30, - 30,30,30,30,30,104,30,30,104,30,30,30,104,73,178,244, - 191,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,58,80,80,80,80,80,151,151,58,80,80,80,80,80, - 151,151,203,80,80,80,80,80,40,151,58,80,80,80,40,80, - 151,129,190,80,80,80,80,80,151,190,190,80,80,40,80,80, - 40,206,58,40,80,80,80,80,151,129,58,80,80,80,80,80, - 151,129,135,80,40,80,80,80,206,206,58,80,40,40,80,80, - 206,28,15,233,154,164,16,16,11,11,16,16,16,16,226,16, - 16,16,16,20,16,20,16,16,16,20,16,20,16,16,20,20, - 16,20,20,16,20,20,16,20,20,20,16,20,20,20,20,16, - 219,219,219,219,194,194,19,181,19,194,181,181,194,181,194,181, - 194,181,194,19,194,219,194,194,194,194,194,194,194,194,194,219, - 194,194,194,219,219,219,194,194,219,156,219,219,219,194,194,19, - 219,19,19,181,194,219,19,219,19,219,19,194,219,181,181,19, - 181,219,219,19,194,181,19,19,19,19,19,156,19,30,30,156, - 219,156,156,30,156,30,30,30,45,104,30,104,45,73,187,28, - 203,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 206,206,58,80,80,80,40,80,40,190,58,80,80,80,40,80, - 40,135,58,80,80,80,40,80,206,190,58,80,80,80,40,80, - 137,190,190,80,80,80,80,40,40,129,58,80,80,80,80,40, - 40,190,58,80,80,80,80,80,151,190,58,80,80,80,80,80, - 137,15,173,9,65,164,164,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,20,16,16, - 20,16,16,20,16,16,20,20,16,16,20,16,20,16,225,225, - 219,219,194,219,194,194,194,181,194,181,181,194,181,181,194,181, - 194,181,194,181,194,181,181,181,181,181,194,194,181,194,181,194, - 194,194,194,194,194,219,219,194,219,219,181,194,19,19,121,181, - 194,194,219,19,181,219,19,19,181,181,19,181,156,219,181,19, - 181,19,19,19,156,194,19,156,156,19,19,219,19,19,30,19, - 19,30,219,30,30,30,30,19,30,30,156,30,30,239,130,28, - 244,129,190,40,40,58,40,206,151,129,190,40,40,58,40,206, - 151,129,190,40,40,58,40,206,151,129,190,40,40,58,40,206, - 151,129,190,40,40,58,40,206,151,129,190,40,40,58,40,206, - 151,129,190,40,40,58,40,206,151,129,190,40,40,58,40,206, - 151,129,190,40,40,58,40,206,151,129,190,40,40,58,40,40, - 151,129,58,40,40,40,40,206,151,129,190,40,40,40,40,40, - 151,190,190,40,40,40,40,40,151,190,58,40,40,40,40,206, - 206,151,58,40,40,40,40,206,151,206,58,40,40,40,40,40, - 151,190,58,40,40,40,206,40,151,129,58,40,40,40,40,206, - 206,173,173,9,108,164,11,16,11,16,16,11,16,16,16,16, - 16,11,16,11,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,11, - 219,194,219,181,194,181,194,181,181,181,181,194,181,181,181,181, - 181,181,181,181,194,181,181,194,181,194,181,181,181,181,181,181, - 181,181,181,181,19,181,181,181,194,181,219,219,181,194,219,219, - 19,19,19,121,219,181,121,181,219,156,181,19,181,181,156,181, - 156,181,156,19,19,19,219,19,19,19,156,19,156,19,19,30, - 30,30,19,30,30,19,30,30,30,30,30,30,30,239,125,115, - 28,190,58,40,80,80,40,80,206,190,58,40,80,80,40,80, - 206,190,58,40,80,80,40,80,206,190,58,40,80,80,40,80, - 206,190,58,40,80,80,40,80,206,190,58,40,80,80,40,80, - 206,190,58,40,80,80,40,80,206,190,58,40,80,80,40,80, - 206,190,58,40,80,80,40,80,206,190,58,40,80,80,40,40, - 40,129,58,40,80,80,80,80,206,190,58,40,80,80,40,80, - 151,190,58,80,40,80,80,80,151,129,58,80,40,80,80,80, - 190,190,58,40,80,40,80,80,190,190,58,40,40,80,80,80, - 151,129,58,40,80,40,80,40,40,129,58,80,40,40,80,80, - 151,28,173,9,65,164,164,11,16,16,11,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,11,16,16,16,16,16,16,225,11,225, - 219,194,219,219,194,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,19,181,181,181,181,19,19,181,181,181, - 194,181,19,181,219,19,219,19,19,219,19,19,19,181,19,19, - 19,19,19,19,19,19,19,156,30,30,19,19,156,19,19,19, - 30,19,30,19,30,30,30,30,30,30,30,30,30,149,178,28, - 203,190,58,80,80,80,80,40,190,190,58,80,80,80,80,40, - 190,190,58,80,80,80,80,40,190,190,58,80,80,80,80,40, - 190,190,58,80,80,80,80,40,190,190,58,80,80,80,80,40, - 190,190,58,80,80,80,80,40,190,190,58,80,80,80,80,40, - 190,190,58,80,80,80,80,40,190,190,58,80,80,80,80,80, - 84,190,58,80,80,40,80,40,190,190,203,80,80,80,80,80, - 190,190,244,80,80,80,40,80,135,190,203,80,80,80,80,80, - 206,190,58,80,80,80,80,40,151,129,58,80,80,80,80,40, - 190,190,203,80,80,80,80,80,135,190,191,80,80,80,80,80, - 190,28,191,173,35,164,16,164,16,11,16,225,11,225,16,11, - 16,11,16,11,225,16,225,11,16,16,16,16,16,16,16,11, - 16,16,16,16,16,16,16,16,11,11,11,16,11,11,11,11, - 219,219,194,181,194,194,194,181,194,181,181,181,181,181,181,181, - 181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,181,181,181,181,181,181,181,19,19,181, - 19,19,19,19,181,19,19,19,19,19,19,19,19,19,181,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,156,19,19, - 19,19,45,19,19,30,90,30,90,45,156,45,30,239,125,28, - 112,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,58,244,244,244,191,115,58,58,58,244,244, - 244,191,115,58,58,244,244,196,244,190,115,58,244,58,115,196, - 244,191,115,58,58,58,115,244,244,190,115,58,58,244,196,202, - 240,191,115,58,58,58,58,115,244,191,115,58,58,244,196,196, - 244,190,115,58,58,244,196,196,244,244,115,58,58,58,196,142, - 244,15,173,9,205,164,164,11,11,11,11,11,16,11,11,16, - 11,16,16,16,11,11,11,16,11,11,11,16,11,11,11,11, - 11,11,164,16,11,11,11,164,16,11,164,16,11,11,164,164, - 194,19,194,194,181,181,181,181,181,181,181,181,181,181,181,102, - 181,181,102,181,102,181,102,181,102,181,102,181,181,181,181,181, - 102,181,181,102,19,102,19,19,90,181,181,90,181,181,19,181, - 181,181,181,19,181,181,19,181,19,181,181,181,19,19,181,19, - 19,19,19,19,181,19,19,19,19,19,156,19,19,30,19,30, - 19,30,90,45,30,45,45,45,156,45,156,45,45,149,27,15, - 203,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 240,190,190,129,129,191,151,129,240,190,190,129,129,191,151,129, - 244,190,58,129,137,190,137,129,240,190,135,129,137,191,133,151, - 240,58,58,129,129,129,133,129,196,190,58,129,129,190,129,137, - 196,190,58,129,129,191,129,133,196,190,190,129,129,190,137,129, - 196,190,58,129,129,191,137,129,244,190,58,129,129,240,129,129, - 240,15,9,9,154,164,16,164,16,11,11,11,16,11,11,16, - 11,11,11,16,225,16,11,11,16,11,11,164,11,16,164,16, - 164,11,11,164,11,164,11,164,11,16,164,164,11,164,164,10, - 19,194,19,194,181,181,181,106,181,181,181,181,181,102,106,181, - 102,181,181,181,102,181,102,181,102,181,181,102,102,181,102,181, - 181,181,181,181,181,181,102,181,181,90,19,181,181,181,102,19, - 90,19,19,102,19,19,181,19,181,90,19,19,181,181,19,19, - 19,19,19,19,156,19,19,19,19,30,30,19,30,30,90,45, - 90,30,45,30,30,156,30,156,45,45,45,30,30,45,125,28, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,129,129,129, - 244,58,58,129,151,129,129,129,244,58,58,129,151,191,137,133, - 28,191,244,137,129,240,137,129,244,58,244,129,129,191,129,129, - 240,190,240,129,129,240,129,133,28,240,240,129,129,240,129,129, - 244,190,244,129,129,129,129,129,244,58,244,129,129,240,137,133, - 28,190,244,137,129,240,133,137,240,190,240,137,129,190,129,129, - 240,28,28,9,65,164,164,11,164,164,11,11,11,11,11,11, - 11,11,11,11,164,16,11,11,11,164,16,164,164,164,164,164, - 164,164,16,164,164,164,11,164,164,164,164,164,164,164,10,164, - 181,194,181,181,181,181,181,106,106,106,171,106,106,181,102,181, - 181,102,181,106,106,106,171,106,171,181,181,181,181,181,181,181, - 102,181,181,181,181,181,181,181,181,181,181,19,19,19,181,19, - 181,19,19,19,19,19,181,19,219,19,19,19,19,19,19,19, - 19,19,156,19,19,156,156,156,19,19,30,19,156,30,30,30, - 30,156,30,90,45,45,45,45,156,45,45,45,45,45,130,202, - 203,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,137,240,133,151, - 240,191,244,129,137,240,133,151,240,191,244,129,129,129,137,129, - 135,190,244,133,129,129,133,151,240,191,58,129,133,190,129,137, - 58,240,58,129,129,191,129,129,135,190,244,133,129,190,137,151, - 240,191,244,133,133,240,129,137,240,191,58,129,129,129,129,129, - 135,190,244,133,129,191,129,137,244,191,244,133,129,240,151,151, - 58,28,28,9,108,164,164,164,11,164,164,164,11,11,164,11, - 11,11,164,11,164,164,164,164,164,164,164,164,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164,164,164,164,164,10,10, - 194,181,194,181,181,181,181,181,102,181,181,102,102,181,181,181, - 102,181,106,102,181,102,181,181,102,181,181,102,181,181,181,181, - 181,181,181,181,181,181,181,181,194,181,181,181,181,194,219,194, - 219,219,219,219,156,19,219,19,19,219,156,156,30,156,156,156, - 156,156,156,30,219,30,30,30,104,104,30,30,30,30,30,30, - 30,104,45,45,45,156,45,156,45,45,156,45,30,73,21,15, - 191,190,240,137,129,191,129,151,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,240,133,129,191,129,129, - 240,190,240,133,129,191,129,129,240,190,135,133,129,85,129,129, - 244,191,244,129,129,191,129,129,240,190,240,129,129,129,129,133, - 244,58,135,129,151,129,129,129,244,58,244,137,129,129,129,129, - 244,190,244,129,129,240,137,129,240,190,135,133,129,240,129,129, - 244,190,244,137,137,191,133,129,244,58,244,137,137,129,129,129, - 240,15,28,191,205,10,164,164,164,11,164,164,164,164,11,164, - 164,164,164,164,164,11,11,164,164,164,164,164,164,164,164,164, - 164,164,164,10,164,164,164,164,164,164,10,164,164,164,10,10, - 181,181,181,77,181,181,181,181,181,106,181,181,181,181,181,181, - 106,181,106,181,106,181,181,181,181,181,181,181,181,181,181,181, - 181,181,181,181,181,181,194,181,194,219,194,219,219,219,219,219, - 219,219,219,219,156,30,156,219,156,219,156,219,30,30,156,30, - 184,30,107,184,107,228,184,184,184,184,104,104,104,104,104,104, - 30,104,30,104,45,104,45,45,104,45,104,239,239,239,27,115, - 203,240,28,112,240,28,240,240,196,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,142,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,142,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,142,240,28,28,240,28,112,135, - 142,240,28,28,240,28,112,135,196,240,28,112,240,28,240,240, - 202,135,28,112,240,28,240,240,196,240,28,112,85,202,112,240, - 28,240,202,112,129,202,240,240,244,240,28,112,85,28,85,240, - 196,240,28,112,191,112,240,240,142,240,28,28,240,112,240,240, - 202,240,28,112,129,28,112,240,196,191,28,112,129,28,240,240, - 196,203,15,191,154,169,164,10,164,164,164,164,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164, - 164,164,10,164,164,10,164,164,10,164,164,164,10,10,10,10, - 194,194,181,19,194,181,194,181,181,181,181,181,181,181,181,181, - 181,181,181,106,181,181,194,181,181,181,181,181,181,181,181,181, - 181,181,181,181,194,181,181,194,19,181,219,181,219,181,19,219, - 156,219,219,219,219,219,184,107,107,219,30,30,107,219,184,107, - 219,219,184,156,184,30,107,107,107,107,184,184,104,107,104,156, - 104,30,104,104,30,104,104,104,45,104,239,239,239,138,125,28, - 244,206,142,142,142,142,142,115,115,206,142,142,142,142,142,115, - 115,206,142,142,142,142,142,115,115,206,142,142,142,142,142,115, - 115,206,142,142,142,142,142,115,115,206,142,142,142,142,142,115, - 115,206,142,142,142,142,142,115,115,206,142,142,142,142,142,115, - 115,206,142,142,142,142,142,115,115,190,115,196,142,142,142,142, - 115,129,142,142,142,142,142,115,115,206,115,115,244,196,115,72, - 196,190,142,115,142,142,142,142,142,129,142,142,202,115,196,142, - 115,151,115,142,115,142,142,115,115,190,142,142,115,142,142,142, - 115,129,89,115,253,115,196,142,142,129,89,115,89,142,142,115, - 142,15,28,173,65,169,10,208,10,10,10,164,164,10,164,164, - 164,164,164,164,164,10,164,164,164,164,164,169,164,164,169,164, - 10,164,10,10,164,10,164,10,164,164,222,164,164,164,222,222, - 19,194,194,181,194,181,194,181,181,194,181,181,194,181,194,181, - 194,181,181,194,181,194,181,194,181,181,181,181,181,181,181,194, - 181,181,181,181,181,181,181,181,194,181,19,19,219,19,19,181, - 19,19,219,219,219,219,30,30,30,219,219,30,156,219,30,30, - 30,219,30,219,156,30,30,184,30,107,156,184,184,184,104,184, - 104,104,104,30,104,104,30,104,239,73,104,104,104,138,27,28, - 28,129,244,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,58,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,58,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,58,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,58,80,80,80,40,80,151,129,190,80,40,80,40,80, - 151,206,244,80,80,80,80,80,151,129,190,80,40,80,80,80, - 151,129,58,80,40,80,40,80,151,206,203,40,40,80,40,80, - 80,190,190,80,80,80,80,80,151,129,58,80,80,80,80,80, - 80,206,244,80,80,80,80,80,151,190,244,80,80,80,80,80, - 80,15,15,28,205,169,169,10,10,10,10,10,10,10,10,10, - 10,164,222,164,10,10,10,10,169,164,164,169,164,164,164,169, - 164,164,10,10,10,164,10,10,222,164,10,222,10,10,10,222, - 194,19,194,194,19,194,194,194,194,194,194,194,194,194,194,19, - 194,194,19,194,194,194,194,194,219,194,219,194,194,194,194,181, - 219,194,194,181,19,219,181,181,19,181,181,181,19,181,19,219, - 219,19,19,19,19,19,19,19,219,219,219,219,30,219,219,219, - 156,219,219,30,219,219,156,156,30,30,184,219,30,30,184,30, - 104,30,104,104,104,104,104,104,104,104,239,239,239,138,178,191, - 191,190,58,40,80,80,80,80,40,85,58,40,80,80,80,80, - 40,85,58,40,80,80,80,80,40,85,58,40,80,80,80,80, - 40,85,58,40,80,80,80,80,40,85,58,40,80,80,80,80, - 40,85,58,40,80,80,80,80,40,85,58,40,80,80,80,80, - 40,85,58,40,80,80,80,80,40,135,244,80,40,80,80,80, - 137,206,58,40,40,80,80,80,206,84,58,80,40,80,40,80, - 40,190,58,80,40,80,40,80,40,206,135,80,80,80,80,80, - 151,135,58,80,40,80,80,80,40,85,58,80,40,40,80,80, - 151,129,58,80,80,80,40,40,80,129,58,40,80,80,80,40, - 137,15,28,9,205,169,222,169,10,169,222,222,10,10,10,10, - 164,222,10,10,10,10,169,164,169,164,169,164,169,164,10,164, - 169,10,10,10,169,10,10,222,10,10,10,10,222,10,222,222, - 194,219,194,194,219,194,194,194,194,194,194,194,194,194,194,219, - 219,194,219,194,19,219,194,194,194,66,219,219,219,219,219,194, - 194,219,219,194,194,219,219,181,219,219,19,19,219,181,19,19, - 19,19,19,19,19,19,19,19,19,219,19,19,19,219,219,219, - 219,19,219,30,219,219,30,219,219,30,30,30,219,30,30,219, - 156,156,30,30,30,156,30,30,104,104,104,239,104,138,178,203, - 191,151,244,80,80,80,80,80,137,190,203,80,80,80,80,80, - 137,190,203,80,80,80,80,80,137,190,203,80,80,80,80,80, - 137,190,203,80,80,80,80,80,137,190,203,80,80,80,80,80, - 137,190,203,80,80,80,80,80,137,190,203,80,80,80,80,80, - 137,190,203,80,80,80,80,80,151,190,58,80,80,80,80,80, - 206,129,244,80,80,80,80,80,80,190,190,80,80,80,80,40, - 151,129,190,80,80,80,80,80,151,129,58,80,80,80,80,80, - 40,190,244,80,80,80,80,80,80,190,244,80,80,80,80,80, - 206,206,244,80,80,40,80,80,206,206,190,80,40,40,80,80, - 206,173,28,220,108,169,169,169,169,169,222,222,222,222,222,222, - 222,222,222,10,169,164,169,10,169,10,169,164,169,169,169,10, - 10,169,10,10,10,169,10,222,10,169,10,10,10,222,222,169, - 228,194,219,228,194,194,194,19,194,194,194,219,194,194,194,194, - 194,219,194,219,194,194,194,194,219,194,194,194,194,194,194,194, - 219,194,194,219,219,194,194,219,181,19,19,194,19,219,219,19, - 194,19,219,19,19,219,219,219,219,19,219,219,30,30,219,156, - 30,30,219,219,30,30,219,30,30,219,30,156,30,30,30,30, - 30,30,156,156,156,30,30,30,45,45,30,104,239,73,21,58, - 203,151,58,80,80,80,80,40,40,151,58,80,80,80,80,40, - 40,151,58,80,80,80,80,40,40,151,58,80,80,80,80,40, - 40,151,58,80,80,80,80,40,40,151,58,80,80,80,80,40, - 40,151,58,80,80,80,80,40,40,151,58,80,80,80,80,40, - 40,151,58,80,80,80,80,80,137,190,58,80,80,80,80,80, - 206,206,58,80,80,80,80,40,151,190,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,206,190,58,80,80,80,40,80, - 137,206,58,80,80,80,80,40,40,206,58,80,80,80,40,80, - 206,151,58,80,80,80,80,80,206,135,58,80,80,80,80,80, - 137,28,28,191,130,169,169,169,169,169,222,222,222,222,222,222, - 222,10,222,169,10,169,10,169,10,169,10,169,10,10,164,169, - 169,10,169,169,169,10,169,10,169,222,169,222,222,222,169,222, - 228,228,219,219,219,194,194,194,219,219,194,194,194,194,194,19, - 194,219,194,219,194,219,194,194,219,194,219,219,219,194,219,194, - 219,219,194,219,219,219,194,219,219,219,219,219,219,219,219,219, - 219,30,219,219,19,19,30,30,30,30,30,219,219,30,30,30, - 219,30,30,219,30,30,30,30,30,30,239,184,30,30,30,30, - 30,30,30,30,30,30,30,30,104,45,45,45,45,73,21,240, - 203,190,58,40,40,40,40,206,80,190,58,40,40,40,40,206, - 80,190,58,40,40,40,40,206,80,190,58,40,40,40,40,206, - 80,190,58,40,40,40,40,206,80,190,58,40,40,40,40,206, - 80,190,58,40,40,40,40,206,80,190,58,40,40,40,40,206, - 80,190,58,40,40,58,40,206,40,190,58,40,40,58,40,206, - 151,129,58,40,40,58,206,40,40,190,58,40,40,40,40,206, - 151,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 206,129,58,40,40,58,40,206,151,129,58,40,40,40,40,206, - 151,190,58,40,40,40,40,206,151,190,190,40,40,40,206,206, - 206,28,173,191,103,169,169,169,169,169,102,169,169,102,169,169, - 169,169,222,169,222,169,222,169,169,169,10,169,169,169,10,169, - 169,10,169,10,169,222,169,222,10,222,169,169,222,222,169,102, - 184,228,228,228,228,228,228,228,194,194,219,219,228,219,219,228, - 219,194,219,194,219,194,219,66,194,219,66,66,219,228,228,219, - 228,66,107,219,107,107,219,107,66,66,219,219,30,156,219,30, - 219,219,30,30,219,30,19,219,219,219,19,30,30,30,30,219, - 30,30,30,30,219,30,184,30,184,184,30,45,30,184,30,184, - 30,30,45,45,104,104,239,30,45,104,104,239,73,138,125,244, - 240,190,58,40,40,80,80,80,206,190,58,40,40,80,80,80, - 206,190,58,40,40,80,80,80,206,190,58,40,40,80,80,80, - 206,190,58,40,40,80,80,80,206,190,58,40,40,80,80,80, - 206,190,58,40,40,80,80,80,206,190,58,40,40,80,80,80, - 206,190,58,40,80,80,40,80,137,129,58,40,80,80,40,80, - 206,129,58,40,80,80,80,80,151,129,58,40,80,80,40,80, - 151,129,58,40,80,40,40,40,80,190,58,40,40,80,80,80, - 206,190,58,40,80,80,80,80,206,190,58,40,80,80,80,80, - 206,190,58,80,80,80,80,80,151,190,58,80,40,40,80,80, - 151,173,15,9,130,169,169,169,169,169,169,169,169,222,169,102, - 102,169,169,169,169,169,169,222,222,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169,222,222,222,222,222,169, - 184,184,228,228,184,228,228,228,228,228,228,228,228,228,228,228, - 228,228,228,228,228,228,219,228,228,219,219,66,219,219,219,219, - 219,219,228,219,219,184,107,184,219,107,107,219,107,219,107,30, - 156,219,219,30,219,30,30,30,30,30,30,219,30,30,30,30, - 30,30,30,30,30,156,30,30,30,184,30,30,30,30,30,30, - 239,184,30,45,45,30,73,104,239,239,239,239,149,138,27,244, - 203,129,58,80,80,80,80,80,85,129,58,80,80,80,80,80, - 85,129,58,80,80,80,80,80,85,129,58,80,80,80,80,80, - 85,129,58,80,80,80,80,80,85,129,58,80,80,80,80,80, - 85,129,58,80,80,80,80,80,85,129,58,80,80,80,80,80, - 85,129,58,80,80,80,80,80,190,190,58,80,80,80,80,40, - 135,190,58,80,80,80,80,80,190,190,58,80,80,40,80,80, - 206,190,58,80,80,80,80,80,135,129,58,80,80,80,80,80, - 190,190,58,80,80,80,80,80,135,129,58,80,80,40,80,80, - 85,129,244,80,40,40,80,80,190,190,191,80,80,80,80,80, - 190,28,203,9,187,169,169,169,169,169,169,169,169,102,102,102, - 102,102,102,169,169,169,169,169,222,169,169,169,169,169,169,169, - 169,169,169,222,169,222,169,169,222,222,222,169,222,169,222,102, - 184,184,184,184,228,184,184,228,228,228,228,219,228,194,228,219, - 228,219,219,228,219,194,228,219,194,194,66,228,219,228,219,228, - 219,228,219,107,107,219,30,219,184,219,184,107,184,107,219,107, - 107,184,30,30,30,30,30,30,30,30,30,30,19,30,30,30, - 30,30,30,30,219,30,30,30,30,30,30,239,45,45,239,239, - 30,30,104,104,239,239,239,149,149,73,73,138,73,189,21,28, - 244,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,244,115,115,58,191,115,58,58,244,115,115, - 58,191,115,58,58,58,196,142,244,191,115,58,58,58,244,28, - 244,191,115,58,58,244,196,142,244,191,115,58,58,58,115,196, - 244,191,115,58,58,58,244,202,244,191,115,58,58,244,142,142, - 240,240,115,58,58,244,115,196,244,191,115,58,58,244,115,115, - 244,190,115,58,58,244,115,196,196,244,115,58,58,58,196,142, - 244,15,28,112,21,169,169,169,169,169,169,169,169,169,102,102, - 102,102,102,102,102,102,102,169,169,169,169,222,222,169,169,169, - 169,222,169,169,222,169,222,222,169,169,169,222,169,222,102,222, - 184,184,228,228,228,228,184,184,228,219,228,228,228,228,228,194, - 228,184,228,228,228,228,228,228,228,219,228,228,219,228,219,228, - 219,228,219,219,228,107,107,219,184,219,30,184,184,184,107,184, - 219,184,184,184,184,30,30,30,30,30,30,30,30,30,30,30, - 30,45,45,30,30,30,30,30,30,184,30,30,30,30,239,239, - 239,239,239,104,73,239,73,73,149,138,73,138,138,189,21,203, - 244,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,190,137,133,196,190,190,129,129,190,137,133, - 196,190,190,129,129,191,129,129,196,190,190,129,129,240,137,151, - 196,190,135,129,129,190,129,129,244,190,58,129,137,191,133,129, - 196,190,58,129,129,191,151,137,196,190,58,129,129,190,129,129, - 196,190,135,129,129,190,133,129,196,190,58,129,137,190,154,133, - 244,203,244,137,137,191,133,129,240,190,58,129,129,240,129,129, - 240,203,173,173,103,169,169,169,169,169,169,169,169,169,169,169, - 102,169,102,102,102,169,222,102,222,102,169,169,169,222,169,169, - 169,169,169,169,222,169,169,222,222,222,222,222,222,222,169,102, - 228,228,184,184,228,228,228,228,228,228,228,228,219,228,228,228, - 228,228,184,228,228,228,228,219,228,228,228,219,228,228,228,219, - 228,228,184,228,219,107,107,107,219,184,107,219,184,107,30,184, - 184,184,219,184,184,184,184,184,184,30,30,30,184,45,30,30, - 30,30,30,30,30,30,30,30,45,45,45,184,239,45,30,104, - 239,45,239,239,239,239,239,239,73,73,239,73,138,138,178,244, - 28,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,244,129,129,129,129,129,244,58,244,129,129,129,129,129, - 244,58,58,129,129,135,137,137,244,58,58,129,137,240,137,137, - 28,244,244,129,129,135,137,133,28,191,244,137,129,191,129,137, - 244,190,244,129,133,191,129,129,244,190,240,129,129,190,133,129, - 244,203,58,129,129,191,137,129,244,240,244,137,129,240,129,129, - 135,190,240,137,129,191,129,129,240,190,240,137,129,190,129,129, - 240,15,28,112,103,169,169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,102,102,102,102,102,222,102,169,102,169,102,169, - 102,222,222,222,222,222,222,169,169,222,222,222,222,222,222,222, - 184,228,228,184,228,219,228,219,219,228,219,228,228,194,228,219, - 228,219,184,219,228,219,228,184,184,219,228,228,184,228,228,228, - 219,228,184,184,184,184,184,184,107,184,184,184,184,228,107,184, - 184,184,184,184,184,184,184,184,184,184,73,184,184,73,184,239, - 184,30,45,30,184,45,45,30,30,30,45,30,30,45,45,30, - 239,45,45,45,239,239,239,149,239,138,149,73,138,39,21,244, - 191,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,58,129,129,240,129,137,240,191,58,129,129,240,129,137, - 240,191,244,129,133,191,129,137,240,191,244,129,129,129,129,137, - 135,190,58,129,129,191,129,129,135,190,244,137,137,190,129,137, - 240,191,58,137,129,129,129,133,240,191,58,129,129,240,129,129, - 240,190,244,129,129,240,137,137,240,190,244,133,129,191,129,133, - 244,190,244,137,129,240,129,151,58,191,244,137,129,191,151,151, - 58,15,173,191,103,169,169,169,169,169,169,102,102,102,169,169, - 169,169,169,169,169,169,222,169,102,169,169,222,169,222,222,222, - 169,222,222,222,222,222,222,10,222,222,10,10,10,10,222,222, - 184,184,30,228,228,228,228,228,228,219,228,228,219,228,219,228, - 228,228,228,228,228,228,184,228,228,228,228,219,228,228,184,184, - 184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184, - 184,184,184,184,184,184,184,184,184,73,184,184,184,184,184,184, - 239,73,184,184,184,184,184,184,184,184,184,239,73,239,239,239, - 239,239,138,138,149,104,149,104,138,239,73,149,239,138,178,244, - 203,190,135,133,129,240,137,129,240,190,135,133,129,191,137,129, - 240,190,135,133,129,191,137,129,240,190,135,133,129,191,137,129, - 240,190,135,133,129,191,137,129,240,190,135,133,129,191,137,129, - 240,190,135,133,129,191,137,129,240,190,135,133,129,191,137,129, - 240,190,240,129,137,240,137,129,240,190,135,133,129,129,129,129, - 240,190,135,133,133,191,129,129,244,190,240,137,129,129,129,129, - 196,191,240,129,129,129,129,129,196,58,135,133,129,191,137,129, - 240,190,135,137,129,129,129,129,244,191,244,137,129,240,129,137, - 28,58,240,137,129,129,129,129,196,58,240,137,133,129,129,129, - 240,173,28,191,130,169,169,169,169,169,102,102,169,102,169,102, - 102,102,222,222,222,222,169,222,169,222,222,222,222,222,222,222, - 222,222,222,222,10,222,10,222,10,10,10,10,10,10,10,10, - 219,228,219,219,219,219,219,219,228,219,219,219,219,228,219,219, - 219,219,219,219,194,194,219,219,219,228,184,219,184,228,228,184, - 184,228,184,184,184,184,184,184,184,184,184,184,73,184,184,184, - 73,184,184,184,184,184,184,184,184,184,73,73,184,73,184,184, - 184,239,239,239,184,184,239,239,239,239,184,184,184,239,239,239, - 104,104,239,239,149,239,149,239,138,104,45,239,239,149,21,244, - 190,240,28,28,191,112,240,240,142,240,28,28,240,112,240,240, - 142,240,28,28,240,112,240,240,142,240,28,28,240,112,240,240, - 142,240,28,28,240,112,240,240,142,240,28,28,240,112,240,240, - 142,240,28,28,240,112,240,240,142,240,28,28,240,112,240,240, - 196,240,202,112,129,112,240,240,196,240,28,112,240,28,85,240, - 202,112,28,28,191,112,240,240,244,240,28,112,85,28,85,240, - 244,135,202,240,240,202,240,240,244,112,28,28,129,244,112,135, - 196,240,28,112,85,28,85,240,244,240,28,112,85,240,240,240, - 196,240,28,112,129,202,240,240,244,240,28,112,240,28,240,240, - 196,28,28,191,103,169,169,169,169,169,102,102,169,102,222,169, - 222,222,102,102,222,222,222,222,222,222,222,10,222,222,222,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,164,10,10, - 184,184,219,219,219,219,219,219,219,219,219,219,219,19,194,194, - 219,219,30,219,219,219,219,219,219,219,219,219,219,30,30,228, - 228,184,184,184,184,184,184,73,184,184,184,184,184,184,184,184, - 184,73,184,184,184,184,73,73,73,73,184,184,73,184,73,184, - 184,184,184,184,184,30,184,184,184,184,30,45,45,104,30,104, - 45,45,30,30,104,45,104,45,45,149,149,149,45,39,178,244, - 203,190,142,142,115,142,142,115,115,190,142,142,115,142,142,115, - 115,190,142,142,115,142,142,115,115,190,142,142,115,142,142,115, - 115,190,142,142,115,142,142,115,115,190,142,142,115,142,142,115, - 115,190,142,142,115,142,142,115,115,190,142,142,115,142,142,115, - 115,206,115,115,115,142,142,115,115,190,115,202,142,115,142,115, - 115,190,142,142,115,142,142,142,115,190,142,115,202,115,142,142, - 115,206,142,142,142,142,142,142,142,190,142,89,202,142,142,115, - 115,206,142,115,202,115,142,142,115,151,142,115,115,196,142,142, - 142,190,142,115,142,142,142,142,142,190,142,142,142,142,142,115, - 142,15,28,112,103,169,169,169,169,102,169,222,222,222,222,222, - 222,222,222,222,222,10,222,10,222,10,10,10,10,10,10,10, - 10,164,164,10,164,10,164,10,164,164,164,164,164,164,164,164, - 184,30,30,30,219,19,219,194,19,219,219,219,219,30,30,19, - 219,219,219,30,30,184,30,184,249,228,184,184,184,184,249,184, - 184,184,184,184,184,184,184,184,184,184,73,184,73,184,73,184, - 184,239,73,239,239,30,30,30,30,45,30,30,30,30,45,45, - 184,45,30,45,239,45,45,45,45,45,30,30,45,45,45,30, - 30,45,45,45,45,45,45,45,45,45,104,149,239,149,21,240, - 244,129,58,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,58,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,58,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,58,80,80,80,40,80,151,129,58,80,80,80,40,80, - 151,129,135,80,80,80,40,80,151,129,135,80,80,80,40,80, - 80,129,58,40,80,80,80,80,151,129,244,80,40,80,80,80, - 80,129,244,80,40,40,40,80,151,129,58,80,80,80,40,80, - 151,129,244,80,40,80,80,80,80,190,244,80,80,40,80,40, - 137,151,244,80,40,80,80,80,151,129,244,40,40,80,80,80, - 80,15,15,202,103,169,169,169,169,222,102,169,222,222,10,222, - 222,10,10,222,222,10,10,10,10,10,10,164,164,164,164,164, - 10,10,164,164,164,164,164,164,164,164,164,164,164,164,164,164, - 184,30,19,219,30,19,19,19,219,219,30,30,30,19,219,219, - 19,219,30,219,30,30,184,30,30,30,239,184,184,184,184,184, - 249,184,184,241,184,241,184,73,73,73,184,184,184,184,184,73, - 73,184,184,184,184,73,73,73,73,184,73,239,73,239,184,184, - 239,30,239,30,30,30,45,30,30,30,45,45,30,45,45,45, - 45,45,45,45,45,149,45,45,104,45,149,149,149,149,178,190, - 191,85,58,80,80,80,80,80,40,85,58,80,80,80,80,80, - 40,85,58,80,80,80,80,80,40,85,58,80,80,80,80,80, - 40,85,58,80,80,80,80,80,40,85,58,80,80,80,80,80, - 40,85,58,80,80,80,80,80,40,85,58,80,80,80,80,80, - 40,190,58,80,80,80,80,80,172,190,58,40,80,80,80,80, - 206,129,135,80,40,40,80,80,40,206,58,80,80,40,80,80, - 206,190,58,80,80,80,80,40,40,129,244,80,80,80,80,80, - 40,206,58,80,80,40,80,80,151,190,58,80,80,80,80,40, - 40,206,58,80,80,80,40,80,40,206,190,80,80,80,80,40, - 137,28,28,9,130,169,102,169,222,222,10,10,10,222,222,10, - 10,10,10,10,164,10,10,164,164,164,164,164,164,164,164,164, - 11,11,164,164,11,164,164,164,164,164,11,11,11,11,164,164, - 184,30,30,30,219,45,30,19,30,219,30,249,45,30,30,30, - 30,30,45,30,30,45,30,30,30,219,30,184,30,30,30,184, - 249,184,184,184,184,241,184,184,184,184,241,184,73,73,184,184, - 73,73,73,73,73,73,73,73,73,73,73,239,239,73,149,239, - 189,73,138,189,189,73,138,138,138,73,73,239,73,239,138,138, - 73,239,104,104,149,149,149,149,149,45,45,45,149,39,21,244, - 191,190,244,80,40,80,80,80,80,190,244,80,40,80,80,80, - 80,190,244,80,40,80,80,80,80,190,244,80,40,80,80,80, - 80,190,244,80,40,80,80,80,80,190,244,80,40,80,80,80, - 80,190,244,80,40,80,80,80,80,190,244,80,80,80,80,80, - 151,190,135,80,40,80,80,80,137,190,58,80,80,80,80,80, - 44,190,58,80,80,80,40,80,151,129,190,80,80,80,40,80, - 151,206,58,80,80,80,80,80,151,190,58,80,40,80,80,80, - 151,129,190,80,80,80,40,80,40,151,190,80,80,80,80,80, - 151,129,135,80,80,40,80,80,44,129,58,80,40,40,80,80, - 206,28,112,9,103,169,222,10,222,222,222,10,10,10,10,10, - 10,10,136,10,164,164,10,10,10,164,164,164,164,164,164,164, - 164,11,164,164,11,11,16,11,16,164,164,11,11,11,11,11, - 184,30,30,219,30,30,249,30,219,30,30,45,249,249,30,30, - 30,30,45,249,249,45,30,30,30,45,45,30,30,30,30,219, - 184,184,249,184,249,184,184,73,73,73,184,184,184,184,73,73, - 73,239,73,73,184,73,239,73,239,73,239,73,73,239,73,138, - 239,149,73,239,239,239,73,73,73,239,239,138,239,239,239,239, - 239,149,149,149,104,149,104,149,104,149,149,149,149,39,21,244, - 244,151,58,80,80,80,80,80,206,151,58,80,80,80,80,80, - 206,151,58,80,80,80,80,80,206,151,58,80,80,80,80,80, - 206,151,58,80,80,80,80,80,206,151,58,80,80,80,80,80, - 206,151,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 151,190,58,80,80,80,80,40,137,190,58,80,80,80,40,80, - 40,190,58,80,80,80,80,80,206,135,58,80,80,80,40,80, - 137,190,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 206,135,58,80,80,80,40,80,40,190,58,80,40,80,80,80, - 40,190,58,80,80,80,80,80,40,190,58,80,80,80,80,80, - 137,115,203,191,103,102,222,222,10,10,10,10,10,136,10,53, - 136,164,10,164,10,10,164,164,164,164,164,11,11,11,11,164, - 164,164,11,11,164,16,11,11,11,16,16,11,11,11,164,164, - 184,30,45,30,30,30,45,18,45,45,45,45,249,223,30,45, - 30,184,249,18,45,249,30,45,45,249,45,30,30,30,30,30, - 239,184,239,184,45,239,239,45,30,45,239,239,45,45,45,30, - 239,30,239,239,184,184,45,239,239,239,239,184,239,239,239,239, - 239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,149, - 239,149,149,149,104,149,104,149,104,104,149,45,45,149,21,244, - 244,190,58,40,40,58,40,206,137,190,58,40,40,58,40,206, - 137,190,58,40,40,58,40,206,137,190,58,40,40,58,40,206, - 137,190,58,40,40,58,40,206,137,190,58,40,40,58,40,206, - 137,190,58,40,40,58,40,206,151,151,58,40,40,58,40,206, - 40,190,58,40,40,40,40,206,40,190,58,40,40,40,40,206, - 137,190,58,40,40,40,40,206,137,190,58,40,40,40,40,206, - 206,129,58,40,40,40,40,206,137,190,58,40,40,58,40,206, - 151,190,58,40,40,40,40,206,151,190,58,40,40,40,40,206, - 151,190,58,40,40,40,40,40,151,190,58,40,40,40,40,206, - 206,203,191,191,187,102,222,169,169,169,10,169,10,136,10,10, - 164,164,10,164,164,164,164,164,164,164,164,164,164,164,11,11, - 11,11,11,11,164,11,11,11,11,11,11,16,16,16,11,11, - 184,249,30,45,30,30,30,18,223,45,45,249,18,116,18,45, - 249,249,18,145,249,45,45,45,249,249,249,45,30,30,30,30, - 30,45,30,45,30,30,30,30,45,30,30,30,30,30,30,45, - 30,239,30,45,45,45,30,45,45,30,45,45,45,30,45,239, - 239,45,239,239,45,45,45,45,239,149,239,149,149,149,149,104, - 45,45,45,45,149,149,149,149,149,149,149,149,149,18,21,244, - 240,190,58,40,80,80,40,80,206,190,58,40,80,80,40,80, - 206,190,58,40,80,80,40,80,206,190,58,40,80,80,40,80, - 206,190,58,40,80,80,40,80,206,190,58,40,80,80,40,80, - 206,190,58,40,80,80,40,80,190,190,58,40,80,80,40,80, - 151,190,58,40,80,40,80,80,151,129,58,40,80,80,80,80, - 151,190,58,80,80,40,40,80,206,129,58,40,80,80,80,80, - 206,190,58,40,80,40,80,80,151,190,58,40,80,80,40,80, - 151,129,58,40,80,80,80,80,151,190,58,80,80,40,80,80, - 151,190,58,80,40,40,80,40,137,129,58,80,40,40,80,80, - 151,28,28,28,103,102,10,10,10,10,10,10,10,10,10,10, - 10,164,164,164,164,164,164,11,164,11,164,11,11,11,11,11, - 11,11,16,16,16,11,11,11,11,16,11,164,16,11,11,11, - 184,239,30,249,30,45,30,45,223,145,249,249,18,82,223,18, - 249,18,116,145,249,249,249,249,223,249,249,45,45,45,45,45, - 30,45,30,45,45,45,45,45,45,45,45,239,239,45,30,45, - 30,45,30,45,45,239,239,30,239,30,45,45,45,184,45,30, - 45,45,45,45,45,45,45,45,45,45,45,45,45,45,149,45, - 239,45,45,45,45,45,45,149,45,45,104,149,45,39,21,244, - 240,129,190,80,80,80,80,40,129,129,190,80,80,80,80,40, - 129,129,190,80,80,80,80,40,129,129,190,80,80,80,80,40, - 129,129,190,80,80,80,80,40,129,129,190,80,80,80,80,40, - 129,129,190,80,80,80,80,80,206,190,58,80,80,80,80,80, - 190,129,203,80,80,80,80,80,190,190,203,80,80,80,40,40, - 135,129,203,80,80,80,80,40,129,190,203,80,80,80,40,80, - 135,129,58,80,80,80,80,40,135,129,190,80,80,80,80,40, - 190,190,58,80,80,80,80,40,190,129,203,80,80,80,40,40, - 135,129,203,80,80,80,80,80,206,190,191,80,80,80,80,80, - 190,28,244,191,187,222,222,10,10,169,10,164,10,164,164,164, - 10,164,164,164,164,164,164,11,164,11,164,11,11,11,11,11, - 11,164,164,16,164,16,11,11,16,11,16,16,11,16,11,11, - 184,45,249,30,249,30,249,249,249,82,145,18,18,34,223,82, - 223,82,223,116,249,18,18,116,145,18,45,249,45,45,45,30, - 45,45,45,45,45,45,45,30,45,45,30,30,30,30,239,30, - 45,45,45,30,30,45,30,45,45,45,45,30,45,45,30,45, - 30,30,30,239,239,45,239,45,239,45,239,239,45,45,45,149, - 149,104,149,45,45,149,104,45,149,45,149,149,149,149,79,244, - 203,203,115,58,58,58,58,115,196,244,115,58,58,58,58,115, - 196,244,115,58,58,58,58,115,196,244,115,58,58,58,58,115, - 196,244,115,58,58,58,58,115,196,244,115,58,58,58,58,115, - 196,244,115,58,58,58,115,196,240,191,115,58,58,58,196,142, - 196,190,115,58,58,244,142,142,196,190,115,58,58,58,58,244, - 244,135,115,58,58,58,58,115,58,135,115,58,244,58,202,244, - 244,240,115,58,58,58,244,244,244,203,115,58,58,58,244,196, - 244,191,115,58,244,244,244,196,244,190,115,58,58,58,58,244, - 244,190,115,58,58,58,196,202,196,244,115,58,58,58,196,142, - 244,28,191,28,130,102,222,222,10,10,136,10,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164,11,164,11,11,11,11, - 11,11,11,164,16,11,16,11,16,164,16,16,16,11,11,11, - 249,239,249,249,249,249,45,249,18,223,109,116,18,109,116,145, - 109,109,223,109,249,223,116,34,223,249,249,184,184,45,249,45, - 45,249,45,45,45,45,45,45,239,239,239,239,239,239,239,239, - 239,239,239,239,239,239,239,239,239,239,73,239,239,239,239,138, - 149,149,239,239,239,239,149,239,239,239,239,104,149,149,104,45, - 149,104,149,104,149,149,149,104,149,104,149,149,149,138,21,58, - 190,190,135,129,129,240,129,133,244,190,190,129,129,240,129,133, - 244,190,190,129,129,240,129,133,244,190,190,129,129,240,129,133, - 244,190,190,129,129,240,129,133,244,190,190,129,129,240,129,133, - 244,190,190,129,129,191,133,129,196,190,135,129,129,240,137,129, - 244,190,58,129,129,190,129,129,196,190,58,129,129,240,129,129, - 196,191,58,129,129,240,129,133,196,191,135,129,129,129,137,129, - 244,190,58,129,129,240,151,129,196,190,135,129,129,191,137,129, - 244,190,135,129,129,190,151,129,244,58,58,129,129,129,129,129, - 244,58,58,129,129,191,151,137,244,190,58,129,129,240,129,129, - 240,28,203,191,187,222,208,10,169,10,136,136,10,136,10,164, - 164,164,164,164,164,164,164,164,164,164,11,164,164,11,11,11, - 16,11,11,16,11,16,11,16,16,16,11,11,16,16,16,11, - 249,249,249,45,249,223,223,18,18,223,116,148,82,143,82,82, - 148,109,145,109,145,116,143,116,175,249,249,249,249,239,239,45, - 249,45,249,249,239,239,239,239,239,239,239,184,249,239,249,239, - 239,239,239,73,239,239,249,73,249,73,249,73,249,138,138,73, - 73,73,239,73,138,149,73,73,138,138,138,149,73,73,138,138, - 149,149,138,149,138,138,138,138,138,149,239,149,239,39,21,244, - 190,58,58,129,129,129,129,129,240,58,58,129,129,129,129,129, - 240,58,58,129,129,129,129,129,240,58,58,129,129,129,129,129, - 240,58,58,129,129,129,129,129,240,58,58,129,129,129,129,129, - 240,58,244,129,129,191,137,129,244,203,58,129,129,191,129,151, - 244,190,244,129,129,190,129,133,28,190,244,129,137,129,129,151, - 58,190,244,137,137,129,129,137,244,58,244,151,129,240,133,129, - 244,190,244,129,129,129,129,129,135,244,58,129,151,240,137,137, - 244,203,58,137,129,129,129,151,240,190,244,133,129,129,129,151, - 240,190,240,129,129,191,129,137,240,190,240,137,129,190,129,129, - 240,115,244,28,125,102,222,10,10,10,10,10,164,10,164,136, - 164,164,164,164,11,164,164,11,11,11,11,11,11,11,11,16, - 11,16,11,11,11,11,16,11,11,16,16,16,16,16,16,16, - 249,239,249,45,249,249,18,116,34,82,223,34,64,64,143,64, - 109,109,24,143,109,148,109,116,223,18,249,249,249,249,249,45, - 45,239,45,239,239,239,239,239,239,239,239,239,239,239,249,73, - 239,249,249,239,249,73,249,239,249,239,249,239,73,149,138,149, - 138,138,138,73,73,138,138,138,73,239,138,138,138,149,138,138, - 138,138,138,104,138,189,138,138,138,138,104,39,149,39,21,202, - 190,191,244,129,137,240,129,133,244,191,244,129,137,240,129,133, - 244,191,244,129,137,240,129,133,244,191,244,129,137,240,129,133, - 244,191,244,129,137,240,129,133,244,191,244,129,137,240,129,133, - 244,191,58,129,133,240,137,129,240,190,244,129,133,190,129,137, - 240,190,244,133,137,240,137,129,135,190,58,129,133,240,137,137, - 240,191,244,129,137,240,129,137,240,191,244,137,129,191,129,133, - 240,191,58,129,129,240,137,133,244,190,244,129,137,129,129,133, - 240,190,244,129,129,240,129,137,244,191,244,129,129,240,129,137, - 244,191,244,133,151,240,129,133,244,191,244,133,129,240,151,151, - 58,203,203,28,187,222,10,10,10,10,164,164,164,11,164,136, - 164,164,164,164,11,11,11,11,11,11,11,11,11,225,11,11, - 11,16,11,16,16,16,11,16,16,16,16,16,16,16,225,225, - 249,249,249,249,45,249,18,18,223,82,148,148,148,64,160,148, - 143,109,148,64,64,64,34,82,109,82,145,18,249,45,45,239, - 239,239,239,239,239,239,239,45,249,45,45,239,239,239,45,45, - 249,45,45,239,45,45,45,239,45,249,239,249,149,73,239,73, - 239,73,239,149,149,149,149,73,149,138,73,149,149,138,138,138, - 138,138,138,138,138,138,138,138,138,138,138,149,149,39,79,115, - 244,190,135,137,129,191,129,129,240,190,135,133,129,191,129,129, - 240,190,135,133,129,191,129,129,240,190,135,133,129,191,129,129, - 240,190,135,133,129,191,129,129,240,190,135,133,129,191,129,129, - 240,190,240,129,129,129,133,129,240,190,240,129,129,129,133,129, - 28,190,244,129,137,129,129,129,196,190,240,129,129,129,129,129, - 196,190,240,133,129,240,137,129,240,190,240,129,129,191,129,129, - 244,190,135,133,129,129,129,129,240,190,240,133,129,112,129,129, - 240,190,240,133,129,129,133,129,244,190,244,129,129,129,133,129, - 244,58,244,137,137,191,129,129,244,58,244,137,137,129,129,129, - 240,244,28,28,187,102,208,10,136,164,10,136,11,136,164,164, - 11,11,11,11,164,11,164,11,11,11,11,11,11,11,11,225, - 16,16,16,16,16,11,16,225,16,16,225,20,126,16,16,16, - 249,249,249,249,249,249,18,223,223,223,171,34,160,41,41,42, - 209,120,160,41,41,148,254,143,82,145,249,18,249,239,45,45, - 45,239,45,45,239,239,239,45,239,239,45,45,45,239,239,45, - 239,239,249,239,239,239,239,239,45,149,45,45,149,149,149,149, - 149,149,45,239,239,149,149,149,149,149,73,239,239,239,239,149, - 104,138,138,138,104,39,149,138,149,149,138,149,149,39,21,115, - 240,240,28,112,240,240,240,190,196,240,28,28,191,112,240,190, - 196,240,28,28,191,112,240,190,196,240,28,28,191,112,240,190, - 196,240,28,28,191,112,240,190,196,240,28,28,191,112,240,190, - 196,240,244,112,85,28,240,240,196,240,244,112,85,28,240,240, - 196,240,28,112,129,202,240,240,202,240,28,112,240,28,85,240, - 196,240,28,28,240,112,240,240,196,240,28,240,85,244,240,240, - 196,240,28,28,240,28,240,240,196,240,28,28,240,112,240,240, - 142,240,28,244,240,28,112,129,196,240,112,112,240,28,112,129, - 196,191,28,112,129,112,240,240,244,191,28,112,129,28,240,240, - 196,244,244,112,187,169,10,10,136,164,10,164,164,164,164,164, - 11,11,11,11,11,225,11,11,11,225,225,16,16,16,16,16, - 16,225,16,16,20,20,16,16,16,20,225,20,126,20,16,16, - 249,249,249,249,249,18,18,145,34,161,118,250,24,160,41,42, - 12,62,62,41,41,42,143,95,114,75,114,87,249,45,239,30, - 184,30,239,239,45,45,45,239,45,45,45,239,45,45,45,239, - 45,45,45,45,45,239,45,45,239,45,149,149,45,45,45,45, - 45,45,149,149,149,239,149,239,239,45,149,149,149,149,149,149, - 149,149,149,149,149,149,149,149,138,138,239,149,149,149,21,202, - 244,190,142,142,115,142,142,115,115,190,142,142,115,142,142,115, - 115,190,142,142,115,142,142,115,115,190,142,142,115,142,142,115, - 115,190,142,142,115,142,142,115,115,190,142,142,115,142,142,115, - 115,190,115,115,202,115,142,115,89,190,115,115,202,115,142,142, - 115,129,89,115,142,142,142,142,115,206,115,89,142,115,142,142, - 115,129,142,142,115,142,142,115,115,206,142,115,142,142,142,142, - 115,190,142,142,142,142,142,115,115,206,142,142,115,142,142,115, - 115,206,142,142,142,115,115,202,115,206,142,89,142,115,115,142, - 89,129,142,115,115,142,142,142,142,129,89,115,89,142,142,115, - 142,203,28,28,187,222,208,136,136,136,11,164,164,11,11,11, - 87,11,11,11,11,11,93,225,225,225,225,225,11,16,225,16, - 16,225,16,16,225,225,20,16,20,20,20,20,20,226,126,225, - 18,18,18,223,223,116,82,82,82,116,34,159,74,211,110,110, - 68,23,250,62,110,62,186,230,71,59,13,233,232,239,239,45, - 45,45,45,45,30,45,45,45,45,45,30,30,45,45,45,45, - 45,45,45,239,45,239,239,45,45,45,45,149,149,149,149,149, - 149,45,45,239,239,45,149,149,149,45,239,239,149,149,149,149, - 149,149,149,149,104,149,149,149,149,149,104,149,149,39,21,202, - 244,129,244,80,80,40,80,80,151,129,58,80,80,40,80,80, - 151,129,58,80,80,40,80,80,151,129,58,80,80,40,80,80, - 151,129,58,80,80,40,80,80,151,129,58,80,80,40,80,80, - 80,129,190,80,40,80,80,80,40,129,190,80,40,80,80,80, - 151,206,240,80,40,80,40,80,80,85,190,80,40,80,40,80, - 151,206,58,80,80,80,80,80,151,129,244,80,80,40,40,80, - 151,129,58,80,40,40,80,80,151,129,58,80,80,40,40,80, - 151,129,244,80,40,80,80,80,151,190,58,80,40,80,80,80, - 137,190,244,80,80,40,80,80,151,190,244,80,80,80,80,80, - 80,15,15,202,187,222,10,10,136,136,11,11,11,11,11,11, - 11,11,93,11,225,11,225,225,11,11,11,16,16,225,16,225, - 251,16,225,20,20,225,20,126,225,126,225,126,16,16,226,225, - 18,18,18,18,18,18,18,223,145,116,82,109,163,243,211,32, - 64,143,227,71,147,150,7,157,105,72,231,231,80,171,249,239, - 239,30,30,45,45,30,30,45,45,30,45,239,30,45,30,30, - 30,30,30,45,30,45,45,30,184,45,45,45,45,45,45,45, - 45,45,239,45,45,239,45,45,45,149,149,149,45,149,45,149, - 149,45,45,149,149,149,104,45,45,149,149,149,149,149,21,58, - 190,206,58,80,80,80,80,80,206,85,58,80,80,80,80,80, - 206,85,58,80,80,80,80,80,206,85,58,80,80,80,80,80, - 206,85,58,80,80,80,80,80,206,85,58,80,80,80,80,80, - 206,84,58,80,80,80,80,80,206,84,58,80,80,40,80,80, - 137,190,58,80,40,80,80,80,40,190,244,80,80,80,40,80, - 137,190,244,80,40,80,80,80,172,190,58,80,80,80,80,80, - 40,129,58,80,80,80,80,80,40,129,58,80,80,80,80,80, - 40,129,196,80,80,80,80,80,151,190,58,80,80,80,40,40, - 80,190,58,80,80,80,40,40,80,129,58,40,80,80,80,40, - 137,28,202,191,125,10,136,11,164,136,164,87,11,11,11,11, - 11,11,11,225,225,225,225,16,225,16,16,225,16,225,16,16, - 11,225,20,225,225,126,20,225,20,20,126,16,126,226,225,225, - 18,18,18,18,18,18,223,18,223,223,145,109,34,82,148,82, - 161,163,186,52,168,22,243,150,183,47,95,189,116,223,18,249, - 45,239,184,45,239,45,30,30,239,30,30,45,30,45,45,239, - 239,239,30,45,30,30,45,45,30,45,45,45,45,45,45,45, - 45,45,45,45,45,239,239,45,45,45,45,45,45,149,45,45, - 149,45,45,45,45,149,149,45,45,45,45,45,149,138,21,244, - 240,129,58,80,80,40,80,80,80,190,58,80,80,40,80,80, - 80,190,58,80,80,40,80,80,80,190,58,80,80,40,80,80, - 80,190,58,80,80,40,80,80,80,190,58,80,80,40,80,80, - 151,190,190,80,80,80,80,80,80,190,190,80,80,80,80,80, - 206,206,190,80,80,80,80,80,151,206,190,80,80,80,80,80, - 206,129,58,80,80,80,80,80,151,129,190,40,80,80,80,80, - 151,190,244,80,80,40,80,80,151,190,58,80,80,80,80,80, - 151,206,58,80,80,80,80,80,151,129,240,80,80,80,80,80, - 206,129,135,80,80,80,80,80,206,206,190,80,40,40,80,80, - 206,28,15,28,125,10,53,136,164,11,11,11,87,11,11,11, - 11,11,225,11,225,11,11,225,225,225,225,11,16,225,16,225, - 16,225,16,126,16,225,126,225,225,225,20,225,16,16,16,225, - 18,18,249,249,249,18,18,18,18,145,82,82,145,116,109,34, - 109,109,143,167,82,82,82,34,34,116,145,223,18,18,18,18, - 249,45,45,239,45,239,239,239,30,45,45,184,239,30,184,30, - 30,45,45,239,45,239,239,45,239,239,45,45,45,45,45,45, - 239,45,239,149,149,45,149,104,45,45,45,149,45,45,149,149, - 45,149,149,149,45,149,104,149,149,149,149,149,45,39,79,196, - 244,85,58,80,80,80,80,80,206,129,58,80,80,80,80,80, - 206,129,58,80,80,80,80,80,206,129,58,80,80,80,80,80, - 206,129,58,80,80,80,80,80,206,129,58,80,80,80,40,80, - 80,135,58,80,80,80,80,80,151,190,58,80,80,80,80,80, - 206,190,58,80,80,80,40,80,137,190,58,80,80,80,80,80, - 206,129,58,80,80,80,80,40,40,190,135,80,80,80,80,80, - 206,151,58,80,80,80,80,80,206,190,58,80,80,80,80,80, - 206,129,58,80,80,80,80,40,40,206,58,80,80,80,80,80, - 206,135,58,80,80,80,80,80,206,135,58,80,80,80,80,80, - 137,203,28,28,125,10,136,136,136,136,136,164,11,11,11,11, - 11,11,11,11,11,225,225,11,11,11,11,225,11,11,11,225, - 11,11,225,16,16,16,225,16,16,225,16,126,16,225,225,11, - 249,18,18,18,249,249,18,18,18,145,116,145,145,116,34,34, - 82,82,82,7,223,82,145,223,82,223,18,223,18,18,18,18, - 249,249,239,249,239,249,249,249,249,239,239,239,239,249,249,239, - 239,239,239,239,239,239,239,249,45,239,239,239,239,239,239,149, - 149,45,45,45,149,45,149,45,149,45,45,45,149,45,45,149, - 45,45,104,149,104,149,45,104,45,104,149,149,45,149,21,142, - 244,190,58,40,40,58,206,190,151,190,58,40,40,58,206,190, - 151,190,58,40,40,58,206,190,151,190,58,40,40,58,206,190, - 151,190,58,40,40,58,206,190,151,190,58,40,40,40,206,206, - 206,190,58,40,40,58,206,190,206,190,58,40,40,58,40,206, - 151,190,58,40,40,40,40,206,206,190,58,40,40,40,40,206, - 151,190,58,40,40,40,40,206,151,206,203,40,40,40,40,206, - 137,190,58,40,40,58,40,206,151,129,58,40,40,58,206,206, - 151,190,58,58,40,58,40,206,151,190,58,40,40,40,206,206, - 151,190,58,40,40,40,40,190,151,190,190,40,40,40,206,206, - 206,240,28,202,69,222,10,10,136,136,136,136,136,136,136,136, - 11,164,164,11,164,164,11,11,11,11,164,11,11,11,11,11, - 11,11,11,11,11,11,16,11,225,225,11,225,16,16,16,11, - 249,249,249,249,249,249,18,18,18,145,223,223,145,223,82,34, - 82,145,223,12,116,82,145,223,223,116,223,223,18,18,249,249, - 249,249,18,249,249,249,45,249,239,249,249,249,249,239,239,249, - 249,249,249,249,149,249,249,239,149,239,239,239,239,149,149,239, - 239,149,239,239,45,149,45,149,45,149,45,149,104,149,149,104, - 149,45,149,45,149,149,149,149,149,149,45,149,149,149,79,244, - 196,190,58,80,80,40,80,80,206,190,58,80,80,40,80,80, - 206,190,58,80,80,40,80,80,206,190,58,80,80,40,80,80, - 206,190,58,80,80,40,80,80,206,190,58,80,40,80,80,80, - 151,190,58,40,80,80,40,80,151,190,58,40,80,80,40,80, - 151,129,58,40,40,80,80,80,206,129,58,40,40,80,40,80, - 206,190,58,40,40,80,80,80,129,84,58,40,40,80,40,80, - 206,129,58,80,80,40,80,80,206,190,58,80,80,80,40,80, - 206,190,58,80,80,80,40,80,151,190,58,40,40,80,80,80, - 151,190,58,40,40,80,80,80,151,190,58,80,40,40,80,80, - 151,28,28,15,21,222,222,208,10,10,10,10,10,10,10,10, - 53,53,164,10,164,164,164,164,164,164,164,164,164,11,164,11, - 11,11,11,11,11,11,11,225,11,11,16,16,16,11,11,225, - 249,249,249,249,249,249,18,18,18,18,18,18,223,223,145,82, - 145,145,223,42,23,82,223,223,223,223,223,18,18,18,18,249, - 18,249,249,18,249,249,239,249,249,249,45,249,249,249,249,45, - 239,239,239,239,239,239,239,73,249,149,149,149,239,239,239,239, - 239,149,149,149,239,138,104,149,104,149,104,149,45,149,149,149, - 149,149,149,149,73,149,138,138,138,138,104,189,138,39,21,96, - 202,129,203,80,80,80,80,40,85,129,203,80,80,80,80,40, - 85,129,203,80,80,80,80,40,85,129,203,80,80,80,80,40, - 85,129,203,80,80,80,80,40,85,129,203,80,80,80,40,80, - 190,190,58,80,80,80,80,80,190,129,58,80,80,80,80,80, - 190,190,58,80,80,80,40,80,85,190,58,80,80,80,80,40, - 129,190,58,80,80,80,40,80,206,40,58,80,80,80,80,80, - 85,190,244,80,80,80,80,40,135,129,203,80,80,80,80,80, - 129,129,58,80,80,80,80,80,190,129,58,80,80,80,80,40, - 190,190,58,80,80,80,80,80,190,190,191,80,80,80,80,80, - 190,28,28,28,79,102,222,222,222,222,222,10,10,10,10,10, - 10,10,164,10,10,10,10,10,10,164,164,164,164,164,164,164, - 164,164,11,11,11,11,11,11,16,11,11,11,225,225,11,11, - 249,249,249,45,249,249,249,18,18,18,18,18,223,223,223,116, - 223,223,223,42,145,82,223,223,18,223,18,18,18,18,149,18, - 249,149,149,249,249,18,18,249,249,249,249,239,149,249,73,249, - 249,249,249,249,249,249,249,149,73,249,249,138,189,138,138,138, - 138,138,138,73,138,138,138,189,138,138,138,138,149,73,138,138, - 138,189,138,138,138,138,138,138,138,189,39,138,189,39,79,202, - 196,190,115,58,58,58,58,115,58,190,115,58,58,58,58,115, - 58,190,115,58,58,58,58,115,58,190,115,58,58,58,58,115, - 58,190,115,58,58,58,58,115,58,190,115,58,58,58,244,142, - 244,191,115,58,58,58,244,142,244,191,115,58,58,58,115,196, - 244,191,115,58,58,58,244,115,244,191,115,58,58,58,58,115, - 135,240,115,58,58,58,58,115,244,191,115,58,58,58,115,115, - 244,190,115,58,58,58,244,196,244,135,115,58,58,58,115,115, - 58,240,115,58,58,58,115,196,244,240,115,58,58,244,244,196, - 240,191,115,58,58,244,115,196,196,244,115,58,58,58,196,142, - 244,202,28,28,79,102,222,222,222,10,10,222,10,10,10,222, - 10,10,10,164,164,164,164,164,164,164,10,164,10,164,164,164, - 164,164,164,164,164,11,11,11,11,11,11,11,11,11,11,11, - 249,73,249,249,249,45,249,18,18,18,18,18,18,223,223,145, - 223,223,39,12,38,145,223,223,18,18,18,18,18,18,149,249, - 149,249,149,149,45,45,249,249,149,249,249,239,239,249,249,249, - 249,249,249,249,249,249,249,249,249,249,138,138,138,138,138,138, - 73,73,138,138,138,138,138,138,189,138,138,189,39,39,149,138, - 138,138,138,39,138,138,138,138,138,104,39,189,189,39,188,142, - 202,190,58,129,129,191,129,133,244,190,58,129,129,191,129,133, - 244,190,58,129,129,191,129,133,244,190,58,129,129,191,129,133, - 244,190,58,129,129,191,129,133,28,135,58,129,129,129,129,129, - 240,190,58,129,129,240,151,129,196,190,190,129,129,191,133,129, - 244,190,190,129,129,129,220,133,244,190,190,129,129,240,129,133, - 196,191,190,129,129,129,129,133,112,190,190,129,129,191,137,133, - 244,191,58,129,129,191,151,129,244,244,58,129,129,191,133,133, - 196,190,58,129,129,191,133,129,244,190,190,129,129,190,151,129, - 196,190,135,129,129,191,133,129,240,190,58,129,129,240,129,129, - 240,28,28,28,76,90,222,171,222,222,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,164,164,164,164,164,164,164, - 164,164,11,11,164,11,11,11,11,11,11,11,11,11,164,164, - 249,249,184,249,249,249,249,249,249,149,18,18,18,223,223,223, - 39,175,223,12,175,223,18,223,18,18,18,18,18,18,18,18, - 45,249,239,239,249,249,249,45,239,45,249,249,249,239,239,249, - 73,149,239,239,239,239,138,149,239,239,73,149,138,149,138,138, - 149,149,149,73,239,138,138,138,149,149,149,149,239,239,149,149, - 149,138,149,239,149,149,104,149,149,39,104,149,149,39,79,196, - 142,190,244,129,129,129,129,129,244,190,244,129,129,129,129,129, - 244,190,244,129,129,129,129,129,244,190,244,129,129,129,129,129, - 244,190,244,129,129,129,129,129,244,190,240,129,129,240,129,129, - 244,190,58,129,129,191,137,129,244,58,244,129,137,191,129,137, - 244,58,135,129,129,240,129,137,244,58,58,129,137,129,129,129, - 58,58,244,129,129,240,129,129,244,58,58,129,137,129,129,137, - 244,190,244,129,129,129,133,129,135,191,244,129,129,191,129,129, - 244,190,244,129,129,191,129,129,244,58,244,129,129,129,129,129, - 244,203,58,129,151,191,129,129,240,190,240,137,129,190,129,129, - 240,244,202,216,79,102,102,10,222,10,10,222,10,10,10,10, - 10,10,10,10,10,164,164,164,53,164,10,164,164,164,164,164, - 164,164,164,11,11,164,11,164,11,11,11,11,11,11,11,11, - 249,18,249,249,249,249,249,249,18,249,18,18,18,39,39,223, - 223,223,18,12,38,223,223,18,223,18,18,18,149,18,149,18, - 249,249,249,249,249,45,249,249,249,45,239,239,249,249,239,249, - 239,149,249,149,138,239,149,138,138,149,239,239,239,45,45,149, - 149,239,149,149,149,149,149,104,149,149,45,149,149,239,149,104, - 149,239,149,239,149,149,104,149,45,149,149,149,45,39,79,202, - 202,191,240,133,151,240,129,133,240,190,240,133,151,240,129,133, - 240,190,240,133,151,240,129,133,240,190,240,133,151,240,129,133, - 240,190,240,133,151,240,129,133,240,190,58,129,129,190,151,151, - 240,191,244,129,133,240,129,133,240,191,58,129,137,240,129,133, - 240,191,244,129,129,190,129,137,240,191,240,129,133,240,129,129, - 240,191,58,129,129,240,129,129,240,191,244,129,129,240,129,137, - 135,191,240,133,129,240,129,137,244,190,58,129,129,240,129,137, - 240,191,58,129,137,190,129,133,240,191,135,129,129,240,129,151, - 240,190,240,129,129,190,129,151,58,191,244,137,129,191,151,151, - 58,28,202,202,79,169,222,10,222,222,10,10,10,136,10,10, - 10,10,164,53,10,10,10,10,10,164,164,164,164,87,164,164, - 164,164,164,11,11,11,11,11,11,11,11,11,11,11,11,11, - 249,175,249,249,249,249,249,249,249,249,18,18,18,18,175,223, - 18,18,18,12,73,223,223,39,39,18,18,18,18,18,18,18, - 149,149,249,249,149,18,249,149,249,18,149,249,149,249,149,249, - 149,249,149,73,149,149,73,149,149,149,149,149,149,149,149,239, - 239,149,149,149,149,45,149,149,149,239,149,45,45,149,149,149, - 149,149,149,149,45,149,149,149,149,149,149,45,149,149,79,142, - 142,58,244,137,129,191,129,129,28,58,244,137,129,191,129,129, - 28,58,244,137,129,191,129,129,28,58,244,137,129,191,129,129, - 28,58,244,137,129,240,129,129,244,58,135,129,133,129,129,129, - 196,190,240,129,137,191,129,129,240,190,240,133,129,129,129,129, - 240,58,240,129,133,112,137,129,240,58,240,129,129,240,137,129, - 240,190,135,129,133,191,151,151,240,190,135,129,129,191,137,129, - 244,58,244,137,129,191,137,129,244,190,135,133,129,191,137,129, - 244,190,135,129,129,129,129,129,240,244,190,133,129,129,133,129, - 240,58,135,137,129,129,129,129,196,58,240,137,133,129,129,129, - 240,115,15,202,162,102,171,222,56,10,10,10,136,10,10,164, - 10,10,10,164,164,164,164,164,164,164,164,164,164,164,11,11, - 11,11,11,11,11,11,11,11,11,93,11,11,11,11,11,164, - 175,175,175,18,18,18,18,18,18,249,18,18,223,18,18,223, - 223,223,249,12,17,223,223,18,18,18,18,18,18,149,18,18, - 18,18,149,18,149,18,149,18,149,18,149,249,149,249,149,249, - 149,149,18,149,149,18,149,149,249,249,149,138,138,138,149,149, - 149,239,239,104,149,239,149,149,149,149,149,149,149,104,39,149, - 149,104,149,149,149,149,45,149,45,45,149,149,149,149,47,216, - 142,240,28,112,240,240,240,240,196,240,28,112,240,240,240,240, - 196,240,28,112,240,240,240,240,196,240,28,112,240,240,240,240, - 196,240,28,112,240,240,240,240,202,240,202,112,240,202,240,240, - 244,240,244,112,129,112,240,240,196,240,202,28,129,28,240,240, - 196,240,202,240,191,112,240,240,196,240,28,112,240,112,240,240, - 196,240,28,240,240,240,240,240,196,240,202,240,190,112,112,240, - 244,240,28,112,240,28,112,129,196,240,28,28,129,112,240,240, - 196,240,28,112,85,28,240,240,196,240,28,244,240,28,240,240, - 196,240,28,112,85,202,240,240,244,240,28,112,240,28,240,240, - 196,28,15,202,79,102,222,222,10,56,136,10,10,136,10,164, - 164,164,10,53,164,164,164,53,164,53,11,87,11,164,164,87, - 11,11,11,11,11,11,11,11,11,225,16,225,225,11,93,11, - 175,223,175,175,175,249,249,249,18,18,18,18,18,18,175,175, - 18,18,73,12,66,223,223,39,223,18,18,18,18,149,18,149, - 18,149,18,149,18,149,18,18,149,249,18,249,249,18,149,18, - 249,249,149,149,149,149,149,249,149,149,138,149,149,149,138,149, - 138,149,149,39,138,149,149,149,138,149,138,138,149,149,149,149, - 149,39,149,138,149,149,149,104,149,149,45,149,149,169,21,115, - 202,253,245,202,142,202,253,115,115,115,245,115,253,202,115,245, - 253,115,245,253,202,253,115,152,115,115,245,245,152,115,245,245, - 245,253,15,245,115,202,245,245,245,202,115,202,253,202,115,115, - 115,115,115,245,202,253,115,115,152,202,202,253,202,112,253,202, - 202,142,202,196,245,202,245,245,253,115,245,115,115,202,152,115, - 115,115,245,115,115,115,245,115,245,245,245,253,202,202,115,115, - 115,115,115,115,202,202,253,202,115,115,245,245,115,202,115,15, - 202,202,15,245,202,202,15,245,202,202,245,245,15,245,15,245, - 245,115,245,15,202,202,15,15,115,115,15,115,202,245,15,245, - 15,245,115,0,94,222,102,10,222,10,10,10,136,10,10,10, - 10,10,164,164,164,53,164,11,164,164,164,164,164,11,11,11, - 11,11,11,11,11,225,93,225,11,11,225,11,225,225,11,11, - 175,223,175,18,223,18,18,18,175,18,18,175,175,223,18,223, - 175,223,239,211,17,18,223,18,223,39,18,223,18,18,18,18, - 149,18,149,249,149,149,149,149,18,149,18,149,249,149,149,18, - 149,249,249,18,249,249,138,249,39,149,138,138,138,149,138,138, - 39,39,149,149,39,138,138,149,138,149,149,138,39,149,149,39, - 149,39,39,149,149,39,149,149,149,149,149,149,39,174,26,245, - 84,193,193,202,84,115,85,142,89,135,96,152,115,202,89,115, - 112,151,206,135,244,202,202,245,245,135,196,240,0,245,245,245, - 245,152,152,245,0,115,202,49,15,112,190,151,115,202,253,253, - 245,135,135,196,196,202,253,112,190,240,202,245,0,152,152,152, - 152,84,84,44,172,151,44,151,29,253,245,0,152,202,202,129, - 85,115,253,216,0,151,85,129,240,202,15,196,135,240,253,253, - 253,202,253,245,115,115,152,0,152,89,89,216,245,253,245,115, - 245,202,202,15,245,152,245,152,0,245,115,216,202,115,96,142, - 245,142,253,115,115,202,142,245,245,245,253,28,202,245,152,0, - 245,0,245,245,89,151,90,56,10,10,10,10,10,164,164,164, - 164,164,164,164,164,87,164,11,11,164,11,11,87,11,11,11, - 11,11,93,93,11,11,225,225,225,16,225,225,16,16,225,11, - 175,223,223,175,175,175,175,175,18,175,223,18,223,175,223,175, - 223,175,18,211,159,223,223,223,18,223,18,223,223,18,18,18, - 18,18,18,18,18,18,249,18,249,18,149,18,149,18,249,149, - 18,39,39,138,138,39,39,39,138,249,138,138,138,138,39,149, - 149,149,149,39,149,149,138,138,149,39,39,149,39,149,39,149, - 39,149,149,39,39,149,39,149,39,149,149,149,39,178,47,151, - 44,196,96,240,49,96,115,142,72,202,142,196,172,238,202,72, - 80,29,133,240,115,15,245,15,15,133,151,29,202,245,152,115, - 245,112,85,152,72,72,142,96,115,202,84,172,253,152,115,135, - 198,108,29,198,112,129,151,84,63,84,80,151,151,202,89,72, - 72,152,96,44,133,72,206,29,242,115,15,197,172,15,63,63, - 84,129,28,244,28,190,29,29,151,151,80,129,151,240,28,240, - 105,129,133,58,196,191,193,29,29,115,115,115,244,115,115,253, - 115,152,115,115,245,152,196,190,15,96,202,115,84,46,196,142, - 142,15,203,28,28,244,245,115,15,245,245,28,115,152,89,245, - 152,245,115,245,0,220,102,10,136,10,164,10,164,10,10,53, - 164,164,53,164,11,164,87,11,87,11,87,11,11,11,11,11, - 11,11,11,11,225,225,225,225,16,225,16,225,225,225,11,225, - 175,223,223,175,223,175,175,223,175,175,223,18,223,18,223,223, - 223,223,18,185,51,175,223,39,223,223,18,18,18,18,18,18, - 149,18,149,18,249,18,149,18,149,149,249,18,249,39,138,138, - 149,149,149,138,149,149,149,149,39,18,149,149,138,149,149,138, - 138,149,239,138,138,149,138,138,149,149,39,149,39,149,149,149, - 149,149,149,149,149,149,149,149,149,73,149,149,149,229,47,188, - 242,115,72,63,89,89,115,202,89,202,253,253,142,63,96,142, - 196,96,135,205,245,15,112,135,115,151,29,198,135,15,202,115, - 245,196,129,115,58,58,89,202,28,152,202,49,172,216,115,29, - 242,29,29,190,133,235,240,112,96,135,240,235,46,133,190,238, - 72,72,84,58,29,44,29,29,29,191,15,84,172,202,63,72, - 96,63,190,151,129,244,133,137,190,187,151,129,152,151,29,29, - 133,108,162,29,196,190,198,29,193,152,152,245,191,89,115,115, - 115,49,135,190,202,0,129,154,115,46,193,190,202,244,15,202, - 135,115,115,89,220,244,202,115,202,115,115,245,245,15,245,245, - 245,0,245,0,245,154,102,10,53,136,136,164,164,164,164,164, - 164,164,11,164,11,164,164,164,11,11,11,11,87,11,11,11, - 11,11,11,11,225,225,225,225,225,225,16,16,16,226,11,11, - 175,223,175,223,175,223,18,175,18,18,18,175,18,175,18,18, - 223,18,249,147,95,223,223,223,39,18,39,18,39,223,18,18, - 18,249,18,149,18,149,18,249,249,189,249,138,138,249,249,138, - 249,138,138,149,138,249,138,249,149,138,138,138,138,73,138,149, - 138,149,39,104,149,138,149,149,104,149,45,149,104,149,149,138, - 149,149,149,73,149,149,149,149,149,149,149,149,39,198,229,188, - 85,44,72,96,202,89,96,58,72,202,72,172,89,142,142,96, - 96,72,137,105,115,245,245,202,151,96,245,58,202,253,202,202, - 115,245,216,152,63,89,202,245,15,0,142,46,46,29,142,190, - 29,133,244,80,44,63,135,115,152,240,115,15,191,244,44,135, - 142,89,44,44,151,151,193,29,58,115,15,49,63,236,63,84, - 37,129,245,15,28,202,113,187,133,152,245,115,130,198,193,137, - 151,193,133,190,202,115,142,15,115,115,142,245,58,0,152,152, - 152,89,108,187,133,0,115,152,0,142,206,72,89,196,135,115, - 142,216,115,72,129,196,253,253,115,142,202,245,15,152,115,15, - 245,245,245,245,15,154,102,10,10,10,136,136,87,11,164,136, - 164,164,164,11,164,11,11,11,11,11,11,11,11,11,11,11, - 93,11,225,225,225,11,225,16,225,126,225,225,225,225,225,225, - 175,223,175,175,175,223,175,241,175,175,18,175,175,175,175,175, - 223,175,249,227,95,223,39,223,175,175,175,223,39,223,39,18, - 39,149,18,149,18,149,249,249,249,138,73,249,138,138,249,189, - 249,138,138,73,73,73,138,73,73,73,73,138,138,138,73,73, - 73,239,149,149,239,104,149,149,149,138,149,149,149,138,149,138, - 138,104,39,149,149,39,149,149,149,149,45,149,39,27,47,47, - 105,151,72,72,142,152,89,96,142,115,193,172,152,49,58,142, - 72,196,129,198,133,245,245,44,133,244,112,115,202,202,245,245, - 202,245,240,29,84,84,135,216,152,152,96,96,245,29,151,178, - 105,113,129,84,240,245,96,125,133,133,197,151,58,203,63,135, - 142,72,44,58,96,137,190,240,240,28,129,141,172,44,63,72, - 72,129,245,15,15,196,84,135,240,244,173,141,37,202,115,58, - 84,80,205,15,15,15,15,245,0,152,245,245,72,115,72,135, - 89,152,137,154,206,245,245,152,152,89,72,240,142,72,142,137, - 115,245,245,245,220,115,152,115,115,245,245,115,245,0,245,245, - 245,15,245,0,240,154,171,136,136,10,136,10,136,136,10,164, - 11,11,53,11,11,164,11,11,11,11,11,11,11,11,93,11, - 225,225,225,225,16,225,225,16,16,226,126,226,16,226,16,225, - 175,175,175,175,175,175,175,175,175,175,223,175,223,175,223,223, - 175,223,39,168,208,223,223,39,223,223,223,18,175,39,223,18, - 138,18,138,18,249,189,189,189,189,189,249,138,73,138,73,73, - 73,73,73,249,138,149,73,149,149,138,138,239,73,73,149,149, - 149,138,149,104,138,149,138,138,104,138,104,138,138,138,138,138, - 149,149,149,149,138,239,73,138,138,239,138,149,189,198,188,47, - 188,170,172,58,72,152,96,96,115,0,49,172,142,172,72,253, - 245,196,58,29,178,151,178,86,135,151,193,21,135,245,115,115, - 0,244,133,191,152,84,240,58,49,58,84,172,84,112,202,58, - 198,137,133,135,244,178,197,197,244,28,196,188,29,202,15,151, - 112,72,44,84,44,135,196,142,89,135,240,133,137,190,29,58, - 49,115,245,15,196,172,44,202,137,84,84,29,46,80,49,72, - 151,133,29,15,15,245,15,15,115,152,15,15,115,49,72,142, - 253,152,115,58,245,115,115,202,245,115,89,115,142,197,72,15, - 15,245,245,245,245,240,202,240,58,115,115,0,15,115,152,115, - 245,115,245,245,80,137,102,10,10,136,136,11,164,164,11,11, - 164,164,11,164,164,11,11,11,11,11,11,225,11,225,11,225, - 16,11,11,11,225,16,126,225,225,225,16,225,226,16,126,225, - 175,175,241,241,175,175,175,241,241,175,175,18,223,175,175,223, - 18,223,18,68,54,223,39,18,39,39,39,39,18,189,39,18, - 189,39,39,39,249,249,138,249,249,138,73,249,73,249,138,249, - 249,249,73,239,73,249,73,73,138,73,138,138,149,73,138,73, - 138,138,138,138,138,104,39,138,138,138,138,104,138,104,138,138, - 138,189,189,138,189,138,138,138,189,138,138,39,39,242,105,144, - 188,26,63,117,72,142,72,58,96,85,44,96,133,172,172,172, - 89,63,152,49,84,29,188,80,96,151,47,188,151,152,96,115, - 202,190,151,137,115,193,190,103,63,172,84,141,72,245,15,115, - 196,206,112,202,49,63,198,193,141,44,197,29,172,44,129,244, - 135,80,96,29,193,193,69,29,96,142,240,154,29,137,142,206, - 152,115,202,245,197,115,190,244,80,151,29,187,187,29,29,151, - 135,154,29,15,129,202,244,198,133,135,15,115,115,72,206,152, - 142,245,245,28,245,152,206,115,152,245,115,193,115,236,190,245, - 15,245,245,15,15,142,115,28,129,191,191,0,202,115,115,152, - 245,15,0,0,154,154,222,136,136,10,136,164,164,164,164,11, - 11,11,11,11,11,11,87,11,11,225,11,225,225,225,225,11, - 16,225,16,126,225,225,20,126,226,226,226,225,226,16,16,225, - 175,175,175,175,175,175,175,175,175,249,175,241,175,249,18,18, - 175,138,39,167,140,18,175,241,189,189,39,18,189,18,189,189, - 39,189,189,189,189,138,189,138,138,189,249,138,249,138,249,138, - 138,138,138,138,249,73,249,249,73,239,73,239,73,239,73,138, - 104,138,138,138,138,138,104,149,149,138,138,138,138,138,138,138, - 138,73,138,104,138,138,138,104,138,149,138,149,223,188,78,78, - 176,27,105,151,49,49,89,96,96,29,29,80,151,63,172,235, - 89,152,152,115,84,202,188,188,21,206,125,188,137,238,141,58, - 115,37,206,80,152,80,151,29,202,84,72,133,206,245,245,245, - 0,190,245,178,79,142,151,193,46,128,46,29,85,96,72,112, - 240,133,198,84,96,69,79,79,79,115,115,96,112,0,115,240, - 89,115,49,142,135,173,133,80,142,193,197,29,44,187,216,142, - 151,58,129,202,190,244,240,84,72,115,115,15,15,115,72,142, - 115,89,202,137,115,152,112,113,152,202,80,37,202,206,115,245, - 15,245,15,15,15,115,129,191,190,190,28,202,191,245,245,15, - 115,115,245,15,103,80,10,208,164,11,164,11,11,87,11,87, - 11,11,225,225,225,11,11,11,225,11,225,225,225,20,16,225, - 225,16,126,16,126,16,225,16,16,225,16,226,226,226,126,225, - 175,175,175,175,175,241,175,175,175,175,175,241,175,175,241,18, - 175,18,18,167,214,18,39,18,18,189,189,189,138,189,249,249, - 249,138,249,138,189,73,73,73,73,73,73,189,73,73,73,73, - 73,73,73,138,138,138,138,249,138,138,138,73,138,149,149,149, - 73,138,104,138,138,149,138,104,138,104,138,104,138,138,104,138, - 138,149,138,138,138,138,138,149,104,138,138,138,39,144,78,78, - 105,129,28,129,63,44,72,89,115,193,133,135,172,37,115,112, - 142,46,236,236,115,202,84,198,105,151,141,198,151,203,172,196, - 63,236,84,129,72,151,129,151,129,44,172,133,154,135,15,115, - 245,190,244,44,84,115,84,37,141,63,46,84,190,152,172,44, - 190,151,198,29,178,178,178,79,86,80,115,151,190,245,151,240, - 129,151,135,172,28,240,154,85,198,117,29,193,115,113,84,133, - 205,152,152,96,130,244,115,58,172,142,15,245,15,115,191,115, - 115,115,28,240,154,142,245,190,0,108,205,129,137,133,15,245, - 15,245,245,15,15,245,196,240,9,244,115,115,69,190,202,202, - 15,115,190,190,234,154,10,136,136,136,136,136,11,11,11,11, - 87,11,11,11,225,225,225,225,225,225,225,225,225,225,225,16, - 20,225,16,225,126,20,226,226,226,226,20,226,226,226,226,225, - 175,241,241,241,241,241,249,249,241,241,175,18,241,249,18,175, - 18,241,175,230,54,175,175,241,189,175,18,18,189,189,18,189, - 189,138,189,189,249,138,249,138,249,138,138,73,189,249,189,189, - 249,138,249,73,138,73,73,138,138,73,73,138,138,189,104,138, - 138,138,138,138,138,138,138,138,138,138,138,138,138,138,189,138, - 138,104,138,138,138,104,138,138,189,138,138,138,18,105,141,46, - 13,63,112,28,191,242,84,89,202,29,44,141,84,72,49,96, - 63,46,49,152,133,172,89,197,29,29,174,172,44,105,174,154, - 58,49,141,198,29,96,115,135,80,244,142,190,44,190,245,245, - 0,151,28,197,105,205,137,151,49,63,44,172,151,135,133,84, - 129,142,151,115,178,79,188,113,21,133,112,29,205,0,152,151, - 80,133,245,202,15,15,84,141,206,151,231,154,46,187,178,245, - 72,152,245,115,15,202,72,37,172,142,15,245,115,15,154,191, - 240,196,135,15,29,129,96,240,152,108,151,80,154,190,15,15, - 15,15,15,15,15,245,142,190,240,202,115,49,154,187,15,115, - 202,245,112,202,129,151,222,136,11,11,11,11,11,93,11,11, - 11,11,93,225,11,11,11,11,225,225,225,225,225,16,126,126, - 225,20,126,20,16,126,226,16,20,226,226,226,226,20,16,16, - 175,241,73,249,249,241,184,241,73,73,241,73,73,241,189,189, - 175,189,175,71,54,175,39,39,138,189,189,189,18,189,189,138, - 189,189,249,189,189,189,189,138,138,189,249,138,189,138,138,189, - 189,189,138,138,138,138,73,138,138,138,138,73,138,189,189,138, - 73,138,104,138,73,104,39,138,138,138,138,138,104,39,149,138, - 189,138,138,138,138,138,104,39,149,138,138,39,223,130,112,129, - 129,133,130,193,151,44,197,72,202,44,151,84,141,135,240,84, - 117,63,193,46,26,141,193,205,193,29,198,72,196,141,117,26, - 191,130,151,151,84,141,63,240,84,89,151,151,103,152,89,89, - 63,129,190,240,178,105,63,130,151,151,96,178,29,236,46,142, - 135,135,84,49,49,29,187,198,187,193,154,133,151,205,152,152, - 84,137,202,115,15,190,231,13,146,142,197,49,240,133,154,72, - 49,190,137,129,152,245,137,137,152,245,15,0,89,72,108,0, - 89,191,240,191,129,190,253,245,152,80,133,29,137,129,15,15, - 15,245,245,245,15,196,58,63,152,142,245,72,245,114,202,115, - 240,245,115,115,245,154,10,136,136,225,11,136,11,93,93,225, - 225,11,11,225,225,225,225,16,16,225,16,16,126,16,225,20, - 225,20,126,20,16,16,226,126,226,226,20,20,226,226,226,225, - 175,241,241,241,241,241,241,241,241,241,73,241,241,241,241,175, - 249,18,18,111,54,175,73,73,73,138,249,249,138,189,249,189, - 189,138,189,189,249,138,249,189,189,249,189,189,138,189,189,138, - 138,138,138,73,138,138,138,73,138,138,189,138,73,138,138,104, - 138,138,189,189,189,39,138,138,138,138,138,189,39,138,189,39, - 39,189,138,138,39,138,39,138,189,189,39,138,39,29,238,26, - 129,193,229,229,229,105,27,49,89,84,152,152,141,84,196,46, - 141,231,172,245,231,44,235,29,96,151,105,188,133,46,26,13, - 49,49,58,205,240,202,142,240,142,84,112,133,135,49,49,72, - 46,244,133,191,28,235,29,193,245,245,129,37,242,29,245,72, - 135,196,112,202,115,49,198,105,29,151,152,129,129,240,152,89, - 152,253,115,152,115,174,146,128,212,37,170,196,72,80,84,245, - 0,129,205,0,152,152,245,0,0,245,0,191,133,196,72,115, - 84,72,196,103,113,137,113,187,58,240,190,191,58,190,15,245, - 15,245,0,245,245,115,58,0,253,115,115,115,245,190,96,46, - 242,115,245,245,151,103,136,136,11,11,11,225,93,11,225,225, - 93,225,225,225,16,225,16,225,225,16,225,20,225,20,20,225, - 126,225,16,126,226,226,226,20,20,226,226,226,226,251,126,226, - 241,175,241,241,241,241,241,73,73,241,241,241,241,249,241,241, - 241,189,249,59,54,189,73,73,73,73,73,73,249,189,249,249, - 189,189,138,189,189,189,138,73,189,138,73,73,73,73,73,73, - 73,189,138,189,189,189,189,189,189,73,189,138,189,189,189,189, - 189,189,104,39,73,189,189,189,189,189,138,138,189,138,138,138, - 39,189,189,73,39,138,189,189,39,138,39,39,223,242,240,46, - 46,242,177,229,229,105,47,49,89,89,152,37,172,63,130,178, - 193,13,133,235,229,63,26,117,213,130,198,198,26,174,117,63, - 49,89,49,58,151,202,244,240,202,142,137,133,137,72,72,72, - 235,202,244,84,28,28,135,63,29,89,29,151,58,202,198,133, - 245,115,15,115,115,115,63,29,198,151,15,0,202,15,152,152, - 152,152,115,89,231,70,13,236,37,115,49,196,135,190,242,37, - 245,244,142,152,245,0,142,89,115,152,152,137,245,142,142,190, - 115,152,115,191,129,129,151,133,142,202,154,154,129,80,115,152, - 245,245,245,245,152,202,58,152,49,115,253,115,240,190,202,196, - 115,0,245,15,58,135,136,93,136,225,11,225,225,225,93,16, - 226,126,225,225,126,126,225,16,225,20,225,20,126,126,20,20, - 20,20,20,251,251,251,226,226,20,226,251,20,20,20,226,226, - 241,241,175,241,241,241,73,241,241,241,73,241,73,73,73,249, - 73,73,175,200,86,249,249,73,73,73,189,189,73,249,189,73, - 73,138,73,138,73,73,73,138,73,73,138,138,249,138,189,138, - 189,73,189,73,73,73,189,73,73,189,138,189,73,73,189,138, - 73,138,189,73,189,73,73,189,189,189,189,189,189,39,189,138, - 138,149,39,39,138,189,138,138,138,189,138,39,39,130,37,236, - 193,29,177,144,229,105,229,37,245,152,89,236,152,152,130,188, - 63,170,13,146,174,238,236,242,174,170,29,29,112,242,26,13, - 89,49,152,96,112,191,202,190,115,244,113,205,133,240,142,142, - 49,196,245,133,29,203,28,129,202,202,202,216,202,72,29,129, - 190,240,112,96,112,196,72,242,197,202,115,129,244,203,152,152, - 49,89,0,89,152,0,0,0,152,89,202,117,29,84,129,46, - 63,151,115,152,152,0,58,49,49,152,152,129,108,244,240,72, - 49,49,115,133,191,154,137,245,115,253,142,142,244,202,72,89, - 115,0,152,72,253,49,115,152,216,245,245,245,244,196,244,49, - 28,142,152,0,129,205,10,11,225,225,225,225,126,225,16,225, - 225,16,126,126,225,16,126,20,126,126,20,126,20,20,126,126, - 251,251,226,20,20,20,20,251,139,139,20,139,139,139,226,16, - 241,241,241,184,184,241,184,184,184,241,73,249,241,73,241,73, - 249,249,175,52,86,241,189,73,73,73,73,189,73,73,189,249, - 73,189,73,189,189,189,73,73,73,73,73,73,73,73,73,73, - 138,73,138,138,138,73,189,189,73,73,138,138,138,138,73,138, - 189,189,138,138,138,138,149,138,138,189,189,138,104,39,189,189, - 39,138,138,189,189,189,73,149,138,189,138,39,223,157,235,146, - 117,172,128,49,117,37,49,37,115,89,89,152,0,49,84,172, - 49,49,133,72,174,216,235,130,144,235,193,242,193,13,141,49, - 89,49,89,89,72,63,202,63,49,190,206,202,115,202,0,115, - 115,89,58,216,133,151,236,84,133,142,58,29,130,240,202,142, - 142,142,202,244,202,129,89,193,231,202,15,133,135,115,115,152, - 152,49,96,151,84,135,202,245,245,152,49,115,151,96,202,235, - 236,135,152,152,0,15,115,115,152,152,141,141,129,137,245,115, - 29,0,244,103,113,103,154,112,29,80,135,152,152,152,152,0, - 152,152,115,72,253,152,0,0,0,152,245,245,191,129,253,152, - 245,202,152,0,113,108,136,11,11,225,16,16,16,225,126,226, - 226,20,20,251,237,20,20,251,20,251,237,126,20,20,20,20, - 20,226,226,226,226,226,20,20,20,226,20,20,20,20,226,226, - 241,241,241,241,241,184,184,184,184,184,184,184,241,73,73,73, - 73,73,241,200,79,241,73,73,73,73,73,73,73,73,73,73, - 189,73,241,189,189,73,189,189,189,241,73,73,73,189,241,189, - 73,189,73,73,189,189,189,189,189,189,189,189,189,189,39,189, - 189,138,189,189,189,189,189,189,189,189,189,138,73,138,39,138, - 189,189,189,189,138,138,39,138,73,189,189,138,39,200,157,85, - 96,236,13,174,46,44,105,49,0,49,49,152,89,89,49,170, - 49,72,13,117,146,236,26,130,188,84,46,117,44,151,15,15, - 49,49,152,49,72,49,245,49,84,133,96,172,172,72,89,89, - 152,115,89,240,245,202,190,29,29,72,85,133,129,142,115,151, - 244,245,115,202,142,15,253,112,13,15,15,89,152,15,15,152, - 152,152,152,152,115,137,29,84,236,37,191,240,28,28,135,135, - 84,115,115,115,15,173,28,15,15,115,15,58,29,113,245,202, - 113,129,108,113,113,151,115,0,245,0,0,0,115,115,245,0, - 152,152,152,115,0,0,152,152,245,152,0,152,28,154,197,238, - 96,115,0,0,244,96,11,225,16,126,225,16,226,20,20,20, - 20,126,20,20,20,20,251,20,237,20,20,20,126,126,126,226, - 226,20,226,226,226,20,226,226,226,20,226,226,226,226,226,226, - 241,73,228,228,241,184,241,228,184,241,184,73,184,73,73,73, - 241,73,241,52,188,241,73,73,73,73,73,241,189,189,241,241, - 241,189,241,189,241,189,189,189,189,241,241,241,189,189,241,189, - 241,189,175,189,189,189,189,39,189,189,189,189,189,189,39,39, - 39,39,39,39,39,189,189,39,39,189,189,189,189,138,39,189, - 39,39,39,39,189,189,39,39,39,138,39,189,39,229,22,177, - 13,46,235,174,229,236,174,49,152,49,49,152,152,115,72,193, - 72,96,37,112,146,72,236,117,78,133,46,244,213,26,46,46, - 15,115,28,178,188,105,79,188,105,245,152,72,235,54,47,21, - 198,152,152,190,152,245,245,253,202,198,187,72,240,213,202,151, - 129,213,244,202,202,135,44,242,146,202,15,72,152,115,115,152, - 152,152,152,152,72,151,172,190,190,202,202,115,28,112,115,58, - 29,15,173,173,173,15,245,115,15,245,15,15,103,178,187,142, - 198,103,133,191,190,133,115,151,152,152,152,115,133,244,15,115, - 115,152,152,152,240,0,152,152,0,152,0,196,115,142,58,196, - 202,89,152,245,108,129,225,225,16,16,226,16,126,16,226,226, - 20,20,20,20,237,20,237,251,237,119,165,224,20,20,20,226, - 226,20,20,226,226,226,226,226,226,226,226,226,226,226,20,226, - 228,228,241,241,228,228,184,184,184,184,228,228,73,228,73,184, - 184,73,241,199,79,241,184,73,73,73,73,73,189,241,189,241, - 189,241,189,241,39,241,241,241,241,39,241,241,189,189,189,241, - 189,189,189,189,241,241,189,189,241,189,175,39,189,189,189,189, - 189,189,189,189,189,39,39,189,189,189,189,189,189,39,73,39, - 189,189,189,189,39,189,189,189,189,189,189,39,223,177,248,111, - 46,236,46,200,117,231,46,37,49,49,37,152,49,152,49,170, - 49,49,146,231,128,111,117,117,174,197,238,28,72,197,133,242, - 244,15,203,105,196,29,44,85,130,0,0,0,202,151,72,72, - 89,89,89,29,152,202,173,15,173,29,105,235,240,196,129,112, - 129,190,85,133,133,129,96,231,231,15,15,108,113,137,15,115, - 72,152,152,206,193,198,142,205,240,191,245,191,112,28,96,89, - 196,245,245,245,0,15,15,173,15,15,203,0,133,80,133,187, - 151,115,108,125,114,133,0,103,113,244,152,58,115,115,0,152, - 72,152,152,152,190,137,240,58,245,206,190,112,253,142,240,202, - 240,245,245,152,190,133,11,16,16,226,226,226,20,226,20,251, - 20,226,20,251,251,75,234,114,234,234,233,108,6,35,108,108, - 234,187,234,114,114,69,134,232,114,114,114,94,226,20,226,226, - 228,73,228,228,228,228,228,228,228,73,228,228,228,228,73,228, - 73,73,241,128,188,241,184,73,241,73,241,73,73,73,73,189, - 189,189,189,241,189,189,189,189,189,189,189,189,189,189,189,189, - 189,241,189,189,189,189,241,189,189,189,189,241,189,189,73,241, - 189,241,189,189,189,189,189,189,189,189,189,189,189,39,138,189, - 189,189,73,189,189,189,189,138,39,189,189,189,39,217,200,248, - 229,49,231,59,128,89,37,245,152,235,115,242,199,242,152,170, - 235,84,193,174,146,26,128,26,174,130,235,15,47,141,235,197, - 202,28,191,178,193,214,95,178,188,0,0,142,84,85,115,89, - 152,89,49,193,151,151,205,28,244,231,29,29,89,115,142,142, - 96,129,129,135,142,115,236,128,84,28,15,133,187,96,15,203, - 29,117,0,58,63,205,193,142,151,133,244,151,108,103,216,133, - 151,151,29,29,29,29,198,202,15,15,15,245,187,178,187,178, - 133,245,245,112,15,115,152,206,129,190,202,96,142,202,115,152, - 72,152,152,245,108,113,58,49,0,0,0,202,202,244,190,115, - 202,115,245,152,137,205,93,225,16,16,225,16,226,226,16,226, - 237,201,232,234,108,234,234,234,234,234,33,108,108,6,6,6, - 6,108,35,108,108,108,108,154,154,154,6,234,226,226,20,226, - 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,73, - 228,228,241,70,188,241,241,184,104,73,73,73,73,189,189,189, - 189,189,189,73,189,189,189,189,73,189,189,73,189,189,189,189, - 189,73,189,189,189,189,73,189,241,73,73,241,189,241,189,189, - 189,189,189,189,73,73,189,73,189,189,189,189,189,189,189,189, - 189,39,39,138,39,73,189,189,149,73,189,189,223,183,22,248, - 157,236,212,146,146,49,202,49,236,172,89,176,131,176,26,151, - 170,198,105,178,27,117,85,235,117,117,235,142,242,141,141,29, - 15,135,129,130,130,198,27,27,188,142,151,96,112,115,152,152, - 89,58,188,188,188,229,27,44,70,212,174,198,26,0,253,245, - 253,202,115,240,245,63,231,112,28,15,178,79,29,133,115,28, - 151,151,202,142,130,193,84,29,152,115,72,85,96,152,84,178, - 29,193,198,187,198,198,21,28,173,15,152,0,113,178,125,178, - 29,15,202,245,0,15,245,0,0,135,133,29,129,202,112,152, - 0,245,152,202,244,244,63,115,152,15,137,190,244,220,191,202, - 58,216,129,129,108,29,11,225,226,226,16,226,94,201,114,234, - 108,108,234,114,234,234,234,234,234,234,154,6,108,108,108,108, - 108,108,108,6,108,108,154,108,108,108,108,108,226,226,226,226, - 228,228,228,228,228,66,228,66,228,228,228,228,228,228,228,228, - 73,228,241,170,21,241,184,241,104,73,241,73,73,73,73,73, - 73,73,189,73,189,189,73,189,189,189,189,73,73,189,73,189, - 189,73,73,73,73,189,189,73,189,189,189,73,73,189,189,189, - 73,189,189,189,189,189,189,138,189,189,189,73,189,189,189,189, - 73,73,189,73,138,138,189,189,138,149,138,73,189,177,200,248, - 200,49,37,117,141,235,238,193,49,72,235,105,21,229,105,96, - 193,105,144,78,176,47,89,238,26,46,236,72,245,216,152,112, - 28,72,220,235,144,86,86,176,54,245,245,115,245,115,151,151, - 193,96,84,105,242,44,202,152,253,49,146,170,178,198,89,240, - 202,129,129,202,236,151,113,188,178,15,79,105,113,198,152,115, - 197,29,178,142,188,141,141,198,198,49,72,198,187,172,240,178, - 108,206,193,29,29,29,80,85,152,152,115,152,187,72,58,190, - 135,133,86,133,245,72,63,152,245,154,133,154,29,137,129,152, - 0,202,0,112,240,244,49,115,152,137,137,137,202,191,245,15, - 28,115,137,133,108,205,164,16,94,187,187,234,234,108,234,234, - 234,234,234,234,234,33,234,234,114,234,108,6,108,6,6,6, - 6,108,108,6,6,234,6,6,6,6,108,6,226,226,20,226, - 228,228,228,66,66,66,66,66,66,66,66,66,228,228,228,228, - 228,228,241,117,229,241,228,73,104,228,104,104,104,104,73,73, - 189,189,73,189,73,73,189,73,73,73,73,189,189,73,73,73, - 73,73,189,73,73,73,73,189,73,73,73,189,189,73,73,73, - 138,239,73,189,189,73,138,73,189,189,189,189,104,189,138,138, - 189,189,73,189,189,138,104,73,189,73,189,189,39,199,177,22, - 157,128,231,13,46,174,177,78,174,193,84,63,115,72,72,85, - 151,197,130,144,47,47,105,152,89,0,245,216,216,152,245,202, - 245,115,202,202,29,105,188,47,86,115,28,15,202,28,115,28, - 28,85,96,196,202,115,202,202,202,202,245,72,26,105,188,193, - 84,151,133,178,86,86,21,205,202,202,79,187,193,151,190,202, - 202,151,29,244,137,80,151,206,170,142,15,115,152,245,115,198, - 29,244,58,84,235,63,46,26,152,115,152,245,152,245,245,245, - 245,113,113,198,133,96,216,245,0,29,80,133,133,133,115,0, - 115,15,245,245,202,58,72,115,115,115,196,112,244,205,28,151, - 108,89,129,220,133,240,114,234,234,234,114,114,234,234,114,234, - 234,114,234,114,234,33,234,234,234,234,80,6,108,108,108,108, - 108,6,108,108,108,6,108,108,108,108,6,108,20,226,226,226, - 228,66,66,66,66,66,66,66,66,66,66,228,66,228,228,228, - 228,228,241,170,198,241,228,228,104,104,104,73,104,104,104,104, - 73,189,73,73,73,73,189,73,73,189,73,73,73,73,73,73, - 73,73,73,73,73,73,239,138,189,73,73,73,138,189,73,73, - 73,73,73,73,73,73,189,104,104,104,138,189,104,73,73,104, - 104,189,104,73,73,189,189,73,239,73,73,73,189,156,174,236, - 235,238,236,46,117,172,37,46,96,89,183,183,117,231,242,128, - 63,216,128,37,13,70,212,32,238,253,231,13,13,231,37,13, - 238,115,63,84,85,206,58,58,63,142,135,58,96,135,58,58, - 63,202,112,142,112,58,135,190,85,112,142,72,96,240,142,89, - 238,202,202,89,245,115,89,115,202,115,115,115,72,196,253,202, - 89,202,196,58,142,89,142,240,202,115,89,202,202,202,202,115, - 202,202,142,196,142,240,58,202,202,253,202,115,244,244,240,28, - 15,202,244,244,58,202,115,115,245,202,115,244,244,196,115,202, - 245,15,115,115,142,202,202,202,15,245,115,115,115,115,15,115, - 253,152,152,115,15,108,113,29,40,40,58,9,9,40,9,9, - 9,33,80,6,234,114,114,234,234,234,6,154,6,108,108,6, - 234,6,108,6,108,6,154,108,108,108,6,108,69,103,139,20, - 228,66,66,66,66,77,66,77,66,77,66,66,66,66,66,66, - 66,66,184,26,105,241,228,228,228,228,228,228,104,104,104,104, - 104,104,73,73,73,104,104,73,73,104,104,104,73,73,104,73, - 73,104,73,73,73,73,73,73,73,73,73,104,73,73,73,73, - 73,73,73,104,73,73,104,189,189,189,104,73,149,73,104,189, - 189,104,189,138,104,73,239,73,73,104,104,73,73,138,47,242, - 235,89,141,92,92,92,92,124,217,216,183,124,200,124,200,59, - 26,63,128,182,32,32,32,120,37,152,92,59,59,59,200,59, - 26,89,193,141,141,193,141,193,26,89,197,193,141,197,197,193, - 26,96,193,151,197,197,151,172,26,142,235,49,63,37,63,84, - 26,89,217,127,72,72,49,115,26,216,235,172,58,84,206,58, - 26,152,133,84,206,172,84,84,84,202,44,84,206,58,206,206, - 235,96,44,58,190,135,190,58,235,196,84,190,58,190,58,135, - 142,135,72,58,115,58,244,196,115,89,58,58,58,244,58,58, - 152,142,244,244,244,58,115,142,152,196,244,244,58,244,196,115, - 245,245,135,135,80,233,33,233,233,35,35,35,108,35,35,35, - 35,233,35,35,233,9,33,233,154,108,233,108,108,6,6,108, - 6,108,154,108,108,108,234,154,6,154,108,154,154,129,112,115, - 77,66,77,66,77,77,77,77,77,77,66,77,66,77,66,66, - 66,66,184,193,198,184,228,228,104,228,228,228,228,228,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, - 104,104,104,104,104,104,104,104,73,104,104,73,104,104,73,73, - 239,239,104,104,104,104,104,104,104,104,104,104,239,73,239,104, - 104,104,104,104,104,73,239,104,104,138,104,104,104,73,176,229, - 84,115,231,212,124,124,92,124,183,216,52,59,92,59,124,59, - 46,152,124,32,32,71,32,120,26,89,59,32,32,182,182,59, - 193,115,174,105,170,174,170,141,235,253,197,193,193,170,193,141, - 26,84,193,29,193,29,29,141,174,142,133,235,84,235,46,46, - 26,253,236,152,63,49,172,49,242,115,26,151,105,105,193,172, - 26,142,242,44,44,151,172,197,26,142,197,172,172,172,206,84, - 133,96,44,206,84,84,206,58,235,58,84,206,84,172,58,96, - 238,85,58,49,63,58,49,135,96,112,58,58,172,172,244,44, - 216,135,58,58,58,58,58,135,152,96,58,58,58,58,58,142, - 245,202,133,129,33,233,35,35,35,6,233,35,35,35,35,233, - 35,233,35,233,233,233,35,233,33,33,9,154,108,108,154,108, - 154,108,6,6,6,154,154,234,108,108,108,154,154,220,216,245, - 77,66,77,77,66,77,77,66,77,77,77,77,77,121,66,194, - 194,66,184,46,170,184,66,121,121,104,228,104,228,228,228,104, - 104,104,104,104,104,104,104,228,104,104,104,228,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,73,104,73,104,104,104, - 104,104,104,73,104,104,104,104,104,104,239,73,104,104,104,104, - 138,104,104,104,104,104,104,138,104,104,104,104,239,239,131,157, - 242,115,170,128,170,146,170,92,26,253,146,92,146,92,92,59, - 26,152,124,59,182,59,59,71,46,89,59,32,32,182,182,59, - 46,115,128,52,52,212,174,174,46,89,174,170,170,170,170,170, - 117,58,170,29,29,170,29,29,174,142,141,117,231,141,235,141, - 235,142,46,70,13,141,46,236,242,89,141,193,105,105,242,197, - 235,142,242,141,172,172,193,172,242,202,193,172,44,172,44,197, - 235,196,193,84,172,172,44,63,133,96,197,206,172,84,84,58, - 72,96,58,172,49,172,58,84,142,63,58,135,80,197,244,84, - 115,96,58,58,58,58,58,135,245,135,244,58,58,58,244,142, - 245,190,29,29,6,233,233,35,35,35,35,35,233,35,35,233, - 233,233,233,233,233,233,35,233,233,233,33,33,154,6,108,108, - 6,108,108,108,108,108,108,6,6,6,220,220,191,245,0,115, - 77,66,77,77,246,77,77,77,246,77,77,121,77,77,77,77, - 121,77,184,26,130,184,66,66,121,121,121,121,156,121,228,156, - 156,228,228,104,228,228,104,228,228,104,121,95,214,214,95,51, - 51,121,104,104,104,104,104,104,73,104,104,104,73,104,104,104, - 104,73,104,104,104,73,104,239,104,104,104,104,239,104,104,104, - 104,104,138,104,104,104,104,104,104,104,104,104,104,104,158,157, - 174,142,141,146,146,212,170,212,170,253,231,212,146,13,13,92, - 141,152,92,212,124,59,59,71,141,142,124,59,59,59,128,124, - 141,115,128,105,105,105,170,170,193,142,174,170,170,170,29,170, - 117,112,170,29,29,193,29,193,174,142,46,172,46,231,231,117, - 235,142,46,58,46,46,37,37,174,202,141,193,128,170,29,141, - 133,142,193,193,141,141,197,44,242,142,193,172,197,172,197,197, - 26,58,141,206,84,206,172,84,133,253,172,206,172,172,206,206, - 96,235,58,58,172,49,58,84,238,85,58,172,197,29,58,84, - 253,112,58,58,58,58,72,135,0,135,244,58,203,58,115,58, - 245,129,205,29,6,35,35,6,6,233,35,35,233,35,233,233, - 233,35,233,9,233,233,233,233,35,233,9,233,233,33,80,108, - 108,6,108,6,6,6,108,154,154,154,244,33,28,245,245,202, - 77,77,77,77,77,77,246,77,77,77,246,77,77,246,121,121, - 77,194,107,235,133,184,121,121,121,66,66,66,66,156,66,156, - 228,156,104,156,104,156,104,156,104,47,242,29,21,21,27,85, - 85,130,51,30,104,156,156,214,199,79,159,104,156,104,104,104, - 104,104,239,104,104,239,104,104,73,104,104,104,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,239,214,183, - 242,72,170,124,52,212,212,212,117,196,231,128,128,212,128,92, - 26,196,146,92,92,124,59,59,235,72,212,124,92,92,128,92, - 26,115,170,170,170,170,170,117,26,196,231,170,231,242,170,117, - 193,84,174,170,174,105,174,174,242,96,26,46,26,141,197,197, - 26,253,183,117,26,117,26,235,242,152,193,193,170,242,141,193, - 26,142,170,193,26,44,26,197,26,253,141,46,172,197,172,63, - 133,96,235,84,96,49,238,89,89,142,96,84,84,84,84,96, - 96,135,49,58,63,63,58,84,112,84,115,244,142,172,142,84, - 245,235,115,196,58,244,244,84,245,135,115,58,58,244,196,196, - 0,154,29,205,108,6,6,6,233,6,6,233,233,233,233,233, - 233,233,35,9,9,9,233,9,233,233,233,33,33,233,233,33, - 33,154,108,108,108,6,108,154,108,154,154,154,245,245,0,240, - 43,77,246,43,77,246,43,246,246,246,246,246,77,246,77,77, - 77,77,107,26,29,184,77,121,77,121,121,121,121,121,121,121, - 156,156,156,156,228,156,228,156,121,85,216,0,152,253,245,0, - 0,0,242,214,214,54,79,85,213,85,27,54,95,54,27,54, - 156,104,104,104,156,104,104,156,104,156,104,156,104,104,104,104, - 104,156,104,104,104,104,104,104,104,104,156,104,156,228,176,183, - 229,142,141,124,92,92,92,92,174,115,231,92,92,212,212,92, - 26,96,231,146,146,212,200,32,63,89,212,92,52,128,128,124, - 197,115,117,174,146,105,170,170,26,142,242,141,170,141,170,170, - 26,96,193,172,172,141,197,193,117,142,117,172,117,231,124,52, - 26,202,217,197,141,141,197,26,174,115,193,198,170,130,141,193, - 26,115,170,29,193,72,44,26,235,253,242,44,235,235,197,172, - 235,216,216,115,216,152,253,238,235,238,206,206,172,206,190,84, - 238,96,84,58,58,206,206,84,96,44,135,203,58,196,58,84, - 115,135,58,244,244,58,196,96,245,44,115,244,244,58,196,142, - 152,133,198,29,154,6,6,35,35,233,233,35,233,35,233,233, - 233,233,233,233,233,9,233,233,9,233,233,233,233,33,233,33, - 33,33,33,233,108,108,154,154,190,245,190,240,152,202,0,112, - 43,77,246,246,43,77,246,43,246,246,246,246,246,246,246,51, - 106,77,107,235,151,30,121,106,121,77,106,121,121,121,121,121, - 156,121,66,121,156,51,95,51,208,253,0,0,0,0,0,0, - 0,0,253,85,202,238,238,253,245,0,202,238,238,0,152,89, - 54,51,156,104,104,156,156,156,156,156,156,104,156,156,156,104, - 156,104,156,156,104,156,156,156,156,156,104,156,156,104,214,183, - 144,49,231,92,124,212,212,124,117,84,141,212,212,128,212,124, - 46,238,231,146,212,212,59,59,26,202,174,128,92,92,128,124, - 26,196,146,105,128,212,105,146,117,142,193,170,170,170,170,170, - 26,135,170,193,29,170,170,193,242,238,141,63,141,13,26,46, - 117,89,217,193,170,170,193,193,117,89,29,170,29,170,141,193, - 235,89,235,115,115,253,89,89,238,202,193,172,172,172,151,172, - 216,216,152,0,0,96,89,115,202,142,44,206,40,206,135,253, - 245,253,72,58,58,190,58,84,72,112,58,206,58,58,240,84, - 202,96,203,190,58,244,58,84,115,206,58,58,58,115,58,244, - 245,108,29,29,154,6,6,6,6,154,35,233,35,233,35,233, - 233,233,233,35,9,233,233,233,9,233,233,233,9,233,33,33, - 33,33,33,33,6,108,6,154,40,15,245,245,245,245,152,115, - 43,77,246,43,43,43,43,246,43,43,246,246,246,43,246,246, - 106,77,194,63,151,219,77,106,121,121,121,106,181,121,121,121, - 121,51,41,41,41,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,245,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,41,51,156,51,30,156,156,121,156, - 121,156,156,156,156,156,156,156,156,156,156,156,156,156,131,157, - 144,72,84,151,151,129,44,151,63,63,85,129,84,85,44,133, - 96,96,193,193,117,27,117,26,96,72,26,133,133,80,133,85, - 96,112,44,44,151,135,133,85,63,89,44,85,235,44,133,235, - 238,142,44,44,151,96,44,235,96,96,235,235,85,96,44,85, - 96,96,193,133,193,96,135,112,72,115,96,135,96,135,135,63, - 238,253,89,89,216,245,245,0,152,245,202,142,96,142,96,216, - 0,0,0,0,238,26,236,152,152,115,202,202,142,89,152,216, - 216,245,89,152,115,202,142,202,142,202,115,253,245,152,115,115, - 142,142,115,245,115,253,115,216,202,202,15,115,152,245,152,115, - 202,103,198,103,154,6,6,154,233,35,6,233,233,233,233,233, - 233,233,233,233,9,9,9,233,233,9,233,233,233,233,233,233, - 9,233,33,33,33,154,108,154,28,245,115,245,245,202,245,245, - 43,43,246,246,43,43,43,43,43,246,43,43,246,51,77,50, - 118,73,121,26,96,194,246,171,106,246,106,121,106,121,121,181, - 208,54,41,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,47,54,129,54,156,156,156,156, - 156,156,156,121,121,156,156,156,156,121,156,156,156,156,214,176, - 144,72,130,217,199,242,217,199,26,96,205,144,199,130,21,199, - 26,216,183,21,217,47,199,79,235,142,21,188,27,130,27,21, - 96,142,130,21,27,193,27,27,96,142,130,130,130,205,27,27, - 142,85,79,86,54,130,130,27,96,96,130,130,27,205,27,21, - 85,213,54,54,140,133,103,27,85,253,27,27,21,205,27,187, - 202,152,85,216,152,216,238,152,245,0,112,133,205,205,125,133, - 152,152,152,238,236,236,26,216,216,216,205,130,85,216,245,245, - 0,0,216,216,0,85,103,29,202,89,205,154,133,133,205,205, - 202,202,133,205,85,129,133,129,202,202,133,137,135,129,137,112, - 152,29,29,29,108,154,35,233,233,220,6,35,233,233,233,233, - 233,35,233,233,233,233,233,233,233,233,173,233,233,9,233,33, - 233,33,33,33,33,33,9,203,152,115,245,245,115,202,245,152, - 0,115,58,234,86,246,43,246,43,43,246,43,43,246,156,163, - 148,95,54,44,242,241,106,106,246,121,171,121,106,171,121,208, - 54,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,135,115,245,108,156,51,121,30, - 208,54,121,156,156,156,121,121,156,121,121,121,121,121,214,183, - 217,72,193,217,199,130,199,27,26,63,193,27,27,117,27,183, - 157,85,130,27,27,65,27,27,85,89,130,27,130,65,27,27, - 238,96,29,130,27,133,130,130,238,142,130,130,130,26,130,130, - 238,235,79,21,79,65,130,130,96,85,130,205,130,133,130,130, - 96,238,208,214,54,65,103,130,85,202,130,130,130,205,130,205, - 85,152,238,96,236,89,44,213,253,152,85,205,205,133,26,205, - 216,152,96,238,216,238,85,216,0,216,216,216,216,216,216,216, - 0,0,0,0,0,0,213,85,202,216,213,112,85,137,133,133, - 202,112,133,137,129,129,129,85,196,244,133,129,85,129,129,240, - 115,29,198,29,108,35,103,35,6,233,154,6,6,35,233,9, - 233,233,35,35,233,173,233,173,233,233,9,233,233,233,233,9, - 233,233,233,33,33,33,9,9,9,115,115,216,245,115,245,245, - 0,115,58,58,6,234,43,246,43,246,43,43,51,246,66,241, - 116,43,38,235,85,73,121,106,121,106,121,121,121,121,208,105, - 253,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,245,240,125,130,239,54, - 133,202,140,156,121,121,156,121,121,121,156,121,156,156,131,157, - 157,235,205,199,199,193,199,27,26,26,26,27,199,65,27,217, - 26,213,199,27,217,205,199,127,96,238,21,217,27,26,27,130, - 72,236,242,130,27,133,27,130,72,238,130,130,130,133,130,130, - 112,85,21,21,86,133,130,130,85,235,205,130,27,65,205,130, - 235,238,221,162,79,205,130,130,135,216,103,130,130,65,130,130, - 96,253,85,235,96,216,85,133,96,216,205,130,27,112,85,85, - 216,216,238,96,152,238,26,89,216,216,216,202,253,253,216,89, - 216,0,245,0,152,115,152,0,216,216,96,202,253,129,129,129, - 142,202,133,205,85,129,133,190,202,202,129,137,96,129,151,112, - 202,103,198,130,108,35,154,6,6,6,233,220,233,35,35,35, - 233,233,9,35,233,233,9,233,33,233,233,233,173,233,233,233, - 233,9,33,233,33,33,233,233,220,191,28,245,253,245,245,115, - 58,115,115,15,58,234,43,43,43,246,43,77,246,77,66,66, - 83,29,243,240,142,184,66,121,66,246,246,69,206,187,86,202, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,202,0,133,208,129, - 15,0,129,54,156,121,156,156,156,104,121,121,121,121,214,157, - 177,96,133,27,199,130,27,70,26,26,193,27,199,130,199,199, - 26,96,130,27,199,65,21,150,235,72,54,158,27,133,27,199, - 96,85,130,130,199,85,27,130,96,96,130,130,130,26,130,130, - 85,85,79,79,79,65,130,130,85,235,130,205,130,130,130,205, - 235,63,54,54,79,65,103,205,85,238,130,130,130,205,130,205, - 85,142,205,238,152,115,202,96,202,253,205,205,85,216,216,0, - 0,89,152,0,0,245,112,0,0,0,216,253,85,133,253,0, - 0,0,112,112,238,202,85,202,253,253,216,0,216,216,96,133, - 202,202,129,133,240,85,129,85,202,112,133,129,112,133,129,96, - 142,29,130,130,108,6,154,233,220,220,6,220,233,154,154,35, - 154,6,233,233,233,6,9,9,233,33,233,233,33,233,9,233, - 233,233,233,9,233,233,9,9,233,9,9,203,253,245,245,152, - 58,244,115,115,115,58,170,91,43,246,43,43,246,246,77,107, - 22,235,27,235,72,107,106,86,29,205,152,152,142,83,127,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,0,245,245,245,115,0, - 0,245,245,202,125,86,140,86,86,130,121,121,121,121,176,144, - 217,89,72,26,26,236,235,235,238,96,238,235,133,253,85,26, - 238,89,213,85,26,236,235,133,238,85,85,85,26,85,85,85, - 238,96,213,85,133,85,235,85,89,89,85,133,133,85,133,133, - 202,213,130,103,130,135,133,133,96,238,133,85,133,85,133,133, - 238,142,221,21,79,133,193,205,96,202,65,205,133,85,205,205, - 96,89,96,253,216,0,0,253,216,216,26,238,238,89,216,0, - 152,216,0,0,0,0,0,0,0,216,152,85,135,44,96,152, - 0,0,135,133,133,112,142,216,0,0,0,216,216,216,213,152, - 202,202,85,112,96,240,112,202,202,245,112,85,202,96,240,202, - 202,205,29,29,154,154,35,154,6,220,233,220,220,6,33,233, - 233,220,220,220,154,6,220,154,33,220,220,233,233,233,233,233, - 9,233,233,233,9,233,233,233,33,233,9,9,28,115,245,202, - 190,244,244,9,233,33,234,80,43,43,95,246,43,246,51,104, - 199,70,26,235,89,131,118,193,0,0,0,0,216,63,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,245,245,245,245,245,245,0, - 245,245,0,0,0,202,245,33,28,142,142,86,156,121,159,158, - 248,216,70,92,212,212,212,124,146,238,146,212,124,124,92,59, - 52,216,124,59,59,92,59,59,70,216,32,59,59,59,92,59, - 174,253,128,174,212,70,174,70,242,238,231,13,231,231,231,146, - 26,238,231,212,59,32,212,13,174,238,70,174,231,70,70,70, - 242,72,242,70,70,70,231,212,117,196,231,128,217,200,157,183, - 236,216,117,236,216,0,0,152,152,216,49,72,238,49,216,89, - 216,0,0,0,0,0,0,0,0,0,89,238,63,63,0,245, - 96,96,65,89,152,0,0,0,0,245,216,213,65,216,216,216, - 253,213,65,65,215,65,65,65,202,115,115,216,245,115,152,115, - 115,205,29,29,9,220,6,220,6,220,220,220,220,6,154,154, - 220,9,9,191,154,220,191,220,220,220,220,33,33,9,233,9, - 233,233,9,233,233,233,233,9,233,233,233,9,9,129,245,115, - 244,58,58,40,234,114,210,86,43,91,43,246,43,43,14,183, - 85,65,117,44,216,70,52,26,0,0,0,0,0,216,245,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,245,245,245,0,245,245, - 245,245,0,0,0,0,0,202,115,245,129,129,54,181,131,159, - 183,89,13,92,146,231,212,146,217,89,70,212,92,247,92,124, - 52,216,92,212,92,247,92,212,52,152,71,59,59,59,124,124, - 217,238,128,174,174,170,170,231,199,142,13,46,13,46,13,13, - 27,85,231,46,13,13,13,13,199,58,70,128,146,117,128,128, - 199,238,22,32,92,117,128,146,199,96,217,183,177,183,183,158, - 235,89,238,216,0,0,0,152,238,152,247,247,89,216,0,216, - 152,152,0,0,0,0,152,235,216,152,236,49,238,89,152,152, - 152,133,236,63,236,152,152,216,142,238,4,122,97,238,89,65, - 253,133,65,122,97,4,215,221,115,235,115,245,152,72,115,84, - 152,187,125,27,6,220,220,220,220,35,233,233,220,220,6,233, - 33,33,6,33,6,233,33,220,33,33,33,233,233,233,233,233, - 233,233,233,233,9,233,233,233,9,233,233,233,33,9,202,202, - 244,115,28,203,108,234,43,91,91,91,95,93,87,43,47,199, - 70,199,70,85,89,70,216,46,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0, - 245,245,0,0,0,0,0,245,245,28,253,129,208,30,176,248, - 183,253,52,200,146,231,231,146,52,253,231,92,92,212,212,212, - 199,89,128,52,92,92,92,146,199,89,71,32,92,92,212,212, - 199,96,146,174,146,170,231,141,217,85,117,231,231,231,46,231, - 128,85,247,13,236,37,49,13,174,96,174,117,231,46,231,13, - 174,96,70,52,52,46,13,49,174,96,117,70,117,70,52,70, - 238,89,238,216,0,0,216,236,216,216,247,32,152,216,0,89, - 238,0,0,0,0,0,0,236,242,216,152,152,0,152,0,0, - 0,0,0,152,216,0,152,96,85,133,215,122,97,238,65,221, - 142,85,215,122,1,2,221,193,202,133,152,142,115,89,72,96, - 152,130,178,130,133,129,112,129,112,112,112,112,112,112,85,96, - 112,142,85,96,96,85,96,238,96,96,238,240,112,112,112,112, - 196,112,240,85,112,112,112,85,240,96,96,112,96,112,85,135, - 202,115,115,115,58,80,69,91,91,91,93,140,87,51,158,65, - 217,70,70,235,216,236,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245, - 0,0,0,0,0,0,0,0,0,0,0,0,133,140,47,158, - 183,213,13,59,212,146,212,146,128,72,200,167,212,212,212,124, - 212,72,128,212,212,212,212,92,128,202,92,247,124,146,231,13, - 52,112,231,37,231,37,37,37,229,238,13,37,13,146,231,37, - 217,96,117,8,99,74,99,231,174,44,231,46,231,46,117,70, - 199,238,200,231,70,70,117,231,26,89,216,238,117,199,174,70, - 236,89,72,72,236,236,49,152,152,152,63,13,37,49,49,236, - 89,152,0,0,0,0,0,0,213,152,152,0,0,0,0,0, - 0,0,0,152,0,72,89,152,0,44,216,65,215,72,49,26, - 58,133,115,196,238,253,253,26,245,235,152,89,152,152,115,44, - 245,198,103,187,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 245,0,0,245,244,58,58,58,80,234,69,201,54,199,236,199, - 238,213,216,85,253,0,0,0,238,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,245,0,0,0,0,0,0,0,245,245,85,177,248, - 183,238,117,124,124,124,124,92,52,89,52,32,59,124,92,146, - 70,72,128,212,231,146,146,146,212,238,70,212,146,13,13,37, - 128,112,231,37,13,37,49,37,174,235,13,236,37,68,59,49, - 199,96,92,146,49,13,8,236,174,85,117,236,46,46,117,70, - 70,85,183,183,236,49,37,49,37,89,146,49,89,231,117,46, - 216,213,216,0,0,216,152,0,0,0,0,0,216,72,49,152, - 0,0,0,0,0,0,0,0,0,0,37,152,0,0,0,0, - 0,0,0,0,0,216,89,152,216,142,245,152,115,49,72,26, - 142,133,152,115,49,253,115,197,253,26,89,49,115,152,72,84, - 245,198,198,130,188,54,176,54,214,131,214,214,214,176,214,158, - 214,131,176,176,159,159,159,159,159,176,78,176,214,214,131,214, - 214,176,214,131,176,95,78,214,159,159,248,17,159,17,17,17, - 0,0,0,0,0,245,115,115,203,115,203,217,183,236,236,236, - 216,216,26,44,253,0,0,0,0,0,0,0,0,245,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,245,0,0,0,0,0,0,0,216,0,47,158, - 157,89,13,146,212,212,146,92,128,89,52,59,212,212,247,92, - 128,72,231,146,212,212,212,49,128,72,128,13,212,37,13,37, - 229,96,231,37,37,37,37,37,174,85,13,49,37,13,212,13, - 128,49,59,55,74,71,247,49,117,85,117,199,217,70,243,111, - 70,89,153,81,236,238,49,8,37,152,166,8,42,41,41,67, - 117,152,0,0,0,0,216,72,0,0,0,0,152,13,49,152, - 0,0,0,0,0,0,0,0,0,0,0,0,0,152,0,0, - 0,0,0,0,0,0,216,63,238,26,152,245,152,115,115,117, - 253,235,49,63,49,152,72,235,245,44,89,115,72,72,152,44, - 245,198,113,198,130,170,130,242,235,26,46,174,105,105,105,27, - 199,117,229,217,144,52,217,177,177,242,130,130,63,46,235,174, - 105,105,174,229,144,117,199,52,199,144,177,217,177,177,78,183, - 0,0,0,0,0,0,0,0,115,115,15,152,152,89,216,213, - 152,0,152,152,253,0,0,0,152,0,0,115,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,159, - 183,238,117,212,146,146,212,146,128,72,124,124,212,146,146,146, - 70,49,231,13,146,13,146,37,128,142,146,146,13,37,37,37, - 128,253,231,37,37,49,37,49,174,96,13,49,37,49,231,13, - 199,84,92,120,68,120,179,13,174,85,183,67,41,67,41,148, - 158,236,160,88,8,8,152,8,231,72,146,49,183,183,70,199, - 85,0,0,26,216,89,89,70,152,0,0,0,0,152,152,0, - 0,0,0,0,0,0,0,0,0,0,89,152,152,0,0,0, - 0,253,0,0,0,0,0,235,235,253,0,0,0,0,245,96, - 253,133,49,63,49,152,115,197,115,172,89,49,49,115,49,172, - 253,198,198,198,202,152,135,0,0,0,0,0,216,84,245,245, - 245,245,152,245,151,0,0,245,245,115,112,0,245,0,245,0, - 216,135,0,0,0,245,245,15,44,0,0,0,0,0,152,242, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,152,0,245,0,0,0,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,245,0,245,217,158, - 157,72,46,212,92,92,92,92,128,89,52,146,13,124,146,146, - 231,112,32,59,146,212,212,13,174,96,70,13,146,236,37,37, - 174,96,141,37,37,37,13,37,117,96,117,37,37,13,231,37, - 174,151,92,59,247,8,37,49,117,85,183,199,70,72,153,218, - 199,236,110,111,49,37,238,72,70,72,152,152,238,0,216,213, - 216,0,152,89,216,216,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,89,0,152,65,0,0,0,0,0, - 0,0,152,152,152,89,152,0,245,89,0,0,0,0,0,152, - 0,96,37,37,89,152,72,235,115,96,89,72,115,72,115,96, - 245,198,178,198,253,96,129,0,0,0,0,0,202,151,0,245, - 245,0,245,235,133,245,245,0,0,85,190,0,0,245,0,0, - 202,151,0,0,245,0,245,46,151,0,245,245,245,0,112,242, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,245,0,245,0,245,144,248, - 157,72,236,146,231,146,92,212,70,72,13,212,146,146,231,92, - 26,96,128,212,146,212,212,212,70,142,70,212,146,231,146,231, - 70,72,117,212,71,13,231,146,117,72,117,13,92,146,231,146, - 117,84,231,13,26,13,117,231,117,85,117,117,199,117,70,199, - 117,238,128,128,70,70,231,46,216,0,0,0,0,152,0,0, - 0,0,152,152,152,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,216,0,152,0,0,245,0,0,0, - 0,0,0,152,152,89,152,0,0,0,0,0,0,0,0,152, - 0,245,152,115,89,115,89,96,115,72,115,72,89,89,253,96, - 202,198,198,142,235,135,240,0,245,245,245,0,85,151,245,245, - 0,245,245,46,133,245,245,245,245,129,135,245,245,245,245,0, - 85,129,245,0,245,245,245,26,133,245,245,245,245,115,26,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,245,0,0,0,144,248, - 183,96,236,212,212,92,92,146,174,238,26,59,212,212,212,59, - 117,72,231,212,212,146,146,146,174,142,231,146,13,49,37,37, - 174,72,243,209,74,49,37,117,117,213,13,236,231,46,46,37, - 117,84,63,89,72,238,72,89,117,238,26,49,72,238,236,236, - 26,238,117,236,49,49,89,89,89,152,89,0,0,0,152,216, - 152,152,0,152,152,0,152,0,0,0,0,0,0,0,0,0, - 0,0,0,0,152,72,152,0,0,0,0,0,0,0,0,0, - 0,0,0,152,152,216,49,152,0,0,0,0,0,0,0,85, - 115,245,245,152,152,152,152,63,202,96,152,115,89,115,89,142, - 115,113,198,202,235,129,129,245,245,245,0,0,44,151,245,245, - 245,0,15,193,133,0,245,245,0,135,129,0,0,245,0,0, - 84,151,245,245,245,245,15,193,193,0,245,245,245,253,26,130, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,229,22, - 157,89,72,146,231,231,212,231,231,72,49,146,231,231,13,146, - 46,89,128,32,231,146,128,231,46,72,46,231,117,13,13,13, - 117,72,52,186,243,141,13,46,46,253,46,37,13,117,46,46, - 46,238,235,236,49,236,236,236,26,72,26,238,236,49,236,238, - 236,216,236,236,46,46,236,46,46,216,152,0,216,216,152,72, - 238,72,216,216,72,152,152,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,152,0,152,152,0,0,0,0,0,0,0,0,0,0,235, - 202,253,0,152,152,72,89,72,115,96,152,152,89,89,115,142, - 115,198,105,202,44,135,135,0,0,245,245,245,44,129,245,245, - 245,245,253,242,133,245,245,245,245,190,190,0,0,245,245,245, - 44,151,245,245,245,245,115,242,133,245,245,245,15,202,117,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,89, - 152,216,0,216,0,152,216,89,0,0,216,216,216,72,216,0, - 0,216,152,89,152,89,89,89,216,0,216,152,89,216,216,216, - 253,245,72,115,238,89,253,216,0,0,245,152,216,152,89,0, - 0,152,152,115,89,89,152,245,152,216,238,216,0,216,0,152, - 0,216,152,0,0,0,0,216,216,0,152,152,216,152,0,236, - 89,89,89,72,152,152,152,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,245, - 0,0,245,0,0,0,0,245,245,245,0,152,152,245,0,0, - 245,202,112,245,133,129,129,245,0,0,245,0,85,151,245,245, - 245,245,245,242,133,245,245,245,245,85,129,245,0,0,245,0, - 44,151,245,245,245,245,245,242,133,245,245,245,0,202,26,130, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,52, - 128,231,231,231,174,146,174,146,174,128,128,52,52,52,52,52, - 52,52,177,177,177,124,177,177,200,200,157,124,177,177,157,177, - 52,52,124,177,177,200,177,157,200,157,157,200,183,177,52,177, - 200,177,200,157,157,157,200,177,128,26,235,117,26,238,89,70, - 117,70,52,52,52,199,52,52,128,46,216,0,152,0,0,0, - 152,152,0,152,89,89,152,0,0,0,0,0,0,0,0,89, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96, - 0,152,152,72,245,216,0,0,63,0,0,0,0,152,152,141, - 117,117,26,46,46,46,235,46,235,46,63,63,49,49,89,72, - 72,49,72,0,44,135,240,245,0,0,245,245,44,151,245,15, - 245,245,15,242,80,245,245,245,15,240,190,0,0,0,245,0, - 85,137,245,245,245,245,245,242,137,245,245,245,245,202,26,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,186, - 131,248,131,248,22,22,157,183,157,157,157,157,157,176,157,22, - 157,248,22,22,22,78,78,78,176,176,22,22,22,157,22,22, - 131,22,131,183,22,22,22,22,22,22,248,22,248,248,248,176, - 22,176,183,22,22,22,22,157,70,117,217,144,117,72,26,26, - 105,144,144,78,176,157,183,176,174,85,238,72,152,0,152,0, - 0,152,0,0,152,216,238,63,0,0,0,0,0,0,0,0, - 0,0,142,142,0,0,0,0,0,0,0,0,0,0,84,72, - 152,0,0,44,242,144,105,105,229,0,0,0,0,0,216,133, - 105,47,177,177,144,144,229,144,229,144,144,144,229,105,229,229, - 229,188,144,245,133,129,129,0,0,0,245,0,44,129,245,245, - 245,245,245,117,133,245,245,245,0,129,129,245,0,0,245,245, - 44,129,15,245,245,245,15,117,80,245,245,245,245,202,117,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,238,17, - 54,176,176,248,176,248,176,131,176,157,131,131,157,176,78,78, - 78,78,78,177,144,144,229,144,144,229,105,130,229,229,78,78, - 176,176,157,78,229,144,78,177,78,78,78,177,177,177,177,144, - 52,78,78,177,78,176,176,47,217,177,78,229,26,216,152,216, - 96,238,235,128,144,177,177,174,26,236,216,0,89,89,152,0, - 0,0,89,216,96,89,216,0,0,0,0,0,0,0,0,0, - 115,238,216,0,0,0,0,0,0,0,0,0,0,152,0,245, - 253,193,27,176,157,176,22,229,253,0,0,245,0,216,216,235, - 63,105,47,176,131,131,131,131,176,176,131,95,95,176,95,95, - 95,95,176,245,133,85,190,0,0,0,0,0,96,190,245,245, - 245,245,245,242,137,245,245,245,245,85,190,0,0,0,0,0, - 96,190,245,245,245,245,245,242,151,245,245,245,245,202,26,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,152,0,0, - 72,174,253,0,0,170,89,0,235,235,0,245,235,152,245,0, - 96,235,142,0,152,72,72,89,49,238,63,37,235,63,236,72, - 46,29,112,245,72,152,245,0,0,0,0,245,245,0,26,245, - 229,44,245,0,70,238,199,183,253,0,0,0,0,0,0,0, - 152,115,245,245,245,202,245,0,152,152,0,0,0,0,0,0, - 152,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,0,152,115,245,115,152,0,0,0,0,216,0,0,0,236, - 216,0,202,89,115,115,115,115,80,84,142,49,108,29,115,72, - 58,105,229,108,193,178,178,79,188,188,47,187,198,79,47,47, - 47,47,178,29,188,176,176,78,78,178,178,79,188,188,47,187, - 198,79,47,47,47,47,178,29,188,176,176,78,78,47,133,176, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 135,144,135,0,0,229,49,245,44,197,0,0,193,115,0,0, - 197,44,135,216,72,26,117,231,70,174,70,174,70,174,70,70, - 193,105,135,216,235,216,130,0,152,0,152,152,0,0,117,0, - 78,130,253,0,0,85,85,216,213,238,216,0,0,216,216,0, - 0,0,0,0,0,238,0,0,0,0,0,0,0,0,0,216, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,245,0,0,0,0,0,0,0,0,0,152,235,72,152,89, - 96,0,245,152,216,89,84,63,84,0,245,152,240,238,115,197, - 142,133,133,190,58,205,29,193,193,133,242,44,96,130,29,242, - 242,130,26,84,198,174,105,105,105,205,29,193,193,133,242,44, - 96,130,242,29,242,130,193,63,198,174,105,105,105,130,63,144, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 242,144,151,0,0,78,96,0,174,26,0,0,170,89,0,0, - 26,151,142,216,96,117,242,174,174,128,229,229,174,174,174,174, - 193,105,135,253,26,152,216,152,89,89,89,0,0,0,70,152, - 78,130,115,0,0,85,85,0,216,216,216,0,0,216,0,0, - 0,0,0,0,0,238,0,0,0,0,0,0,216,152,152,152, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,202,202,0,0,0,0,0,0,245,235,216,142,26,238,133, - 96,0,0,0,115,253,216,26,205,152,0,115,85,172,72,130, - 202,133,29,85,133,242,29,130,130,242,151,151,235,198,27,105, - 130,133,28,242,229,144,217,144,130,29,29,130,130,242,151,151, - 235,198,27,174,130,133,112,242,229,144,144,144,130,193,242,144, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,152,0,0,0,0,0, - 174,177,137,245,0,183,49,245,174,174,245,0,229,96,0,0, - 193,44,58,96,44,242,130,174,27,199,144,177,144,144,177,177, - 29,174,190,84,242,216,0,0,0,0,152,0,245,245,117,0, - 157,130,115,0,0,85,85,216,213,213,0,216,0,0,0,238, - 85,152,152,0,245,0,0,152,0,152,216,89,89,152,152,89, - 152,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,245,202,142,133,0,0,0,142,198,193,193,63,170, - 0,0,0,0,0,0,0,89,0,0,245,115,0,202,49,170, - 196,0,245,245,44,129,84,152,202,202,142,96,115,85,0,0, - 0,245,245,242,137,245,115,0,0,129,84,152,202,202,142,96, - 115,190,0,0,0,245,245,242,151,0,152,0,245,216,96,29, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,152,0,0,0,0,0,0,0, - 174,78,133,0,0,22,26,245,174,174,0,0,144,63,245,0, - 197,141,112,172,193,174,105,105,229,144,78,78,78,78,144,177, - 130,229,135,151,130,142,0,0,0,0,0,0,0,0,117,245, - 157,130,202,0,0,85,238,216,216,89,0,245,216,0,216,0, - 152,216,0,0,0,0,0,0,0,0,152,216,216,0,0,216, - 236,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,0,245,216,198,238,142,115,245,216,205,198,105,105,235,242, - 0,0,0,0,245,245,245,245,0,0,115,245,245,96,129,27, - 196,0,0,245,202,29,29,96,96,235,63,142,96,80,0,0, - 0,0,0,130,151,0,0,0,0,29,29,96,96,235,84,72, - 112,133,0,0,0,0,245,242,151,0,0,0,0,0,26,133, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 174,157,29,115,0,22,26,0,174,174,0,0,144,49,245,0, - 242,117,142,84,29,29,27,27,27,188,78,78,177,78,78,177, - 105,229,85,172,130,253,96,117,242,26,117,242,27,70,130,26, - 157,242,202,245,238,133,26,238,216,85,235,89,216,213,216,0, - 0,0,0,0,0,0,0,0,0,152,152,152,89,89,216,152, - 238,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216, - 253,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,245,80,151,133,0,240,0,29,44,188,21,198,193,96,115, - 0,0,0,245,133,29,29,245,0,0,115,245,129,96,197,27, - 58,0,0,245,15,133,29,0,0,0,0,0,0,133,245,0, - 0,28,245,117,130,245,245,245,202,29,133,245,0,0,0,0, - 245,133,245,0,0,28,245,242,130,245,245,245,202,96,26,133, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 242,176,178,245,0,22,117,0,170,128,0,0,177,235,15,0, - 174,174,44,206,133,105,105,27,144,47,54,78,47,47,47,78, - 199,229,135,151,130,96,216,238,85,85,85,85,85,85,117,238, - 22,29,142,216,0,85,117,236,85,70,235,85,89,89,0,0, - 46,0,0,0,0,0,0,0,89,89,216,152,216,89,72,72, - 152,0,0,0,0,0,0,0,0,0,0,0,0,216,238,216, - 0,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0, - 0,0,154,198,105,130,79,135,130,26,235,115,152,0,0,0, - 0,0,245,245,151,133,198,29,245,0,245,245,240,96,193,229, - 240,0,245,115,15,133,137,0,0,0,0,0,15,133,0,0, - 0,15,15,242,130,245,0,245,202,137,133,0,0,0,0,0, - 15,133,245,0,0,202,245,130,130,245,0,0,202,44,44,193, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,245,0,0,0,0,0,0,0,0,245, - 63,144,178,244,28,22,141,0,130,128,245,0,229,63,245,0, - 229,229,44,151,29,130,105,178,144,144,176,78,78,78,47,78, - 177,174,240,151,198,85,152,0,152,0,216,216,216,216,26,152, - 248,26,202,0,0,85,117,216,117,27,213,213,0,216,216,213, - 117,216,0,0,0,0,0,0,0,152,0,89,216,0,0,216, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,0, - 0,0,137,130,205,44,133,44,202,245,0,0,152,142,0,0, - 0,245,202,0,129,133,198,105,191,245,245,253,190,112,193,229, - 244,245,245,15,15,133,137,0,0,0,0,0,245,113,240,240, - 240,191,15,130,79,133,115,15,205,80,151,0,0,0,0,0, - 245,113,240,240,240,129,245,242,79,133,115,15,205,235,44,44, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 253,174,125,202,0,22,117,0,174,174,0,0,144,63,245,0, - 128,144,206,151,198,27,178,188,79,47,78,176,86,78,177,177, - 52,27,96,80,105,96,216,0,0,152,245,0,0,0,26,216, - 111,193,142,253,115,238,26,216,85,85,213,216,216,216,238,96, - 235,96,245,245,245,0,216,245,0,0,89,46,89,152,238,152, - 0,0,0,0,0,0,0,0,0,152,152,152,0,0,0,0, - 0,0,0,253,0,0,0,0,0,0,0,0,0,0,0,245, - 0,0,245,0,0,0,115,202,245,253,115,245,245,245,0,152, - 0,0,191,151,142,96,245,245,245,0,253,115,0,58,29,105, - 151,0,0,15,245,137,151,0,142,89,96,0,245,133,216,0, - 216,245,245,26,133,72,216,152,253,151,151,0,142,89,96,0, - 245,133,216,245,245,245,15,117,133,72,253,152,115,142,235,151, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 89,174,125,142,0,22,26,245,130,229,0,0,144,84,245,245, - 170,144,151,151,198,27,188,229,105,229,176,188,176,86,47,47, - 177,174,96,133,198,112,0,0,133,245,245,245,44,253,26,89, - 248,193,196,29,29,85,26,85,213,238,238,238,0,0,0,0, - 216,238,0,0,238,245,0,0,0,216,85,133,235,72,0,0, - 0,0,0,0,0,0,0,0,0,0,152,0,0,0,0,216, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,245,0,0,202,245,190,129,238,135,15,0,0,245,152, - 0,245,202,21,187,130,125,125,0,0,202,202,0,58,198,229, - 190,0,0,15,245,137,151,0,216,152,0,0,245,129,0,245, - 0,0,245,46,142,245,245,115,152,137,151,0,216,152,0,0, - 245,129,0,0,0,0,245,235,142,245,245,245,115,253,85,44, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,242,178,202,0,157,231,0,174,229,0,0,144,235,15,245, - 242,229,151,29,29,21,188,188,188,229,144,188,108,78,47,78, - 52,105,240,29,178,72,0,245,130,115,245,245,130,89,235,96, - 111,193,142,130,29,84,235,133,96,238,238,0,0,0,0,0, - 216,245,0,245,202,0,133,115,142,240,240,130,133,0,216,0, - 0,0,0,0,0,0,0,0,0,0,152,152,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245, - 0,245,191,245,0,245,245,0,115,245,245,253,0,0,245,245, - 196,245,28,113,198,79,21,178,0,0,115,142,0,0,198,170, - 135,0,115,245,245,151,129,0,0,0,0,0,245,151,245,0, - 245,0,245,0,245,0,0,0,0,151,129,0,0,0,0,0, - 245,151,0,245,245,0,245,0,245,0,0,0,0,0,0,245, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,170,178,202,0,183,193,245,174,174,0,0,229,63,245,0, - 174,177,151,29,198,178,188,188,86,86,176,131,86,178,78,176, - 157,144,96,113,21,196,245,0,245,245,245,245,245,245,235,152, - 111,130,244,29,29,84,235,152,152,216,216,0,0,0,0,0, - 0,0,0,0,0,245,47,79,96,96,112,105,238,152,0,152, - 152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 135,202,245,0,0,0,0,0,0,0,0,0,0,0,245,245, - 245,191,154,21,178,178,178,178,15,0,15,142,0,245,178,105, - 190,0,196,245,245,115,115,245,245,0,0,245,245,202,15,245, - 245,245,245,0,0,0,0,0,0,115,115,245,245,0,0,245, - 245,202,245,245,245,245,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 245,174,105,196,142,157,117,245,130,128,152,142,235,96,245,115, - 229,177,197,29,198,178,188,188,47,86,54,188,176,176,176,176, - 177,144,172,113,178,202,245,202,245,0,0,115,245,152,235,112, - 243,242,84,130,154,112,235,0,85,216,0,0,0,0,0,0, - 0,0,0,0,0,0,213,213,0,0,0,216,152,152,0,0, - 0,0,0,0,0,0,0,0,152,0,0,0,0,0,0,0, - 0,26,0,0,152,0,0,0,0,0,0,0,0,0,0,0, - 142,245,15,245,0,0,0,0,0,0,0,0,0,0,0,235, - 142,115,29,178,187,178,69,188,245,0,202,196,245,245,105,27, - 151,15,244,115,244,190,240,28,244,244,203,244,58,190,244,191, - 244,244,244,244,244,244,196,28,115,190,240,28,244,244,203,244, - 58,40,244,191,244,244,58,244,244,244,196,28,115,115,115,196, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 142,229,125,135,172,157,46,245,44,84,245,115,115,115,15,245, - 174,144,197,137,29,198,105,178,188,47,47,105,176,54,176,78, - 177,144,172,29,187,142,202,85,245,245,0,245,152,89,89,202, - 174,206,72,58,29,142,235,0,238,238,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,152,0,0,0,216,0,0,0,0,0, - 0,152,0,0,0,0,0,0,0,0,0,0,0,15,245,0, - 0,253,245,245,0,0,0,0,0,0,0,0,0,0,245,245, - 202,245,245,44,105,187,105,29,15,0,202,244,115,15,105,105, - 151,15,244,28,28,203,58,203,28,196,28,240,244,244,244,28, - 244,244,244,28,244,244,244,240,202,203,58,203,28,196,28,240, - 28,244,244,28,28,28,244,28,244,244,244,240,28,112,202,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 238,174,105,235,242,63,72,115,72,72,142,89,253,245,245,0, - 242,177,151,244,40,29,198,198,229,86,78,86,86,47,178,144, - 157,177,151,133,198,115,115,96,142,253,202,89,152,130,217,229, - 157,217,240,85,108,135,44,238,202,216,216,216,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,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,29,193,235, - 245,115,245,0,0,0,0,0,0,0,0,0,245,0,0,0, - 96,28,115,15,29,198,29,151,245,0,245,202,173,15,105,198, - 151,112,191,173,115,115,15,202,244,129,190,203,28,28,28,244, - 28,240,191,190,191,191,190,190,190,115,15,202,244,129,190,203, - 244,28,28,244,240,240,191,190,191,191,190,190,190,191,190,190, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 89,152,0,245,235,135,235,96,202,115,202,245,245,245,245,152, - 49,235,115,0,152,115,115,202,196,240,135,84,63,206,142,115, - 46,63,115,245,202,245,245,216,152,253,253,152,152,27,159,176, - 127,131,245,152,245,245,202,96,89,238,216,216,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,152,0,0,152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,115,152,245, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115, - 0,202,244,202,135,135,84,135,0,245,245,15,15,15,115,49, - 244,28,191,28,191,9,173,191,173,173,203,244,202,196,240,220, - 33,129,9,190,190,40,9,40,9,9,173,191,173,173,28,28, - 202,196,240,9,33,129,40,190,190,40,9,190,9,191,40,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152, - 96,177,177,157,70,177,177,177,52,157,174,52,52,52,229,52, - 242,52,177,52,128,128,128,174,229,128,128,128,128,174,174,117, - 117,174,242,26,174,117,174,242,242,242,229,242,236,26,117,193, - 193,193,72,96,193,26,238,238,89,152,89,238,142,96,89,216, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,152,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,245, - 245,245,245,245,245,115,28,115,115,28,115,15,15,15,245,202, - 245,15,28,191,28,28,203,15,28,112,28,191,191,28,202,115, - 142,58,129,137,9,9,137,220,137,28,203,15,28,112,203,191, - 191,28,202,89,58,58,191,137,9,9,137,80,40,137,220,80 - }; - -static const HdlInfo hdl_large = -{ - 288, 216, - 98, 35, - 8, 14, - 256, 8, 255, (char *) hdl_large_colors, - hdl_large_on, hdl_large_off -}; diff --git a/blinkentools-2.9/src/hdl-medium.h b/blinkentools-2.9/src/hdl-medium.h deleted file mode 100644 index 4814eed..0000000 --- a/blinkentools-2.9/src/hdl-medium.h +++ /dev/null @@ -1,2217 +0,0 @@ -#include "hdl.h" - -static char hdl_medium_colors[256][3] = { - { 2, 2, 2}, - {254,254,254}, - {102,102,169}, - { 62, 74,159}, - { 30, 42,146}, - { 31, 42,141}, - {110, 46, 14}, - { 68, 32, 24}, - { 30, 38,130}, - {178,158,110}, - { 6, 14, 54}, - {125,103,103}, - { 49, 9, 8}, - { 2, 2, 18}, - { 37, 17, 21}, - { 89, 74, 69}, - {150,132,126}, - { 49, 62,154}, - { 56, 43, 56}, - { 13, 24, 15}, - {115,108,182}, - { 6, 6, 30}, - {114,107,178}, - { 78, 87,163}, - { 45, 32, 60}, - {178,154,118}, - { 6, 14, 42}, - { 45, 58,152}, - { 36, 35, 63}, - {158,146,138}, - { 98, 98,170}, - { 23, 10, 18}, - { 83, 67, 70}, - { 36, 29, 61}, - { 47, 49,153}, - {114,106,174}, - { 14, 14, 86}, - { 96, 86,157}, - { 99, 77, 96}, - { 75, 67,149}, - { 25, 10, 9}, - { 75, 59, 94}, - { 18, 10, 21}, - { 27, 14, 36}, - { 74, 35, 20}, - {154,114, 90}, - { 22, 16, 62}, - { 40, 54,149}, - { 46, 32, 25}, - { 6, 10, 50}, - { 56, 62,157}, - { 15, 15, 9}, - { 81, 74,135}, - {146,126, 98}, - {130, 94, 50}, - { 22, 14, 34}, - { 6, 10, 34}, - { 73, 86,165}, - { 41, 54,140}, - { 14, 9, 14}, - {106, 82,102}, - { 15, 2, 6}, - { 34, 42,114}, - { 39, 27, 31}, - { 13, 15, 77}, - { 94, 81,155}, - { 42, 46,146}, - { 33, 46,142}, - { 58, 70,157}, - { 19, 10, 33}, - { 6, 6, 16}, - { 18, 14, 34}, - { 74, 74,163}, - {154,134,106}, - { 66, 42, 26}, - { 16, 58, 14}, - {166,130, 98}, - { 40, 50,134}, - { 98, 94,146}, - { 21, 18, 38}, - { 10, 6, 7}, - {162,142,134}, - {162,138,110}, - { 15, 13, 56}, - { 36, 36, 87}, - { 37, 50,146}, - {146,138,190}, - { 82, 60, 65}, - { 42, 46,141}, - { 67, 78,160}, - { 30, 42,132}, - {148,143,186}, - { 62, 62,158}, - {110, 90, 86}, - { 88, 80,140}, - { 83, 40, 21}, - {122, 94, 82}, - { 6, 6, 34}, - { 49, 43, 84}, - { 6, 14, 50}, - { 14, 10, 33}, - { 55, 58,149}, - { 59, 47, 39}, - {114, 98, 86}, - { 38, 42,149}, - { 18, 66, 10}, - { 36, 20, 37}, - {110,102,169}, - { 58, 31, 20}, - {104, 94,160}, - {102, 89,169}, - {102, 58, 54}, - { 82, 69,113}, - { 49, 17, 19}, - { 6, 6, 24}, - { 14, 18, 87}, - { 6, 10, 6}, - { 28, 26, 45}, - { 6, 2, 5}, - { 32, 37,108}, - { 50, 54,151}, - { 22, 22, 82}, - { 97, 90,154}, - { 78, 40, 47}, - {160,154,182}, - {150, 82, 34}, - { 25, 20, 50}, - { 78, 70,142}, - {114,102,170}, - { 6, 10, 39}, - { 98, 82,168}, - { 10, 10, 65}, - { 34, 28, 46}, - {121,117,178}, - { 67, 51, 83}, - { 58, 42, 45}, - {110, 94,171}, - {110, 98,169}, - {106, 90,172}, - { 38, 46,139}, - { 89, 77,157}, - { 21, 28,103}, - { 27, 18, 35}, - { 14, 14, 32}, - { 42, 46,134}, - { 90, 42, 50}, - { 28, 24, 60}, - {127,123,182}, - {110,110,177}, - { 38, 42,141}, - { 90, 86,155}, - {141,139,182}, - {174,162,154}, - { 34, 42,133}, - {162,134,102}, - { 6, 6, 7}, - { 69, 61, 61}, - { 14, 14, 66}, - {103, 98,170}, - { 56, 66,156}, - { 59, 30, 37}, - { 50, 26, 39}, - { 79, 77,156}, - { 52, 58, 90}, - {130,126,170}, - { 10, 10, 24}, - { 98, 34, 18}, - { 66, 62,138}, - { 27, 19, 23}, - { 49, 56,114}, - { 34, 30,102}, - { 60, 45, 72}, - { 94, 90,170}, - { 82, 82,164}, - { 6, 6, 38}, - { 95, 86,162}, - {102, 94,168}, - { 74, 51, 57}, - { 49, 24, 23}, - { 66, 70,161}, - { 37, 46,134}, - { 28, 20, 46}, - { 70, 74,165}, - { 47, 33, 43}, - { 40, 34, 43}, - { 89, 82,168}, - { 69, 37, 45}, - {105,103,178}, - {110,106,175}, - { 55, 36, 59}, - { 86, 86,167}, - { 78, 54, 39}, - { 37, 22, 25}, - { 99, 51, 29}, - { 10, 14, 43}, - { 2, 2, 7}, - { 18, 14, 21}, - { 76, 60,132}, - { 90, 87,169}, - { 70, 82,162}, - { 58, 36, 42}, - { 14, 6, 21}, - { 94, 86,171}, - { 59, 26, 22}, - { 30, 27, 96}, - { 38, 50,139}, - { 34, 46,146}, - { 47, 50,163}, - { 52, 50, 90}, - { 28, 38,126}, - { 74, 82,159}, - { 51, 54,160}, - {106,106,173}, - {186,178,170}, - { 39, 13, 9}, - { 17, 18, 67}, - { 42, 46,154}, - { 64, 66,160}, - { 49, 38, 63}, - { 67, 45, 55}, - { 74, 38, 44}, - {106,102,170}, - { 28, 22, 37}, - { 69, 54, 62}, - { 14, 10, 22}, - {102, 54, 54}, - { 62, 70,158}, - {126, 70, 26}, - { 80, 78,166}, - { 90, 70, 98}, - { 62, 58,142}, - { 23, 14, 22}, - {196,188,198}, - { 10, 10, 9}, - { 84, 54, 60}, - { 94, 81,169}, - { 10, 6, 23}, - { 98, 86,170}, - { 10, 7, 16}, - { 15, 8, 9}, - { 14, 6, 30}, - { 55, 58,158}, - { 66, 74,159}, - { 18, 14, 44}, - { 97, 94,170}, - { 44, 48,113}, - { 40, 28, 42}, - { 88, 78,170}, - { 70, 70,161}, - { 38, 46,153}, - { 98, 90,170}, - { 30, 14, 18}, - { 43, 50,140}, - { 62, 54,134}, - {106, 94,170}, - {255,255,255} - }; -static char hdl_medium_on[] = { - 216,249,249,249,249,249,249,104,104,104,104,104,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, - 104,104,149,104,149,149,5,149,5,5,5,5,5,153,5,153, - 153,153,153,153,144,144,144,144,90,90,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,90,90,90,90,5,90,5,5,5,5,5,5,5,5,5, - 5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 216,104,104,104,104,104,104,249,249,249,249,104,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,104,149,104, - 149,149,104,149,5,104,149,149,149,149,149,149,149,5,149,5, - 5,5,5,5,144,144,144,144,144,144,90,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,180,180,180,180,180, - 180,180,180,180,180,144,144,144,144,144,180,180,180,90,90,144, - 144,8,8,90,90,5,153,90,67,67,67,67,5,5,5,5, - 5,4,4,67,5,5,4,5,5,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,216,216,216,216,249,249,249,104,104,249,249,249,249,249,249, - 249,216,216,216,216,66,216,66,216,66,66,66,66,249,139,249, - 249,139,104,104,149,149,104,149,149,149,139,149,149,5,149,153, - 180,180,180,149,153,153,153,5,153,144,144,153,90,90,90,90, - 90,144,144,144,144,144,144,144,144,144,90,144,180,180,180,180, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 90,5,90,5,90,5,67,5,67,67,67,67,67,67,67,67, - 67,67,4,67,67,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,207,207,207,249,216,216,216,216,216,216,216,216,216,216,216, - 216,249,249,216,216,216,216,104,249,249,249,249,249,216,66,66, - 66,104,139,66,139,139,139,149,104,139,104,139,149,149,149,104, - 149,149,149,153,144,180,149,180,144,180,180,144,144,144,144,144, - 144,90,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,5, - 90,90,5,153,153,67,67,67,90,67,67,67,67,67,67,4, - 90,4,90,4,90,67,67,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 216,249,249,207,249,216,216,207,216,216,216,216,216,216,216,216, - 216,216,216,216,216,216,216,66,216,66,216,66,66,249,249,249, - 66,104,66,66,66,104,139,139,139,139,104,139,149,149,149,139, - 149,149,149,149,149,180,149,149,180,149,149,149,144,153,153,119, - 144,144,90,90,90,90,90,90,144,144,144,144,144,90,90,90, - 90,90,90,90,90,90,5,144,144,144,144,144,90,90,67,90, - 90,153,67,180,67,90,67,67,67,67,67,67,67,90,67,67, - 67,67,67,67,67,67,4,67,67,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,207,216,216,207,207,216,216,207,216,216,216,216,216,216,216, - 216,216,216,66,216,66,34,216,216,216,66,216,216,216,66,66, - 66,34,66,66,66,66,66,66,104,104,139,66,88,139,139,149, - 180,149,153,180,149,149,149,180,149,153,153,153,144,144,144,119, - 153,153,153,153,153,90,90,90,90,144,180,153,90,153,153,153, - 90,153,153,90,90,153,90,153,90,90,67,90,90,67,90,67, - 180,180,67,180,180,205,180,205,67,180,180,67,67,67,67,67, - 67,67,67,67,4,4,67,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,207,207,216,216,207,216,216,216,216,216,207,34,34,34,216, - 216,216,216,216,216,216,216,66,216,216,216,216,66,216,66,34, - 66,66,66,66,66,66,88,88,88,88,149,139,139,149,139,149, - 139,149,149,149,180,153,180,149,153,153,153,153,149,149,153,119, - 153,153,153,153,153,153,153,180,153,180,90,153,90,90,90,153, - 90,90,153,153,153,153,90,153,180,90,180,153,90,180,153,180, - 180,67,180,180,180,205,180,180,180,180,205,67,205,205,85,67, - 90,4,67,67,67,90,67,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 211,211,207,207,207,207,207,216,207,207,207,216,207,252,34,34, - 34,34,207,34,34,34,34,34,34,34,34,34,34,34,216,252, - 34,252,66,66,34,252,88,34,88,88,88,88,88,88,88,88, - 139,144,180,180,149,180,144,180,180,144,153,180,180,180,180,119, - 153,153,180,153,153,153,153,153,180,153,180,153,153,180,180,180, - 180,180,180,153,180,153,180,180,153,180,180,180,180,180,180,67, - 205,180,205,205,205,205,205,205,58,205,205,205,67,67,67,67, - 67,67,90,67,67,67,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 211,211,207,207,207,207,207,207,207,34,207,34,207,207,207,34, - 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 216,34,34,252,66,216,66,252,66,252,88,88,252,88,252,139, - 139,88,88,88,144,139,180,144,149,144,144,180,149,144,180,119, - 144,180,180,180,180,180,180,153,180,180,180,180,153,153,153,180, - 90,153,180,180,180,180,180,180,180,180,205,67,180,205,205,180, - 205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,85, - 67,67,67,67,67,90,67,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 241,211,211,207,207,207,211,207,34,211,120,34,34,34,120,211, - 120,211,120,211,34,34,207,34,34,34,120,207,34,120,34,34, - 120,120,120,34,34,34,252,34,252,34,252,252,88,252,88,88, - 88,88,88,88,88,180,88,180,180,180,180,144,144,139,144,119, - 180,180,144,144,144,144,144,77,180,144,144,180,180,180,77,180, - 180,77,180,180,205,180,180,205,180,180,180,205,205,180,180,205, - 205,205,205,216,205,205,205,205,205,205,205,205,85,180,67,205, - 67,67,67,67,67,67,4,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 241,241,241,211,211,207,211,211,207,207,120,211,120,207,34,211, - 34,207,34,120,120,120,120,120,120,34,120,211,120,120,120,34, - 34,34,120,120,120,34,252,34,252,34,252,252,88,252,252,252, - 88,252,252,252,88,252,252,252,252,88,88,77,88,252,252,119, - 88,77,77,180,180,77,144,144,180,180,144,144,77,180,180,77, - 180,77,77,180,77,205,180,205,77,77,205,205,205,205,180,205, - 205,205,58,58,58,58,58,58,85,205,205,205,205,85,67,205, - 205,67,67,67,67,67,90,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5, - 217,241,211,241,241,241,211,211,211,211,211,120,211,211,241,120, - 241,120,241,211,211,120,211,120,211,27,120,120,120,120,120,120, - 120,120,252,120,34,120,120,58,34,252,34,34,120,252,88,252, - 252,144,180,88,252,88,215,157,157,215,157,157,157,157,157,119, - 77,252,77,77,252,77,77,58,252,77,77,77,77,58,58,58, - 58,58,58,58,77,77,58,205,58,77,205,77,58,58,58,205, - 58,205,49,131,131,10,131,157,10,157,49,131,10,49,141,85, - 67,67,67,67,67,67,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 217,92,241,241,211,211,241,241,241,211,211,211,241,120,211,211, - 241,120,241,101,241,27,241,241,211,211,211,120,241,27,27,120, - 120,211,120,101,120,120,120,120,120,120,169,252,119,46,46,46, - 157,83,83,83,215,215,83,157,131,83,83,83,131,83,131,215, - 83,157,46,215,215,46,215,215,215,215,215,215,215,83,83,215, - 83,215,215,215,215,215,215,83,215,215,215,83,157,215,215,83, - 83,83,83,83,100,157,49,83,83,131,100,131,83,131,49,10, - 157,157,10,10,10,10,209,90,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5, - 92,50,241,241,241,241,211,241,241,241,211,241,120,241,241,27, - 241,241,27,241,211,211,211,120,101,241,241,241,211,211,211,241, - 27,101,120,120,120,120,120,120,120,120,120,120,170,64,215,157, - 83,157,10,215,157,131,157,46,157,157,36,100,49,100,46,131, - 157,83,215,157,157,10,83,83,131,100,83,131,157,157,215,131, - 215,157,157,157,83,131,157,215,157,83,157,215,83,49,157,131, - 131,83,157,64,157,131,157,157,131,157,157,131,131,83,157,64, - 157,64,64,64,36,10,141,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,90,4,5, - 217,217,241,92,241,241,241,241,241,241,241,241,241,241,241,241, - 241,241,241,241,241,241,241,241,241,241,27,241,241,241,101,241, - 241,101,101,101,101,101,230,120,120,120,120,101,121,131,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,141,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,67,67,67,67,4,5, - 248,92,92,241,92,50,241,241,241,50,50,50,241,241,241,241, - 241,241,241,50,50,50,50,241,241,241,241,92,241,92,241,101, - 241,241,241,101,101,101,101,101,230,101,101,120,141,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,141,90,67,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,90,67,67, - 179,179,217,50,92,92,50,50,92,241,50,50,50,92,50,50, - 92,50,92,50,92,50,50,92,92,92,241,92,241,92,92,50, - 50,50,50,101,241,101,101,101,101,101,101,101,170,131,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,97,141,67,4,67,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,67,4,90,4,5,5,5,5, - 182,217,217,217,92,92,92,217,50,217,92,92,92,217,92,92, - 50,217,50,92,50,217,92,92,92,217,92,217,92,50,217,92, - 92,92,92,92,92,92,50,92,101,50,101,101,204,174,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,141,4,67,67,4,4,4,4,4,4, - 4,206,4,4,4,4,4,67,4,67,67,67,67,5,5,67, - 72,179,217,179,217,217,92,217,217,217,217,217,217,217,217,217, - 217,50,217,217,217,50,217,159,217,50,217,50,217,92,92,92, - 217,92,217,92,92,167,92,217,92,167,92,50,204,49,21,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,114,21,97,141,67,67,67,67,67,4,67,4,206, - 4,4,206,4,5,5,5,4,5,4,5,4,67,67,5,67, - 182,248,248,217,179,217,217,217,217,217,217,217,217,217,217,217, - 217,217,217,50,217,217,217,217,217,217,217,217,217,39,217,217, - 217,217,39,217,217,217,217,167,92,217,50,167,119,174,97,21, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,97,97,97,97,97,141,67,67,67,4,4,67,4,67,4, - 67,67,4,67,4,67,5,67,67,67,67,67,4,5,67,5, - 72,182,182,248,248,248,248,217,179,179,179,248,248,248,248,179, - 248,179,248,179,179,248,248,217,248,248,179,179,179,248,179,179, - 179,179,179,39,179,179,179,217,217,39,92,92,170,129,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,141,67,67,67,67,67,67,67,67,4, - 4,67,4,67,5,67,5,5,5,4,4,67,67,4,206,67, - 228,247,248,248,182,248,248,72,248,248,248,248,179,179,179,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,179,39,248,217,179,167,217,170,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,141,67,67,67,67,67,67,67,67,67, - 67,4,67,5,67,5,67,67,67,67,67,67,67,85,67,67, - 72,228,182,72,182,72,248,248,248,248,182,248,72,248,248,248, - 248,248,248,248,72,248,72,248,248,248,248,248,182,72,52,242, - 72,242,52,179,127,242,179,127,179,226,248,167,84,174,45,82, - 76,13,45,82,76,13,45,82,76,13,45,82,76,13,45,82, - 76,13,45,82,76,13,45,82,76,13,45,82,76,13,45,82, - 76,13,45,82,76,13,45,82,76,13,45,82,76,13,45,82, - 76,13,45,82,76,13,45,82,76,13,45,82,76,13,45,82, - 76,13,45,82,76,174,141,67,47,67,67,67,67,67,67,206, - 67,4,67,5,67,67,67,67,206,67,67,85,67,67,67,67, - 185,72,247,72,72,72,72,72,72,72,248,72,182,72,72,72, - 72,72,72,72,248,72,72,72,72,72,72,72,72,72,182,52, - 72,72,72,72,242,248,52,242,248,52,242,242,204,174,53,81, - 73,174,53,81,73,174,53,81,73,174,53,81,73,174,53,81, - 73,174,53,81,73,174,53,81,73,174,53,81,73,174,53,81, - 73,174,53,81,73,174,53,81,73,174,53,81,73,174,53,81, - 73,174,53,81,73,174,53,81,73,174,53,81,73,174,53,81, - 73,174,53,81,73,97,141,67,67,67,67,67,67,67,85,67, - 206,67,67,67,206,67,67,206,67,67,67,67,67,85,67,85, - 185,72,72,72,72,72,72,72,72,72,72,72,228,228,182,72, - 72,72,72,228,228,72,228,72,162,72,162,72,72,72,72,72, - 72,72,72,52,162,182,72,162,242,72,127,242,84,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,13,154,213,25,97,141,47,85,67,85,67,85,67,67,67, - 85,67,206,5,5,4,5,67,206,85,67,67,67,67,67,85, - 247,247,72,247,72,247,72,72,72,228,228,72,72,72,228,228, - 228,228,228,72,72,162,72,228,72,228,72,72,72,228,162,162, - 162,72,228,162,72,162,162,72,52,72,72,52,170,97,97,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 174,174,174,13,21,21,141,67,47,67,67,67,67,67,85,67, - 67,206,67,67,206,67,206,67,67,67,67,67,67,67,85,67, - 173,247,72,247,182,247,228,247,182,182,228,228,228,72,72,72, - 72,72,228,228,228,228,162,228,228,228,162,228,162,228,162,228, - 228,162,228,228,162,162,162,162,72,72,72,162,33,174,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,97,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,97,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,97,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,174,129,97, - 97,174,129,97,174,174,141,205,85,47,47,67,67,67,85,67, - 67,139,85,85,205,85,206,85,67,85,67,67,47,67,67,85, - 185,247,247,72,247,72,182,247,228,247,72,228,228,228,228,247, - 228,228,228,228,228,228,228,162,228,162,173,228,228,228,173,162, - 173,228,162,173,173,173,173,173,94,173,162,162,84,97,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,114,13,70,13,114,141,58,85,85,85,47,85,85,67,85, - 85,206,67,206,139,67,85,67,67,85,67,85,67,85,85,85, - 185,247,247,247,247,247,247,247,72,247,228,228,228,228,173,173, - 185,228,228,228,228,173,173,228,173,228,173,210,173,173,173,228, - 173,173,228,228,173,173,210,173,210,173,162,210,84,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,141,58,85,47,85,47,85,85,85,85, - 85,85,85,139,85,85,85,85,85,47,67,47,85,47,85,47, - 185,247,247,72,247,72,247,228,247,228,247,228,185,185,228,228, - 228,173,185,173,173,228,173,173,173,173,173,228,173,173,210,173, - 173,173,173,173,173,173,173,23,173,150,23,173,84,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,141,58,47,47,85,47,47,47,85,85, - 85,85,85,85,252,85,85,47,85,85,47,85,47,85,85,85, - 235,247,247,247,247,247,247,247,247,247,185,173,173,185,185,185, - 173,173,185,185,185,173,185,185,173,173,185,173,173,185,190,210, - 173,23,173,173,23,190,150,190,23,173,65,190,84,129,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,174,53,81,73,13,53,81, - 73,174,53,81,73,97,119,47,47,47,47,47,85,47,47,47, - 47,47,47,252,207,85,85,47,47,47,85,85,47,47,47,47, - 130,235,247,247,247,247,247,247,247,247,247,247,247,247,185,185, - 185,185,173,185,185,185,185,185,185,185,185,185,185,173,185,185, - 150,173,190,23,150,190,190,190,150,190,150,173,98,236,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,97,154,213,25,13,154,213,25,174,154,213, - 25,21,154,213,25,97,141,58,58,47,47,47,47,47,47,47, - 47,47,47,47,47,47,47,47,47,47,47,47,58,47,47,47, - 130,235,130,247,235,247,247,235,247,247,235,235,185,247,185,247, - 247,235,185,185,185,185,185,185,185,190,185,185,198,185,190,185, - 185,185,65,23,190,190,150,23,190,150,23,190,84,174,97,21, - 97,21,97,21,97,21,97,21,97,21,97,21,97,21,97,21, - 97,21,97,21,97,21,97,21,97,21,97,21,97,21,97,21, - 97,21,97,21,97,21,97,21,97,21,97,21,97,21,97,21, - 97,21,97,21,97,21,97,21,97,174,97,21,21,13,174,114, - 97,21,21,114,21,97,119,58,27,58,47,47,27,47,47,47, - 47,47,47,47,27,47,47,47,47,47,47,47,27,27,27,47, - 130,130,130,247,247,235,235,235,235,247,235,247,247,235,235,235, - 235,185,185,185,185,185,185,185,185,235,185,185,235,185,185,185, - 150,150,190,185,150,190,190,150,150,190,150,190,84,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,174,97,174,174,165,97, - 97,174,56,97,97,97,141,58,27,27,27,27,47,27,27,27, - 47,27,27,27,47,27,47,27,47,27,27,27,47,47,47,27, - 130,247,247,235,235,247,235,247,235,247,130,130,247,235,235,235, - 235,235,175,235,235,235,202,202,198,235,175,198,235,235,150,185, - 185,175,150,185,185,175,185,198,150,150,150,172,84,236,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,70,13,114,13,13,114,13,13,13, - 13,13,13,13,13,114,119,17,58,17,27,27,47,27,47,27, - 27,47,211,27,27,27,47,27,27,27,27,27,27,27,27,27, - 237,237,235,235,247,235,235,247,235,235,247,235,235,235,235,202, - 130,237,235,202,202,175,235,235,235,202,235,235,202,175,235,237, - 237,202,237,237,237,175,237,175,250,237,122,250,98,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,119,17,27,27,27,27,17,27,17,27, - 27,17,27,27,27,27,27,27,27,27,27,27,27,27,27,27, - 202,202,235,235,130,130,130,130,130,130,130,237,130,202,130,235, - 235,237,130,130,237,237,237,237,237,237,237,237,202,237,175,237, - 237,237,37,237,237,250,237,237,250,237,37,250,98,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,13,45,82,76,174,119,17,17,17,17,27,17,27,17,17, - 27,17,27,27,27,17,17,17,17,17,17,17,17,17,17,17, - 202,202,202,202,185,185,198,235,185,185,235,235,235,130,235,237, - 237,235,130,237,130,237,237,237,235,202,175,235,130,202,130,175, - 130,237,237,110,237,237,110,110,110,110,110,110,84,97,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,174,53,81,73,97,62,68,17,17,17,17,27,17,17,17, - 17,17,17,17,17,27,17,17,27,17,27,17,17,27,17,17, - 202,202,202,202,202,185,202,198,202,198,202,202,198,202,198,235, - 202,202,175,202,175,202,175,250,237,237,250,237,237,237,237,237, - 237,237,237,110,138,138,138,109,109,176,109,176,98,236,154,213, - 25,174,154,213,25,174,154,213,25,174,154,213,25,174,154,213, - 25,174,154,213,25,174,154,213,25,174,154,213,25,174,154,213, - 25,174,154,213,25,174,154,213,25,174,154,213,25,174,154,213, - 25,174,154,213,25,97,154,213,25,174,154,213,25,13,154,213, - 25,13,154,213,25,97,119,68,17,17,17,17,17,17,17,17, - 17,17,17,17,17,27,27,17,17,17,17,17,17,17,17,17, - 244,202,198,198,190,202,198,198,198,198,198,202,202,198,202,198, - 202,202,202,202,202,202,237,202,237,237,237,250,237,250,237,110, - 237,110,110,110,138,138,254,110,254,254,110,254,218,21,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,21,174,13,21,97,21,97,174,97,97,97, - 97,97,174,13,97,21,62,17,68,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 172,202,202,198,198,190,202,202,198,185,198,202,202,202,202,172, - 172,202,172,202,202,202,237,202,202,237,237,250,175,250,250,110, - 237,37,138,122,110,110,158,109,254,158,176,158,98,174,129,97, - 97,174,129,97,97,174,129,97,97,174,129,97,97,174,129,97, - 97,174,129,97,97,174,129,97,97,174,129,97,97,174,129,97, - 97,174,129,97,97,174,129,97,97,174,129,97,97,174,129,97, - 174,174,129,97,174,97,129,97,97,174,97,21,97,97,97,21, - 97,97,129,97,174,174,62,159,68,68,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 138,202,202,202,202,202,202,202,202,172,202,202,172,202,172,202, - 202,172,172,172,172,172,172,172,172,172,172,175,172,237,175,122, - 250,250,172,250,78,244,176,244,109,109,109,176,98,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,114,13,13,13,114,114,13,13,13,70,13, - 13,114,13,70,13,114,28,68,159,17,159,17,17,17,17,17, - 17,17,17,27,17,17,17,17,17,17,17,17,17,17,17,159, - 244,172,202,202,202,202,202,202,237,237,202,237,202,237,202,202, - 237,237,250,250,250,250,250,250,250,237,250,237,172,172,172,172, - 172,175,172,172,244,172,244,244,176,158,109,244,98,49,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,97,145,111,225,174,145,111, - 225,174,145,111,225,174,119,17,68,17,159,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,159,17,159, - 138,202,202,172,202,202,198,202,202,202,237,202,250,202,237,250, - 202,172,202,237,175,175,237,237,175,172,175,172,250,172,150,172, - 172,172,172,172,172,172,172,244,244,244,244,176,98,97,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,62,68,159,68,159,159,159,68,17,159, - 17,17,17,17,17,17,17,68,17,17,68,17,159,17,159,50, - 244,202,190,198,190,202,190,202,190,190,198,198,198,198,198,198, - 198,198,198,172,172,172,198,202,202,172,198,198,202,172,172,172, - 198,190,172,244,244,122,172,244,244,244,244,244,98,97,53,81, - 73,97,53,81,73,97,53,81,73,97,53,81,73,97,53,81, - 73,97,53,81,73,97,53,81,73,97,53,81,73,97,53,81, - 73,97,53,81,73,97,53,81,73,97,53,81,73,97,53,81, - 73,174,53,81,73,97,53,81,73,97,53,81,73,174,53,81, - 73,97,53,81,73,97,62,68,159,68,68,17,159,68,68,68, - 68,68,68,68,68,68,17,68,68,17,68,159,68,159,68,159, - 250,172,202,198,190,190,190,190,190,190,190,190,190,190,190,190, - 190,198,190,190,190,190,190,190,190,190,190,190,190,190,244,198, - 244,172,23,244,172,244,78,244,244,78,244,30,98,236,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,13,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,13,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,13,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,21,154,213, - 25,97,154,213,25,97,62,68,68,159,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,68,68,159,68, - 202,202,190,190,190,173,173,190,190,190,190,190,198,190,190,198, - 190,198,185,173,173,190,190,23,173,190,190,190,190,198,198,244, - 198,172,172,198,244,244,244,244,244,30,244,30,98,97,97,21, - 97,174,174,21,97,174,174,21,97,174,174,21,97,174,174,21, - 97,174,174,21,97,174,174,21,97,174,174,21,97,174,174,21, - 97,174,174,21,97,174,174,21,97,174,174,21,97,174,97,21, - 97,97,97,21,97,174,97,21,97,174,236,21,97,13,97,114, - 21,21,21,114,21,97,62,68,68,68,3,68,68,68,68,68, - 68,3,68,3,3,3,3,68,3,68,68,68,68,68,3,68, - 172,198,185,173,198,190,190,190,198,190,190,190,198,198,172,172, - 172,198,190,190,190,190,190,185,190,198,198,190,172,198,244,244, - 244,172,122,244,244,172,244,244,244,78,30,30,98,21,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,56,21,97,97,97,21,97,97,129,21,174,174,165,97, - 97,174,56,97,97,97,62,199,3,3,3,68,3,68,3,89, - 3,3,3,3,3,3,3,89,3,3,3,3,3,3,3,3, - 202,202,202,198,202,202,202,190,202,202,198,198,198,198,198,250, - 250,172,250,250,250,250,244,244,250,110,176,110,176,110,110,110, - 109,176,176,109,176,109,109,109,158,176,109,158,98,236,13,70, - 13,114,13,70,13,114,13,70,13,114,13,70,13,114,13,70, - 13,114,13,70,13,114,13,70,13,114,13,70,13,114,13,70, - 13,114,13,70,13,114,13,70,13,114,13,70,13,114,13,70, - 13,13,13,114,13,114,13,70,13,13,13,13,114,13,13,13, - 13,13,13,13,13,114,98,199,89,3,3,89,89,89,3,89, - 89,89,89,89,89,89,89,89,89,89,89,3,89,3,89,89, - 172,172,202,202,202,202,172,237,202,202,198,190,172,172,237,172, - 172,172,244,244,172,172,172,250,172,244,172,244,244,78,244,244, - 244,244,176,110,176,244,176,176,176,109,109,158,208,129,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,208,199,57,199,199,89,89,199,89,89, - 89,89,199,89,89,199,89,89,199,89,89,89,199,199,199,89, - 138,250,237,202,172,237,202,172,172,250,250,202,172,172,172,244, - 244,172,172,244,244,250,172,244,250,244,244,244,244,244,244,244, - 109,244,30,244,109,244,30,244,30,30,158,78,98,97,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,13,45,82,76,174,45,82, - 76,13,45,82,76,174,169,57,57,57,57,199,57,199,199,57, - 199,199,199,57,199,199,199,57,199,199,57,89,199,199,57,199, - 254,138,138,138,237,250,138,237,138,250,138,110,250,172,244,172, - 172,244,244,172,244,244,244,244,244,244,244,176,176,30,158,176, - 244,109,244,30,244,30,244,158,109,254,176,221,208,236,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,174,53,81,73,13,53,81, - 73,174,53,81,73,97,208,23,23,57,57,57,199,57,57,57, - 57,57,199,57,57,199,57,199,57,57,57,57,57,57,210,57, - 158,254,138,138,138,138,250,250,138,250,244,244,176,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,30,244,244,30,158, - 30,158,109,158,158,158,158,221,221,221,158,221,208,236,154,213, - 25,174,154,213,25,97,154,213,25,174,154,213,25,97,154,213, - 25,174,154,213,25,97,154,213,25,174,154,213,25,97,154,213, - 25,174,154,213,25,97,154,213,25,174,154,213,25,97,154,213, - 25,174,154,213,25,174,154,213,25,97,154,213,25,13,154,213, - 25,13,154,213,25,97,169,23,23,23,23,57,57,57,199,57, - 57,57,57,199,199,57,199,57,199,57,57,57,199,57,23,57, - 136,138,244,138,250,138,254,138,138,176,254,138,176,254,254,158, - 254,176,158,176,158,158,176,244,176,176,244,244,176,30,244,244, - 30,244,158,158,158,221,158,158,158,158,107,158,98,165,97,13, - 21,21,97,13,97,21,174,13,21,21,97,13,97,21,174,13, - 21,21,97,13,97,21,174,13,21,21,97,13,97,21,174,13, - 21,21,97,13,97,21,174,13,21,21,97,13,97,97,21,21, - 97,97,174,13,21,21,21,21,174,13,21,97,174,97,97,97, - 97,97,174,13,97,21,163,23,23,23,57,57,199,57,57,199, - 199,199,199,199,199,199,199,199,199,57,57,57,57,57,57,23, - 254,138,172,250,250,250,250,250,138,254,254,136,254,254,254,254, - 158,136,254,254,176,158,158,158,176,176,176,158,254,158,158,254, - 158,158,158,158,158,158,158,158,221,158,158,2,98,100,129,97, - 174,174,129,97,174,97,129,97,174,174,129,97,174,97,129,97, - 174,174,129,97,174,97,129,97,174,174,129,97,174,97,129,97, - 174,174,129,97,174,97,129,97,174,174,129,97,97,174,97,21, - 97,97,129,97,97,174,97,21,174,174,174,97,97,97,97,21, - 97,97,129,97,174,174,169,23,23,23,57,57,199,199,199,89, - 199,89,89,89,3,89,89,199,3,89,3,199,199,199,199,199, - 244,172,172,250,172,172,172,250,244,250,176,176,254,158,254,158, - 254,176,254,254,254,254,136,254,158,158,158,176,158,158,176,30, - 176,78,244,78,78,158,30,30,30,30,2,158,208,21,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,13,114,13, - 13,13,13,13,13,114,114,13,70,114,70,13,13,13,70,13, - 13,114,13,70,13,114,245,57,57,199,199,3,89,89,3,89, - 3,3,3,3,3,3,3,3,3,89,3,89,89,89,89,199, - 244,244,172,172,244,244,244,172,244,244,244,244,176,254,254,254, - 158,158,158,158,254,158,254,136,136,136,158,254,254,158,158,221, - 158,158,221,158,158,158,2,158,2,158,2,2,208,236,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,13,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,169,57,199,199,3,89,3,3,3,3, - 68,3,68,68,3,68,68,3,68,3,3,3,3,3,3,89, - 244,172,187,244,244,187,30,244,158,187,30,244,244,244,244,244, - 244,244,244,244,158,176,30,30,30,30,176,158,158,158,158,176, - 158,158,158,158,158,158,158,221,158,2,158,30,208,236,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,245,89,199,3,3,3,3,3,3,3, - 68,68,68,68,68,68,68,68,68,3,68,68,3,3,3,3, - 30,244,244,20,187,187,133,30,20,20,187,187,187,244,244,244, - 244,244,244,244,30,30,244,244,244,30,30,30,30,176,30,30, - 158,30,30,2,30,2,2,2,30,2,2,158,208,236,53,81, - 73,174,53,81,73,97,53,81,73,174,53,81,73,97,53,81, - 73,174,53,81,73,97,53,81,73,174,53,81,73,97,53,81, - 73,174,53,81,73,97,53,81,73,174,53,81,73,174,53,81, - 73,97,53,81,73,174,53,81,73,97,53,81,73,174,53,81, - 73,97,53,81,73,97,245,199,199,199,3,3,3,68,3,68, - 68,68,68,17,68,68,68,68,68,68,68,68,3,3,3,3, - 187,187,30,187,147,20,147,147,133,133,148,133,187,30,30,158, - 158,158,158,30,30,30,2,2,158,30,158,158,158,2,158,158, - 158,158,2,158,2,158,158,158,158,158,158,2,208,165,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,13,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,13,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,13,154,213, - 25,13,154,213,25,13,154,213,25,13,154,213,25,21,154,213, - 25,97,154,213,25,97,169,199,3,3,3,3,3,68,3,68, - 68,68,68,68,68,68,68,68,68,68,3,3,3,3,3,3, - 158,187,20,133,133,124,91,124,86,86,91,133,187,187,158,158, - 158,187,158,158,158,158,30,158,158,158,30,158,158,2,221,2, - 158,158,158,158,221,221,221,221,221,221,221,2,98,165,21,21, - 97,174,97,21,97,174,21,21,97,174,97,21,97,174,21,21, - 97,174,97,21,97,174,21,21,97,174,97,21,97,174,21,21, - 97,174,97,21,97,174,21,114,97,174,174,21,97,174,97,21, - 97,174,21,114,97,174,97,21,97,174,236,21,97,13,97,114, - 21,21,21,114,21,97,245,199,89,3,3,68,68,68,68,68, - 68,17,68,17,17,17,68,17,68,159,159,159,68,68,226,3, - 187,30,187,148,147,152,232,9,124,232,124,86,133,187,30,30, - 30,244,30,30,30,30,158,30,30,30,158,30,30,158,30,158, - 2,2,2,221,2,2,2,221,221,221,221,2,208,236,165,21, - 97,174,165,97,97,97,56,21,97,174,165,97,97,97,56,21, - 97,174,165,97,97,97,56,21,97,174,165,97,97,97,56,21, - 97,174,165,97,97,97,56,97,97,174,97,21,97,174,174,21, - 97,174,165,97,97,97,97,21,97,97,129,21,174,174,165,97, - 97,174,56,97,97,97,245,242,3,3,3,68,68,68,68,68, - 68,68,17,17,68,17,159,68,159,159,68,68,159,226,68,226, - 187,20,133,147,91,81,213,25,25,213,82,87,24,217,158,244, - 30,30,30,158,244,244,30,30,244,244,158,30,30,30,30,30, - 158,30,30,30,158,158,158,221,2,158,2,2,98,165,13,114, - 13,13,13,114,13,13,13,114,13,13,13,114,13,13,13,114, - 13,13,13,114,13,13,13,114,13,13,13,114,13,13,13,114, - 13,13,13,114,13,13,13,114,13,114,13,70,13,114,13,70, - 13,13,114,114,13,114,13,70,13,13,13,13,114,13,13,13, - 13,13,13,13,13,114,208,3,3,68,3,68,17,68,17,17, - 17,68,68,17,159,17,17,159,159,159,159,159,159,159,159,68, - 148,148,148,148,147,91,16,16,16,54,96,223,18,112,187,187, - 158,158,158,30,158,30,158,244,158,30,244,176,30,158,30,30, - 30,2,2,30,2,2,2,212,221,2,158,2,208,114,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,145,111,225,174,145,111,225,174,145,111, - 225,174,145,111,225,174,245,242,242,68,68,68,68,159,68,68, - 68,159,159,159,159,159,159,159,159,159,159,68,159,226,159,159, - 187,187,187,20,147,147,151,151,164,53,147,147,148,188,212,212, - 212,212,187,187,187,187,187,2,158,187,158,158,158,158,158,158, - 30,30,2,30,30,30,30,2,2,2,30,2,208,238,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,174,45,82,76,174,45,82, - 76,174,45,82,76,174,45,82,76,13,45,82,76,174,45,82, - 76,97,45,82,76,174,45,82,76,13,45,82,76,174,45,82, - 76,13,45,82,76,174,169,89,89,3,3,3,3,3,3,68, - 68,68,68,159,68,68,68,68,68,68,68,3,3,3,242,3, - 187,187,212,212,148,188,133,147,133,29,133,20,133,188,187,212, - 187,187,187,2,221,2,187,2,187,158,2,221,2,221,221,221, - 221,221,158,221,221,221,221,221,221,221,221,221,208,118,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,13,53,81,73,13,53,81, - 73,13,53,81,73,13,53,81,73,174,53,81,73,13,53,81, - 73,174,53,81,73,13,53,81,73,174,53,81,73,13,53,81, - 73,174,53,81,73,97,169,210,199,89,89,89,3,3,3,3, - 3,3,68,68,68,68,68,3,3,3,3,3,3,89,89,89, - 158,158,187,187,212,188,20,133,133,81,133,188,188,188,187,187, - 187,187,187,2,187,158,158,2,2,187,158,187,2,221,2,158, - 158,221,158,221,221,221,2,2,2,221,221,221,163,238,154,213, - 25,174,154,213,25,174,154,213,25,174,154,213,25,174,154,213, - 25,174,154,213,25,174,154,213,25,174,154,213,25,174,154,213, - 25,174,154,213,25,174,154,213,25,97,154,213,25,97,154,213, - 25,97,154,213,25,174,154,213,25,97,154,213,25,13,154,213, - 25,13,154,213,25,97,169,210,210,89,89,89,89,3,89,3, - 68,3,68,68,68,68,68,68,3,182,3,182,182,3,242,89, - 128,187,187,187,187,188,20,22,20,16,148,148,188,188,188,212, - 221,221,221,212,221,212,212,221,187,2,2,158,158,2,2,2, - 221,2,212,221,2,158,221,221,2,221,30,158,208,118,97,21, - 97,97,97,21,21,97,97,21,97,97,97,21,21,97,97,21, - 97,97,97,21,21,97,97,21,97,97,97,21,21,97,97,21, - 97,97,97,21,21,97,174,13,97,21,97,13,21,21,97,21, - 21,97,174,13,21,21,21,21,174,13,21,97,174,97,97,97, - 97,97,174,13,97,21,169,228,89,89,3,3,3,3,179,3, - 3,3,3,217,68,68,179,3,226,3,3,3,3,242,242,242, - 20,128,187,20,188,188,188,148,20,53,20,188,188,212,212,212, - 212,212,187,212,221,221,221,221,187,187,212,212,2,221,221,2, - 2,158,221,2,2,2,212,221,2,2,2,78,28,70,97,21, - 97,97,97,97,97,97,97,21,97,97,97,97,97,97,97,21, - 97,97,97,97,97,97,97,21,97,97,97,97,97,97,97,21, - 97,97,97,97,97,97,129,97,174,174,129,97,174,97,97,97, - 97,97,129,97,97,174,97,21,174,174,174,97,97,97,97,21, - 97,97,129,97,174,174,169,210,228,89,89,182,3,3,179,3, - 68,68,68,159,68,68,159,68,68,226,226,3,3,3,3,242, - 20,20,20,188,188,148,20,22,148,45,148,148,148,35,188,212, - 188,188,188,221,212,212,212,212,221,221,221,221,221,221,221,221, - 221,212,212,212,212,221,221,2,212,221,2,78,24,55,114,13, - 13,13,114,13,13,13,114,13,13,13,114,13,13,13,114,13, - 13,13,114,13,13,13,114,13,13,13,114,13,13,13,114,13, - 13,13,114,13,13,13,13,13,13,114,13,13,13,13,114,70, - 13,114,13,13,13,114,114,13,70,114,70,13,13,13,70,13, - 13,114,13,70,13,114,13,89,89,3,3,3,179,68,3,68, - 179,159,68,159,159,159,68,226,226,68,3,226,226,3,226,3, - 20,20,128,20,20,20,20,20,148,11,20,35,188,188,188,212, - 212,221,212,221,107,187,221,221,221,221,221,221,221,221,221,221, - 158,158,2,158,2,2,221,2,2,2,2,122,218,132,201,80, - 224,238,42,224,224,224,222,236,70,100,100,165,70,70,165,31, - 70,70,59,142,71,146,71,55,165,100,100,100,71,59,196,55, - 79,165,201,31,42,42,114,165,146,100,224,79,126,126,79,236, - 236,80,70,238,238,42,146,118,236,42,224,236,224,70,236,236, - 70,238,118,118,118,195,129,182,89,3,3,3,179,68,68,68, - 179,159,68,159,159,159,159,159,68,68,226,68,226,3,226,3, - 20,20,20,128,22,188,22,148,188,11,148,148,148,35,35,188, - 188,188,188,188,188,188,107,107,107,107,158,221,158,221,158,158, - 221,221,221,221,221,221,221,158,221,2,158,122,24,24,231,201, - 70,80,201,201,201,238,100,222,33,71,117,224,118,195,243,236, - 100,201,69,201,165,142,143,71,181,224,126,196,224,236,71,71, - 69,100,79,243,69,238,13,240,236,71,126,43,42,46,114,70, - 114,236,13,118,238,13,97,195,155,118,80,42,13,195,13,70, - 236,13,13,70,13,118,69,242,182,242,226,68,68,159,217,159, - 68,68,159,50,50,50,159,159,159,159,68,68,159,68,68,226, - 22,128,20,128,20,22,22,35,188,93,35,35,188,188,188,107, - 188,107,188,221,221,212,221,187,158,107,158,107,158,107,221,221, - 221,158,2,158,221,221,107,158,221,221,158,78,18,171,222,201, - 201,196,222,69,31,201,118,236,33,132,24,83,31,42,71,71, - 79,42,69,236,13,236,143,55,142,14,55,236,224,71,79,146, - 218,46,165,114,165,238,42,165,83,43,146,79,143,100,165,165, - 69,201,118,236,118,238,165,13,143,100,69,224,195,195,13,236, - 165,165,236,70,13,70,121,226,242,226,226,68,68,68,68,159, - 159,159,159,159,159,50,159,159,159,159,159,68,159,68,68,68, - 128,20,128,22,128,22,35,35,107,60,35,107,107,188,107,221, - 221,221,221,221,107,137,107,137,107,107,107,221,107,221,137,221, - 221,107,221,188,158,221,221,107,221,221,221,122,142,231,165,100, - 42,240,55,31,201,31,31,231,69,126,142,79,106,100,142,55, - 100,100,143,243,118,236,100,132,79,42,43,71,69,100,243,24, - 84,33,143,224,201,243,13,13,231,142,69,181,71,236,236,70, - 69,118,195,236,100,97,100,243,236,243,46,129,13,13,13,118, - 100,13,236,126,70,195,100,226,226,226,226,159,159,159,159,159, - 50,50,50,17,50,159,50,50,159,50,159,159,159,159,159,159, - 128,137,137,137,137,137,107,107,221,15,107,107,221,221,107,107, - 107,221,107,221,212,221,221,137,158,107,158,107,158,221,137,137, - 221,137,221,212,107,221,212,107,221,107,212,78,201,71,189,183, - 106,224,118,31,79,231,42,168,142,55,33,142,168,239,100,236, - 165,236,143,100,239,201,100,97,142,70,43,79,42,236,114,118, - 146,126,165,129,61,238,118,14,178,251,42,69,224,165,118,195, - 155,118,97,165,201,80,83,243,46,143,69,97,195,195,195,236, - 238,70,13,129,42,155,143,217,226,159,217,159,159,50,50,50, - 50,159,50,241,27,17,50,50,50,50,50,159,159,159,159,159, - 128,128,128,128,128,128,128,107,254,87,107,107,137,107,107,187, - 221,107,107,107,137,137,107,221,107,158,107,158,107,107,221,221, - 137,221,107,107,221,212,107,221,107,221,107,78,40,168,189,63, - 192,118,201,80,222,251,251,14,196,246,142,142,251,61,61,165, - 240,236,79,100,118,201,236,55,165,224,165,224,143,236,165,165, - 231,69,100,114,118,61,201,59,118,118,31,71,31,240,118,118, - 201,118,69,100,236,118,83,126,165,100,165,201,118,195,61,118, - 118,118,70,240,236,13,71,68,217,159,159,159,50,159,17,17, - 17,241,17,17,50,50,17,17,17,50,50,50,50,50,159,159, - 128,137,137,136,137,137,137,137,254,134,158,137,137,158,137,107, - 137,221,158,137,158,137,137,128,128,128,128,128,107,107,107,107, - 107,107,107,107,128,107,107,107,212,107,188,78,186,231,14,192, - 14,118,61,61,31,201,231,14,196,218,231,231,42,238,42,142, - 55,43,238,142,142,165,165,118,165,79,55,100,165,114,118,236, - 196,31,118,13,0,118,118,69,55,224,21,114,224,224,13,174, - 13,118,100,146,79,79,215,79,13,118,195,236,118,118,236,118, - 0,118,195,69,201,80,165,159,159,159,50,17,17,17,50,17, - 17,241,17,27,27,241,241,17,27,17,17,17,50,50,50,159, - 137,136,254,254,136,136,137,137,176,219,137,137,137,128,128,128, - 107,137,137,254,109,109,137,107,107,107,107,107,107,128,128,107, - 35,107,221,221,107,2,221,212,128,128,128,78,234,48,14,48, - 251,239,201,55,42,40,192,108,63,63,201,142,43,236,243,33, - 24,222,0,143,42,118,42,236,174,55,181,165,165,100,71,100, - 14,224,243,79,21,42,236,79,71,100,194,79,224,236,100,100, - 97,21,21,146,33,70,126,129,79,236,236,118,118,155,236,243, - 61,13,165,165,114,195,71,50,159,17,17,50,27,34,8,141, - 204,170,204,204,204,170,204,204,170,204,204,170,62,144,27,50, - 136,138,138,138,138,138,254,136,254,18,137,137,137,137,137,137, - 137,109,109,254,109,109,110,158,137,107,107,107,107,107,107,137, - 107,107,107,221,107,221,158,221,221,221,107,122,234,135,214,14, - 201,239,168,134,192,146,218,18,31,168,196,42,42,236,79,218, - 98,132,165,155,224,201,24,24,71,14,192,142,114,114,165,224, - 126,165,24,181,114,222,55,181,142,201,71,143,146,126,146,132, - 69,118,114,146,146,194,224,118,118,143,46,100,118,195,114,165, - 201,236,100,100,114,114,126,159,169,144,119,170,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,146,204,121,170, - 138,138,138,138,138,138,110,138,138,218,158,254,254,137,137,137, - 136,110,109,110,110,110,109,138,109,137,109,137,137,78,137,221, - 137,107,221,137,107,107,107,221,107,107,107,109,18,48,14,251, - 63,192,183,231,251,31,192,183,108,59,40,40,42,155,70,79, - 117,142,236,236,236,165,236,70,165,165,238,79,142,143,79,117, - 79,114,126,100,236,236,100,71,100,236,118,13,100,165,240,224, - 224,70,70,114,70,71,243,236,70,236,143,165,13,118,13,236, - 118,70,114,165,100,70,243,121,46,121,146,36,215,46,121,121, - 115,121,115,121,115,121,215,121,121,215,121,115,215,121,121,215, - 237,130,130,130,237,110,110,237,110,24,136,254,109,254,109,254, - 109,110,109,109,109,109,109,122,122,109,109,158,137,109,109,78, - 137,78,158,109,109,158,158,109,109,109,109,78,41,231,192,220, - 186,200,108,95,145,192,220,227,227,192,95,193,193,231,192,106, - 106,42,43,142,142,168,142,142,79,231,31,31,31,42,48,31, - 42,231,231,142,55,196,69,55,43,224,69,69,55,42,240,69, - 71,236,240,240,100,224,201,61,240,236,240,69,165,236,240,236, - 236,236,97,240,118,165,215,36,36,36,115,115,36,36,36,131, - 36,36,36,36,131,36,36,36,36,36,36,36,131,36,36,115, - 130,130,130,130,235,130,130,237,130,246,110,110,237,110,254,109, - 176,109,176,109,109,110,110,110,237,109,109,109,78,137,137,137, - 109,137,109,109,137,109,136,158,109,158,158,158,229,106,14,203, - 203,14,178,203,203,14,7,95,193,14,95,225,95,43,161,160, - 161,224,161,161,106,231,146,181,106,142,251,168,251,51,14,40, - 40,79,43,161,142,196,43,43,142,196,31,43,43,143,69,69, - 43,224,69,69,31,236,69,240,42,224,69,69,201,165,240,240, - 236,236,240,97,236,243,157,115,115,115,36,36,36,131,131,36, - 36,36,131,64,36,115,36,131,131,64,36,36,36,131,36,64, - 130,235,140,140,130,130,65,130,65,132,37,237,37,37,37,237, - 250,110,110,110,109,109,109,122,65,237,37,37,37,37,37,122, - 37,122,109,122,122,109,138,109,122,109,122,109,229,246,113,7, - 7,14,192,108,7,231,178,7,95,168,203,7,7,231,192,106, - 106,42,106,14,106,231,106,106,106,79,251,14,161,143,183,142, - 168,231,222,106,142,231,142,42,79,196,55,55,43,59,80,80, - 80,236,69,69,224,201,42,100,42,224,240,224,201,236,236,201, - 236,201,61,236,13,126,215,115,115,115,64,115,64,36,131,64, - 64,64,64,131,131,64,64,64,131,64,131,157,157,64,64,64, - 140,140,140,140,140,140,140,185,65,222,37,37,175,175,175,37, - 37,65,110,109,110,250,37,37,37,37,65,175,65,37,37,37, - 37,122,65,237,122,122,122,122,138,122,122,122,112,183,142,178, - 63,168,168,192,192,168,63,178,200,231,63,63,246,196,142,63, - 106,196,142,142,142,42,222,222,142,42,79,168,168,59,184,222, - 142,224,142,142,142,80,80,155,118,118,42,42,224,0,155,239, - 80,80,100,165,155,118,13,224,240,236,165,114,165,236,236,114, - 236,236,97,118,236,126,215,215,64,64,64,64,64,115,157,131, - 131,64,36,10,64,131,64,64,131,131,10,131,131,64,64,64, - 197,127,140,127,140,140,65,122,140,222,175,185,65,150,150,37, - 122,197,140,65,65,65,235,37,237,65,106,175,173,65,65,37, - 175,167,165,127,37,52,94,122,37,122,37,37,112,183,132,246, - 218,168,222,246,184,183,184,184,184,196,184,132,28,196,117,132, - 132,165,117,117,33,224,98,28,117,42,117,117,132,165,163,28, - 117,236,33,117,117,70,233,59,165,155,79,126,79,0,59,51, - 233,155,224,155,155,0,195,155,143,70,143,143,143,143,79,143, - 194,224,79,243,56,146,115,115,215,64,64,64,157,64,157,10, - 131,64,64,131,64,131,10,36,10,131,64,131,157,64,64,64, - 118,46,253,39,127,140,65,130,94,222,37,65,150,52,65,127, - 0,155,46,230,140,175,172,175,250,94,117,122,65,37,162,94, - 127,224,118,70,208,70,117,162,37,37,37,37,112,200,222,48, - 246,168,222,132,184,168,117,132,102,132,218,117,132,231,222,117, - 132,42,222,222,117,51,84,28,117,51,117,222,117,201,163,28, - 146,116,117,117,117,80,196,155,51,70,117,51,155,80,155,118, - 118,0,116,165,155,118,165,116,155,155,118,165,165,165,143,143, - 100,165,129,143,236,126,46,115,64,215,157,64,64,157,215,131, - 64,157,64,157,131,64,64,115,131,157,64,157,157,157,64,215, - 118,13,146,197,140,140,65,94,183,79,175,98,126,165,103,79, - 0,0,155,146,39,140,140,175,94,63,55,37,98,222,165,103, - 79,70,13,0,195,195,0,70,100,83,117,162,112,218,14,178, - 178,192,192,203,108,192,108,108,108,192,44,44,108,168,192,63, - 14,231,14,168,214,51,14,108,113,79,63,192,48,196,135,63, - 178,79,183,135,102,236,59,0,118,155,239,233,155,0,0,195, - 0,0,42,201,155,59,224,118,118,116,19,51,155,51,19,19, - 51,70,70,70,70,146,83,157,157,157,157,215,157,131,215,49, - 157,157,157,215,131,157,157,215,157,131,157,10,215,10,131,215, - 129,121,149,230,39,127,127,48,192,59,191,80,118,195,236,0, - 0,0,215,149,253,39,52,52,184,63,59,191,155,195,118,236, - 195,0,0,195,195,195,195,0,0,0,70,169,32,135,108,108, - 178,178,74,7,7,178,203,7,7,192,193,95,7,192,63,178, - 14,222,14,214,14,192,178,44,178,222,192,14,192,168,74,178, - 14,222,168,200,48,233,80,118,155,118,166,118,80,155,0,0, - 51,80,118,0,0,155,80,155,233,26,105,19,19,19,75,75, - 19,224,118,118,236,146,146,146,146,146,33,146,132,33,24,24, - 33,33,146,132,33,24,33,33,24,184,33,24,33,246,33,33, - 48,146,119,230,39,39,156,48,192,116,80,155,0,0,0,0, - 0,0,0,84,230,92,217,156,48,192,116,80,155,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,155,171,135,251,44, - 44,178,44,95,203,178,178,203,113,178,178,113,214,14,251,40, - 40,168,14,108,178,192,95,6,113,192,168,40,108,168,102,231, - 12,116,12,32,102,80,155,118,118,118,80,239,61,0,0,0, - 0,155,118,0,0,0,0,118,80,80,155,201,42,224,238,118, - 224,42,201,80,201,146,171,134,134,134,41,41,41,41,229,38, - 38,41,41,41,41,229,38,38,60,60,38,229,229,41,41,41, - 102,100,100,131,115,246,233,116,233,233,0,0,0,195,0,0, - 0,0,195,100,131,215,48,239,116,233,233,0,0,0,195,0, - 0,0,0,0,0,0,0,0,0,0,0,0,18,135,214,44, - 7,178,7,203,203,14,203,113,113,14,178,214,40,168,14,40, - 40,168,251,40,113,192,111,125,203,168,32,103,29,48,152,12, - 40,51,214,32,156,155,155,80,233,0,0,118,0,0,0,0, - 0,0,155,118,0,0,0,0,59,155,0,0,233,42,239,118, - 201,233,61,61,165,146,56,70,195,195,238,0,0,118,238,0, - 195,236,195,0,118,238,0,195,42,42,118,118,201,118,118,0, - 51,13,195,155,80,118,155,0,118,0,118,0,80,0,0,0, - 0,0,0,0,155,155,155,155,0,118,0,118,0,80,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,218,200,251,113, - 203,14,113,203,7,14,108,203,203,168,178,113,14,168,44,193, - 14,251,214,178,14,168,214,214,40,168,192,192,74,51,48,214, - 40,118,155,0,0,0,155,118,0,0,0,0,0,0,0,118, - 118,0,0,0,0,0,118,80,118,0,0,0,118,118,201,80, - 201,155,80,80,233,146,143,70,0,0,69,0,0,201,236,0, - 118,42,195,0,59,236,195,155,222,142,195,195,224,201,0,195, - 118,0,0,0,0,0,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,0, - 0,0,0,0,0,0,0,0,0,0,0,0,222,63,239,14, - 113,51,231,40,40,40,178,251,14,239,51,251,40,239,102,200, - 40,80,239,40,40,80,239,80,239,80,51,155,80,80,239,233, - 59,80,0,118,80,80,118,80,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,118,0,0,0,0,0,155,118,0,118, - 118,118,118,118,118,142,42,236,195,0,79,195,195,51,224,195, - 70,79,195,195,42,224,195,13,222,222,155,195,224,51,195,195, - 155,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,168,219,200,200, - 108,160,200,186,200,135,74,219,200,123,219,135,219,219,102,219, - 219,177,219,177,219,219,219,219,219,192,63,51,168,178,200,200, - 74,168,155,0,118,118,0,80,155,0,0,0,0,0,195,0, - 0,0,0,0,80,0,80,231,42,118,0,118,168,63,192,106, - 106,106,142,43,55,222,236,70,0,0,143,195,195,143,236,195, - 195,143,195,195,196,201,195,118,222,142,195,195,236,42,195,195, - 80,0,0,0,0,0,118,80,0,0,0,0,0,0,0,0, - 0,0,0,0,118,0,0,118,118,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,51,218,218,218, - 218,183,218,218,183,183,183,63,63,246,106,48,183,189,183,63, - 246,63,246,63,246,200,246,135,102,117,192,80,0,233,168,246, - 192,80,118,118,0,118,118,0,0,0,0,0,0,195,118,0, - 0,0,0,0,0,236,246,184,222,0,0,0,224,142,183,218, - 218,218,18,98,189,134,79,79,71,71,79,142,79,142,117,142, - 222,79,142,79,79,117,222,142,132,132,222,222,117,79,79,142, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,118,118,0,222,196,233, - 168,168,0,196,0,69,236,42,63,48,246,48,48,106,165,51, - 233,118,118,0,51,189,0,233,233,155,155,155,0,0,0,195, - 0,0,0,0,118,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,195,195,0,0,118,155,42,233,155,195,155, - 224,118,236,165,31,79,71,222,132,142,126,246,132,142,218,189, - 24,126,184,246,142,24,18,246,24,24,246,189,189,142,33,246, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,195,114, - 0,0,0,0,0,0,0,0,0,0,0,0,0,63,79,51, - 14,63,0,192,0,196,165,79,246,183,219,171,18,246,69,71, - 0,0,0,0,51,218,155,155,233,233,0,0,155,155,0,118, - 0,155,80,118,155,80,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,195,238,224,195,70,117,222,231,0,195,195, - 118,195,195,70,222,195,236,143,240,224,143,0,195,224,236,0, - 0,100,195,0,224,224,195,0,231,55,195,195,238,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,80,195,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,48,146,196, - 63,63,195,106,195,192,196,181,33,218,171,171,134,218,196,79, - 51,168,168,168,168,200,70,59,51,231,51,155,0,155,0,0, - 0,118,118,80,118,118,0,0,0,0,0,0,155,0,0,0, - 0,0,0,0,0,13,126,222,143,222,181,236,0,0,236,117, - 165,195,236,236,246,195,118,165,0,0,100,0,195,224,79,0, - 165,224,195,195,224,71,195,165,79,231,165,0,79,224,195,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,195,195,0,0, - 0,0,195,195,195,195,13,195,13,13,13,13,13,183,33,71, - 63,161,118,63,195,161,55,132,218,98,41,171,219,200,69,142, - 118,0,0,0,51,18,70,80,51,168,155,0,80,51,0,0, - 0,118,233,118,80,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,118,143,70,165,118,195,155,195,195,165,100, - 71,195,70,236,33,195,13,236,118,118,165,70,236,51,79,118, - 224,165,70,114,143,222,118,224,196,79,224,118,79,143,114,70, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,195,13,13,114,114,13,13,13,13,118,13,63,24,42, - 63,246,195,106,195,246,243,33,24,189,171,218,134,189,243,222, - 195,224,195,196,42,135,55,55,79,233,233,0,0,155,0,118, - 116,236,222,155,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,195,195,195,118,70,70,195,0,195,13,33,84, - 181,195,70,236,106,195,195,165,0,0,165,195,195,155,195,195, - 195,165,0,0,195,195,195,195,70,155,195,0,0,155,0,195, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,195,70,118,195,195,70,70,70,118,13,118,142,33,224, - 63,63,155,79,13,161,126,33,98,208,134,253,134,177,126,126, - 13,195,118,118,59,219,79,71,59,233,0,0,0,0,0,195, - 222,195,233,118,0,0,0,0,0,0,118,0,0,80,0,0, - 0,0,0,0,155,70,195,0,0,0,0,0,80,56,33,84, - 117,118,13,165,24,114,114,13,13,114,236,21,118,13,114,13, - 118,236,236,13,236,70,13,118,118,236,13,118,13,70,114,114, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,195, - 0,0,69,222,246,33,161,246,246,246,106,246,161,183,132,43, - 231,238,80,195,0,63,55,243,146,218,171,171,218,135,243,79, - 114,155,70,59,246,135,224,143,224,80,155,0,0,0,0,0, - 0,0,0,0,0,0,0,0,118,0,0,0,0,0,0,0, - 0,0,0,224,80,118,0,0,0,0,0,195,118,114,69,33, - 243,118,13,165,132,13,97,236,236,174,236,165,129,97,100,97, - 174,100,100,165,174,100,129,129,100,100,100,100,174,240,236,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,59,0,0,80,201,0,80,118,118, - 195,192,234,234,234,177,219,123,219,186,177,177,219,200,161,48, - 48,161,63,63,63,192,161,192,14,192,14,142,142,192,231,231, - 168,231,168,231,18,189,224,31,80,155,80,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,195,0,195,118, - 13,114,236,13,61,129,165,49,49,129,129,174,97,100,100,243, - 83,83,131,83,83,83,69,83,83,83,83,83,83,83,100,236, - 0,0,0,0,0,0,118,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,118,118,80,251,108,178,155,168,0, - 201,31,160,145,145,145,219,123,177,123,145,123,200,220,186,7, - 186,186,7,186,186,203,160,160,178,200,160,161,203,160,178,161, - 161,192,192,14,168,231,142,168,42,42,168,42,201,118,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,195,0,0,195, - 100,100,69,83,69,83,69,83,46,46,46,46,83,83,46,46, - 46,46,46,46,83,83,46,46,121,46,46,83,46,46,83,46, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,118,118,239,80,118,0,118,220,145,123,220,113, - 251,192,113,123,123,123,123,123,123,186,186,220,203,160,160,161, - 160,160,160,161,161,192,246,246,106,192,246,192,222,106,192,142, - 106,192,142,222,231,168,42,155,155,80,239,80,155,0,0,0, - 0,0,0,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,0,0,0,195, - 236,69,55,31,43,31,31,43,43,42,31,31,43,43,42,42, - 69,69,31,69,69,43,43,181,43,106,43,69,55,55,69,55, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,118,40,31,0,118,192,160,160,189,160, - 160,183,161,161,161,161,161,161,161,113,161,161,106,106,106,106, - 106,142,142,106,106,106,43,106,14,43,43,14,43,43,31,43, - 251,43,251,14,14,251,80,80,155,80,233,155,80,0,0,0, - 118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,201,118,236,118,236, - 236,240,55,69,69,43,69,69,43,43,69,69,69,43,69,69, - 43,43,43,43,43,181,43,181,43,106,43,43,43,46,69,43, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,80,41,79,181,246,186,189,186, - 219,123,219,219,189,160,160,24,160,189,161,106,106,106,106,106, - 14,106,106,106,106,106,106,43,106,106,142,43,142,43,142,43, - 43,142,243,43,43,42,80,80,118,80,80,80,155,118,0,118, - 155,0,0,0,0,0,0,118,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,69,243,69,71,69, - 71,143,69,201,195,195,97,69,100,69,243,243,69,69,243,69, - 83,69,69,83,240,240,83,240,83,69,131,69,69,69,69,69, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,13,195,118,155,236, - 224,69,71,55,132,246,106,132,246,246,246,222,168,231,168,222, - 192,168,222,222,63,63,63,222,183,135,183,246,246,63,246,246, - 246,63,222,168,231,231,231,42,118,80,118,0,0,0,0,0, - 0,0,0,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,100,71,143,71, - 71,143,116,195,0,0,195,165,129,240,100,165,129,100,165,236, - 56,97,236,236,129,240,100,100,100,100,165,97,236,56,21,100, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,195,0,0,0, - 0,0,222,214,113,113,32,171,223,186,113,14,219,32,32,135, - 178,113,160,223,200,200,14,203,145,15,229,32,186,186,123,15, - 32,32,7,113,113,15,32,32,12,12,155,118,0,155,0,0, - 0,0,155,0,0,118,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,195,195,238,70,195, - 118,195,118,0,195,0,118,61,189,189,24,161,251,61,201,201, - 201,55,142,222,142,79,42,118,238,80,201,142,142,31,239,31 - }; -static char hdl_medium_off[] = { - 216,249,249,249,249,249,249,104,104,104,104,104,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, - 104,104,149,104,149,149,5,149,5,5,5,5,5,153,5,153, - 153,153,153,153,144,144,144,144,90,90,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,90,90,90,90,5,90,5,5,5,5,5,5,5,5,5, - 5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 216,104,104,104,104,104,104,249,249,249,249,104,104,104,104,104, - 104,104,104,104,104,104,104,104,104,104,104,104,104,104,149,104, - 149,149,104,149,5,104,149,149,149,149,149,149,149,5,149,5, - 5,5,5,5,144,144,144,144,144,144,90,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,180,180,180,180,180, - 180,180,180,180,180,144,144,144,144,144,180,180,180,90,90,144, - 144,8,8,90,90,5,153,90,67,67,67,67,5,5,5,5, - 5,4,4,67,5,5,4,5,5,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,216,216,216,216,249,249,249,104,104,249,249,249,249,249,249, - 249,216,216,216,216,66,216,66,216,66,66,66,66,249,139,249, - 249,139,104,104,149,149,104,149,149,149,139,149,149,5,149,153, - 180,180,180,149,153,153,153,5,153,144,144,153,90,90,90,90, - 90,144,144,144,144,144,144,144,144,144,90,144,180,180,180,180, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 90,5,90,5,90,5,67,5,67,67,67,67,67,67,67,67, - 67,67,4,67,67,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,207,207,207,249,216,216,216,216,216,216,216,216,216,216,216, - 216,249,249,216,216,216,216,104,249,249,249,249,249,216,66,66, - 66,104,139,66,139,139,139,149,104,139,104,139,149,149,149,104, - 149,149,149,153,144,180,149,180,144,180,180,144,144,144,144,144, - 144,90,144,144,144,144,144,144,144,144,144,144,144,144,144,144, - 144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,5, - 90,90,5,153,153,67,67,67,90,67,67,67,67,67,67,4, - 90,4,90,4,90,67,67,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 216,249,249,207,249,216,216,207,216,216,216,216,216,216,216,216, - 216,216,216,216,216,216,216,66,216,66,216,66,66,249,249,249, - 66,104,66,66,66,104,139,139,139,139,104,139,149,149,149,139, - 149,149,149,149,149,180,149,149,180,149,149,149,144,153,153,119, - 144,144,90,90,90,90,90,90,144,144,144,144,144,90,90,90, - 90,90,90,90,90,90,5,144,144,144,144,144,90,90,67,90, - 90,153,67,180,67,90,67,67,67,67,67,67,67,90,67,67, - 67,67,67,67,67,67,4,67,67,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,207,216,216,207,207,216,216,207,216,216,216,216,216,216,216, - 216,216,216,66,216,66,34,216,216,216,66,216,216,216,66,66, - 66,34,66,66,66,66,66,66,104,104,139,66,88,139,139,149, - 180,149,153,180,149,149,149,180,149,153,153,153,144,144,144,119, - 153,153,153,153,153,90,90,90,90,144,180,153,90,153,153,153, - 90,153,153,90,90,153,90,153,90,90,67,90,90,67,90,67, - 180,180,67,180,180,205,180,205,67,180,180,67,67,67,67,67, - 67,67,67,67,4,4,67,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 207,207,207,216,216,207,216,216,216,216,216,207,34,34,34,216, - 216,216,216,216,216,216,216,66,216,216,216,216,66,216,66,34, - 66,66,66,66,66,66,88,88,88,88,149,139,139,149,139,149, - 139,149,149,149,180,153,180,149,153,153,153,153,149,149,153,119, - 153,153,153,153,153,153,153,180,153,180,90,153,90,90,90,153, - 90,90,153,153,153,153,90,153,180,90,180,153,90,180,153,180, - 180,67,180,180,180,205,180,180,180,180,205,67,205,205,85,67, - 90,4,67,67,67,90,67,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 211,211,207,207,207,207,207,216,207,207,207,216,207,252,34,34, - 34,34,207,34,34,34,34,34,34,34,34,34,34,34,216,252, - 34,252,66,66,34,252,88,34,88,88,88,88,88,88,88,88, - 139,144,180,180,149,180,144,180,180,144,153,180,180,180,180,119, - 153,153,180,153,153,153,153,153,180,153,180,153,153,180,180,180, - 180,180,180,153,180,153,180,180,153,180,180,180,180,180,180,67, - 205,180,205,205,205,205,205,205,58,205,205,205,67,67,67,67, - 67,67,90,67,67,67,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 211,211,207,207,207,207,207,207,207,34,207,34,207,207,207,34, - 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 216,34,34,252,66,216,66,252,66,252,88,88,252,88,252,139, - 139,88,88,88,144,139,180,144,149,144,144,180,149,144,180,119, - 144,180,180,180,180,180,180,153,180,180,180,180,153,153,153,180, - 90,153,180,180,180,180,180,180,180,180,205,67,180,205,205,180, - 205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,85, - 67,67,67,67,67,90,67,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 241,211,211,207,207,207,211,207,34,211,120,34,34,34,120,211, - 120,211,120,211,34,34,207,34,34,34,120,207,34,120,34,34, - 120,120,120,34,34,34,252,34,252,34,252,252,88,252,88,88, - 88,88,88,88,88,180,88,180,180,180,180,144,144,139,144,119, - 180,180,144,144,144,144,144,77,180,144,144,180,180,180,77,180, - 180,77,180,180,205,180,180,205,180,180,180,205,205,180,180,205, - 205,205,205,216,205,205,205,205,205,205,205,205,85,180,67,205, - 67,67,67,67,67,67,4,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 241,241,241,211,211,207,211,211,207,207,120,211,120,207,34,211, - 34,207,34,120,120,120,120,120,120,34,120,211,120,120,120,34, - 34,34,120,120,120,34,252,34,252,34,252,252,88,252,252,252, - 88,252,252,252,88,252,252,252,252,88,88,77,88,252,252,119, - 88,77,77,180,180,77,144,144,180,180,144,144,77,180,180,77, - 180,77,77,180,77,205,180,205,77,77,205,205,205,205,180,205, - 205,205,58,58,58,58,58,58,85,205,205,205,205,85,67,205, - 205,67,67,67,67,67,90,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5, - 217,241,211,241,241,241,211,211,211,211,211,120,211,211,241,120, - 241,120,241,211,211,120,211,120,211,27,120,120,120,120,120,120, - 120,120,252,120,34,120,120,58,34,252,34,34,120,252,88,252, - 252,144,180,88,252,88,215,157,157,215,157,157,157,157,157,119, - 77,252,77,77,252,77,77,58,252,77,77,77,77,58,58,58, - 58,58,58,58,77,77,58,205,58,77,205,77,58,58,58,205, - 58,205,49,131,131,10,131,157,10,157,49,131,10,49,141,85, - 67,67,67,67,67,67,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 217,92,241,241,211,211,241,241,241,211,211,211,241,120,211,211, - 241,120,241,101,241,27,241,241,211,211,211,120,241,27,27,120, - 120,211,120,101,120,120,120,120,120,120,169,252,119,46,46,46, - 157,83,83,83,215,215,83,157,131,83,83,83,131,83,131,215, - 83,157,46,215,215,46,215,215,215,215,215,215,215,83,83,215, - 83,215,215,215,215,215,215,83,215,215,215,83,157,215,215,83, - 83,83,83,83,100,157,49,83,83,131,100,131,83,131,49,10, - 157,157,10,10,10,10,209,90,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5, - 92,50,241,241,241,241,211,241,241,241,211,241,120,241,241,27, - 241,241,27,241,211,211,211,120,101,241,241,241,211,211,211,241, - 27,101,120,120,120,120,120,120,120,120,120,120,170,64,215,157, - 83,157,10,215,157,131,157,46,157,157,36,100,49,100,46,131, - 157,83,215,157,157,10,83,83,131,100,83,131,157,157,215,131, - 215,157,157,157,83,131,157,215,157,83,157,215,83,49,157,131, - 131,83,157,64,157,131,157,157,131,157,157,131,131,83,157,64, - 157,64,64,64,36,10,141,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,90,4,5, - 217,217,241,92,241,241,241,241,241,241,241,241,241,241,241,241, - 241,241,241,241,241,241,241,241,241,241,27,241,241,241,101,241, - 241,101,101,101,101,101,230,120,120,120,120,101,121,131,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,141,67,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,67,67,67,67,4,5, - 248,92,92,241,92,50,241,241,241,50,50,50,241,241,241,241, - 241,241,241,50,50,50,50,241,241,241,241,92,241,92,241,101, - 241,241,241,101,101,101,101,101,230,101,101,120,141,174,10,99, - 174,174,10,99,174,174,10,99,174,174,10,99,174,174,10,99, - 174,174,10,99,174,174,10,99,174,174,10,99,174,174,10,99, - 174,174,10,99,174,174,10,99,174,174,10,99,174,174,10,99, - 174,174,10,99,174,174,10,99,174,174,10,99,174,174,10,99, - 174,174,10,99,174,174,141,90,67,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,90,67,67, - 179,179,217,50,92,92,50,50,92,241,50,50,50,92,50,50, - 92,50,92,50,92,50,50,92,92,92,241,92,241,92,92,50, - 50,50,50,101,241,101,101,101,101,101,101,101,170,131,49,26, - 97,13,49,26,97,13,49,26,97,13,49,26,97,13,49,26, - 97,13,49,26,97,13,49,26,97,13,49,26,97,13,49,26, - 97,13,49,26,97,13,49,26,97,13,49,26,97,13,49,26, - 97,13,49,26,97,13,49,26,97,13,49,26,97,13,49,26, - 97,13,49,26,97,97,141,67,4,67,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,67,4,90,4,5,5,5,5, - 182,217,217,217,92,92,92,217,50,217,92,92,92,217,92,92, - 50,217,50,92,50,217,92,92,92,217,92,217,92,50,217,92, - 92,92,92,92,92,92,50,92,101,50,101,101,204,174,143,99, - 129,97,243,194,129,97,243,194,129,97,243,194,129,97,243,194, - 129,97,243,194,129,97,243,194,129,97,243,194,129,97,243,194, - 129,97,243,194,129,97,243,194,129,97,243,194,129,97,243,194, - 129,97,243,194,129,97,243,194,129,97,243,194,129,97,243,194, - 129,97,243,194,129,97,141,4,67,67,4,4,4,4,4,4, - 4,206,4,4,4,4,4,67,4,67,67,67,67,5,5,67, - 72,179,217,179,217,217,92,217,217,217,217,217,217,217,217,217, - 217,50,217,217,217,50,217,159,217,50,217,50,217,92,92,92, - 217,92,217,92,92,167,92,217,92,167,92,50,204,49,21,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,21,97,97,97,21,97,97,97,21,97,97,97,21, - 97,97,97,114,21,97,141,67,67,67,67,67,4,67,4,206, - 4,4,206,4,5,5,5,4,5,4,5,4,67,67,5,67, - 182,248,248,217,179,217,217,217,217,217,217,217,217,217,217,217, - 217,217,217,50,217,217,217,217,217,217,217,217,217,39,217,217, - 217,217,39,217,217,217,217,167,92,217,50,167,119,174,97,21, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,174,97,97,97,174,97,97,97,174,97,97,97,174,97,97, - 97,97,97,97,97,97,141,67,67,67,4,4,67,4,67,4, - 67,67,4,67,4,67,5,67,67,67,67,67,4,5,67,5, - 72,182,182,248,248,248,248,217,179,179,179,248,248,248,248,179, - 248,179,248,179,179,248,248,217,248,248,179,179,179,248,179,179, - 179,179,179,39,179,179,179,217,217,39,92,92,170,129,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,141,67,67,67,67,67,67,67,67,4, - 4,67,4,67,5,67,5,5,5,4,4,67,67,4,206,67, - 228,247,248,248,182,248,248,72,248,248,248,248,179,179,179,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,179,39,248,217,179,167,217,170,174,10,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,10,49,174,174,141,67,67,67,67,67,67,67,67,67, - 67,4,67,5,67,5,67,67,67,67,67,67,67,85,67,67, - 72,228,182,72,182,72,248,248,248,248,182,248,72,248,248,248, - 248,248,248,248,72,248,72,248,248,248,248,248,182,72,52,242, - 72,242,52,179,127,242,179,127,179,226,248,167,84,174,10,49, - 174,13,10,49,174,13,10,49,174,13,10,49,174,13,10,49, - 174,13,10,49,174,13,10,49,174,13,10,49,174,13,10,49, - 174,13,10,49,174,13,10,49,174,13,10,49,174,13,10,49, - 174,13,10,49,174,13,10,49,174,13,10,49,174,13,10,49, - 174,13,10,10,174,174,141,67,47,67,67,67,67,67,67,206, - 67,4,67,5,67,67,67,67,206,67,67,85,67,67,67,67, - 185,72,247,72,72,72,72,72,72,72,248,72,182,72,72,72, - 72,72,72,72,248,72,72,72,72,72,72,72,72,72,182,52, - 72,72,72,72,242,248,52,242,248,52,242,242,204,174,194,26, - 49,174,194,26,49,174,194,26,49,174,194,26,49,174,194,26, - 49,174,194,26,49,174,194,26,49,174,194,26,49,174,194,26, - 49,174,194,26,49,174,194,26,49,174,194,26,49,174,194,26, - 49,174,194,26,49,174,194,26,49,174,194,26,49,174,194,26, - 49,174,194,129,129,97,141,67,67,67,67,67,67,67,85,67, - 206,67,67,67,206,67,67,206,67,67,67,67,67,85,67,85, - 185,72,72,72,72,72,72,72,72,72,72,72,228,228,182,72, - 72,72,72,228,228,72,228,72,162,72,162,72,72,72,72,72, - 72,72,72,52,162,182,72,162,242,72,127,242,84,97,194,26, - 56,97,26,26,56,97,26,26,56,97,26,26,56,97,26,26, - 56,97,26,26,56,97,26,26,56,97,26,26,56,97,26,26, - 56,97,26,26,56,97,26,26,56,97,26,26,56,97,26,26, - 56,97,26,26,56,97,26,26,56,97,26,26,56,97,26,26, - 56,13,194,26,174,97,141,47,85,67,85,67,85,67,67,67, - 85,67,206,5,5,4,5,67,206,85,67,67,67,67,67,85, - 247,247,72,247,72,247,72,72,72,228,228,72,72,72,228,228, - 228,228,228,72,72,162,72,228,72,228,72,72,72,228,162,162, - 162,72,228,162,72,162,162,72,52,72,72,52,170,97,97,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 174,174,174,13,21,21,141,67,47,67,67,67,67,67,85,67, - 67,206,67,67,206,67,206,67,67,67,67,67,67,67,85,67, - 173,247,72,247,182,247,228,247,182,182,228,228,228,72,72,72, - 72,72,228,228,228,228,162,228,228,228,162,228,162,228,162,228, - 228,162,228,228,162,162,162,162,72,72,72,162,33,174,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,97,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,97,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,97,129,97, - 97,97,129,97,97,97,129,97,97,97,129,97,97,174,129,97, - 97,174,129,97,174,174,141,205,85,47,47,67,67,67,85,67, - 67,139,85,85,205,85,206,85,67,85,67,67,47,67,67,85, - 185,247,247,72,247,72,182,247,228,247,72,228,228,228,228,247, - 228,228,228,228,228,228,228,162,228,162,173,228,228,228,173,162, - 173,228,162,173,173,173,173,173,94,173,162,162,84,97,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,114,13,70,13,114,141,58,85,85,85,47,85,85,67,85, - 85,206,67,206,139,67,85,67,67,85,67,85,67,85,85,85, - 185,247,247,247,247,247,247,247,72,247,228,228,228,228,173,173, - 185,228,228,228,228,173,173,228,173,228,173,210,173,173,173,228, - 173,173,228,228,173,173,210,173,210,173,162,210,84,174,99,49, - 129,174,10,49,129,174,10,49,129,174,10,49,129,174,10,49, - 129,174,10,49,129,174,10,49,129,174,10,49,129,174,10,49, - 129,174,10,49,129,174,10,49,129,174,10,49,129,174,10,49, - 129,174,10,49,129,174,10,49,129,174,99,49,129,174,10,49, - 174,174,49,49,174,174,141,58,85,47,85,47,85,85,85,85, - 85,85,85,139,85,85,85,85,85,47,67,47,85,47,85,47, - 185,247,247,72,247,72,247,228,247,228,247,228,185,185,228,228, - 228,173,185,173,173,228,173,173,173,173,173,228,173,173,210,173, - 173,173,173,173,173,173,173,23,173,150,23,173,84,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,99, - 129,174,10,49,129,174,141,58,47,47,85,47,47,47,85,85, - 85,85,85,85,252,85,85,47,85,85,47,85,47,85,85,85, - 235,247,247,247,247,247,247,247,247,247,185,173,173,185,185,185, - 173,173,185,185,185,173,185,185,173,173,185,173,173,185,190,210, - 173,23,173,173,23,190,150,190,23,173,65,190,84,129,194,26, - 174,13,83,26,174,13,83,26,174,13,83,26,174,13,83,26, - 174,13,83,26,174,13,83,26,174,13,83,26,174,13,83,26, - 174,13,83,26,174,13,83,26,174,13,83,26,174,13,83,26, - 174,13,83,26,174,13,83,26,174,174,194,26,174,13,194,99, - 97,174,26,49,97,97,119,47,47,47,47,47,85,47,47,47, - 47,47,47,252,207,85,85,47,47,47,85,85,47,47,47,47, - 130,235,247,247,247,247,247,247,247,247,247,247,247,247,185,185, - 185,185,173,185,185,185,185,185,185,185,185,185,185,173,185,185, - 150,173,190,23,150,190,190,190,150,190,150,173,98,236,194,194, - 129,97,194,194,129,97,194,194,129,97,194,194,129,97,194,194, - 129,97,194,194,129,97,194,194,129,97,194,194,129,97,194,194, - 129,97,194,194,129,97,194,194,129,97,194,194,129,97,194,194, - 129,97,194,194,129,97,194,194,129,13,194,194,129,174,194,129, - 129,21,194,26,56,97,141,58,58,47,47,47,47,47,47,47, - 47,47,47,47,47,47,47,47,47,47,47,47,58,47,47,47, - 130,235,130,247,235,247,247,235,247,247,235,235,185,247,185,247, - 247,235,185,185,185,185,185,185,185,190,185,185,198,185,190,185, - 185,185,65,23,190,190,150,23,190,150,23,190,84,174,97,21, - 97,21,97,21,97,21,97,21,97,21,97,21,97,21,97,21, - 97,21,97,21,97,21,97,21,97,21,97,21,97,21,97,21, - 97,21,97,21,97,21,97,21,97,21,97,21,97,21,97,21, - 97,21,97,21,97,21,97,21,97,174,97,21,21,13,174,114, - 97,21,21,114,21,97,119,58,27,58,47,47,27,47,47,47, - 47,47,47,47,27,47,47,47,47,47,47,47,27,27,27,47, - 130,130,130,247,247,235,235,235,235,247,235,247,247,235,235,235, - 235,185,185,185,185,185,185,185,185,235,185,185,235,185,185,185, - 150,150,190,185,150,190,190,150,150,190,150,190,84,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,174,97,174,174,165,97, - 97,174,56,97,97,97,141,58,27,27,27,27,47,27,27,27, - 47,27,27,27,47,27,47,27,47,27,27,27,47,47,47,27, - 130,247,247,235,235,247,235,247,235,247,130,130,247,235,235,235, - 235,235,175,235,235,235,202,202,198,235,175,198,235,235,150,185, - 185,175,150,185,185,175,185,198,150,150,150,172,84,236,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,70,13,114,13,13,114,13,13,13, - 13,13,13,13,13,114,119,17,58,17,27,27,47,27,47,27, - 27,47,211,27,27,27,47,27,27,27,27,27,27,27,27,27, - 237,237,235,235,247,235,235,247,235,235,247,235,235,235,235,202, - 130,237,235,202,202,175,235,235,235,202,235,235,202,175,235,237, - 237,202,237,237,237,175,237,175,250,237,122,250,98,174,10,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,99,49,129,174,99,49,129,174,99,49, - 129,174,99,49,129,174,10,49,174,174,194,49,174,174,10,49, - 129,174,10,49,174,174,119,17,27,27,27,27,17,27,17,27, - 27,17,27,27,27,27,27,27,27,27,27,27,27,27,27,27, - 202,202,235,235,130,130,130,130,130,130,130,237,130,202,130,235, - 235,237,130,130,237,237,237,237,237,237,237,237,202,237,175,237, - 237,237,37,237,237,250,237,237,250,237,37,250,98,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,99,174,174,10,10,129,174,10,49, - 49,13,10,10,174,174,119,17,17,17,17,27,17,27,17,17, - 27,17,27,27,27,17,17,17,17,17,17,17,17,17,17,17, - 202,202,202,202,185,185,198,235,185,185,235,235,235,130,235,237, - 237,235,130,237,130,237,237,237,235,202,175,235,130,202,130,175, - 130,237,237,110,237,237,110,110,110,110,110,110,84,97,194,26, - 49,13,194,26,49,13,194,26,49,13,194,26,49,13,194,26, - 49,13,194,26,49,13,194,26,49,13,194,26,49,13,194,26, - 49,13,194,26,49,13,194,26,49,13,194,26,49,13,194,26, - 49,13,194,26,129,13,49,129,49,13,194,49,174,13,194,26, - 174,174,194,49,129,97,62,68,17,17,17,17,27,17,17,17, - 17,17,17,17,17,27,17,17,27,17,27,17,17,27,17,17, - 202,202,202,202,202,185,202,198,202,198,202,202,198,202,198,235, - 202,202,175,202,175,202,175,250,237,237,250,237,237,237,237,237, - 237,237,237,110,138,138,138,109,109,176,109,176,98,236,194,26, - 165,174,194,26,165,174,194,26,165,174,194,26,165,174,194,26, - 165,174,194,26,165,174,194,26,165,174,194,26,165,174,194,26, - 165,174,194,26,165,174,194,26,165,174,194,26,165,174,194,26, - 165,174,194,26,129,97,194,26,129,174,194,26,129,13,10,194, - 129,13,194,26,97,97,119,68,17,17,17,17,17,17,17,17, - 17,17,17,17,17,27,27,17,17,17,17,17,17,17,17,17, - 244,202,198,198,190,202,198,198,198,198,198,202,202,198,202,198, - 202,202,202,202,202,202,237,202,237,237,237,250,237,250,237,110, - 237,110,110,110,138,138,254,110,254,254,110,254,218,21,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,97,174,13,97,97,174,13,97,97,174,13, - 97,97,174,13,97,21,174,13,21,97,21,97,174,97,97,97, - 97,97,174,13,97,21,62,17,68,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 172,202,202,198,198,190,202,202,198,185,198,202,202,202,202,172, - 172,202,172,202,202,202,237,202,202,237,237,250,175,250,250,110, - 237,37,138,122,110,110,158,109,254,158,176,158,98,174,129,97, - 97,174,129,97,97,174,129,97,97,174,129,97,97,174,129,97, - 97,174,129,97,97,174,129,97,97,174,129,97,97,174,129,97, - 97,174,129,97,97,174,129,97,97,174,129,97,97,174,129,97, - 174,174,129,97,174,97,129,97,97,174,97,21,97,97,97,21, - 97,97,129,97,174,174,62,159,68,68,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 138,202,202,202,202,202,202,202,202,172,202,202,172,202,172,202, - 202,172,172,172,172,172,172,172,172,172,172,175,172,237,175,122, - 250,250,172,250,78,244,176,244,109,109,109,176,98,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,114,13,13,13,114,114,13,13,13,70,13, - 13,114,13,70,13,114,28,68,159,17,159,17,17,17,17,17, - 17,17,17,27,17,17,17,17,17,17,17,17,17,17,17,159, - 244,172,202,202,202,202,202,202,237,237,202,237,202,237,202,202, - 237,237,250,250,250,250,250,250,250,237,250,237,172,172,172,172, - 172,175,172,172,244,172,244,244,176,158,109,244,98,49,10,49, - 129,174,10,49,129,174,10,49,129,174,10,49,129,174,10,49, - 129,174,10,49,129,174,10,49,129,174,10,49,129,174,10,49, - 129,174,10,49,129,174,10,49,129,174,10,49,129,174,10,49, - 129,174,194,49,174,174,99,49,174,97,10,49,129,174,49,49, - 174,174,49,49,174,174,119,17,68,17,159,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,159,17,159, - 138,202,202,172,202,202,198,202,202,202,237,202,250,202,237,250, - 202,172,202,237,175,175,237,237,175,172,175,172,250,172,150,172, - 172,172,172,172,172,172,172,244,244,244,244,176,98,97,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,10,129,174,10,49,129,174,10,10,174,174,10,10, - 129,174,10,49,129,174,62,68,159,68,159,159,159,68,17,159, - 17,17,17,17,17,17,17,68,17,17,68,17,159,17,159,50, - 244,202,190,198,190,202,190,202,190,190,198,198,198,198,198,198, - 198,198,198,172,172,172,198,202,202,172,198,198,202,172,172,172, - 198,190,172,244,244,122,172,244,244,244,244,244,98,97,194,26, - 174,97,194,26,174,97,194,26,174,97,194,26,174,97,194,26, - 174,97,194,26,174,97,194,26,174,97,194,26,174,97,194,26, - 174,97,194,26,174,97,194,26,174,97,194,26,174,97,194,26, - 174,174,129,49,97,97,26,49,97,97,194,26,174,174,194,26, - 174,97,26,49,97,97,62,68,159,68,68,17,159,68,68,68, - 68,68,68,68,68,68,17,68,68,17,68,159,68,159,68,159, - 250,172,202,198,190,190,190,190,190,190,190,190,190,190,190,190, - 190,198,190,190,190,190,190,190,190,190,190,190,190,190,244,198, - 244,172,23,244,172,244,78,244,244,78,244,30,98,236,194,194, - 129,13,194,194,129,13,194,194,129,13,194,194,129,13,194,194, - 129,13,194,194,129,13,194,194,129,13,194,194,129,13,194,194, - 129,13,194,194,129,13,194,194,129,13,194,194,129,13,194,194, - 129,13,243,194,129,13,194,26,129,13,194,49,129,21,194,49, - 56,97,194,26,56,97,62,68,68,159,68,68,68,68,68,68, - 68,68,68,68,68,68,68,68,68,68,68,68,68,68,159,68, - 202,202,190,190,190,173,173,190,190,190,190,190,198,190,190,198, - 190,198,185,173,173,190,190,23,173,190,190,190,190,198,198,244, - 198,172,172,198,244,244,244,244,244,30,244,30,98,97,97,21, - 97,174,174,21,97,174,174,21,97,174,174,21,97,174,174,21, - 97,174,174,21,97,174,174,21,97,174,174,21,97,174,174,21, - 97,174,174,21,97,174,174,21,97,174,174,21,97,174,97,21, - 97,97,97,21,97,174,97,21,97,174,236,21,97,13,97,114, - 21,21,21,114,21,97,62,68,68,68,3,68,68,68,68,68, - 68,3,68,3,3,3,3,68,3,68,68,68,68,68,3,68, - 172,198,185,173,198,190,190,190,198,190,190,190,198,198,172,172, - 172,198,190,190,190,190,190,185,190,198,198,190,172,198,244,244, - 244,172,122,244,244,172,244,244,244,78,30,30,98,21,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,97,21,97,174,97,21,97,174,97,21,97,174,97,21, - 97,174,56,21,97,97,97,21,97,97,129,21,174,174,165,97, - 97,174,56,97,97,97,62,199,3,3,3,68,3,68,3,89, - 3,3,3,3,3,3,3,89,3,3,3,3,3,3,3,3, - 202,202,202,198,202,202,202,190,202,202,198,198,198,198,198,250, - 250,172,250,250,250,250,244,244,250,110,176,110,176,110,110,110, - 109,176,176,109,176,109,109,109,158,176,109,158,98,236,13,70, - 13,114,13,70,13,114,13,70,13,114,13,70,13,114,13,70, - 13,114,13,70,13,114,13,70,13,114,13,70,13,114,13,70, - 13,114,13,70,13,114,13,70,13,114,13,70,13,114,13,70, - 13,13,13,114,13,114,13,70,13,13,13,13,114,13,13,13, - 13,13,13,13,13,114,98,199,89,3,3,89,89,89,3,89, - 89,89,89,89,89,89,89,89,89,89,89,3,89,3,89,89, - 172,172,202,202,202,202,172,237,202,202,198,190,172,172,237,172, - 172,172,244,244,172,172,172,250,172,244,172,244,244,78,244,244, - 244,244,176,110,176,244,176,176,176,109,109,158,208,129,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 174,174,10,49,174,174,10,49,174,174,10,49,174,174,10,49, - 129,174,10,49,129,174,10,49,174,174,10,49,174,174,10,49, - 129,174,10,49,174,174,208,199,57,199,199,89,89,199,89,89, - 89,89,199,89,89,199,89,89,199,89,89,89,199,199,199,89, - 138,250,237,202,172,237,202,172,172,250,250,202,172,172,172,244, - 244,172,172,244,244,250,172,244,250,244,244,244,244,244,244,244, - 109,244,30,244,109,244,30,244,30,30,158,78,98,97,10,99, - 174,174,10,99,174,174,10,99,174,174,10,99,174,174,10,99, - 174,174,10,99,174,174,10,99,174,174,10,99,174,174,10,99, - 174,174,10,99,174,174,10,99,174,174,10,99,174,174,10,49, - 129,174,10,49,174,174,49,10,49,13,10,10,129,174,10,49, - 49,13,10,10,174,174,169,57,57,57,57,199,57,199,199,57, - 199,199,199,57,199,199,199,57,199,199,57,89,199,199,57,199, - 254,138,138,138,237,250,138,237,138,250,138,110,250,172,244,172, - 172,244,244,172,244,244,244,244,244,244,244,176,176,30,158,176, - 244,109,244,30,244,30,244,158,109,254,176,221,208,236,49,129, - 49,13,129,49,129,13,49,129,49,13,129,49,129,13,49,129, - 49,13,129,49,129,13,49,129,49,13,129,49,129,13,49,129, - 49,13,129,49,129,13,49,129,49,13,129,49,129,13,49,99, - 174,13,129,26,49,13,194,49,174,174,194,49,174,13,194,26, - 174,174,194,49,129,97,208,23,23,57,57,57,199,57,57,57, - 57,57,199,57,57,199,57,199,57,57,57,57,57,57,210,57, - 158,254,138,138,138,138,250,250,138,250,244,244,176,244,244,244, - 244,244,244,244,244,244,244,244,244,244,244,30,244,244,30,158, - 30,158,109,158,158,158,158,221,221,221,158,221,208,236,194,26, - 129,174,194,26,129,97,194,26,129,174,194,26,129,97,194,26, - 129,174,194,26,129,97,194,26,129,174,194,26,129,97,194,26, - 129,174,194,26,129,97,194,26,129,174,194,26,129,97,194,26, - 129,174,194,26,129,174,194,194,56,97,194,26,129,13,10,194, - 129,13,194,26,97,97,169,23,23,23,23,57,57,57,199,57, - 57,57,57,199,199,57,199,57,199,57,57,57,199,57,23,57, - 136,138,244,138,250,138,254,138,138,176,254,138,176,254,254,158, - 254,176,158,176,158,158,176,244,176,176,244,244,176,30,244,244, - 30,244,158,158,158,221,158,158,158,158,107,158,98,165,97,13, - 21,21,97,13,97,21,174,13,21,21,97,13,97,21,174,13, - 21,21,97,13,97,21,174,13,21,21,97,13,97,21,174,13, - 21,21,97,13,97,21,174,13,21,21,97,13,97,97,21,21, - 97,97,174,13,21,21,21,21,174,13,21,97,174,97,97,97, - 97,97,174,13,97,21,163,23,23,23,57,57,199,57,57,199, - 199,199,199,199,199,199,199,199,199,57,57,57,57,57,57,23, - 254,138,172,250,250,250,250,250,138,254,254,136,254,254,254,254, - 158,136,254,254,176,158,158,158,176,176,176,158,254,158,158,254, - 158,158,158,158,158,158,158,158,221,158,158,2,98,100,129,97, - 174,174,129,97,174,97,129,97,174,174,129,97,174,97,129,97, - 174,174,129,97,174,97,129,97,174,174,129,97,174,97,129,97, - 174,174,129,97,174,97,129,97,174,174,129,97,97,174,97,21, - 97,97,129,97,97,174,97,21,174,174,174,97,97,97,97,21, - 97,97,129,97,174,174,169,23,23,23,57,57,199,199,199,89, - 199,89,89,89,3,89,89,199,3,89,3,199,199,199,199,199, - 244,172,172,250,172,172,172,250,244,250,176,176,254,158,254,158, - 254,176,254,254,254,254,136,254,158,158,158,176,158,158,176,30, - 176,78,244,78,78,158,30,30,30,30,2,158,208,21,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,114,13,13, - 13,114,13,13,13,114,13,13,13,114,13,13,13,13,114,13, - 13,13,13,13,13,114,114,13,70,114,70,13,13,13,70,13, - 13,114,13,70,13,114,245,57,57,199,199,3,89,89,3,89, - 3,3,3,3,3,3,3,3,3,89,3,89,89,89,89,199, - 244,244,172,172,244,244,244,172,244,244,244,244,176,254,254,254, - 158,158,158,158,254,158,254,136,136,136,158,254,254,158,158,221, - 158,158,221,158,158,158,2,158,2,158,2,2,208,236,194,49, - 174,174,194,49,174,174,194,49,174,174,194,49,174,174,194,49, - 174,174,194,49,174,174,194,49,174,174,194,49,174,174,194,49, - 174,174,194,49,174,174,194,49,174,174,194,49,129,174,194,49, - 129,174,10,49,174,13,10,49,174,174,99,49,129,174,49,49, - 174,174,49,49,174,174,169,57,199,199,3,89,3,3,3,3, - 68,3,68,68,3,68,68,3,68,3,3,3,3,3,3,89, - 244,172,187,244,244,187,30,244,158,187,30,244,244,244,244,244, - 244,244,244,244,158,176,30,30,30,30,176,158,158,158,158,176, - 158,158,158,158,158,158,158,221,158,2,158,30,208,236,10,10, - 129,174,10,99,49,174,10,10,129,174,10,99,49,174,10,10, - 129,174,10,99,49,174,10,10,129,174,10,99,49,174,10,10, - 129,174,10,99,49,174,10,10,129,174,10,10,174,174,10,10, - 174,174,10,49,49,174,10,49,129,174,10,10,174,174,10,10, - 129,174,10,49,129,174,245,89,199,3,3,3,3,3,3,3, - 68,68,68,68,68,68,68,68,68,3,68,68,3,3,3,3, - 30,244,244,20,187,187,133,30,20,20,187,187,187,244,244,244, - 244,244,244,244,30,30,244,244,244,30,30,30,30,176,30,30, - 158,30,30,2,30,2,2,2,30,2,2,158,208,236,129,26, - 174,174,129,26,97,97,129,26,174,174,129,26,97,97,129,26, - 174,174,129,26,97,97,129,26,174,174,129,26,97,97,129,26, - 174,174,129,26,97,97,129,26,174,174,49,26,174,174,49,194, - 174,97,26,26,129,174,26,49,174,97,194,26,174,174,194,26, - 174,97,26,49,97,97,245,199,199,199,3,3,3,68,3,68, - 68,68,68,17,68,68,68,68,68,68,68,68,3,3,3,3, - 187,187,30,187,147,20,147,147,133,133,148,133,187,30,30,158, - 158,158,158,30,30,30,2,2,158,30,158,158,158,2,158,158, - 158,158,2,158,2,158,158,158,158,158,158,2,208,165,243,49, - 129,13,143,49,129,13,243,49,129,13,143,49,129,13,243,49, - 129,13,143,49,129,13,243,49,129,13,143,49,129,13,243,49, - 129,13,143,49,129,13,243,49,129,13,143,194,129,13,143,194, - 129,13,194,49,174,13,194,26,129,13,194,49,129,21,194,49, - 56,97,194,26,56,97,169,199,3,3,3,3,3,68,3,68, - 68,68,68,68,68,68,68,68,68,68,3,3,3,3,3,3, - 158,187,20,133,133,124,91,124,86,86,91,133,187,187,158,158, - 158,187,158,158,158,158,30,158,158,158,30,158,158,2,221,2, - 158,158,158,158,221,221,221,221,221,221,221,2,98,165,21,21, - 97,174,97,21,97,174,21,21,97,174,97,21,97,174,21,21, - 97,174,97,21,97,174,21,21,97,174,97,21,97,174,21,21, - 97,174,97,21,97,174,21,114,97,174,174,21,97,174,97,21, - 97,174,21,114,97,174,97,21,97,174,236,21,97,13,97,114, - 21,21,21,114,21,97,245,199,89,3,3,68,68,68,68,68, - 68,17,68,17,17,17,68,17,68,159,159,159,68,68,226,3, - 187,30,187,148,147,152,232,9,124,232,124,86,133,187,30,30, - 30,244,30,30,30,30,158,30,30,30,158,30,30,158,30,158, - 2,2,2,221,2,2,2,221,221,221,221,2,208,236,165,21, - 97,174,165,97,97,97,56,21,97,174,165,97,97,97,56,21, - 97,174,165,97,97,97,56,21,97,174,165,97,97,97,56,21, - 97,174,165,97,97,97,56,97,97,174,97,21,97,174,174,21, - 97,174,165,97,97,97,97,21,97,97,129,21,174,174,165,97, - 97,174,56,97,97,97,245,242,3,3,3,68,68,68,68,68, - 68,68,17,17,68,17,159,68,159,159,68,68,159,226,68,226, - 187,20,133,147,91,81,213,25,25,213,82,87,24,217,158,244, - 30,30,30,158,244,244,30,30,244,244,158,30,30,30,30,30, - 158,30,30,30,158,158,158,221,2,158,2,2,98,165,13,114, - 13,13,13,114,13,13,13,114,13,13,13,114,13,13,13,114, - 13,13,13,114,13,13,13,114,13,13,13,114,13,13,13,114, - 13,13,13,114,13,13,13,114,13,114,13,70,13,114,13,70, - 13,13,114,114,13,114,13,70,13,13,13,13,114,13,13,13, - 13,13,13,13,13,114,208,3,3,68,3,68,17,68,17,17, - 17,68,68,17,159,17,17,159,159,159,159,159,159,159,159,68, - 148,148,148,148,147,91,16,16,16,54,96,223,18,112,187,187, - 158,158,158,30,158,30,158,244,158,30,244,176,30,158,30,30, - 30,2,2,30,2,2,2,212,221,2,158,2,208,114,99,49, - 49,174,10,49,129,174,99,49,49,174,10,49,129,174,99,49, - 49,174,10,49,129,174,99,49,49,174,10,49,129,174,99,49, - 49,174,10,49,129,174,99,49,129,174,10,49,174,174,10,49, - 129,174,49,49,174,174,10,49,174,174,10,49,174,174,10,49, - 129,174,10,49,174,174,245,242,242,68,68,68,68,159,68,68, - 68,159,159,159,159,159,159,159,159,159,159,68,159,226,159,159, - 187,187,187,20,147,147,151,151,164,53,147,147,148,188,212,212, - 212,212,187,187,187,187,187,2,158,187,158,158,158,158,158,158, - 30,30,2,30,30,30,30,2,2,2,30,2,208,238,10,49, - 129,174,10,49,49,174,10,49,129,174,10,49,49,174,10,49, - 129,174,10,49,49,174,10,49,129,174,10,49,49,174,10,49, - 129,174,10,49,49,174,10,49,174,13,10,10,174,174,10,49, - 49,97,10,99,174,174,49,10,49,13,10,10,129,174,10,49, - 49,13,10,10,174,174,169,89,89,3,3,3,3,3,3,68, - 68,68,68,159,68,68,68,68,68,68,68,3,3,3,242,3, - 187,187,212,212,148,188,133,147,133,29,133,20,133,188,187,212, - 187,187,187,2,221,2,187,2,187,158,2,221,2,221,221,221, - 221,221,158,221,221,221,221,221,221,221,221,221,208,118,129,26, - 174,13,129,26,174,13,129,26,174,13,129,26,174,13,129,26, - 174,13,129,26,174,13,129,26,174,13,129,26,174,13,129,26, - 174,13,129,26,174,13,129,26,49,174,129,49,129,13,49,26, - 97,174,129,129,49,13,194,49,174,174,194,49,174,13,194,26, - 174,174,194,49,129,97,169,210,199,89,89,89,3,3,3,3, - 3,3,68,68,68,68,68,3,3,3,3,3,3,89,89,89, - 158,158,187,187,212,188,20,133,133,81,133,188,188,188,187,187, - 187,187,187,2,187,158,158,2,2,187,158,187,2,221,2,158, - 158,221,158,221,221,221,2,2,2,221,221,221,163,238,194,26, - 129,174,194,194,129,174,194,26,129,174,194,194,129,174,194,26, - 129,174,194,194,129,174,194,26,129,174,194,194,129,174,194,26, - 129,174,194,194,129,174,194,26,56,97,194,26,129,97,194,26, - 97,97,194,26,129,174,194,194,56,97,194,26,129,13,10,194, - 129,13,194,26,97,97,169,210,210,89,89,89,89,3,89,3, - 68,3,68,68,68,68,68,68,3,182,3,182,182,3,242,89, - 128,187,187,187,187,188,20,22,20,16,148,148,188,188,188,212, - 221,221,221,212,221,212,212,221,187,2,2,158,158,2,2,2, - 221,2,212,221,2,158,221,221,2,221,30,158,208,118,97,21, - 97,97,97,21,21,97,97,21,97,97,97,21,21,97,97,21, - 97,97,97,21,21,97,97,21,97,97,97,21,21,97,97,21, - 97,97,97,21,21,97,174,13,97,21,97,13,21,21,97,21, - 21,97,174,13,21,21,21,21,174,13,21,97,174,97,97,97, - 97,97,174,13,97,21,169,228,89,89,3,3,3,3,179,3, - 3,3,3,217,68,68,179,3,226,3,3,3,3,242,242,242, - 20,128,187,20,188,188,188,148,20,53,20,188,188,212,212,212, - 212,212,187,212,221,221,221,221,187,187,212,212,2,221,221,2, - 2,158,221,2,2,2,212,221,2,2,2,78,28,70,97,21, - 97,97,97,97,97,97,97,21,97,97,97,97,97,97,97,21, - 97,97,97,97,97,97,97,21,97,97,97,97,97,97,97,21, - 97,97,97,97,97,97,129,97,174,174,129,97,174,97,97,97, - 97,97,129,97,97,174,97,21,174,174,174,97,97,97,97,21, - 97,97,129,97,174,174,169,210,228,89,89,182,3,3,179,3, - 68,68,68,159,68,68,159,68,68,226,226,3,3,3,3,242, - 20,20,20,188,188,148,20,22,148,45,148,148,148,35,188,212, - 188,188,188,221,212,212,212,212,221,221,221,221,221,221,221,221, - 221,212,212,212,212,221,221,2,212,221,2,78,24,55,114,13, - 13,13,114,13,13,13,114,13,13,13,114,13,13,13,114,13, - 13,13,114,13,13,13,114,13,13,13,114,13,13,13,114,13, - 13,13,114,13,13,13,13,13,13,114,13,13,13,13,114,70, - 13,114,13,13,13,114,114,13,70,114,70,13,13,13,70,13, - 13,114,13,70,13,114,13,89,89,3,3,3,179,68,3,68, - 179,159,68,159,159,159,68,226,226,68,3,226,226,3,226,3, - 20,20,128,20,20,20,20,20,148,11,20,35,188,188,188,212, - 212,221,212,221,107,187,221,221,221,221,221,221,221,221,221,221, - 158,158,2,158,2,2,221,2,2,2,2,122,218,132,201,80, - 224,238,42,224,224,224,222,236,70,100,100,165,70,70,165,31, - 70,70,59,142,71,146,71,55,165,100,100,100,71,59,196,55, - 79,165,201,31,42,42,114,165,146,100,224,79,126,126,79,236, - 236,80,70,238,238,42,146,118,236,42,224,236,224,70,236,236, - 70,238,118,118,118,195,129,182,89,3,3,3,179,68,68,68, - 179,159,68,159,159,159,159,159,68,68,226,68,226,3,226,3, - 20,20,20,128,22,188,22,148,188,11,148,148,148,35,35,188, - 188,188,188,188,188,188,107,107,107,107,158,221,158,221,158,158, - 221,221,221,221,221,221,221,158,221,2,158,122,24,24,231,201, - 70,80,201,201,201,238,100,222,33,71,117,224,118,195,243,236, - 100,201,69,201,165,142,143,71,181,224,126,196,224,236,71,71, - 69,100,79,243,69,238,13,240,236,71,126,43,42,46,114,70, - 114,236,13,118,238,13,97,195,155,118,80,42,13,195,13,70, - 236,13,13,70,13,118,69,242,182,242,226,68,68,159,217,159, - 68,68,159,50,50,50,159,159,159,159,68,68,159,68,68,226, - 22,128,20,128,20,22,22,35,188,93,35,35,188,188,188,107, - 188,107,188,221,221,212,221,187,158,107,158,107,158,107,221,221, - 221,158,2,158,221,221,107,158,221,221,158,78,18,171,222,201, - 201,196,222,69,31,201,118,236,33,132,24,83,31,42,71,71, - 79,42,69,236,13,236,143,55,142,14,55,236,224,71,79,146, - 218,46,165,114,165,238,42,165,83,43,146,79,143,100,165,165, - 69,201,118,236,118,238,165,13,143,100,69,224,195,195,13,236, - 165,165,236,70,13,70,121,226,242,226,226,68,68,68,68,159, - 159,159,159,159,159,50,159,159,159,159,159,68,159,68,68,68, - 128,20,128,22,128,22,35,35,107,60,35,107,107,188,107,221, - 221,221,221,221,107,137,107,137,107,107,107,221,107,221,137,221, - 221,107,221,188,158,221,221,107,221,221,221,122,142,231,165,100, - 42,240,55,31,201,31,31,231,69,126,142,79,106,100,142,55, - 100,100,143,243,118,236,100,132,79,42,43,71,69,100,243,24, - 84,33,143,224,201,243,13,13,231,142,69,181,71,236,236,70, - 69,118,195,236,100,97,100,243,236,243,46,129,13,13,13,118, - 100,13,236,126,70,195,100,226,226,226,226,159,159,159,159,159, - 50,50,50,17,50,159,50,50,159,50,159,159,159,159,159,159, - 128,137,137,137,137,137,107,107,221,15,107,107,221,221,107,107, - 107,221,107,221,212,221,221,137,158,107,158,107,158,221,137,137, - 221,137,221,212,107,221,212,107,221,107,212,78,201,71,189,183, - 106,224,118,31,79,231,42,168,142,55,33,142,168,239,100,236, - 165,236,143,100,239,201,100,97,142,70,43,79,42,236,114,118, - 146,126,165,129,61,238,118,14,178,251,42,69,224,165,118,195, - 155,118,97,165,201,80,83,243,46,143,69,97,195,195,195,236, - 238,70,13,129,42,155,143,217,226,159,217,159,159,50,50,50, - 50,159,50,241,27,17,50,50,50,50,50,159,159,159,159,159, - 128,128,128,128,128,128,128,107,254,87,107,107,137,107,107,187, - 221,107,107,107,137,137,107,221,107,158,107,158,107,107,221,221, - 137,221,107,107,221,212,107,221,107,221,107,78,40,168,189,63, - 192,118,201,80,222,251,251,14,196,246,142,142,251,61,61,165, - 240,236,79,100,118,201,236,55,165,224,165,224,143,236,165,165, - 231,69,100,114,118,61,201,59,118,118,31,71,31,240,118,118, - 201,118,69,100,236,118,83,126,165,100,165,201,118,195,61,118, - 118,118,70,240,236,13,71,68,217,159,159,159,50,159,17,17, - 17,241,17,17,50,50,17,17,17,50,50,50,50,50,159,159, - 128,137,137,136,137,137,137,137,254,134,158,137,137,158,137,107, - 137,221,158,137,158,137,137,128,128,128,128,128,107,107,107,107, - 107,107,107,107,128,107,107,107,212,107,188,78,186,231,14,192, - 14,118,61,61,31,201,231,14,196,218,231,231,42,238,42,142, - 55,43,238,142,142,165,165,118,165,79,55,100,165,114,118,236, - 196,31,118,13,0,118,118,69,55,224,21,114,224,224,13,174, - 13,118,100,146,79,79,215,79,13,118,195,236,118,118,236,118, - 0,118,195,69,201,80,165,159,159,159,50,17,17,17,50,17, - 17,241,17,27,27,241,241,17,27,17,17,17,50,50,50,159, - 137,136,254,254,136,136,137,137,176,219,137,137,137,128,128,128, - 107,137,137,254,109,109,137,107,107,107,107,107,107,128,128,107, - 35,107,221,221,107,2,221,212,128,128,128,78,234,48,14,48, - 251,239,201,55,42,40,192,108,63,63,201,142,43,236,243,33, - 24,222,0,143,42,118,42,236,174,55,181,165,165,100,71,100, - 14,224,243,79,21,42,236,79,71,100,194,79,224,236,100,100, - 97,21,21,146,33,70,126,129,79,236,236,118,118,155,236,243, - 61,13,165,165,114,195,71,50,159,17,17,50,27,34,8,141, - 204,170,204,204,204,170,204,204,170,204,204,170,62,144,27,50, - 136,138,138,138,138,138,254,136,254,18,137,137,137,137,137,137, - 137,109,109,254,109,109,110,158,137,107,107,107,107,107,107,137, - 107,107,107,221,107,221,158,221,221,221,107,122,234,135,214,14, - 201,239,168,134,192,146,218,18,31,168,196,42,42,236,79,218, - 98,132,165,155,224,201,24,24,71,14,192,142,114,114,165,224, - 126,165,24,181,114,222,55,181,142,201,71,143,146,126,146,132, - 69,118,114,146,146,194,224,118,118,143,46,100,118,195,114,165, - 201,236,100,100,114,114,126,159,169,144,119,170,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,146,204,121,170, - 138,138,138,138,138,138,110,138,138,218,158,254,254,137,137,137, - 136,110,109,110,110,110,109,138,109,137,109,137,137,78,137,221, - 137,107,221,137,107,107,107,221,107,107,107,109,18,48,14,251, - 63,192,183,231,251,31,192,183,108,59,40,40,42,155,70,79, - 117,142,236,236,236,165,236,70,165,165,238,79,142,143,79,117, - 79,114,126,100,236,236,100,71,100,236,118,13,100,165,240,224, - 224,70,70,114,70,71,243,236,70,236,143,165,13,118,13,236, - 118,70,114,165,100,70,243,121,46,121,146,36,215,46,121,121, - 115,121,115,121,115,121,215,121,121,215,121,115,215,121,121,215, - 237,130,130,130,237,110,110,237,110,24,136,254,109,254,109,254, - 109,110,109,109,109,109,109,122,122,109,109,158,137,109,109,78, - 137,78,158,109,109,158,158,109,109,109,109,78,41,231,192,220, - 186,200,108,95,145,192,220,227,227,192,95,193,193,231,192,106, - 106,42,43,142,142,168,142,142,79,231,31,31,31,42,48,31, - 42,231,231,142,55,196,69,55,43,224,69,69,55,42,240,69, - 71,236,240,240,100,224,201,61,240,236,240,69,165,236,240,236, - 236,236,97,240,118,165,215,36,36,36,115,115,36,36,36,131, - 36,36,36,36,131,36,36,36,36,36,36,36,131,36,36,115, - 130,130,130,130,235,130,130,237,130,246,110,110,237,110,254,109, - 176,109,176,109,109,110,110,110,237,109,109,109,78,137,137,137, - 109,137,109,109,137,109,136,158,109,158,158,158,229,106,14,203, - 203,14,178,203,203,14,7,95,193,14,95,225,95,43,161,160, - 161,224,161,161,106,231,146,181,106,142,251,168,251,51,14,40, - 40,79,43,161,142,196,43,43,142,196,31,43,43,143,69,69, - 43,224,69,69,31,236,69,240,42,224,69,69,201,165,240,240, - 236,236,240,97,236,243,157,115,115,115,36,36,36,131,131,36, - 36,36,131,64,36,115,36,131,131,64,36,36,36,131,36,64, - 130,235,140,140,130,130,65,130,65,132,37,237,37,37,37,237, - 250,110,110,110,109,109,109,122,65,237,37,37,37,37,37,122, - 37,122,109,122,122,109,138,109,122,109,122,109,229,246,113,7, - 7,14,192,108,7,231,178,7,95,168,203,7,7,231,192,106, - 106,42,106,14,106,231,106,106,106,79,251,14,161,143,183,142, - 168,231,222,106,142,231,142,42,79,196,55,55,43,59,80,80, - 80,236,69,69,224,201,42,100,42,224,240,224,201,236,236,201, - 236,201,61,236,13,126,215,115,115,115,64,115,64,36,131,64, - 64,64,64,131,131,64,64,64,131,64,131,157,157,64,64,64, - 140,140,140,140,140,140,140,185,65,222,37,37,175,175,175,37, - 37,65,110,109,110,250,37,37,37,37,65,175,65,37,37,37, - 37,122,65,237,122,122,122,122,138,122,122,122,112,183,142,178, - 63,168,168,192,192,168,63,178,200,231,63,63,246,196,142,63, - 106,196,142,142,142,42,222,222,142,42,79,168,168,59,184,222, - 142,224,142,142,142,80,80,155,118,118,42,42,224,0,155,239, - 80,80,100,165,155,118,13,224,240,236,165,114,165,236,236,114, - 236,236,97,118,236,126,215,215,64,64,64,64,64,115,157,131, - 131,64,36,10,64,131,64,64,131,131,10,131,131,64,64,64, - 197,127,140,127,140,140,65,122,140,222,175,185,65,150,150,37, - 122,197,140,65,65,65,235,37,237,65,106,175,173,65,65,37, - 175,167,165,127,37,52,94,122,37,122,37,37,112,183,132,246, - 218,168,222,246,184,183,184,184,184,196,184,132,28,196,117,132, - 132,165,117,117,33,224,98,28,117,42,117,117,132,165,163,28, - 117,236,33,117,117,70,233,59,165,155,79,126,79,0,59,51, - 233,155,224,155,155,0,195,155,143,70,143,143,143,143,79,143, - 194,224,79,243,56,146,115,115,215,64,64,64,157,64,157,10, - 131,64,64,131,64,131,10,36,10,131,64,131,157,64,64,64, - 118,46,253,39,127,140,65,130,94,222,37,65,150,52,65,127, - 0,155,46,230,140,175,172,175,250,94,117,122,65,37,162,94, - 127,224,118,70,208,70,117,162,37,37,37,37,112,200,222,48, - 246,168,222,132,184,168,117,132,102,132,218,117,132,231,222,117, - 132,42,222,222,117,51,84,28,117,51,117,222,117,201,163,28, - 146,116,117,117,117,80,196,155,51,70,117,51,155,80,155,118, - 118,0,116,165,155,118,165,116,155,155,118,165,165,165,143,143, - 100,165,129,143,236,126,46,115,64,215,157,64,64,157,215,131, - 64,157,64,157,131,64,64,115,131,157,64,157,157,157,64,215, - 118,13,146,197,140,140,65,94,183,79,175,98,126,165,103,79, - 0,0,155,146,39,140,140,175,94,63,55,37,98,222,165,103, - 79,70,13,0,195,195,0,70,100,83,117,162,112,218,14,178, - 178,192,192,203,108,192,108,108,108,192,44,44,108,168,192,63, - 14,231,14,168,214,51,14,108,113,79,63,192,48,196,135,63, - 178,79,183,135,102,236,59,0,118,155,239,233,155,0,0,195, - 0,0,42,201,155,59,224,118,118,116,19,51,155,51,19,19, - 51,70,70,70,70,146,83,157,157,157,157,215,157,131,215,49, - 157,157,157,215,131,157,157,215,157,131,157,10,215,10,131,215, - 129,121,149,230,39,127,127,48,192,59,191,80,118,195,236,0, - 0,0,215,149,253,39,52,52,184,63,59,191,155,195,118,236, - 195,0,0,195,195,195,195,0,0,0,70,169,32,135,108,108, - 178,178,74,7,7,178,203,7,7,192,193,95,7,192,63,178, - 14,222,14,214,14,192,178,44,178,222,192,14,192,168,74,178, - 14,222,168,200,48,233,80,118,155,118,166,118,80,155,0,0, - 51,80,118,0,0,155,80,155,233,26,105,19,19,19,75,75, - 19,224,118,118,236,146,146,146,146,146,33,146,132,33,24,24, - 33,33,146,132,33,24,33,33,24,184,33,24,33,246,33,33, - 48,146,119,230,39,39,156,48,192,116,80,155,0,0,0,0, - 0,0,0,84,230,92,217,156,48,192,116,80,155,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,155,171,135,251,44, - 44,178,44,95,203,178,178,203,113,178,178,113,214,14,251,40, - 40,168,14,108,178,192,95,6,113,192,168,40,108,168,102,231, - 12,116,12,32,102,80,155,118,118,118,80,239,61,0,0,0, - 0,155,118,0,0,0,0,118,80,80,155,201,42,224,238,118, - 224,42,201,80,201,146,171,134,134,134,41,41,41,41,229,38, - 38,41,41,41,41,229,38,38,60,60,38,229,229,41,41,41, - 102,100,100,131,115,246,233,116,233,233,0,0,0,195,0,0, - 0,0,195,100,131,215,48,239,116,233,233,0,0,0,195,0, - 0,0,0,0,0,0,0,0,0,0,0,0,18,135,214,44, - 7,178,7,203,203,14,203,113,113,14,178,214,40,168,14,40, - 40,168,251,40,113,192,111,125,203,168,32,103,29,48,152,12, - 40,51,214,32,156,155,155,80,233,0,0,118,0,0,0,0, - 0,0,155,118,0,0,0,0,59,155,0,0,233,42,239,118, - 201,233,61,61,165,146,56,70,195,195,238,0,0,118,238,0, - 195,236,195,0,118,238,0,195,42,42,118,118,201,118,118,0, - 51,13,195,155,80,118,155,0,118,0,118,0,80,0,0,0, - 0,0,0,0,155,155,155,155,0,118,0,118,0,80,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,218,200,251,113, - 203,14,113,203,7,14,108,203,203,168,178,113,14,168,44,193, - 14,251,214,178,14,168,214,214,40,168,192,192,74,51,48,214, - 40,118,155,0,0,0,155,118,0,0,0,0,0,0,0,118, - 118,0,0,0,0,0,118,80,118,0,0,0,118,118,201,80, - 201,155,80,80,233,146,143,70,0,0,69,0,0,201,236,0, - 118,42,195,0,59,236,195,155,222,142,195,195,224,201,0,195, - 118,0,0,0,0,0,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,0, - 0,0,0,0,0,0,0,0,0,0,0,0,222,63,239,14, - 113,51,231,40,40,40,178,251,14,239,51,251,40,239,102,200, - 40,80,239,40,40,80,239,80,239,80,51,155,80,80,239,233, - 59,80,0,118,80,80,118,80,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,118,0,0,0,0,0,155,118,0,118, - 118,118,118,118,118,142,42,236,195,0,79,195,195,51,224,195, - 70,79,195,195,42,224,195,13,222,222,155,195,224,51,195,195, - 155,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,168,219,200,200, - 108,160,200,186,200,135,74,219,200,123,219,135,219,219,102,219, - 219,177,219,177,219,219,219,219,219,192,63,51,168,178,200,200, - 74,168,155,0,118,118,0,80,155,0,0,0,0,0,195,0, - 0,0,0,0,80,0,80,231,42,118,0,118,168,63,192,106, - 106,106,142,43,55,222,236,70,0,0,143,195,195,143,236,195, - 195,143,195,195,196,201,195,118,222,142,195,195,236,42,195,195, - 80,0,0,0,0,0,118,80,0,0,0,0,0,0,0,0, - 0,0,0,0,118,0,0,118,118,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,51,218,218,218, - 218,183,218,218,183,183,183,63,63,246,106,48,183,189,183,63, - 246,63,246,63,246,200,246,135,102,117,192,80,0,233,168,246, - 192,80,118,118,0,118,118,0,0,0,0,0,0,195,118,0, - 0,0,0,0,0,236,246,184,222,0,0,0,224,142,183,218, - 218,218,18,98,189,134,79,79,71,71,79,142,79,142,117,142, - 222,79,142,79,79,117,222,142,132,132,222,222,117,79,79,142, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,118,118,0,222,196,233, - 168,168,0,196,0,69,236,42,63,48,246,48,48,106,165,51, - 233,118,118,0,51,189,0,233,233,155,155,155,0,0,0,195, - 0,0,0,0,118,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,195,195,0,0,118,155,42,233,155,195,155, - 224,118,236,165,31,79,71,222,132,142,126,246,132,142,218,189, - 24,126,184,246,142,24,18,246,24,24,246,189,189,142,33,246, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,195,114, - 0,0,0,0,0,0,0,0,0,0,0,0,0,63,79,51, - 14,63,0,192,0,196,165,79,246,183,219,171,18,246,69,71, - 0,0,0,0,51,218,155,155,233,233,0,0,155,155,0,118, - 0,155,80,118,155,80,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,195,238,224,195,70,117,222,231,0,195,195, - 118,195,195,70,222,195,236,143,240,224,143,0,195,224,236,0, - 0,100,195,0,224,224,195,0,231,55,195,195,238,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,80,195,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,48,146,196, - 63,63,195,106,195,192,196,181,33,218,171,171,134,218,196,79, - 51,168,168,168,168,200,70,59,51,231,51,155,0,155,0,0, - 0,118,118,80,118,118,0,0,0,0,0,0,155,0,0,0, - 0,0,0,0,0,13,126,222,143,222,181,236,0,0,236,117, - 165,195,236,236,246,195,118,165,0,0,100,0,195,224,79,0, - 165,224,195,195,224,71,195,165,79,231,165,0,79,224,195,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,195,195,0,0, - 0,0,195,195,195,195,13,195,13,13,13,13,13,183,33,71, - 63,161,118,63,195,161,55,132,218,98,41,171,219,200,69,142, - 118,0,0,0,51,18,70,80,51,168,155,0,80,51,0,0, - 0,118,233,118,80,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,118,143,70,165,118,195,155,195,195,165,100, - 71,195,70,236,33,195,13,236,118,118,165,70,236,51,79,118, - 224,165,70,114,143,222,118,224,196,79,224,118,79,143,114,70, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,195,13,13,114,114,13,13,13,13,118,13,63,24,42, - 63,246,195,106,195,246,243,33,24,189,171,218,134,189,243,222, - 195,224,195,196,42,135,55,55,79,233,233,0,0,155,0,118, - 116,236,222,155,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,195,195,195,118,70,70,195,0,195,13,33,84, - 181,195,70,236,106,195,195,165,0,0,165,195,195,155,195,195, - 195,165,0,0,195,195,195,195,70,155,195,0,0,155,0,195, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,195,70,118,195,195,70,70,70,118,13,118,142,33,224, - 63,63,155,79,13,161,126,33,98,208,134,253,134,177,126,126, - 13,195,118,118,59,219,79,71,59,233,0,0,0,0,0,195, - 222,195,233,118,0,0,0,0,0,0,118,0,0,80,0,0, - 0,0,0,0,155,70,195,0,0,0,0,0,80,56,33,84, - 117,118,13,165,24,114,114,13,13,114,236,21,118,13,114,13, - 118,236,236,13,236,70,13,118,118,236,13,118,13,70,114,114, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,195, - 0,0,69,222,246,33,161,246,246,246,106,246,161,183,132,43, - 231,238,80,195,0,63,55,243,146,218,171,171,218,135,243,79, - 114,155,70,59,246,135,224,143,224,80,155,0,0,0,0,0, - 0,0,0,0,0,0,0,0,118,0,0,0,0,0,0,0, - 0,0,0,224,80,118,0,0,0,0,0,195,118,114,69,33, - 243,118,13,165,132,13,97,236,236,174,236,165,129,97,100,97, - 174,100,100,165,174,100,129,129,100,100,100,100,174,240,236,129, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,59,0,0,80,201,0,80,118,118, - 195,192,234,234,234,177,219,123,219,186,177,177,219,200,161,48, - 48,161,63,63,63,192,161,192,14,192,14,142,142,192,231,231, - 168,231,168,231,18,189,224,31,80,155,80,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,195,0,195,118, - 13,114,236,13,61,129,165,49,49,129,129,174,97,100,100,243, - 83,83,131,83,83,83,69,83,83,83,83,83,83,83,100,236, - 0,0,0,0,0,0,118,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,118,118,80,251,108,178,155,168,0, - 201,31,160,145,145,145,219,123,177,123,145,123,200,220,186,7, - 186,186,7,186,186,203,160,160,178,200,160,161,203,160,178,161, - 161,192,192,14,168,231,142,168,42,42,168,42,201,118,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,195,0,0,195, - 100,100,69,83,69,83,69,83,46,46,46,46,83,83,46,46, - 46,46,46,46,83,83,46,46,121,46,46,83,46,46,83,46, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,118,118,239,80,118,0,118,220,145,123,220,113, - 251,192,113,123,123,123,123,123,123,186,186,220,203,160,160,161, - 160,160,160,161,161,192,246,246,106,192,246,192,222,106,192,142, - 106,192,142,222,231,168,42,155,155,80,239,80,155,0,0,0, - 0,0,0,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,0,0,0,195, - 236,69,55,31,43,31,31,43,43,42,31,31,43,43,42,42, - 69,69,31,69,69,43,43,181,43,106,43,69,55,55,69,55, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,118,40,31,0,118,192,160,160,189,160, - 160,183,161,161,161,161,161,161,161,113,161,161,106,106,106,106, - 106,142,142,106,106,106,43,106,14,43,43,14,43,43,31,43, - 251,43,251,14,14,251,80,80,155,80,233,155,80,0,0,0, - 118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,201,118,236,118,236, - 236,240,55,69,69,43,69,69,43,43,69,69,69,43,69,69, - 43,43,43,43,43,181,43,181,43,106,43,43,43,46,69,43, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,80,41,79,181,246,186,189,186, - 219,123,219,219,189,160,160,24,160,189,161,106,106,106,106,106, - 14,106,106,106,106,106,106,43,106,106,142,43,142,43,142,43, - 43,142,243,43,43,42,80,80,118,80,80,80,155,118,0,118, - 155,0,0,0,0,0,0,118,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,69,243,69,71,69, - 71,143,69,201,195,195,97,69,100,69,243,243,69,69,243,69, - 83,69,69,83,240,240,83,240,83,69,131,69,69,69,69,69, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,13,195,118,155,236, - 224,69,71,55,132,246,106,132,246,246,246,222,168,231,168,222, - 192,168,222,222,63,63,63,222,183,135,183,246,246,63,246,246, - 246,63,222,168,231,231,231,42,118,80,118,0,0,0,0,0, - 0,0,0,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,100,71,143,71, - 71,143,116,195,0,0,195,165,129,240,100,165,129,100,165,236, - 56,97,236,236,129,240,100,100,100,100,165,97,236,56,21,100, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,195,0,0,0, - 0,0,222,214,113,113,32,171,223,186,113,14,219,32,32,135, - 178,113,160,223,200,200,14,203,145,15,229,32,186,186,123,15, - 32,32,7,113,113,15,32,32,12,12,155,118,0,155,0,0, - 0,0,155,0,0,118,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,195,195,238,70,195, - 118,195,118,0,195,0,118,61,189,189,24,161,251,61,201,201, - 201,55,142,222,142,79,42,118,238,80,201,142,142,31,239,31 - }; - -static const HdlInfo hdl_medium = -{ - 144, 108, - 46, 14, - 4, 7, - 256, 8, 255, (char *) hdl_medium_colors, - hdl_medium_on, hdl_medium_off -}; diff --git a/blinkentools-2.9/src/hdl-small.h b/blinkentools-2.9/src/hdl-small.h deleted file mode 100644 index cb9377d..0000000 --- a/blinkentools-2.9/src/hdl-small.h +++ /dev/null @@ -1,814 +0,0 @@ -#include "hdl.h" - -static char hdl_small_colors[256][3] = { - { 0, 0, 0}, - { 16, 16, 16}, - { 33, 33, 33}, - { 57, 57, 57}, - { 82, 82, 82}, - { 90, 90, 90}, - { 99, 99, 99}, - { 49, 33, 33}, - { 24, 16, 16}, - { 82, 49, 49}, - { 57, 33, 33}, - { 74, 41, 41}, - { 16, 8, 8}, - { 66, 33, 33}, - { 33, 16, 16}, - { 57, 24, 24}, - { 41, 16, 16}, - { 24, 8, 8}, - { 49, 16, 16}, - { 16, 0, 0}, - { 90, 41, 33}, - { 82, 33, 24}, - { 74, 33, 24}, - { 57, 24, 16}, - { 66, 33, 24}, - {140,115,107}, - { 66, 41, 33}, - { 49, 24, 16}, - { 33, 8, 0}, - { 74, 33, 16}, - {107, 90, 82}, - { 74, 57, 49}, - { 66, 49, 41}, - { 33, 16, 8}, - { 57, 41, 33}, - { 66, 33, 16}, - { 90, 41, 16}, - { 82, 33, 8}, - { 57, 33, 16}, - {132, 99, 74}, - { 99, 57, 24}, - {107, 57, 16}, - {198,181,165}, - {107, 90, 74}, - {148,132,115}, - { 49, 41, 33}, - { 74, 66, 57}, - {198,181,156}, - {189,173,148}, - { 49, 49, 41}, - { 24, 24, 8}, - { 8, 16, 8}, - { 8, 33, 8}, - { 8, 49, 8}, - { 0, 8, 8}, - { 8, 24, 33}, - { 0, 8, 33}, - { 74, 90,165}, - { 33, 41, 82}, - { 57, 74,156}, - { 57, 74,165}, - { 49, 66,156}, - { 8, 16, 57}, - { 33, 41, 90}, - { 24, 33, 82}, - { 41, 57,148}, - { 24, 33, 90}, - { 16, 24, 74}, - { 24, 41,140}, - { 24, 41,148}, - { 24, 33, 99}, - { 16, 24, 82}, - { 0, 8, 66}, - { 82, 90,165}, - { 74, 82,165}, - { 66, 74,156}, - { 57, 66,156}, - { 41, 49,132}, - { 24, 33,107}, - { 24, 33,115}, - { 24, 33,123}, - { 16, 24, 99}, - { 8, 16, 82}, - { 49, 57,148}, - { 49, 57,156}, - { 41, 49,148}, - { 41, 49,156}, - { 33, 41,132}, - { 33, 41,140}, - {140,140,189}, - { 24, 24, 33}, - {123,123,173}, - { 33, 33, 49}, - { 16, 16, 24}, - {123,123,189}, - { 41, 41, 66}, - { 90, 90,148}, - {115,115,189}, - { 99, 99,165}, - { 24, 24, 41}, - { 99, 99,173}, - { 99, 99,181}, - { 90, 90,165}, - { 66, 66,123}, - { 90, 90,173}, - { 8, 8, 16}, - { 33, 33, 66}, - { 66, 66,132}, - { 82, 82,165}, - { 24, 24, 49}, - { 16, 16, 33}, - { 74, 74,156}, - { 41, 41, 90}, - { 33, 33, 74}, - { 74, 74,165}, - { 74, 74,173}, - { 66, 66,156}, - { 24, 24, 57}, - { 66, 66,165}, - { 16, 16, 41}, - { 24, 24, 66}, - { 57, 57,156}, - { 41, 41,115}, - { 41, 41,123}, - { 49, 49,148}, - { 49, 49,156}, - { 33, 33,107}, - { 49, 49,165}, - { 41, 41,140}, - { 33, 33,115}, - { 16, 16, 66}, - { 24, 24, 99}, - { 8, 8, 41}, - { 16, 16, 82}, - { 16, 16, 90}, - { 8, 8, 49}, - { 16, 16, 99}, - { 16, 16,107}, - { 8, 8, 74}, - { 8, 8, 82}, - { 0, 0, 8}, - { 0, 0, 16}, - { 0, 0, 24}, - { 0, 0, 33}, - { 0, 0, 41}, - { 0, 0, 49}, - {107, 99,181}, - { 90, 82,165}, - { 90, 82,173}, - { 82, 74,173}, - {115,107,173}, - {123,115,189}, - {115,107,181}, - {107, 99,173}, - { 90, 82,148}, - { 99, 90,165}, - { 99, 90,173}, - { 74, 66,132}, - { 33, 24, 99}, - { 16, 8, 74}, - {140,132,189}, - {132,123,189}, - { 82, 74,132}, - { 74, 66,123}, - { 57, 49,107}, - { 24, 16, 74}, - { 16, 8, 66}, - {123,115,165}, - {107, 99,148}, - { 99, 90,148}, - { 82, 74,123}, - { 57, 49, 99}, - { 66, 57,115}, - { 41, 33, 82}, - { 16, 8, 57}, - {115,107,148}, - {115, 99,181}, - { 49, 41, 82}, - { 90, 74,156}, - { 99, 82,173}, - { 41, 33, 74}, - { 90, 74,165}, - { 24, 16, 57}, - { 16, 8, 49}, - {115, 99,173}, - {107, 90,173}, - { 99, 82,165}, - { 66, 49,132}, - {107, 90,165}, - {140,132,165}, - {123,115,148}, - { 74, 66, 99}, - { 57, 49, 82}, - { 49, 41, 74}, - { 99, 82,148}, - { 90, 74,140}, - { 41, 33, 66}, - { 82, 66,132}, - { 24, 16, 49}, - { 16, 8, 41}, - { 8, 0, 33}, - { 33, 24, 57}, - {107, 90,148}, - {148,140,165}, - {140,132,156}, - { 24, 16, 41}, - { 16, 8, 33}, - {132,123,148}, - { 49, 33, 74}, - { 66, 49, 90}, - { 24, 16, 33}, - { 49, 33, 66}, - { 24, 8, 41}, - { 74, 66, 82}, - { 16, 8, 24}, - { 66, 57, 74}, - { 33, 8, 49}, - { 57, 41, 66}, - { 24, 8, 33}, - { 66, 49, 74}, - { 49, 33, 57}, - { 41, 24, 49}, - { 33, 16, 41}, - { 74, 66, 74}, - { 41, 33, 41}, - { 33, 24, 33}, - { 57, 41, 57}, - { 49, 33, 49}, - { 24, 16, 24}, - { 41, 24, 41}, - { 57, 33, 57}, - { 16, 8, 16}, - { 49, 24, 49}, - { 33, 16, 33}, - { 41, 16, 41}, - { 8, 0, 8}, - { 57, 33, 49}, - { 41, 24, 33}, - {181,165,173}, - {156,140,148}, - { 57, 41, 49}, - { 49, 33, 41}, - { 57, 24, 41}, - { 24, 8, 16}, - { 49, 16, 33}, - { 66, 49, 57}, - { 66, 33, 49}, - { 33, 16, 24}, - { 82, 41, 57}, - { 49, 24, 33}, - { 66, 41, 49}, - { 74, 41, 49}, - { 66, 33, 41}, - { 90, 49, 57}, - { 82, 41, 49}, - {255,255,255} - }; -static char hdl_small_on[] = { - 127,125,86,86,86,86,85,85,85,85,85,85,85,85,85,85, - 85,85,85,128,128,128,128,128,128,88,88,88,88,88,87,87, - 87,87,87,87,87,87,87,87,87,87,87,87,87,88,88,88, - 88,88,88,88,88,88,88,88,88,88,88,88,68,68,68,68, - 69,69,69,69,69,69,69,69, - 127,127,125,125,125,125,125,124,124,124,85,85,85,85,85,85, - 85,85,85,85,85,85,85,85,85,85,128,128,128,128,128,128, - 85,128,128,128,128,128,128,128,128,128,128,128,128,128,85,85, - 85,128,88,88,88,88,88,88,85,85,85,85,69,68,68,68, - 68,69,68,69,69,69,69,69, - 127,127,125,125,84,125,125,125,124,124,125,124,124,124,124,124, - 124,124,124,124,124,129,126,126,70,126,64,174,166,174,62,81, - 78,78,78,78,70,126,78,126,126,126,126,78,78,78,78,78, - 78,67,62,62,72,62,62,62,131,79,79,131,80,68,68,68, - 68,68,68,68,69,69,69,69, - 121,127,84,84,84,84,84,84,83,83,83,84,83,84,83,124, - 124,124,124,124,124,130,135,135,135,135,135,62,62,144,198,232, - 212,216,212,234,199,132,135,132,135,135,135,221,216,222,222,212, - 234,135,62,62,135,135,135,135,135,145,144,144,134,68,68,68, - 68,68,68,68,68,69,68,68, - 121,121,121,121,121,121,121,121,121,121,121,121,84,121,84,84, - 83,83,83,83,83,138,145,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,145,137,88,88,88, - 88,68,68,88,88,69,88,88, - 118,60,60,60,76,121,121,76,121,121,121,121,121,121,121,121, - 121,121,121,121,121,174,143,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,144,136,88,88,88, - 88,88,88,68,88,69,88,88, - 118,118,118,118,118,116,116,116,116,116,116,116,116,116,116,116, - 116,116,116,116,116,174,143,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,144,81,88,88,88, - 88,88,88,88,88,69,88,88, - 114,118,118,118,118,118,116,116,116,116,116,116,116,116,116,116, - 116,116,116,116,116,174,143,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,143,81,88,88,88, - 88,88,88,68,68,69,88,88, - 114,118,118,118,118,118,116,116,116,116,116,116,116,116,116,116, - 116,116,116,116,116,174,143,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,143,81,88,88,88, - 88,88,88,68,68,69,88,88, - 115,114,114,114,114,114,114,114,111,111,114,111,111,111,111,111, - 111,116,75,116,116,174,144,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,144,81,88,88,88, - 88,88,88,88,88,69,88,69, - 115,114,114,114,114,114,114,114,114,114,114,114,111,111,111,111, - 111,111,111,111,111,183,143,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,143,134,88,88,88, - 88,85,88,88,85,69,88,88, - 149,149,114,114,108,108,108,108,108,108,108,108,108,108,108,108, - 108,111,111,108,108,183,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,143,134,88,88,88, - 88,85,85,85,85,85,88,85, - 149,149,108,108,108,108,108,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,183,143,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,142,71,85,85,85, - 85,85,85,85,85,85,85,85, - 148,149,149,149,108,108,108,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,183,144,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,143,71,85,85,85, - 85,85,85,85,85,85,85,85, - 148,148,148,148,148,148,147,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,183,143,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,142,71,65,65,65, - 65,65,65,85,85,86,85,85, - 148,148,148,148,148,148,148,147,147,147,147,147,147,147,147,147, - 147,147,147,147,147,183,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,71,65,65,65, - 65,65,65,65,65,86,86,86, - 148,148,148,148,179,179,179,179,186,186,179,186,186,179,186,186, - 186,155,155,155,155,198,144,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,142,66,83,83,65, - 65,86,86,86,86,86,86,86, - 148,148,148,148,179,179,179,186,186,186,179,179,156,156,156,156, - 156,156,156,156,156,198,144,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,142,66,84,84,61, - 61,61,84,84,84,84,84,84, - 148,148,148,148,104,156,156,156,156,156,185,185,185,185,185,185, - 185,185,185,185,185,109,142,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,142,66,61,61,61, - 61,61,84,84,84,84,84,84, - 148,148,148,104,104,156,156,156,104,104,156,156,155,156,156,156, - 156,156,98,153,153,109,143,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,142,66,61,61,61, - 61,61,61,84,84,84,84,84, - 148,148,179,179,156,156,104,102,102,102,104,104,104,104,102,155, - 156,155,155,156,156,117,62,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,143,66,76,76,61, - 61,61,61,61,61,61,61,61, - 148,148,149,149,148,104,104,104,102,104,102,102,102,102,102,102, - 102,102,102,155,155,109,132,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,142,64,76,76,76, - 76,76,76,76,76,61,61,61, - 149,149,149,149,148,104,104,104,104,104,156,156,156,156,156,156, - 155,98,98,100,100,109,142,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,141,64,59,59,59, - 59,59,59,59,59,60,59,59, - 148,148,148,148,104,104,104,156,156,156,156,156,156,156,156,156, - 188,188,185,185,185,109,200,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,63,75,75,75, - 75,75,75,75,75,118,118,118, - 156,156,156,156,156,156,104,104,156,156,156,156,156,156,156,156, - 156,100,98,100,100,109,62,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,142,112,74,74,74, - 74,74,74,74,74,74,74,74, - 146,185,185,156,156,156,156,156,156,156,156,156,100,100,100,100, - 153,153,153,153,153,109,132,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,141,112,73,73,73, - 57,57,74,74,74,74,74,74, - 101,156,156,185,185,185,185,185,153,153,100,100,100,100,100,100, - 100,100,98,100,100,117,56,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,141,112,57,57,74, - 74,74,74,74,74,74,74,74, - 104,104,104,104,156,156,153,153,153,153,153,153,153,153,100,100, - 100,100,100,100,100,109,183,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,63,74,74,74, - 118,118,118,118,75,60,60,60, - 101,101,146,146,100,100,156,100,100,100,100,100,100,100,100,100, - 100,100,98,98,98,109,174,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,141,58,75,75,75, - 75,118,60,60,59,60,60,60, - 146,94,89,160,161,97,100,100,100,100,100,100,153,153,153,153, - 153,153,153,153,153,117,200,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,141,58,75,75,75, - 75,118,60,59,59,60,60,76, - 152,203,47,48,238,162,155,100,100,100,100,100,100,100,100,100, - 100,153,153,153,153,109,214,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,140,58,75,75,59, - 76,76,76,76,76,76,61,76, - 152,91,239,44,25,191,96,146,100,100,100,100,100,100,100,100, - 100,100,98,98,98,109,183,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,142,141,142,141, - 142,141,142,141,142,141,142,141,142,141,142,141,58,75,75,76, - 76,76,76,76,76,60,76,76, - 146,152,94,189,91,151,152,153,153,153,153,153,153,153,153,153, - 153,153,153,153,153,109,174,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,39,31,39,31,39, - 31,39,31,39,31,39,31,39,31,39,31,141,58,74,74,74, - 118,118,118,118,118,118,60,60, - 146,146,146,204,167,153,153,153,153,153,100,153,153,100,100,100, - 100,100,100,100,100,109,132,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,42,30,42,30,42, - 30,42,30,42,30,42,30,42,30,42,30,140,112,75,75,75, - 75,118,118,118,118,118,60,118, - 146,152,146,207,150,146,153,153,153,153,153,153,153,153,153,153, - 153,153,153,153,169,205,235,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,223,92,223,92,223, - 92,223,92,223,92,223,92,223,92,223,92,0,106,75,75,75, - 75,75,75,75,59,59,60,59, - 152,152,152,190,188,152,150,153,153,153,153,153,153,153,153,153, - 153,153,153,153,96,196,235,235,231,105,214,119,205,140,214,214, - 105,214,198,206,206,206,105,206,206,206,231,105,119,110,205,183, - 214,235,235,206,214,235,231,141,105,105,140,0,117,75,75,75, - 75,59,59,59,76,76,76,76, - 152,152,152,175,169,152,153,153,153,153,153,153,153,153,153,153, - 153,153,188,153,169,227,214,105,205,231,12,198,92,218,206,119, - 206,105,105,198,228,206,214,201,113,200,214,105,206,205,119,214, - 214,105,105,214,200,199,206,140,141,200,200,140,58,75,75,76, - 76,76,76,76,76,76,76,76, - 176,176,152,202,169,153,153,153,153,153,153,153,153,153,153,153, - 153,153,188,153,169,214,227,228,235,210,247,93,205,228,231,105, - 206,214,105,199,214,110,206,105,198,200,235,105,33,214,214,105, - 235,105,214,214,183,200,200,0,235,0,200,235,117,76,76,76, - 76,76,76,76,76,76,76,61, - 184,153,176,194,154,184,153,153,153,184,184,153,153,153,153,153, - 153,188,188,150,168,237,247,17,0,231,243,237,210,228,231,210, - 214,110,231,214,205,214,214,214,17,214,140,105,214,105,214,141, - 141,142,182,183,183,214,140,0,235,0,214,140,120,76,76,76, - 76,60,76,76,61,61,61,84, - 185,185,184,195,195,184,184,153,153,153,153,153,153,153,188,188, - 188,188,188,150,169,250,16,231,225,210,92,237,235,105,200,177, - 205,141,214,110,228,222,214,119,205,182,214,119,110,214,119,119, - 110,140,117,119,105,206,200,140,200,105,200,141,58,77,77,77, - 123,123,123,122,129,126,126,158, - 186,186,185,195,195,153,188,188,188,188,188,188,188,188,188,188, - 188,188,188,188,188,221,247,242,13,15,237,40,23,21,228,222, - 214,218,214,199,214,231,214,228,231,210,214,206,214,214,206,214, - 214,105,142,214,105,214,206,105,105,105,142,105,174,138,159,138, - 139,138,139,72,138,138,133,133, - 147,147,179,157,197,185,155,155,155,155,188,184,188,188,188,188, - 188,188,188,188,153,217,18,15,18,23,16,36,35,20,247,249, - 228,237,228,222,228,14,14,14,243,222,228,210,214,214,214,105, - 231,214,206,105,214,214,142,105,142,105,142,214,159,82,82,82, - 82,82,82,138,138,82,138,72, - 181,111,155,162,107,155,155,156,147,156,178,164,178,146,178,155, - 153,155,188,188,188,219,237,247,90,225,93,224,90,222,228,222, - 93,90,99,92,93,210,90,95,110,99,110,235,140,214,214,0, - 0,105,235,0,214,105,200,214,200,214,214,206,165,82,82,133, - 138,138,82,138,138,138,138,138, - 187,181,184,213,163,178,103,172,188,171,214,140,214,173,214,119, - 172,163,103,163,178,219,237,247,247,237,8,10,7,7,210,222, - 228,210,99,221,228,99,90,95,110,222,90,235,235,228,235,0, - 140,235,235,235,235,54,105,214,55,105,214,110,130,72,72,72, - 72,138,138,72,72,72,62,72, - 123,149,170,50,237,235,0,0,2,0,0,0,0,0,0,0, - 0,0,140,140,201,215,23,23,35,35,33,29,35,29,237,16, - 14,33,16,37,237,14,27,38,17,34,45,0,0,28,0,0, - 0,235,0,235,0,51,52,1,53,105,0,110,180,180,180,208, - 193,180,208,193,193,193,211,211, - 62,58,228,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,23,22,35,23,14,23,14,33,14,33, - 243,33,24,41,14,46,43,26,19,32,49,0,0,0,0,0, - 0,0,0,0,0,235,0,231,235,105,0,206,210,90,225,225, - 224,225,229,224,225,222,225,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,224,16,27,14,16,14,27,14,14,34,10, - 8,16,243,231,243,12,8,14,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,235,235,235,0,214,140,140,140,235, - 105,0,105,0,235,140,0,105, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,227,226,227,240,227,226,227,227,240,226,236, - 226,240,226,245,241,231,12,227,237,0,0,0,0,0,0,0, - 0,0,0,231,222,235,0,225,227,227,220,220,205,205,99,222, - 222,210,205,225,210,110,210,222, - 0,0,0,0,0,0,0,140,140,0,0,0,0,0,0,0, - 0,0,0,0,0,8,93,247,231,105,214,247,241,241,210,235, - 0,12,210,235,235,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,235,105,235,228,235,235,105,214,210,110,110,93,210, - 210,210,205,225,210,210,210,222, - 0,0,0,0,0,0,0,0,140,0,0,0,140,140,140,140, - 140,140,141,141,140,225,99,237,228,8,229,92,219,219,222,105, - 12,247,225,235,1,0,235,0,0,0,0,0,0,0,0,0, - 0,0,0,214,205,110,105,0,110,105,105,210,0,141,105,214, - 105,140,93,105,235,140,105,93, - 0,0,0,0,0,0,0,0,235,0,0,0,140,140,141,141, - 141,141,141,140,0,228,92,237,228,8,230,180,192,209,221,214, - 0,231,229,206,235,0,0,140,214,231,0,0,0,0,0,0, - 0,0,0,140,140,140,0,214,173,214,214,210,140,105,140,140, - 140,140,235,140,235,140,140,235, - 0,0,0,0,0,0,0,0,235,0,0,0,0,0,0,231, - 221,221,221,222,229,229,210,8,235,231,229,109,211,217,222,214, - 0,225,227,214,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,235,140,0,0,0,105,198,105,214,110,143,200,200,200, - 132,200,200,132,200,132,132,200, - 0,0,0,0,0,0,0,0,235,0,0,17,249,243,0,237, - 253,254,251,9,9,11,252,252,13,10,10,249,7,249,237,237, - 237,247,228,228,235,231,140,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,206,206,206,199,183,199,183, - 174,174,183,174,183,174,183,183, - 0,0,0,0,0,0,0,0,235,12,12,231,251,248,242,242, - 252,252,246,242,242,244,237,237,237,237,233,233,228,228,228,228, - 210,233,231,0,235,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,235,105,140,214,206,214,214,218,206,206, - 206,212,218,218,206,206,218,206 - }; - -static char hdl_small_off[] = { - 127,125,86,86,86,86,85,85,85,85,85,85,85,85,85,85, - 85,85,85,128,128,128,128,128,128,88,88,88,88,88,87,87, - 87,87,87,87,87,87,87,87,87,87,87,87,87,88,88,88, - 88,88,88,88,88,88,88,88,88,88,88,88,68,68,68,68, - 69,69,69,69,69,69,69,69, - 127,127,125,125,125,125,125,124,124,124,85,85,85,85,85,85, - 85,85,85,85,85,85,85,85,85,85,128,128,128,128,128,128, - 85,128,128,128,128,128,128,128,128,128,128,128,128,128,85,85, - 85,128,88,88,88,88,88,88,85,85,85,85,69,68,68,68, - 68,69,68,69,69,69,69,69, - 127,127,125,125,84,125,125,125,124,124,125,124,124,124,124,124, - 124,124,124,124,124,129,126,126,70,126,64,174,166,174,62,81, - 78,78,78,78,70,126,78,126,126,126,126,78,78,78,78,78, - 78,67,62,62,72,62,62,62,131,79,79,131,80,68,68,68, - 68,68,68,68,69,69,69,69, - 121,127,84,84,84,84,84,84,83,83,83,84,83,84,83,124, - 124,124,124,124,124,130,135,135,135,135,135,62,62,144,198,232, - 212,216,212,234,199,132,135,132,135,135,135,221,216,222,222,212, - 234,135,62,62,135,135,135,135,135,145,144,144,134,68,68,68, - 68,68,68,68,68,69,68,68, - 121,121,121,121,121,121,121,121,121,121,121,121,84,121,84,84, - 83,83,83,83,83,138,145,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,145,137,88,88,88, - 88,68,68,88,88,69,88,88, - 118,60,60,60,76,121,121,76,121,121,121,121,121,121,121,121, - 121,121,121,121,121,174,143,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,144,136,88,88,88, - 88,88,88,68,88,69,88,88, - 118,118,118,118,118,116,116,116,116,116,116,116,116,116,116,116, - 116,116,116,116,116,174,143,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,144,81,88,88,88, - 88,88,88,88,88,69,88,88, - 114,118,118,118,118,118,116,116,116,116,116,116,116,116,116,116, - 116,116,116,116,116,174,143,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,143,81,88,88,88, - 88,88,88,68,68,69,88,88, - 114,118,118,118,118,118,116,116,116,116,116,116,116,116,116,116, - 116,116,116,116,116,174,143,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,143,81,88,88,88, - 88,88,88,68,68,69,88,88, - 115,114,114,114,114,114,114,114,111,111,114,111,111,111,111,111, - 111,116,75,116,116,174,144,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,144,81,88,88,88, - 88,88,88,88,88,69,88,69, - 115,114,114,114,114,114,114,114,114,114,114,114,111,111,111,111, - 111,111,111,111,111,183,143,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,143,134,88,88,88, - 88,85,88,88,85,69,88,88, - 149,149,114,114,108,108,108,108,108,108,108,108,108,108,108,108, - 108,111,111,108,108,183,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,143,134,88,88,88, - 88,85,85,85,85,85,88,85, - 149,149,108,108,108,108,108,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,183,143,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,142,71,85,85,85, - 85,85,85,85,85,85,85,85, - 148,149,149,149,108,108,108,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,183,144,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,143,71,85,85,85, - 85,85,85,85,85,85,85,85, - 148,148,148,148,148,148,147,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,183,143,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,142,71,65,65,65, - 65,65,65,85,85,86,85,85, - 148,148,148,148,148,148,148,147,147,147,147,147,147,147,147,147, - 147,147,147,147,147,183,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,141,71,65,65,65, - 65,65,65,65,65,86,86,86, - 148,148,148,148,179,179,179,179,186,186,179,186,186,179,186,186, - 186,155,155,155,155,198,144,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,142,66,83,83,65, - 65,86,86,86,86,86,86,86, - 148,148,148,148,179,179,179,186,186,186,179,179,156,156,156,156, - 156,156,156,156,156,198,144,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,142,66,84,84,61, - 61,61,84,84,84,84,84,84, - 148,148,148,148,104,156,156,156,156,156,185,185,185,185,185,185, - 185,185,185,185,185,109,142,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,142,66,61,61,61, - 61,61,84,84,84,84,84,84, - 148,148,148,104,104,156,156,156,104,104,156,156,155,156,156,156, - 156,156,98,153,153,109,143,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,142,66,61,61,61, - 61,61,61,84,84,84,84,84, - 148,148,179,179,156,156,104,102,102,102,104,104,104,104,102,155, - 156,155,155,156,156,117,62,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,143,66,76,76,61, - 61,61,61,61,61,61,61,61, - 148,148,149,149,148,104,104,104,102,104,102,102,102,102,102,102, - 102,102,102,155,155,109,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,142,64,76,76,76, - 76,76,76,76,76,61,61,61, - 149,149,149,149,148,104,104,104,104,104,156,156,156,156,156,156, - 155,98,98,100,100,109,142,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,141,64,59,59,59, - 59,59,59,59,59,60,59,59, - 148,148,148,148,104,104,104,156,156,156,156,156,156,156,156,156, - 188,188,185,185,185,109,200,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,141,63,75,75,75, - 75,75,75,75,75,118,118,118, - 156,156,156,156,156,156,104,104,156,156,156,156,156,156,156,156, - 156,100,98,100,100,109,62,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,142,112,74,74,74, - 74,74,74,74,74,74,74,74, - 146,185,185,156,156,156,156,156,156,156,156,156,100,100,100,100, - 153,153,153,153,153,109,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,141,112,73,73,73, - 57,57,74,74,74,74,74,74, - 101,156,156,185,185,185,185,185,153,153,100,100,100,100,100,100, - 100,100,98,100,100,117,56,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,141,112,57,57,74, - 74,74,74,74,74,74,74,74, - 104,104,104,104,156,156,153,153,153,153,153,153,153,153,100,100, - 100,100,100,100,100,109,183,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,141,63,74,74,74, - 118,118,118,118,75,60,60,60, - 101,101,146,146,100,100,156,100,100,100,100,100,100,100,100,100, - 100,100,98,98,98,109,174,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,141,58,75,75,75, - 75,118,60,60,59,60,60,60, - 146,94,89,160,161,97,100,100,100,100,100,100,153,153,153,153, - 153,153,153,153,153,117,200,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,141,58,75,75,75, - 75,118,60,59,59,60,60,76, - 152,203,47,48,238,162,155,100,100,100,100,100,100,100,100,100, - 100,153,153,153,153,109,214,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,140,58,75,75,59, - 76,76,76,76,76,76,61,76, - 152,91,239,44,25,191,96,146,100,100,100,100,100,100,100,100, - 100,100,98,98,98,109,183,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,214,142,214,142,214, - 142,214,142,214,142,214,142,214,142,214,142,141,58,75,75,76, - 76,76,76,76,76,60,76,76, - 146,152,94,189,91,151,152,153,153,153,153,153,153,153,153,153, - 153,153,153,153,153,109,174,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,183,200,183,200,183, - 200,183,200,183,200,183,200,183,200,183,200,141,58,74,74,74, - 118,118,118,118,118,118,60,60, - 146,146,146,204,167,153,153,153,153,153,100,153,153,100,100,100, - 100,100,100,100,100,109,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,174,132,174,132,174, - 132,174,132,174,132,174,132,174,132,174,132,140,112,75,75,75, - 75,118,118,118,118,118,60,118, - 146,152,146,207,150,146,153,153,153,153,153,153,153,153,153,153, - 153,153,153,153,169,205,235,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200, - 200,200,200,200,200,200,200,200,200,200,200,0,106,75,75,75, - 75,75,75,75,59,59,60,59, - 152,152,152,190,188,152,150,153,153,153,153,153,153,153,153,153, - 153,153,153,153,96,196,235,235,231,105,214,119,205,140,214,214, - 105,214,198,206,206,206,105,206,206,206,231,105,119,110,205,183, - 214,235,235,206,214,235,231,141,105,105,140,0,117,75,75,75, - 75,59,59,59,76,76,76,76, - 152,152,152,175,169,152,153,153,153,153,153,153,153,153,153,153, - 153,153,188,153,169,227,214,105,205,231,12,198,92,218,206,119, - 206,105,105,198,228,206,214,201,113,200,214,105,206,205,119,214, - 214,105,105,214,200,199,206,140,141,200,200,140,58,75,75,76, - 76,76,76,76,76,76,76,76, - 176,176,152,202,169,153,153,153,153,153,153,153,153,153,153,153, - 153,153,188,153,169,214,227,228,235,210,247,93,205,228,231,105, - 206,214,105,199,214,110,206,105,198,200,235,105,33,214,214,105, - 235,105,214,214,183,200,200,0,235,0,200,235,117,76,76,76, - 76,76,76,76,76,76,76,61, - 184,153,176,194,154,184,153,153,153,184,184,153,153,153,153,153, - 153,188,188,150,168,237,247,17,0,231,243,237,210,228,231,210, - 214,110,231,214,205,214,214,214,17,214,140,105,214,105,214,141, - 141,142,182,183,183,214,140,0,235,0,214,140,120,76,76,76, - 76,60,76,76,61,61,61,84, - 185,185,184,195,195,184,184,153,153,153,153,153,153,153,188,188, - 188,188,188,150,169,250,16,231,225,210,92,237,235,105,200,177, - 205,141,214,110,228,222,214,119,205,182,214,119,110,214,119,119, - 110,140,117,119,105,206,200,140,200,105,200,141,58,77,77,77, - 123,123,123,122,129,126,126,158, - 186,186,185,195,195,153,188,188,188,188,188,188,188,188,188,188, - 188,188,188,188,188,221,247,242,13,15,237,40,23,21,228,222, - 214,218,214,199,214,231,214,228,231,210,214,206,214,214,206,214, - 214,105,142,214,105,214,206,105,105,105,142,105,174,138,159,138, - 139,138,139,72,138,138,133,133, - 147,147,179,157,197,185,155,155,155,155,188,184,188,188,188,188, - 188,188,188,188,153,217,18,15,18,23,16,36,35,20,247,249, - 228,237,228,222,228,14,14,14,243,222,228,210,214,214,214,105, - 231,214,206,105,214,214,142,105,142,105,142,214,159,82,82,82, - 82,82,82,138,138,82,138,72, - 181,111,155,162,107,155,155,156,147,156,178,164,178,146,178,155, - 153,155,188,188,188,219,237,247,90,225,93,224,90,222,228,222, - 93,90,99,92,93,210,90,95,110,99,110,235,140,214,214,0, - 0,105,235,0,214,105,200,214,200,214,214,206,165,82,82,133, - 138,138,82,138,138,138,138,138, - 187,181,184,213,163,178,103,172,188,171,214,140,214,173,214,119, - 172,163,103,163,178,219,237,247,247,237,8,10,7,7,210,222, - 228,210,99,221,228,99,90,95,110,222,90,235,235,228,235,0, - 140,235,235,235,235,54,105,214,55,105,214,110,130,72,72,72, - 72,138,138,72,72,72,62,72, - 123,149,170,50,237,235,0,0,2,0,0,0,0,0,0,0, - 0,0,140,140,201,215,23,23,35,35,33,29,35,29,237,16, - 14,33,16,37,237,14,27,38,17,34,45,0,0,28,0,0, - 0,235,0,235,0,51,52,1,53,105,0,110,180,180,180,208, - 193,180,208,193,193,193,211,211, - 62,58,228,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,23,22,35,23,14,23,14,33,14,33, - 243,33,24,41,14,46,43,26,19,32,49,0,0,0,0,0, - 0,0,0,0,0,235,0,231,235,105,0,206,210,90,225,225, - 224,225,229,224,225,222,225,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,224,16,27,14,16,14,27,14,14,34,10, - 8,16,243,231,243,12,8,14,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,235,235,235,0,214,140,140,140,235, - 105,0,105,0,235,140,0,105, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,227,226,227,240,227,226,227,227,240,226,236, - 226,240,226,245,241,231,12,227,237,0,0,0,0,0,0,0, - 0,0,0,231,222,235,0,225,227,227,220,220,205,205,99,222, - 222,210,205,225,210,110,210,222, - 0,0,0,0,0,0,0,140,140,0,0,0,0,0,0,0, - 0,0,0,0,0,8,93,247,231,105,214,247,241,241,210,235, - 0,12,210,235,235,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,235,105,235,228,235,235,105,214,210,110,110,93,210, - 210,210,205,225,210,210,210,222, - 0,0,0,0,0,0,0,0,140,0,0,0,140,140,140,140, - 140,140,141,141,140,225,99,237,228,8,229,92,219,219,222,105, - 12,247,225,235,1,0,235,0,0,0,0,0,0,0,0,0, - 0,0,0,214,205,110,105,0,110,105,105,210,0,141,105,214, - 105,140,93,105,235,140,105,93, - 0,0,0,0,0,0,0,0,235,0,0,0,140,140,141,141, - 141,141,141,140,0,228,92,237,228,8,230,180,192,209,221,214, - 0,231,229,206,235,0,0,140,214,231,0,0,0,0,0,0, - 0,0,0,140,140,140,0,214,173,214,214,210,140,105,140,140, - 140,140,235,140,235,140,140,235, - 0,0,0,0,0,0,0,0,235,0,0,0,0,0,0,231, - 221,221,221,222,229,229,210,8,235,231,229,109,211,217,222,214, - 0,225,227,214,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,235,140,0,0,0,105,198,105,214,110,143,200,200,200, - 132,200,200,132,200,132,132,200, - 0,0,0,0,0,0,0,0,235,0,0,17,249,243,0,237, - 253,254,251,9,9,11,252,252,13,10,10,249,7,249,237,237, - 237,247,228,228,235,231,140,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,206,206,206,199,183,199,183, - 174,174,183,174,183,174,183,183, - 0,0,0,0,0,0,0,0,235,12,12,231,251,248,242,242, - 252,252,246,242,242,244,237,237,237,237,233,233,228,228,228,228, - 210,233,231,0,235,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,235,105,140,214,206,214,214,218,206,206, - 206,212,218,218,206,206,218,206 - }; - -static const HdlInfo hdl_small = -{ - 72, 54, - 23, 4, - 2, 4, - 256, 8, 255, (char *) hdl_small_colors, - hdl_small_on, hdl_small_off -}; diff --git a/blinkentools-2.9/src/hdl.h b/blinkentools-2.9/src/hdl.h deleted file mode 100644 index 0527ba6..0000000 --- a/blinkentools-2.9/src/hdl.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef __HDL_H__ -#define __HDL_H__ - -#define BLINKEN_WIDTH 18 -#define BLINKEN_HEIGHT 8 - -typedef enum -{ - IMAGE_PLAIN, - IMAGE_HDL_SMALL, - IMAGE_HDL_MEDIUM, - IMAGE_HDL_LARGE, - IMAGE_HDL_HUGE, - LAST_IMAGE -} ImageType; - -typedef struct -{ - int width; - int height; - int offx; - int offy; - int dx; - int dy; - int ncolors; - int cbits; - int trans; - char *colors; - char *on; - char *off; -} HdlInfo; - - -static char hdl_plain_colors[6] = { 0x0, 0x0, 0x0, 0xFF, 0xFF, 0xFF }; - -static const HdlInfo hdl_plain = -{ - 0, 0, - 0, 0, - 1, 1, - 2, 1, -1, hdl_plain_colors, - NULL, NULL -}; - -#include "hdl-small.h" -#include "hdl-medium.h" -#include "hdl-large.h" -#include "hdl-huge.h" - - -#endif /* __HDL_H__ */